aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/socket.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-05-19 14:38:50 +0200
committerHarald Welte <laforge@gnumonks.org>2010-05-19 14:38:50 +0200
commit5540c4cbd32f9b69f72adb622c3635e841724131 (patch)
tree6ced3555161e5e17d5be01898ac55f327cebd2ab /openbsc/src/socket.c
parent3a318ab9716718a39a6907d012b6f616fe46823d (diff)
[GPRS] Add Frame Relay in GRE encapsulation for NS
Diffstat (limited to 'openbsc/src/socket.c')
-rw-r--r--openbsc/src/socket.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/openbsc/src/socket.c b/openbsc/src/socket.c
index c72f6bc27..d60c43e01 100644
--- a/openbsc/src/socket.c
+++ b/openbsc/src/socket.c
@@ -41,7 +41,7 @@
#include <openbsc/gsm_data.h>
#include <osmocore/talloc.h>
-int make_sock(struct bsc_fd *bfd, int proto, u_int16_t port,
+int make_sock(struct bsc_fd *bfd, int proto, u_int32_t ip, u_int16_t port,
int (*cb)(struct bsc_fd *fd, unsigned int what))
{
struct sockaddr_in addr;
@@ -75,7 +75,10 @@ int make_sock(struct bsc_fd *bfd, int proto, u_int16_t port,
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
- addr.sin_addr.s_addr = INADDR_ANY;
+ if (ip)
+ addr.sin_addr.s_addr = htonl(ip);
+ else
+ addr.sin_addr.s_addr = INADDR_ANY;
setsockopt(bfd->fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));