X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/blobdiff_plain/8d513103f66617e96234d19813ab655ed9d5d13d..d98625f4404ba4fca4f395bc72f15d68043d75b4:/server/servutil.c diff --git a/server/servutil.c b/server/servutil.c index 70776dda..b6fbf5b8 100644 --- a/server/servutil.c +++ b/server/servutil.c @@ -160,4 +160,30 @@ socklen_t addrsz(const addr *a) } } +/* --- @getport@, @setport@ --- * + * + * Arguments: @addr *a@ = a network address + * @unsigned port@ = port number to set + * + * Returns: --- + * + * Use: Retrieves or sets the port number in an address structure. + */ + +unsigned getport(addr *a) +{ + switch (a->sa.sa_family) { + case AF_INET: return (ntohs(a->sin.sin_port)); break; + default: abort(); + } +} + +void setport(addr *a, unsigned port) +{ + switch (a->sa.sa_family) { + case AF_INET: a->sin.sin_port = htons(port); break; + default: abort(); + } +} + /*----- That's all, folks -------------------------------------------------*/