From 970ef13dd2eed4c8dd24056045a1951d8c5f7696 Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Thu, 4 Jul 2019 14:34:01 +0200 Subject: [PATCH] af_unix: add lxc_unix_connect_type we want to use SOCK_SEQPACKET and in the future perhaps SOCK_DATAGRAM as well Signed-off-by: Wolfgang Bumiller --- src/lxc/af_unix.c | 9 +++++++-- src/lxc/af_unix.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lxc/af_unix.c b/src/lxc/af_unix.c index f70eca333..2ff98dc1b 100644 --- a/src/lxc/af_unix.c +++ b/src/lxc/af_unix.c @@ -379,13 +379,13 @@ int lxc_unix_sockaddr(struct sockaddr_un *ret, const char *path) return (int)(offsetof(struct sockaddr_un, sun_path) + len + 1); } -int lxc_unix_connect(struct sockaddr_un *addr) +int lxc_unix_connect_type(struct sockaddr_un *addr, int type) { __do_close_prot_errno int fd = -EBADF; int ret; ssize_t len; - fd = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0); + fd = socket(AF_UNIX, type | SOCK_CLOEXEC, 0); if (fd < 0) { SYSERROR("Failed to open new AF_UNIX socket"); return -1; @@ -406,6 +406,11 @@ int lxc_unix_connect(struct sockaddr_un *addr) return move_fd(fd); } +int lxc_unix_connect(struct sockaddr_un *addr, int type) +{ + return lxc_unix_connect_type(addr, SOCK_STREAM); +} + int lxc_socket_set_timeout(int fd, int rcv_timeout, int snd_timeout) { struct timeval out = {0}; diff --git a/src/lxc/af_unix.h b/src/lxc/af_unix.h index 9f4729c0b..eee9f4c27 100644 --- a/src/lxc/af_unix.h +++ b/src/lxc/af_unix.h @@ -46,6 +46,7 @@ extern int lxc_abstract_unix_send_credential(int fd, void *data, size_t size); extern int lxc_abstract_unix_rcv_credential(int fd, void *data, size_t size); extern int lxc_unix_sockaddr(struct sockaddr_un *ret, const char *path); extern int lxc_unix_connect(struct sockaddr_un *addr); +extern int lxc_unix_connect_type(struct sockaddr_un *addr, int type); extern int lxc_socket_set_timeout(int fd, int rcv_timeout, int snd_timeout); #endif /* __LXC_AF_UNIX_H */ -- 2.39.2