From a80cb838994f8f4a2ae4610777ca663217a9e180 Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 19 Mar 2015 14:04:12 +0100 Subject: [PATCH 1/5] Modified the loop so it goes through all devices Not just the first one. --- miniupnpc/miniupnpc.c | 17 ++++++++++++----- miniupnpc/miniupnpc.h | 1 + miniupnpd/miniupnpd.conf | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/miniupnpc/miniupnpc.c b/miniupnpc/miniupnpc.c index a7ea2264a..8fb365d65 100644 --- a/miniupnpc/miniupnpc.c +++ b/miniupnpc/miniupnpc.c @@ -383,7 +383,8 @@ upnpDiscoverDevices(const char * const deviceTypes[], if(!minissdpdsock) minissdpdsock = "/var/run/minissdpd.sock"; for(deviceIndex = 0; !devlist && deviceTypes[deviceIndex]; deviceIndex++) { - devlist = getDevicesFromMiniSSDPD(deviceTypes[deviceIndex], + char * myDev = deviceTypes[deviceIndex]; + devlist = getDevicesFromMiniSSDPD(deviceTypes[deviceIndex], minissdpdsock); /* We return what we have found if it was not only a rootdevice */ if(devlist && !strstr(deviceTypes[deviceIndex], "rootdevice")) { @@ -561,6 +562,7 @@ upnpDiscoverDevices(const char * const deviceTypes[], } /* receiving SSDP response packet */ for(deviceIndex = 0; deviceTypes[deviceIndex]; deviceIndex++) { + char * device = deviceTypes[deviceIndex]; /* sending the SSDP M-SEARCH packet */ n = snprintf(bufr, sizeof(bufr), MSearchMsgFmt, @@ -651,6 +653,9 @@ upnpDiscoverDevices(const char * const deviceTypes[], } else if (n == 0) { /* no data or Time Out */ if (devlist) { + //TODO need new condition: if there are any devices left on the list ,NOT if there was any device found + /* Search for other devices */ + goto contin; /* found some devices, stop now*/ if(error) *error = UPNPDISCOVER_SUCCESS; @@ -706,10 +711,12 @@ upnpDiscoverDevices(const char * const deviceTypes[], } } } while(n > 0); - } -error: - closesocket(sudp); - return devlist; + contin: + ; + } +error: //TODO undo 711 till here and uncomment this + closesocket(sudp); + return devlist; } /* upnpDiscover() Discover IGD device */ diff --git a/miniupnpc/miniupnpc.h b/miniupnpc/miniupnpc.h index b56d2396c..7772c519b 100644 --- a/miniupnpc/miniupnpc.h +++ b/miniupnpc/miniupnpc.h @@ -93,6 +93,7 @@ MINIUPNP_LIBSPEC void parserootdesc(const char *, int, struct IGDdatas *); * ipcondescURL: url of the description of the WANIPConnection * controlURL_CIF: controlURL of the WANCommonInterfaceConfig * controlURL_6FC: controlURL of the WANIPv6FirewallControl + * */ struct UPNPUrls { char * controlURL; diff --git a/miniupnpd/miniupnpd.conf b/miniupnpd/miniupnpd.conf index 90bd5ade8..05ff7b43f 100644 --- a/miniupnpd/miniupnpd.conf +++ b/miniupnpd/miniupnpd.conf @@ -122,7 +122,7 @@ clean_ruleset_interval=600 #quickrules=no # uuid : generate your own with "make genuuid" -uuid=00000000-0000-0000-0000-000000000000 +uuid=414f481d-7a39-4159-a3ab-482f1e9ff58c # serial and model number the daemon will report to clients # in its XML description From d94db5e338dde94d30bdd287868c70507ab9d38a Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 19 Mar 2015 14:04:50 +0100 Subject: [PATCH 2/5] modified .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..de92006c3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/miniupnpd/cscope.out +/tags From 1b29d324eaa679ffd141e92e763231589cbb3281 Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 11 Jul 2015 18:37:13 +0200 Subject: [PATCH 3/5] added the goto in miniupnpc.c months ago to make it contiune the discovery, after a device is found --- miniupnpc/connecthostport.c | 2 +- miniupnpc/miniupnpc.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/miniupnpc/connecthostport.c b/miniupnpc/connecthostport.c index d66ae315f..c09b6d64b 100644 --- a/miniupnpc/connecthostport.c +++ b/miniupnpc/connecthostport.c @@ -113,7 +113,7 @@ int connecthostport(const char * host, unsigned short port, /* EINTR The system call was interrupted by a signal that was caught * EINPROGRESS The socket is nonblocking and the connection cannot * be completed immediately. */ - while(n < 0 && (errno == EINTR || errno = EINPROGRESS)) + while(n < 0 && (errno == EINTR || errno == EINPROGRESS)) { socklen_t len; fd_set wset; diff --git a/miniupnpc/miniupnpc.c b/miniupnpc/miniupnpc.c index 8fb365d65..60310e843 100644 --- a/miniupnpc/miniupnpc.c +++ b/miniupnpc/miniupnpc.c @@ -341,8 +341,7 @@ parseMSEARCHReply(const char * reply, int size, * no devices was found. * It is up to the caller to free the chained list * delay is in millisecond (poll) */ -MINIUPNP_LIBSPEC struct UPNPDev * -upnpDiscoverDevices(const char * const deviceTypes[], +MINIUPNP_LIBSPEC struct UPNPDev *upnpDiscoverDevices(const char * const deviceTypes[], int delay, const char * multicastif, const char * minissdpdsock, int sameport, int ipv6, From 93ddb4393c4fceb9ab0df481ccaee129277f3732 Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 11 Jul 2015 18:39:16 +0200 Subject: [PATCH 4/5] updated .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index de92006c3..321ac413e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /miniupnpd/cscope.out /tags +cscope.out From 3d2a9808f826c1bc055e6e49e941ac445a25c88d Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 3 Oct 2015 13:44:05 +0200 Subject: [PATCH 5/5] filemode changed --- miniupnpc/external-ip.sh | 0 miniupnpc/java/testjava.bat | 0 miniupnpc/java/testjava.sh | 0 miniupnpc/pymoduletest.py | 0 miniupnpc/testminiwget.sh | 0 miniupnpc/testupnpigd.py | 0 miniupnpc/testupnpreplyparse.sh | 0 miniupnpc/updateminiupnpcstrings.sh | 0 miniupnpd/genconfig.sh | 0 miniupnpd/netfilter/ip6tables_display.sh | 0 miniupnpd/netfilter/ip6tables_flush.sh | 0 miniupnpd/netfilter/ip6tables_init.sh | 0 miniupnpd/netfilter/ip6tables_init_and_clean.sh | 0 miniupnpd/netfilter/ip6tables_removeall.sh | 0 miniupnpd/netfilter/iptables_display.sh | 0 miniupnpd/netfilter/iptables_flush.sh | 0 miniupnpd/netfilter/iptables_init.sh | 0 miniupnpd/netfilter/iptables_init_and_clean.sh | 0 miniupnpd/netfilter/iptables_removeall.sh | 0 19 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 miniupnpc/external-ip.sh mode change 100755 => 100644 miniupnpc/java/testjava.bat mode change 100755 => 100644 miniupnpc/java/testjava.sh mode change 100755 => 100644 miniupnpc/pymoduletest.py mode change 100755 => 100644 miniupnpc/testminiwget.sh mode change 100755 => 100644 miniupnpc/testupnpigd.py mode change 100755 => 100644 miniupnpc/testupnpreplyparse.sh mode change 100755 => 100644 miniupnpc/updateminiupnpcstrings.sh mode change 100755 => 100644 miniupnpd/genconfig.sh mode change 100755 => 100644 miniupnpd/netfilter/ip6tables_display.sh mode change 100755 => 100644 miniupnpd/netfilter/ip6tables_flush.sh mode change 100755 => 100644 miniupnpd/netfilter/ip6tables_init.sh mode change 100755 => 100644 miniupnpd/netfilter/ip6tables_init_and_clean.sh mode change 100755 => 100644 miniupnpd/netfilter/ip6tables_removeall.sh mode change 100755 => 100644 miniupnpd/netfilter/iptables_display.sh mode change 100755 => 100644 miniupnpd/netfilter/iptables_flush.sh mode change 100755 => 100644 miniupnpd/netfilter/iptables_init.sh mode change 100755 => 100644 miniupnpd/netfilter/iptables_init_and_clean.sh mode change 100755 => 100644 miniupnpd/netfilter/iptables_removeall.sh diff --git a/miniupnpc/external-ip.sh b/miniupnpc/external-ip.sh old mode 100755 new mode 100644 diff --git a/miniupnpc/java/testjava.bat b/miniupnpc/java/testjava.bat old mode 100755 new mode 100644 diff --git a/miniupnpc/java/testjava.sh b/miniupnpc/java/testjava.sh old mode 100755 new mode 100644 diff --git a/miniupnpc/pymoduletest.py b/miniupnpc/pymoduletest.py old mode 100755 new mode 100644 diff --git a/miniupnpc/testminiwget.sh b/miniupnpc/testminiwget.sh old mode 100755 new mode 100644 diff --git a/miniupnpc/testupnpigd.py b/miniupnpc/testupnpigd.py old mode 100755 new mode 100644 diff --git a/miniupnpc/testupnpreplyparse.sh b/miniupnpc/testupnpreplyparse.sh old mode 100755 new mode 100644 diff --git a/miniupnpc/updateminiupnpcstrings.sh b/miniupnpc/updateminiupnpcstrings.sh old mode 100755 new mode 100644 diff --git a/miniupnpd/genconfig.sh b/miniupnpd/genconfig.sh old mode 100755 new mode 100644 diff --git a/miniupnpd/netfilter/ip6tables_display.sh b/miniupnpd/netfilter/ip6tables_display.sh old mode 100755 new mode 100644 diff --git a/miniupnpd/netfilter/ip6tables_flush.sh b/miniupnpd/netfilter/ip6tables_flush.sh old mode 100755 new mode 100644 diff --git a/miniupnpd/netfilter/ip6tables_init.sh b/miniupnpd/netfilter/ip6tables_init.sh old mode 100755 new mode 100644 diff --git a/miniupnpd/netfilter/ip6tables_init_and_clean.sh b/miniupnpd/netfilter/ip6tables_init_and_clean.sh old mode 100755 new mode 100644 diff --git a/miniupnpd/netfilter/ip6tables_removeall.sh b/miniupnpd/netfilter/ip6tables_removeall.sh old mode 100755 new mode 100644 diff --git a/miniupnpd/netfilter/iptables_display.sh b/miniupnpd/netfilter/iptables_display.sh old mode 100755 new mode 100644 diff --git a/miniupnpd/netfilter/iptables_flush.sh b/miniupnpd/netfilter/iptables_flush.sh old mode 100755 new mode 100644 diff --git a/miniupnpd/netfilter/iptables_init.sh b/miniupnpd/netfilter/iptables_init.sh old mode 100755 new mode 100644 diff --git a/miniupnpd/netfilter/iptables_init_and_clean.sh b/miniupnpd/netfilter/iptables_init_and_clean.sh old mode 100755 new mode 100644 diff --git a/miniupnpd/netfilter/iptables_removeall.sh b/miniupnpd/netfilter/iptables_removeall.sh old mode 100755 new mode 100644