diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2024-02-26 09:59:29 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2024-02-26 09:59:29 +0100 |
commit | c2476ff6a5966e61956edb2d208fed140ae7cf55 (patch) | |
tree | 8fec731deb3b43e93521e6433752163a2726e9b5 /src/socket.c | |
parent | 461d481e1a84e8e5232b471331e02ea9d63b2a2a (diff) | |
parent | 92ac2277ef889d82e56efd57a342959d8b3399d8 (diff) |
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'src/socket.c')
-rw-r--r-- | src/socket.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/socket.c b/src/socket.c index 9fdd903..fe813f5 100644 --- a/src/socket.c +++ b/src/socket.c @@ -41,7 +41,7 @@ #else # define STUPIDWIN(x) (x) #endif -#if defined(__sun) && !defined(SO_PROTOCOL) +#if defined(__sun) && !defined(SO_PROTOCOL) && defined(SO_PROTOTYPE) # define SO_PROTOCOL SO_PROTOTYPE #endif #ifndef AI_V4MAPPED @@ -333,18 +333,22 @@ static int try_sk_from_env(int fd, const struct addrinfo *ai, const char *intf) return -1; #else optlen = sizeof(value); +#ifdef SO_DOMAIN ret = getsockopt(fd, SOL_SOCKET, SO_DOMAIN, &value, &optlen); if (ret < 0 || value != ai->ai_family) return -1; +#endif optlen = sizeof(value); ret = getsockopt(fd, SOL_SOCKET, SO_TYPE, &value, &optlen); if (ret < 0 || value != ai->ai_socktype) return -1; optlen = sizeof(value); +#ifdef SO_PROTOCOL ret = getsockopt(fd, SOL_SOCKET, SO_PROTOCOL, &value, &optlen); if (ret < 0 || value != ai->ai_protocol) return -1; #endif +#endif struct sockaddr_storage addr; memset(&addr, 0, sizeof(addr)); optlen = sizeof(addr); |