diff options
author | Harald Welte <laforge@osmocom.org> | 2020-10-18 22:19:28 +0200 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2020-10-19 12:05:17 +0200 |
commit | 806e7a37ddabd87b637b9151415f3f7375504e64 (patch) | |
tree | a725985a9436afc34fb9dca436cf92d6390f4a41 /src/ipaccess | |
parent | 218b3753f1cf65fb89b85da8aa0fa57b1661f3c1 (diff) |
use osmo_fd_setup() whenever applicable
Change-Id: Iee26d14e997cc77c49b8fc1a9f388e4e2f783105
Diffstat (limited to 'src/ipaccess')
-rw-r--r-- | src/ipaccess/abisip-find.c | 7 | ||||
-rw-r--r-- | src/ipaccess/ipaccess-proxy.c | 19 |
2 files changed, 9 insertions, 17 deletions
diff --git a/src/ipaccess/abisip-find.c b/src/ipaccess/abisip-find.c index 11b2851ae..a414d1615 100644 --- a/src/ipaccess/abisip-find.c +++ b/src/ipaccess/abisip-find.c @@ -446,13 +446,12 @@ int main(int argc, char **argv) else if (cmdline_opts.send_interval >= cmdline_opts.list_view_timeout) fprintf(stdout, "\nWARNING: the --timeout should be larger than --interval.\n\n"); - bfd.cb = bfd_cb; - bfd.when = OSMO_FD_READ | OSMO_FD_WRITE; - bfd.fd = udp_sock(cmdline_opts.ifname, cmdline_opts.bind_ip); - if (bfd.fd < 0) { + rc = udp_sock(cmdline_opts.ifname, cmdline_opts.bind_ip); + if (rc < 0) { perror("Cannot create local socket for broadcast udp"); exit(1); } + osmo_fd_setup(&bfd, rc, OSMO_FD_READ | OSMO_FD_WRITE, bfd_cb, NULL, 0); rc = osmo_fd_register(&bfd); if (rc < 0) { diff --git a/src/ipaccess/ipaccess-proxy.c b/src/ipaccess/ipaccess-proxy.c index d5dd8d4d5..1ed215db9 100644 --- a/src/ipaccess/ipaccess-proxy.c +++ b/src/ipaccess/ipaccess-proxy.c @@ -936,11 +936,7 @@ static int listen_fd_cb(struct osmo_fd *listen_bfd, unsigned int what) } bfd = &ipc->fd; - bfd->fd = ret; - bfd->data = ipc; - bfd->priv_nr = listen_bfd->priv_nr; - bfd->cb = proxy_ipaccess_fd_cb; - bfd->when = OSMO_FD_READ; + osmo_fd_setup(bfd, ret, OSMO_FD_READ, proxy_ipaccess_fd_cb, ipc, listen_bfd->priv_nr); ret = osmo_fd_register(bfd); if (ret < 0) { LOGP(DLINP, LOGL_ERROR, "could not register FD\n"); @@ -1016,20 +1012,17 @@ static struct ipa_proxy_conn *connect_bsc(struct sockaddr_in *sa, int priv_nr, v ipc->bts_conn = data; - bfd = &ipc->fd; - bfd->fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - bfd->cb = ipaccess_fd_cb; - bfd->when = OSMO_FD_READ | OSMO_FD_WRITE; - bfd->data = ipc; - bfd->priv_nr = priv_nr; - - if (bfd->fd < 0) { + ret = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (ret < 0) { LOGP(DLINP, LOGL_ERROR, "Could not create socket: %s\n", strerror(errno)); talloc_free(ipc); return NULL; } + bfd = &ipc->fd; + osmo_fd_setup(bfd, ret, OSMO_FD_READ | OSMO_FD_WRITE, ipaccess_fd_cb, ipc, priv_nr); + ret = setsockopt(bfd->fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)); if (ret < 0) { LOGP(DLINP, LOGL_ERROR, "Could not set socket option\n"); |