From: Wolfgang Bumiller Date: Thu, 4 Jul 2019 12:34:01 +0000 (+0200) Subject: af_unix: add lxc_unix_connect_type X-Git-Tag: lxc-4.0.0~149^2~15 X-Git-Url: https://git.proxmox.com/?p=mirror_lxc.git;a=commitdiff_plain;h=970ef13dd2eed4c8dd24056045a1951d8c5f7696 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 --- 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 */