Patch for WANIPv6FirewallControl:1 service
[igd2-for-linux:igd2-for-linux.git] / linuxigd2 / src / wanipv6fw.h
1 /** 
2  * This file is part of igd2-for-linux project
3  * Copyright © 2011 France Telecom.
4  * Contact: fabrice.fontaine@orange-ftgroup.com
5  * Developer(s): fabrice.fontaine@orange-ftgroup.com, rmenard.ext@orange-ftgroup.com
6  *  
7  * This program is free software: you can redistribute it and/or modify 
8  * it under the terms of the GNU General Public License as published by 
9  * the Free Software Foundation, either version 2 of the License, or 
10  * (at your option) any later version. 
11  * 
12  * This program is distributed in the hope that it will be useful, 
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
15  * GNU General Public License for more details. 
16  * 
17  * You should have received a copy of the GNU General Public License 
18  * along with this program, see the /doc directory of this program. If 
19  * not, see http://www.gnu.org/licenses/. 
20  * 
21  */
22
23 #ifndef _WANIPV6FW_H
24 #define _WANIPV6FW_H
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30
31 #include <upnp/upnp.h>
32
33 #ifndef IPPROTO_UDPLITE
34 #define IPPROTO_UDPLITE 136
35 #endif
36
37 //error definitions
38 #define ERR_ACTION_NOT_AUTHORIZED   606
39 #define ERR_PINHOLE_SPACE_EXHAUSTED 701
40 #define ERR_FIREWALL_DISABLED       702
41 #define ERR_INBOUND_PINHOLE_NOT_ALLOWED 703
42 #define ERR_NO_SUCH_ENTRY           704
43 #define ERR_PROTOCOL_NOT_SUPPORTED  705
44 #define ERR_INTERNAL_PORT_WILDCARD  706
45 #define ERR_PROTOCOL_WILDCARD       707
46 #define ERR_SRC_ADD_WILDCARD        708
47 #define ERR_NO_TRAFFIC              709
48
49 char FirewallEnabled[2];
50 char InboundPinholeAllowed[2];
51
52 //-----------------------------------------------------------------------------
53
54 int InitFirewallv6(void);
55
56 int CloseFirewallv6(void);
57
58 int upnp_wanipv6_getFirewallStatus(struct Upnp_Action_Request *ca_event);
59
60 int upnp_wanipv6_getOutboundPinholeTimeOut
61     (struct Upnp_Action_Request *ca_event);
62
63 int upnp_wanipv6_addPinhole(struct Upnp_Action_Request *ca_event);
64
65 int upnp_wanipv6_updatePinhole(struct Upnp_Action_Request *ca_event);
66
67 int upnp_wanipv6_deletePinhole(struct Upnp_Action_Request *ca_event);
68
69 int phv6_getPinholePackets(uint32_t id, int * packets);
70
71 int upnp_wanipv6_checkPinholeWorking(struct Upnp_Action_Request *ca_event);
72
73 int upnp_wanipv6_getPinholePackets(struct Upnp_Action_Request *ca_event);
74
75
76 #ifdef __cplusplus
77 }
78 #endif
79
80
81 #endif //_WANIPV6_H