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);