X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/blobdiff_plain/5d06f63eaa34a4bf0e116f3e2a1e4ef4e6434224..971e56892e36f3351b123200dc1df5b7845aebd7:/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 -------------------------------------------------*/