From 23ed73623810a0894c8efd9eb79dd38483794a3b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 20 Aug 2020 18:17:03 +0200 Subject: [PATCH] fix build with gcc 10 This will fix build failures with -fno-common which is enabled by default with gcc 10 Fixes: - http://autobuild.buildroot.org/results/f296984c3851fc28341210e36ef1b55b2edac209 Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/Orange-OpenSource/igd2-for-linux/commit/23ed73623810a0894c8efd9eb79dd38483794a3b] Signed-off-by: Fabrice Fontaine --- linuxigd2/src/gatedevice.c | 37 +++++++++++++++++++++++++++++++++ linuxigd2/src/gatedevice.h | 42 +++++++++----------------------------- linuxigd2/src/pinholev6.c | 2 ++ linuxigd2/src/pinholev6.h | 2 +- linuxigd2/src/pmlist.c | 5 +++++ linuxigd2/src/pmlist.h | 2 +- linuxigd2/src/wanipv6fw.h | 3 --- 7 files changed, 56 insertions(+), 37 deletions(-) diff --git a/linuxigd2/src/gatedevice.c b/linuxigd2/src/gatedevice.c index 8be53e5..a50525d 100644 --- a/linuxigd2/src/gatedevice.c +++ b/linuxigd2/src/gatedevice.c @@ -41,6 +41,43 @@ #include "wanipv6fw.h" #include "config.h" +// Thread which contains all kind of timers and threads used in gatedevice.c and deviceprotection.c +TimerThread gExpirationTimerThread; + +// IGD Device Globals +UpnpDevice_Handle deviceHandle; +UpnpDevice_Handle deviceHandleIPv6; +UpnpDevice_Handle deviceHandleIPv6UlaGua; +char *gateUDN; +char *wanUDN; +char *wanConnectionUDN; +char *lanUDN; +long int startup_time; +unsigned long connection_stats[STATS_LIMIT]; // this is used for defining if connection is in idling +long int idle_time; + +// State Variables +char ConnectionType[50]; +char PossibleConnectionTypes[50]; +char ConnectionStatus[20]; +char LastConnectionError[35]; +long int AutoDisconnectTime; +long int IdleDisconnectTime; +long int WarnDisconnectDelay; +int RSIPAvailable; +int NATEnabled; +char ExternalIPAddress[INET6_ADDRSTRLEN]; +int PortMappingNumberOfEntries; +int PortMappingEnabled; +char RemoteHost[INET6_ADDRSTRLEN]; // updated IPv6 addrss length 16 -> 46 +long int SystemUpdateID; + +// WANEthLinkConfig state variables +char EthernetLinkStatus[12]; + +char FirewallEnabled[2]; +char InboundPinholeAllowed[2]; + //Definitions for mapping expiration timer thread static ThreadPool gExpirationThreadPool; static ThreadPoolJob gEventUpdateJob; diff --git a/linuxigd2/src/gatedevice.h b/linuxigd2/src/gatedevice.h index 28d6b21..dbaa0c2 100644 --- a/linuxigd2/src/gatedevice.h +++ b/linuxigd2/src/gatedevice.h @@ -33,42 +33,20 @@ #include "util.h" // Thread which contains all kind of timers and threads used in gatedevice.c and deviceprotection.c -TimerThread gExpirationTimerThread; +extern TimerThread gExpirationTimerThread; // IGD Device Globals -UpnpDevice_Handle deviceHandle; -UpnpDevice_Handle deviceHandleIPv6; -UpnpDevice_Handle deviceHandleIPv6UlaGua; -char *gateUDN; -char *wanUDN; -char *wanConnectionUDN; -char *lanUDN; -long int startup_time; -unsigned long connection_stats[STATS_LIMIT]; // this is used for defining if connection is in idling -long int idle_time; - -// State Variables -char ConnectionType[50]; -char PossibleConnectionTypes[50]; -char ConnectionStatus[20]; -char LastConnectionError[35]; -long int AutoDisconnectTime; -long int IdleDisconnectTime; -long int WarnDisconnectDelay; -int RSIPAvailable; -int NATEnabled; -char ExternalIPAddress[INET6_ADDRSTRLEN]; -int PortMappingNumberOfEntries; -int PortMappingEnabled; -char RemoteHost[INET6_ADDRSTRLEN]; // updated IPv6 addrss length 16 -> 46 -long int SystemUpdateID; - -// WANEthLinkConfig state variables -char EthernetLinkStatus[12]; +extern UpnpDevice_Handle deviceHandle; +extern UpnpDevice_Handle deviceHandleIPv6; +extern UpnpDevice_Handle deviceHandleIPv6UlaGua; +extern char *gateUDN; +extern char *wanUDN; +extern char *wanConnectionUDN; +extern char *lanUDN; // Linked list for portmapping entries -struct portMap *pmlist_Head; -struct portMap *pmlist_Current; +extern struct portMap *pmlist_Head; +extern struct portMap *pmlist_Current; // WanIPConnection Actions int EventHandler(Upnp_EventType EventType, void *Event, void *Cookie); diff --git a/linuxigd2/src/pinholev6.c b/linuxigd2/src/pinholev6.c index 44e8a19..78f886d 100644 --- a/linuxigd2/src/pinholev6.c +++ b/linuxigd2/src/pinholev6.c @@ -41,6 +41,8 @@ extern "C" { #include "gatedevice.h" #include "pinholev6.h" +struct pinholev6 *ph_first; + static const char * add_rule_str = "ip6tables -I %s " //upnp forward chain "-i %s " //input interface "-o %s " //output interface diff --git a/linuxigd2/src/pinholev6.h b/linuxigd2/src/pinholev6.h index 295b9f9..353ae27 100644 --- a/linuxigd2/src/pinholev6.h +++ b/linuxigd2/src/pinholev6.h @@ -37,7 +37,7 @@ struct pinholev6 { struct pinholev6 *next; -} *ph_first; +}; struct phv6_expirationEvent { diff --git a/linuxigd2/src/pmlist.c b/linuxigd2/src/pmlist.c index 1b3fe05..95d0c61 100644 --- a/linuxigd2/src/pmlist.c +++ b/linuxigd2/src/pmlist.c @@ -41,6 +41,11 @@ #include "iptc.h" #endif +// Linked list for portmapping entries +struct portMap *pmlist_Head; +struct portMap *pmlist_Current; +struct portMap *pmlist_Tail; + /** * Create new portMap struct of rule to add iptables. * portMap-struct is internal presentation of iptables rule in IGD. diff --git a/linuxigd2/src/pmlist.h b/linuxigd2/src/pmlist.h index 436d228..017500d 100644 --- a/linuxigd2/src/pmlist.h +++ b/linuxigd2/src/pmlist.h @@ -57,7 +57,7 @@ struct portMap struct portMap* next; struct portMap* prev; -} *pmlist_Head, *pmlist_Tail, *pmlist_Current; +}; //struct portMap* pmlist_NewNode(void); struct portMap* pmlist_NewNode(int enabled, long int duration, char *remoteHost, diff --git a/linuxigd2/src/wanipv6fw.h b/linuxigd2/src/wanipv6fw.h index 55419fe..a50d267 100644 --- a/linuxigd2/src/wanipv6fw.h +++ b/linuxigd2/src/wanipv6fw.h @@ -46,9 +46,6 @@ extern "C" { #define ERR_SRC_ADD_WILDCARD 708 #define ERR_NO_TRAFFIC 709 -char FirewallEnabled[2]; -char InboundPinholeAllowed[2]; - //----------------------------------------------------------------------------- int InitFirewallv6(void);