commit c19738c9ed1553d21d6acaecb58a6fa9d966b63b from: Stefan Sperling via: Thomas Adam date: Sat Aug 27 17:51:57 2022 UTC fix previous: store port number in host byte order, convert for struct sockaddr With the previous patch the listen port was correct, but the debug log output was still displaying the swapped port number. Now both listen behaviour and debug log output agree. commit - 1e135a4fe7efe6b6560f851452a7224c7b361427 commit + c19738c9ed1553d21d6acaecb58a6fa9d966b63b blob - d19b49bd4e7b3185a6e2d2fec2463599118df729 blob + b8e37157b32a8a4a65cc2451546a59978f603695 --- gotwebd/parse.y +++ gotwebd/parse.y @@ -1036,10 +1036,10 @@ getservice(const char *n) s = getservbyname(n, "udp"); if (s == NULL) return (-1); - return htons(s->s_port); + return ntohs(s->s_port); } - return (htons((unsigned short)llval)); + return (unsigned short)llval; } struct address * blob - da52bf37fa2f5ebe1902ad15c8624b2f08f2a2bb blob + d0dc794c095a2c72286db85cd8e2409b24e332b0 --- gotwebd/sockets.c +++ gotwebd/sockets.c @@ -491,10 +491,10 @@ sockets_create_socket(struct address *a, in_port_t por switch (a->ss.ss_family) { case AF_INET: - ((struct sockaddr_in *)(&a->ss))->sin_port = port; + ((struct sockaddr_in *)(&a->ss))->sin_port = htons(port); break; case AF_INET6: - ((struct sockaddr_in6 *)(&a->ss))->sin6_port = port; + ((struct sockaddr_in6 *)(&a->ss))->sin6_port = htons(port); break; default: log_warnx("%s: unknown address family", __func__);