X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=src%2Fgsmtap_util.c;h=c8c26c6226152df3db6c6ba8e43a2c03e261c056;hb=d9db89d1e7d40c2820e8df7f819783fef60bf87d;hp=3d20bfc29aa562f71a8b34dd77e7ea65b1b14d7b;hpb=13692a6bd3df90d80cdbc4fd6852c69c6a99ea9b;p=osmocom-bb.git diff --git a/src/gsmtap_util.c b/src/gsmtap_util.c index 3d20bfc..c8c26c6 100644 --- a/src/gsmtap_util.c +++ b/src/gsmtap_util.c @@ -124,7 +124,8 @@ int gsmtap_source_init_fd(const char *host, uint16_t port) if (host == NULL) host = "localhost"; - return osmo_sock_init(AF_UNSPEC, SOCK_DGRAM, IPPROTO_UDP, host, port, 0); + return osmo_sock_init(AF_UNSPEC, SOCK_DGRAM, IPPROTO_UDP, host, port, + OSMO_SOCK_F_CONNECT); } int gsmtap_source_add_sink_fd(int gsmtap_fd) @@ -138,7 +139,8 @@ int gsmtap_source_add_sink_fd(int gsmtap_fd) return rc; if (osmo_sockaddr_is_local((struct sockaddr *)&ss, ss_len) == 1) { - rc = osmo_sock_init_sa((struct sockaddr *)&ss, SOCK_DGRAM, IPPROTO_UDP, 1); + rc = osmo_sock_init_sa((struct sockaddr *)&ss, SOCK_DGRAM, + IPPROTO_UDP, OSMO_SOCK_F_BIND); if (rc >= 0) return rc; } @@ -197,16 +199,13 @@ static int gsmtap_wq_w_cb(struct osmo_fd *ofd, struct msgb *msg) rc = write(ofd->fd, msg->data, msg->len); if (rc < 0) { perror("writing msgb to gsmtap fd"); - msgb_free(msg); return rc; } if (rc != msg->len) { perror("short write to gsmtap fd"); - msgb_free(msg); return -EIO; } - msgb_free(msg); return 0; }