1/*	$FreeBSD$	*/
2
3/*
4 * Copyright (C) 2012 by Darren Reed.
5 *
6 * See the IPFILTER.LICENCE file for details on licencing.
7 *
8 * $Id$
9 */
10
11#include "ipf.h"
12
13int ntomask(family, nbits, ap)
14	int family, nbits;
15	u_32_t *ap;
16{
17	u_32_t mask;
18
19	if (nbits < 0)
20		return -1;
21
22	switch (family)
23	{
24	case AF_INET :
25		if (nbits > 32 || use_inet6 == 1)
26			return -1;
27		if (nbits == 0) {
28			mask = 0;
29		} else {
30			mask = 0xffffffff;
31			mask <<= (32 - nbits);
32		}
33		*ap = htonl(mask);
34		break;
35
36	case 0 :
37	case AF_INET6 :
38		if ((nbits > 128) || (use_inet6 == -1))
39			return -1;
40		fill6bits(nbits, ap);
41		break;
42
43	default :
44		return -1;
45	}
46	return 0;
47}
48