diff options
Diffstat (limited to 'sdk/net/netaddr.c')
-rw-r--r-- | sdk/net/netaddr.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/sdk/net/netaddr.c b/sdk/net/netaddr.c new file mode 100644 index 0000000..c156505 --- /dev/null +++ b/sdk/net/netaddr.c @@ -0,0 +1,28 @@ +/* + * Convert network mask or address string into a "BIND" filter mask. + * $Id$ + * Copyright (c) 1997 by Tycho Softworks. + * For conditions of distribution and reuse see product license. + */ + +#include <net/socket.h> +#include <std/string.h> + +struct in_addr *getnetaddr(const char *mask) +{ + static struct in_addr addr; + struct in_addr *aptr; + struct hostent *hp; + + if(!mask) + mask = "0.0.0.0"; + + hp = gethost(mask); + if(!hp) + return NULL; + + while((aptr = (struct in_addr *)*(hp->h_addr_list)++) != NULL) + addr = *aptr; + + return &addr; +} |