1: /* $Id: upnppermissions.h,v 1.1.1.2 2013/07/22 00:32:35 misho Exp $ */
2: /* MiniUPnP project
3: * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
4: * (c) 2006 Thomas Bernard
5: * This software is subject to the conditions detailed
6: * in the LICENCE file provided within the distribution */
7:
8: #ifndef UPNPPERMISSIONS_H_INCLUDED
9: #define UPNPPERMISSIONS_H_INCLUDED
10:
11: #include <sys/types.h>
12: #include <sys/socket.h>
13: #include <netinet/in.h>
14: #include "config.h"
15:
16: /* UPnP permission rule samples:
17: * allow 1024-65535 192.168.3.0/24 1024-65535
18: * deny 0-65535 192.168.1.125/32 0-65535 */
19: struct upnpperm {
20: enum {UPNPPERM_ALLOW=1, UPNPPERM_DENY=2 } type;
21: /* is it an allow or deny permission rule ? */
22: u_short eport_min, eport_max; /* external port range */
23: struct in_addr address, mask; /* ip/mask */
24: u_short iport_min, iport_max; /* internal port range */
25: };
26:
27: /* read_permission_line()
28: * returns: 0 line read okay
29: * -1 error reading line
30: *
31: * line sample :
32: * allow 1024-65535 192.168.3.0/24 1024-65535
33: * allow 22 192.168.4.33/32 22
34: * deny 0-65535 0.0.0.0/0 0-65535 */
35: int
36: read_permission_line(struct upnpperm * perm,
37: char * p);
38:
39: /* check_upnp_rule_against_permissions()
40: * returns: 0 if the upnp rule should be rejected,
41: * 1 if it could be accepted */
42: int
43: check_upnp_rule_against_permissions(const struct upnpperm * permary,
44: int n_perms,
45: u_short eport, struct in_addr address,
46: u_short iport);
47:
48: #ifdef USE_MINIUPNPDCTL
49: void
50: write_permlist(int fd, const struct upnpperm * permary,
51: int nperms);
52: #endif
53:
54: #endif
55:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>