2014-03-06 13:21:39 +00:00
|
|
|
/* $Id: obsdrdr.h,v 1.23 2014/03/06 12:24:33 nanard Exp $ */
|
2011-09-28 19:13:20 +00:00
|
|
|
/* MiniUPnP project
|
|
|
|
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
2014-02-28 20:26:52 +00:00
|
|
|
* (c) 2006-2014 Thomas Bernard
|
2011-09-28 19:13:20 +00:00
|
|
|
* This software is subject to the conditions detailed
|
|
|
|
* in the LICENCE file provided within the distribution */
|
|
|
|
|
2012-09-20 20:52:51 +00:00
|
|
|
#ifndef OBSDRDR_H_INCLUDED
|
|
|
|
#define OBSDRDR_H_INCLUDED
|
2011-09-28 19:13:20 +00:00
|
|
|
|
|
|
|
#include "../commonrdr.h"
|
|
|
|
|
|
|
|
/* add_redirect_rule2() uses DIOCCHANGERULE ioctl
|
|
|
|
* proto can take the values IPPROTO_UDP or IPPROTO_TCP
|
|
|
|
*/
|
|
|
|
int
|
|
|
|
add_redirect_rule2(const char * ifname,
|
|
|
|
const char * rhost, unsigned short eport,
|
|
|
|
const char * iaddr, unsigned short iport, int proto,
|
|
|
|
const char * desc, unsigned int timestamp);
|
|
|
|
|
|
|
|
/* add_filter_rule2() uses DIOCCHANGERULE ioctl
|
|
|
|
* proto can take the values IPPROTO_UDP or IPPROTO_TCP
|
|
|
|
*/
|
|
|
|
int
|
|
|
|
add_filter_rule2(const char * ifname,
|
|
|
|
const char * rhost, const char * iaddr,
|
|
|
|
unsigned short eport, unsigned short iport,
|
|
|
|
int proto, const char * desc);
|
2012-03-01 01:44:38 +00:00
|
|
|
|
2011-09-28 19:13:20 +00:00
|
|
|
|
|
|
|
/* get_redirect_rule() gets internal IP and port from
|
|
|
|
* interface, external port and protocl
|
|
|
|
*/
|
|
|
|
#if 0
|
|
|
|
int
|
|
|
|
get_redirect_rule(const char * ifname, unsigned short eport, int proto,
|
|
|
|
char * iaddr, int iaddrlen, unsigned short * iport,
|
|
|
|
char * desc, int desclen,
|
|
|
|
u_int64_t * packets, u_int64_t * bytes);
|
|
|
|
|
|
|
|
int
|
|
|
|
get_redirect_rule_by_index(int index,
|
|
|
|
char * ifname, unsigned short * eport,
|
|
|
|
char * iaddr, int iaddrlen, unsigned short * iport,
|
|
|
|
int * proto, char * desc, int desclen,
|
|
|
|
u_int64_t * packets, u_int64_t * bytes);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* delete_redirect_rule()
|
|
|
|
*/
|
|
|
|
int
|
|
|
|
delete_redirect_rule(const char * ifname, unsigned short eport, int proto);
|
|
|
|
|
2014-02-28 20:26:52 +00:00
|
|
|
/* delete_redirect_and_filter_rules()
|
2011-09-28 19:13:20 +00:00
|
|
|
*/
|
|
|
|
int
|
2014-02-28 20:26:52 +00:00
|
|
|
delete_redirect_and_filter_rules(const char * ifname, unsigned short eport,
|
|
|
|
int proto);
|
2011-09-28 19:13:20 +00:00
|
|
|
|
2014-03-06 13:21:39 +00:00
|
|
|
#ifdef TEST
|
2011-09-28 19:13:20 +00:00
|
|
|
int
|
|
|
|
clear_redirect_rules(void);
|
2014-03-06 13:21:39 +00:00
|
|
|
int
|
|
|
|
clear_filter_rules(void);
|
|
|
|
#endif
|
2011-09-28 19:13:20 +00:00
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|