]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
socket-util: add getsockopt_int() helper
authorLennart Poettering <lennart@poettering.net>
Mon, 16 Nov 2020 11:41:39 +0000 (12:41 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 7 Dec 2020 12:46:35 +0000 (13:46 +0100)
src/basic/socket-util.h

index 7d77144f43608075652dfea7d6180507890a423e..0dd6798d32e07df61056d104a10abba82506262e 100644 (file)
@@ -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);