[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT/LWIP PATCH] Stub getservbyport_r()
Hi Simon, looks good, thanks. -- Felipe Reviewed-by: Felipe Huici <felipe.huici@xxxxxxxxx> On 12.02.20, 15:31, "Simon Kuenzer" <simon.kuenzer@xxxxxxxxx> wrote: Building lwip breaks when nolibc is selected. getservbyport_r() was relying on definitions which aren't available with nolibc. This commit stubs this function because it seems that it wasn't used and tested so far. Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx> --- serv.c | 53 +++++------------------------------------------------ 1 file changed, 5 insertions(+), 48 deletions(-) diff --git a/serv.c b/serv.c index b08ffa4..80ae036 100644 --- a/serv.c +++ b/serv.c @@ -51,53 +51,10 @@ struct servent *getservbyport(int port __unused, return NULL; } -int getservbyport_r(int port, const char *prots, struct servent *se, char *buf, size_t buflen, struct servent **res) +int getservbyport_r(int port __unused, const char *prots __unused, + struct servent *se __unused, char *buf __unused, + size_t buflen __unused, struct servent **res __unused) { - int i; - struct sockaddr_in sin = { - .sin_family = AF_INET, - .sin_port = port, - }; - - if (!prots) { - int r = getservbyport_r(port, "tcp", se, buf, buflen, res); - if (r) r = getservbyport_r(port, "udp", se, buf, buflen, res); - return r; - } - *res = 0; - - /* Align buffer */ - i = (uintptr_t)buf & (sizeof(char *)-1); - if (!i) i = sizeof(char *); - if (buflen < 3*sizeof(char *)-i) - return ERANGE; - buf += sizeof(char *)-i; - buflen -= sizeof(char *)-i; - - if (strcmp(prots, "tcp") && strcmp(prots, "udp")) return EINVAL; - - se->s_port = port; - se->s_proto = (char *)prots; - se->s_aliases = (void *)buf; - buf += 2*sizeof(char *); - buflen -= 2*sizeof(char *); - se->s_aliases[1] = 0; - se->s_aliases[0] = se->s_name = buf; - - switch (getnameinfo((void *)&sin, sizeof sin, 0, 0, buf, buflen, - strcmp(prots, "udp") ? 0 : NI_DGRAM)) { - case EAI_MEMORY: - case EAI_SYSTEM: - return ENOMEM; - default: - return ENOENT; - case 0: - break; - } - - /* A numeric port string is not a service record. */ - if (strtol(buf, 0, 10)==ntohs(port)) return ENOENT; - - *res = se; - return 0; + errno = ENOSYS; + return EAI_SYSTEM; } -- 2.20.1 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |