aboutsummaryrefslogtreecommitdiffstats
path: root/sdk/net/netaddr.c
blob: c1565051ec09db322c5af9fe248283e4846e51f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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;
}