diff options
Diffstat (limited to 'openbsc/src/gprs/gprs_ns_frgre.c')
-rw-r--r-- | openbsc/src/gprs/gprs_ns_frgre.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/openbsc/src/gprs/gprs_ns_frgre.c b/openbsc/src/gprs/gprs_ns_frgre.c index d58c1d9da..979442b81 100644 --- a/openbsc/src/gprs/gprs_ns_frgre.c +++ b/openbsc/src/gprs/gprs_ns_frgre.c @@ -202,7 +202,7 @@ static int nsfrgre_fd_cb(struct bsc_fd *bfd, unsigned int what) return rc; } -int gprs_ns_frgre_listen(struct gprs_ns_inst *nsi, uint32_t ip) +int gprs_ns_frgre_listen(struct gprs_ns_inst *nsi) { int rc; @@ -210,7 +210,11 @@ int gprs_ns_frgre_listen(struct gprs_ns_inst *nsi, uint32_t ip) if (nsi->frgre.fd.fd) close(nsi->frgre.fd.fd); - rc = make_sock(&nsi->frgre.fd, IPPROTO_GRE, ip, 0, nsfrgre_fd_cb); + if (!nsi->frgre.enabled) + return 0; + + rc = make_sock(&nsi->frgre.fd, IPPROTO_GRE, nsi->frgre.local_ip, + 0, nsfrgre_fd_cb); if (rc < 0) { LOGP(DNS, LOGL_ERROR, "Error creating GRE socket (%s)\n", strerror(errno)); |