summaryrefslogtreecommitdiff
path: root/src/basic/socket-util.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2020-11-16 12:41:39 +0100
committerLennart Poettering <lennart@poettering.net>2020-12-07 13:46:35 +0100
commit4e25d4cf0f78ef7c960f2b77c941e3d8751535df (patch)
treed16558699551064ff76afa8c22f29d0293f5f1c8 /src/basic/socket-util.h
parent00ed2fff1a87372e6af37398f48527d75c00339c (diff)
downloadsystemd-4e25d4cf0f78ef7c960f2b77c941e3d8751535df.tar.gz
socket-util: add getsockopt_int() helper
Diffstat (limited to 'src/basic/socket-util.h')
-rw-r--r--src/basic/socket-util.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/basic/socket-util.h b/src/basic/socket-util.h
index 7d77144f43..0dd6798d32 100644
--- a/src/basic/socket-util.h
+++ b/src/basic/socket-util.h
@@ -258,6 +258,19 @@ static inline int setsockopt_int(int fd, int level, int optname, int value) {
return 0;
}
+static inline int getsockopt_int(int fd, int level, int optname, int *ret) {
+ int v;
+ socklen_t sl = sizeof(v);
+
+ if (getsockopt(fd, level, optname, &v, &sl) < 0)
+ return -errno;
+ if (sl != sizeof(v))
+ return -EIO;
+
+ *ret = v;
+ return 0;
+}
+
int socket_bind_to_ifname(int fd, const char *ifname);
int socket_bind_to_ifindex(int fd, int ifindex);