From 0c4bb93fbfc543cf2c5ff2acb6a7f7a824163b57 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sun, 11 Jan 2015 23:21:13 +0100 Subject: [PATCH] Remove socket address parameter of create_local_socket(). The two callers of create_local_socket() are not interested in the sockaddr_un structure at all. So we may define the structure in create_local_socket() rather than in each caller, and kill the function parameter. --- afs.c | 3 +-- audiod.c | 3 +-- net.c | 11 +++++------ net.h | 3 +-- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/afs.c b/afs.c index a21a99d0..7832a324 100644 --- a/afs.c +++ b/afs.c @@ -637,10 +637,9 @@ static int setup_command_socket_or_die(void) { int ret, socket_fd; char *socket_name = conf.afs_socket_arg; - struct sockaddr_un unix_addr; unlink(socket_name); - ret = create_local_socket(socket_name, &unix_addr, + ret = create_local_socket(socket_name, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IWOTH); if (ret < 0) { PARA_EMERG_LOG("%s: %s\n", para_strerror(-ret), socket_name); diff --git a/audiod.c b/audiod.c index 77d21f37..40f02f74 100644 --- a/audiod.c +++ b/audiod.c @@ -958,7 +958,6 @@ static int parse_stream_args(void) /* does not unlink socket on errors */ static int audiod_get_socket(void) { - struct sockaddr_un unix_addr; int ret, fd; if (conf.socket_given) @@ -972,7 +971,7 @@ static int audiod_get_socket(void) PARA_NOTICE_LOG("local socket: %s\n", socket_name); if (conf.force_given) unlink(socket_name); - ret = create_local_socket(socket_name, &unix_addr, + ret = create_local_socket(socket_name, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IWOTH); if (ret < 0) goto err; diff --git a/net.c b/net.c index 13907102..7a987444 100644 --- a/net.c +++ b/net.c @@ -863,8 +863,7 @@ static int init_unix_addr(struct sockaddr_un *u, const char *name) * Prepare, create, and bind a socket for local communication. * * \param name The socket pathname. - * \param unix_addr Pointer to the \p AF_UNIX socket structure. - * \param mode The desired mode of the socket. + * \param mode The desired permissions of the socket. * * This function creates a local socket for sequenced, reliable, * two-way, connection-based byte streams. @@ -875,19 +874,19 @@ static int init_unix_addr(struct sockaddr_un *u, const char *name) * \sa bind(2) * \sa chmod(2) */ -int create_local_socket(const char *name, struct sockaddr_un *unix_addr, - mode_t mode) +int create_local_socket(const char *name, mode_t mode) { + struct sockaddr_un unix_addr; int fd, ret; - ret = init_unix_addr(unix_addr, name); + ret = init_unix_addr(&unix_addr, name); if (ret < 0) return ret; ret = socket(PF_UNIX, SOCK_STREAM, 0); if (ret < 0) return -ERRNO_TO_PARA_ERROR(errno); fd = ret; - ret = bind(fd, (struct sockaddr *) unix_addr, UNIX_PATH_MAX); + ret = bind(fd, (struct sockaddr *)&unix_addr, UNIX_PATH_MAX); if (ret < 0) { ret = -ERRNO_TO_PARA_ERROR(errno); goto err; diff --git a/net.h b/net.h index bb2540dd..b2bb47c9 100644 --- a/net.h +++ b/net.h @@ -147,8 +147,7 @@ int recv_bin_buffer(int fd, char *buf, size_t size); int recv_buffer(int fd, char *buf, size_t size); int para_accept(int fd, fd_set *rfds, void *addr, socklen_t size, int *new_fd); -int create_local_socket(const char *name, struct sockaddr_un *unix_addr, - mode_t mode); +int create_local_socket(const char *name, mode_t mode); int connect_local_socket(const char *name); int recv_cred_buffer(int, char *, size_t); ssize_t send_cred_buffer(int, char*); -- 2.30.2