From 855cea63180d6564cf3a5c637bb92e405c7b6841 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 6 Sep 2018 15:00:10 +0200 Subject: osmoload: Use osmo_sock_unix_init_ofd() from libosmocore We don't need to hand-code unix domain socket initialization but can simply use our library function for it. As an added benefit, the library code already contains corner case handling for non-NUL terminated unix domain socket path. Change-Id: Iedcec4591cf0fcbd6f956ed022169eae10a9b16e --- src/host/osmocon/osmoload.c | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) (limited to 'src/host/osmocon') diff --git a/src/host/osmocon/osmoload.c b/src/host/osmocon/osmoload.c index 1c20382d..b1b48e24 100644 --- a/src/host/osmocon/osmoload.c +++ b/src/host/osmocon/osmoload.c @@ -1,6 +1,7 @@ /* control utility for the Calypso bootloader */ /* (C) 2010 by Ingo Albrecht + * (C) 2018 by Harald Welte * * All Rights Reserved * @@ -39,6 +40,7 @@ #include #include #include +#include #include @@ -493,34 +495,16 @@ loader_read_cb(struct osmo_fd *fd, unsigned int flags) { static void loader_connect(const char *socket_path) { int rc; - struct sockaddr_un local; struct osmo_fd *conn = &connection; - local.sun_family = AF_UNIX; - strncpy(local.sun_path, socket_path, sizeof(local.sun_path)); - local.sun_path[sizeof(local.sun_path) - 1] = '\0'; - - conn->fd = socket(AF_UNIX, SOCK_STREAM, 0); - if (conn->fd < 0) { - fprintf(stderr, "Failed to create unix domain socket.\n"); - exit(1); - } - - rc = connect(conn->fd, (struct sockaddr *) &local, - sizeof(local.sun_family) + strlen(local.sun_path)); + rc = osmo_sock_unix_init_ofd(conn, SOCK_STREAM, 0, socket_path, OSMO_SOCK_F_CONNECT); if (rc < 0) { - fprintf(stderr, "Failed to connect to '%s'.\n", local.sun_path); + fprintf(stderr, "Failed to create unix domain socket.\n"); exit(1); } - conn->when = BSC_FD_READ; conn->cb = loader_read_cb; conn->data = NULL; - - if (osmo_fd_register(conn) != 0) { - fprintf(stderr, "Failed to register fd.\n"); - exit(1); - } } static void -- cgit v1.2.3