X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fnetwork%2Fgetservbyport_r.c;h=821afae9a20d72366e2cb9e8ce8ae4c5a78079d0;hb=68c58223672465202958a5da16f19f64f32acf74;hp=004a6168b8fd5e99094f32199312261fd0e233ec;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01;p=musl diff --git a/src/network/getservbyport_r.c b/src/network/getservbyport_r.c index 004a6168..821afae9 100644 --- a/src/network/getservbyport_r.c +++ b/src/network/getservbyport_r.c @@ -15,6 +15,10 @@ int getservbyport_r(int port, const char *prots, .sin_port = port, }; + if (!prots) return -( + getservbyport_r(port, "tcp", se, buf, buflen, res) + && getservbyport_r(port, "udp", se, buf, buflen, res) ); + /* Align buffer */ i = (uintptr_t)buf & sizeof(char *)-1; if (!i) i = sizeof(char *); @@ -35,7 +39,7 @@ int getservbyport_r(int port, const char *prots, se->s_aliases[1] = 0; se->s_aliases[0] = se->s_name = buf; - if (getnameinfo((void *)&sin, sizeof sin, 0, 0, buf, buflen, + if (getnameinfo((void *)&sin, sizeof sin, 0, 0, buf, buflen, strcmp(prots, "udp") ? 0 : NI_DGRAM) < 0) return -1; *res = se;