[lttng-dev] [PATCH lttng-tools 1/2] Revert stubbing of unix socket functions
Jérémie Galarneau
jeremie.galarneau at efficios.com
Tue Jan 22 14:33:07 EST 2019
Both patches of the series were merged in master and stable-2.11.
Thanks!
Jérémie
On Thu, 29 Nov 2018 at 16:22, Michael Jeanson <mjeanson at efficios.com> wrote:
>
> Instead of stubing useful unix socket functions to work around
> Linux-only credential passing, ifdef the relevant parts like it was
> already done for other functions.
>
> Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
> ---
> configure.ac | 3 --
> src/common/Makefile.am | 8 +---
> src/common/unix-stub.c | 86 ------------------------------------------
> src/common/unix.c | 12 +++++-
> 4 files changed, 11 insertions(+), 98 deletions(-)
> delete mode 100644 src/common/unix-stub.c
>
> diff --git a/configure.ac b/configure.ac
> index 69a9d776..bc92b5bd 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -874,7 +874,6 @@ build_lib_consumer=no
> build_lib_hashtable=no
> build_lib_health=no
> build_lib_runas=no
> -build_lib_unix=no
> build_lib_index=no
> build_lib_kernel_consumer=no
> build_lib_kernel_ctl=no
> @@ -932,7 +931,6 @@ AS_IF([test x$enable_bin_lttng_sessiond != xno],
> build_lib_testpoint=yes
> build_lib_health=yes
> build_lib_runas=yes
> - build_lib_unix=yes
> ]
> )
>
> @@ -1042,7 +1040,6 @@ AM_CONDITIONAL([BUILD_LIB_CONSUMER], [test x$build_lib_consumer = xyes])
> AM_CONDITIONAL([BUILD_LIB_HASHTABLE], [test x$build_lib_hashtable = xyes])
> AM_CONDITIONAL([BUILD_LIB_HEALTH], [test x$build_lib_health = xyes])
> AM_CONDITIONAL([BUILD_LIB_RUNAS], [test x$build_lib_runas = xyes])
> -AM_CONDITIONAL([BUILD_LIB_UNIX], [test x$build_lib_unix = xyes])
> AM_CONDITIONAL([BUILD_LIB_INDEX], [test x$build_lib_index = xyes])
> AM_CONDITIONAL([BUILD_LIB_KERNEL_CONSUMER], [test x$build_lib_kernel_consumer = xyes])
> AM_CONDITIONAL([BUILD_LIB_KERNEL_CTL], [test x$build_lib_kernel_ctl = xyes])
> diff --git a/src/common/Makefile.am b/src/common/Makefile.am
> index b9d344b8..d754924d 100644
> --- a/src/common/Makefile.am
> +++ b/src/common/Makefile.am
> @@ -17,7 +17,7 @@ libcommon_la_SOURCES = error.h error.c utils.c utils.h runas.h \
> pipe.c pipe.h readwrite.c readwrite.h \
> mi-lttng.h mi-lttng.c \
> daemonize.c daemonize.h \
> - unix.h \
> + unix.c unix.h \
> filter.c filter.h context.c context.h \
> action.c notify.c condition.c buffer-usage.c \
> session-consumed-size.c \
> @@ -39,12 +39,6 @@ else
> libcommon_la_SOURCES += runas-stub.c
> endif
>
> -if BUILD_LIB_UNIX
> -libcommon_la_SOURCES += unix.c
> -else
> -libcommon_la_SOURCES += unix-stub.c
> -endif
> -
> if BUILD_LIB_COMPAT
> SUBDIRS += compat
> endif
> diff --git a/src/common/unix-stub.c b/src/common/unix-stub.c
> deleted file mode 100644
> index 5cc62964..00000000
> --- a/src/common/unix-stub.c
> +++ /dev/null
> @@ -1,86 +0,0 @@
> -/*
> - * Copyright (C) 2018 Francis Deslauriers <francis.deslauriers at efficios.com>
> - *
> - * This program is free software; you can redistribute it and/or modify it
> - * under the terms of the GNU General Public License, version 2 only, as
> - * published by the Free Software Foundation.
> - *
> - * This program is distributed in the hope that it will be useful, but WITHOUT
> - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
> - * more details.
> - *
> - * You should have received a copy of the GNU General Public License along with
> - * this program; if not, write to the Free Software Foundation, Inc., 51
> - * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> - */
> -
> -#ifndef _UNIX_STUB_H
> -#define _UNIX_STUB_H
> -
> -#include <stddef.h>
> -#include <stdlib.h>
> -#include <common/compat/socket.h>
> -
> -int lttcomm_create_unix_sock(const char *pathname)
> -{
> - return -1;
> -}
> -int lttcomm_create_anon_unix_socketpair(int *fds)
> -{
> - return -1;
> -}
> -int lttcomm_connect_unix_sock(const char *pathname)
> -{
> - return -1;
> -}
> -int lttcomm_accept_unix_sock(int sock)
> -{
> - return -1;
> -}
> -int lttcomm_listen_unix_sock(int sock)
> -{
> - return -1;
> -}
> -int lttcomm_close_unix_sock(int sock)
> -{
> - return -1;
> -}
> -ssize_t lttcomm_send_fds_unix_sock(int sock, const int *fds, size_t nb_fd)
> -{
> - return -1;
> -}
> -ssize_t lttcomm_recv_fds_unix_sock(int sock, int *fds, size_t nb_fd)
> -{
> - return -1;
> -}
> -ssize_t lttcomm_recv_unix_sock(int sock, void *buf, size_t len)
> -{
> - return -1;
> -}
> -ssize_t lttcomm_recv_unix_sock_non_block(int sock, void *buf, size_t len)
> -{
> - return -1;
> -}
> -ssize_t lttcomm_send_unix_sock(int sock, const void *buf, size_t len)
> -{
> - return -1;
> -}
> -ssize_t lttcomm_send_unix_sock_non_block(int sock, const void *buf, size_t len)
> -{
> - return -1;
> -}
> -ssize_t lttcomm_send_creds_unix_sock(int sock, void *buf, size_t len)
> -{
> - return -1;
> -}
> -ssize_t lttcomm_recv_creds_unix_sock(int sock, void *buf, size_t len,
> - lttng_sock_cred *creds)
> -{
> - return -1;
> -}
> -int lttcomm_setsockopt_creds_unix_sock(int sock)
> -{
> - return -1;
> -}
> -#endif /* _UNIX_STUB_H */
> diff --git a/src/common/unix.c b/src/common/unix.c
> index edca02ab..d37313c5 100644
> --- a/src/common/unix.c
> +++ b/src/common/unix.c
> @@ -441,8 +441,14 @@ ssize_t lttcomm_recv_fds_unix_sock(int sock, int *fds, size_t nb_fd)
> struct cmsghdr *cmsg;
> size_t sizeof_fds = nb_fd * sizeof(int);
>
> - /* Account for the struct ucred cmsg in the buffer size */
> - char recv_buf[CMSG_SPACE(sizeof_fds) + CMSG_SPACE(sizeof(struct ucred))];
> +#ifdef __linux__
> +/* Account for the struct ucred cmsg in the buffer size */
> +#define LTTNG_SOCK_RECV_FDS_BUF_SIZE CMSG_SPACE(sizeof_fds) + CMSG_SPACE(sizeof(struct ucred))
> +#else
> +#define LTTNG_SOCK_RECV_FDS_BUF_SIZE CMSG_SPACE(sizeof_fds)
> +#endif /* __linux__ */
> +
> + char recv_buf[LTTNG_SOCK_RECV_FDS_BUF_SIZE];
> struct msghdr msg;
> char dummy;
>
> @@ -512,6 +518,7 @@ ssize_t lttcomm_recv_fds_unix_sock(int sock, int *fds, size_t nb_fd)
> ret = sizeof_fds;
> goto end;
> }
> +#ifdef __linux__
> if (cmsg->cmsg_type == SCM_CREDENTIALS) {
> /*
> * Expect credentials to be sent when expecting fds even
> @@ -520,6 +527,7 @@ ssize_t lttcomm_recv_fds_unix_sock(int sock, int *fds, size_t nb_fd)
> */
> ret = -1;
> }
> +#endif /* __linux__ */
> }
> end:
> return ret;
> --
> 2.17.1
>
--
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list