File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / miniupnpd / upnppermissions.h
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:16:02 2012 UTC (12 years, 4 months ago) by misho
CVS tags: MAIN, HEAD
Initial revision

    1: /* $Id: upnppermissions.h,v 1.1 2012/02/21 23:16:02 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__
    9: #define __UPNPPERMISSIONS_H__
   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>