- added new debug compile option for UPNP:

cmake -DCMAKE_INSTALL_PREFIX= -DWANT_STATIC_LIBS=ON -DBUILD_MEGAGLEST_UPNP_DEBUG=On ..

This will output tons of stuff to console to help debug issues in miniupnpc
This commit is contained in:
Mark Vejvoda
2011-10-21 03:24:04 +00:00
parent 5e8e8ffc6c
commit af2e2a8930
3 changed files with 47 additions and 4 deletions

View File

@@ -586,6 +586,12 @@ upnpDiscover(int delay, const char * multicastif,
}
for(p = servinfo; p; p = p->ai_next) {
n = sendto(sudp, bufr, n, 0, p->ai_addr, p->ai_addrlen);
#ifdef DEBUG
struct sockaddr_in *saddrin = (struct sockaddr_in *)p->ai_addr;
printf("sendto returned %d [%s] to host [%s]\n", n,bufr,inet_ntoa(saddrin->sin_addr));
#endif
if (n < 0) {
PRINT_SOCKET_ERROR("sendto");
continue;
@@ -601,6 +607,11 @@ upnpDiscover(int delay, const char * multicastif,
}
/* Waiting for SSDP REPLY packet to M-SEARCH */
n = receivedata(sudp, bufr, sizeof(bufr), delay);
#ifdef DEBUG
printf("receivedata returned %d [%s]\n", n,bufr);
#endif
if (n < 0) {
/* error */
if(error)

View File

@@ -2147,15 +2147,34 @@ int UPNP_Tools::upnp_init(void *param) {
if(UPNP_Tools::isUPNP) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"Searching for UPnP devices for automatic port forwarding...\n");
int ipv6 = 0;
int upnp_delay = 5000;
const char *upnp_multicastif = NULL;
const char *upnp_minissdpdsock = NULL;
int upnp_sameport = 0;
int upnp_ipv6 = 0;
int upnp_error = 0;
#ifndef MINIUPNPC_VERSION_PRE1_6
devlist = upnpDiscover(2000, NULL, NULL, 0, ipv6, NULL);
devlist = upnpDiscover(upnp_delay, upnp_multicastif, upnp_minissdpdsock, upnp_sameport, upnp_ipv6, &upnp_error);
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"UPnP discover returned upnp_error = %d.\n",upnp_error);
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("UPnP discover returned upnp_error = %d.\n",upnp_error);
#else
devlist = upnpDiscover(2000, NULL, NULL, 0);
devlist = upnpDiscover(upnp_delay, upnp_multicastif, upnp_minissdpdsock, upnp_sameport);
#endif
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"UPnP device search finished.\n");
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"UPnP device search finished devlist = %p.\n",devlist);
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("UPnP device search finished devlist = %p.\n",devlist);
if (devlist) {
dev = devlist;
while (dev) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"UPnP discover deviceList [%s].\n",(dev->st ? dev->st : "null"));
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("UPnP discover deviceList [%s].\n",(dev->st ? dev->st : "null"));
dev = dev->pNext;
}
dev = devlist;
while (dev) {
if (strstr(dev->st, "InternetGatewayDevice")) {
@@ -2168,9 +2187,11 @@ int UPNP_Tools::upnp_init(void *param) {
}
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"UPnP device found: %s %s\n", dev->descURL, dev->st);
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("UPnP device found: %s %s\n", dev->descURL, dev->st);
descXML = (char *)miniwget_getaddr(dev->descURL, &descXMLsize, lanaddr, sizeof(lanaddr));
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"LAN address: %s\n", lanaddr);
if (descXML) {
parserootdesc (descXML, descXMLsize, &data);
free (descXML); descXML = 0;