aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/ipaccess
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@gnumonks.org>2011-04-07 14:15:02 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2011-04-07 23:28:00 +0200
commit3ab864a8600dc005440d6b1dd6e5a0a365f846de (patch)
tree0b1006afa62b1fe67ffdeb378e27405a95bdeaf9 /openbsc/src/ipaccess
parent55ef5fb7ef0880544343e757c5614fdce2bba1a3 (diff)
ipaccess-proxy: get rid of make_listen_sock() and use make_sock() instead
This patch replaces make_listen_sock() by the generic make_sock() available in libcommon/socket.
Diffstat (limited to 'openbsc/src/ipaccess')
-rw-r--r--openbsc/src/ipaccess/ipaccess-proxy.c51
1 files changed, 4 insertions, 47 deletions
diff --git a/openbsc/src/ipaccess/ipaccess-proxy.c b/openbsc/src/ipaccess/ipaccess-proxy.c
index a6b433f94..d1c7a3396 100644
--- a/openbsc/src/ipaccess/ipaccess-proxy.c
+++ b/openbsc/src/ipaccess/ipaccess-proxy.c
@@ -1078,49 +1078,6 @@ static int gprs_ns_cb(struct bsc_fd *bfd, unsigned int what)
return 0;
}
-static int make_listen_sock(struct bsc_fd *bfd, u_int16_t port, int priv_nr,
- int (*cb)(struct bsc_fd *fd, unsigned int what))
-{
- struct sockaddr_in addr;
- int ret, on = 1;
-
- bfd->fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- bfd->cb = cb;
- bfd->when = BSC_FD_READ;
- bfd->priv_nr = priv_nr;
-
- memset(&addr, 0, sizeof(addr));
- addr.sin_family = AF_INET;
- addr.sin_port = htons(port);
- if (!listen_ipaddr)
- addr.sin_addr.s_addr = INADDR_ANY;
- else
- inet_aton(listen_ipaddr, &addr.sin_addr);
-
- setsockopt(bfd->fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
-
- ret = bind(bfd->fd, (struct sockaddr *) &addr, sizeof(addr));
- if (ret < 0) {
- LOGP(DINP, LOGL_ERROR,
- "Could not bind listen socket for IP %s with error: %s.\n",
- listen_ipaddr, strerror(errno));
- return -EIO;
- }
-
- ret = listen(bfd->fd, 1);
- if (ret < 0) {
- perror("listen");
- return ret;
- }
-
- ret = bsc_register_fd(bfd);
- if (ret < 0) {
- perror("register_listen_fd");
- return ret;
- }
- return 0;
-}
-
static int make_gprs_sock(struct bsc_fd *bfd, int (*cb)(struct bsc_fd*,unsigned int), void *data)
{
struct sockaddr_in addr;
@@ -1206,14 +1163,14 @@ static int ipaccess_proxy_setup(void)
ipp->reconn_timer.data = ipp;
/* Listen for OML connections */
- ret = make_listen_sock(&ipp->oml_listen_fd, IPA_TCP_PORT_OML,
- OML_FROM_BTS, listen_fd_cb);
+ ret = make_sock(&ipp->oml_listen_fd, IPPROTO_TCP, INADDR_ANY,
+ IPA_TCP_PORT_OML, OML_FROM_BTS, listen_fd_cb, NULL);
if (ret < 0)
return ret;
/* Listen for RSL connections */
- ret = make_listen_sock(&ipp->rsl_listen_fd, IPA_TCP_PORT_RSL,
- RSL_FROM_BTS, listen_fd_cb);
+ ret = make_sock(&ipp->rsl_listen_fd, IPPROTO_TCP, INADDR_ANY,
+ IPA_TCP_PORT_RSL, RSL_FROM_BTS, listen_fd_cb, NULL);
if (ret < 0)
return ret;