This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
pespin gerrit-no-reply at lists.osmocom.orgpespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/15758 Change subject: socket.c: Move glibc workarounds to same place in addrinfo_helper() ...................................................................... socket.c: Move glibc workarounds to same place in addrinfo_helper() Change-Id: Ifc3a30881f865f88bcfc1307a3c89c1ab79eecd4 --- M src/socket.c 1 file changed, 10 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/15758/1 diff --git a/src/socket.c b/src/socket.c index c50af55..ef3bb58 100644 --- a/src/socket.c +++ b/src/socket.c @@ -56,7 +56,7 @@ static struct addrinfo *addrinfo_helper(uint16_t family, uint16_t type, uint8_t proto, const char *host, uint16_t port, bool passive) { - struct addrinfo hints, *result; + struct addrinfo hints, *result, *rp; char portbuf[6]; int rc; @@ -66,6 +66,7 @@ if (type == SOCK_RAW) { /* Workaround for glibc, that returns EAI_SERVICE (-8) if * SOCK_RAW and IPPROTO_GRE is used. + * http://sourceware.org/bugzilla/show_bug.cgi?id=15015 */ hints.ai_socktype = SOCK_DGRAM; hints.ai_protocol = IPPROTO_UDP; @@ -84,6 +85,14 @@ return NULL; } + for (rp = result; rp != NULL; rp = rp->ai_next) { + /* Workaround for glibc again */ + if (type == SOCK_RAW) { + rp->ai_socktype = SOCK_RAW; + rp->ai_protocol = proto; + } + } + return result; } @@ -199,12 +208,6 @@ return -EINVAL; for (rp = result; rp != NULL; rp = rp->ai_next) { - /* Workaround for glibc again */ - if (type == SOCK_RAW) { - rp->ai_socktype = SOCK_RAW; - rp->ai_protocol = proto; - } - sfd = socket_helper(rp, flags); if (sfd < 0) continue; @@ -253,12 +256,6 @@ } for (rp = result; rp != NULL; rp = rp->ai_next) { - /* Workaround for glibc again */ - if (type == SOCK_RAW) { - rp->ai_socktype = SOCK_RAW; - rp->ai_protocol = proto; - } - if (sfd < 0) { sfd = socket_helper(rp, flags); if (sfd < 0) @@ -332,12 +329,6 @@ } for (rp = result; rp != NULL; rp = rp->ai_next) { - /* Workaround for glibc again */ - if (type == SOCK_RAW) { - rp->ai_socktype = SOCK_RAW; - rp->ai_protocol = proto; - } - sfd = socket_helper(rp, flags); if (sfd == -1) continue; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/15758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifc3a30881f865f88bcfc1307a3c89c1ab79eecd4 Gerrit-Change-Number: 15758 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20191010/6c4f4e98/attachment.htm>