aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gprs/gprs_ns_frgre.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/gprs/gprs_ns_frgre.c')
-rw-r--r--openbsc/src/gprs/gprs_ns_frgre.c8
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));