summaryrefslogtreecommitdiff
path: root/src/basic
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2015-12-03 18:12:10 +0100
committerTom Gundersen <teg@jklm.no>2015-12-03 18:12:10 +0100
commit13bd195053f6ce1c1adfff514c5c6ba79e53c913 (patch)
treed4355ed50312475c25df48159630dcd96cc0fe5a /src/basic
parent3f967a4ccf1846514bd638f38e4f487bb4e1c317 (diff)
parent4941e4aca907f26bf74aa9efe1c70ccad1d10a82 (diff)
Merge pull request #2089 from keszybz/journal-fixes-2
Journal fixes
Diffstat (limited to 'src/basic')
-rw-r--r--src/basic/socket-util.c12
-rw-r--r--src/basic/socket-util.h6
2 files changed, 15 insertions, 3 deletions
diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c
index 3458741cb5..79901a6a06 100644
--- a/src/basic/socket-util.c
+++ b/src/basic/socket-util.c
@@ -870,16 +870,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);
diff --git a/src/basic/socket-util.h b/src/basic/socket-util.h
index f9c90e0e73..6da1df68d8 100644
--- a/src/basic/socket-util.h
+++ b/src/basic/socket-util.h
@@ -128,7 +128,11 @@ int ip_tos_from_string(const char *s);
int getpeercred(int fd, struct ucred *ucred);
int getpeersec(int fd, char **ret);
-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);
+#define send_one_fd(transport_fd, fd, flags) send_one_fd_sa(transport_fd, fd, NULL, 0, flags)
int receive_one_fd(int transport_fd, int flags);
#define CMSG_FOREACH(cmsg, mh) \