diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2015-12-03 02:20:39 -0500 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2017-05-17 15:22:14 +0200 |
commit | 228222e070b7830f08a41ecfd815aa047e7fc03e (patch) | |
tree | 48e6f64b992a2171dc45166133e7f75a07722309 /src/basic/socket-util.c | |
parent | d4b35b9aa181cc5dbd257a4a7cc9f75886a73acc (diff) |
journal: unbreak sd_journal_sendv
Borked since
commit 3ee897d6c2401effbc82f5eef35fce405781d6c8
Author: Lennart Poettering <lennart@poettering.net>
Date: Wed Sep 23 01:00:04 2015 +0200
tree-wide: port more code to use send_one_fd() and receive_one_fd()
because here our fd is not connected and we need to specify
the address.
Diffstat (limited to 'src/basic/socket-util.c')
-rw-r--r-- | src/basic/socket-util.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c index 467a50092..ee08a9c9c 100644 --- a/src/basic/socket-util.c +++ b/src/basic/socket-util.c @@ -876,16 +876,24 @@ int getpeersec(int fd, char **ret) { return 0; } -int send_one_fd(int transport_fd, int fd, int flags) { +int send_one_fd_sa( + int transport_fd, + int fd, + const struct sockaddr *sa, socklen_t len, + int flags) { + union { struct cmsghdr cmsghdr; uint8_t buf[CMSG_SPACE(sizeof(int))]; } control = {}; + struct cmsghdr *cmsg; + struct msghdr mh = { + .msg_name = (struct sockaddr*) sa, + .msg_namelen = len, .msg_control = &control, .msg_controllen = sizeof(control), }; - struct cmsghdr *cmsg; assert(transport_fd >= 0); assert(fd >= 0); |