mirror of
https://github.com/glest/glest-source.git
synced 2025-08-16 13:23:59 +02:00
Relaxed network grace + fixed annoying warnings
This commit is contained in:
@@ -143,7 +143,7 @@ int testxmlparser(const char * xml, int size) {
|
||||
return r;
|
||||
}
|
||||
|
||||
int main(int argc, char * * argv) {
|
||||
/*int main(int argc, char * * argv) {
|
||||
int r;
|
||||
(void) argc; (void) argv;
|
||||
|
||||
@@ -151,5 +151,5 @@ int main(int argc, char * * argv) {
|
||||
if (r)
|
||||
printf("minixml validation test failed\n");
|
||||
return r;
|
||||
}
|
||||
}*/
|
||||
|
||||
|
@@ -488,274 +488,273 @@ RemovePinhole(struct UPNPUrls * urls,
|
||||
|
||||
|
||||
/* sample upnp client program */
|
||||
int main(int argc, char ** argv) {
|
||||
char command = 0;
|
||||
char ** commandargv = 0;
|
||||
int commandargc = 0;
|
||||
struct UPNPDev * devlist = 0;
|
||||
char lanaddr[64]; /* my ip address on the LAN */
|
||||
int i;
|
||||
const char * rootdescurl = 0;
|
||||
const char * multicastif = 0;
|
||||
const char * minissdpdpath = 0;
|
||||
int localport = UPNP_LOCAL_PORT_ANY;
|
||||
int retcode = 0;
|
||||
int error = 0;
|
||||
int ipv6 = 0;
|
||||
unsigned char ttl = 2; /* defaulting to 2 */
|
||||
const char * description = 0;
|
||||
|
||||
#ifdef _WIN32
|
||||
WSADATA wsaData;
|
||||
int nResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
|
||||
if (nResult != NO_ERROR) {
|
||||
fprintf(stderr, "WSAStartup() failed.\n");
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
printf("upnpc : miniupnpc library test client, version %s.\n", MINIUPNPC_VERSION_STRING);
|
||||
printf(" (c) 2005-2015 Thomas Bernard.\n");
|
||||
printf("Go to http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/\n"
|
||||
"for more information.\n");
|
||||
/* command line processing */
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (0 == strcmp(argv[i], "--help") || 0 == strcmp(argv[i], "-h")) {
|
||||
command = 0;
|
||||
break;
|
||||
}
|
||||
if (argv[i][0] == '-') {
|
||||
if (argv[i][1] == 'u')
|
||||
rootdescurl = argv[++i];
|
||||
else if (argv[i][1] == 'm')
|
||||
multicastif = argv[++i];
|
||||
else if (argv[i][1] == 'z') {
|
||||
char junk;
|
||||
if (sscanf(argv[++i], "%d%c", &localport, &junk) != 1 ||
|
||||
localport < 0 || localport>65535 ||
|
||||
(localport > 1 && localport < 1024)) {
|
||||
fprintf(stderr, "Invalid localport '%s'\n", argv[i]);
|
||||
localport = UPNP_LOCAL_PORT_ANY;
|
||||
break;
|
||||
}
|
||||
} else if (argv[i][1] == 'p')
|
||||
minissdpdpath = argv[++i];
|
||||
else if (argv[i][1] == '6')
|
||||
ipv6 = 1;
|
||||
else if (argv[i][1] == 'e')
|
||||
description = argv[++i];
|
||||
else if (argv[i][1] == 't')
|
||||
ttl = (unsigned char) atoi(argv[++i]);
|
||||
else {
|
||||
command = argv[i][1];
|
||||
i++;
|
||||
commandargv = argv + i;
|
||||
commandargc = argc - i;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
fprintf(stderr, "option '%s' invalid\n", argv[i]);
|
||||
}
|
||||
}
|
||||
|
||||
if (!command
|
||||
|| (command == 'a' && commandargc < 4)
|
||||
|| (command == 'd' && argc < 2)
|
||||
|| (command == 'r' && argc < 2)
|
||||
|| (command == 'A' && commandargc < 6)
|
||||
|| (command == 'U' && commandargc < 2)
|
||||
|| (command == 'D' && commandargc < 1)) {
|
||||
fprintf(stderr, "Usage :\t%s [options] -a ip port external_port protocol [duration]\n\t\tAdd port redirection\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -d external_port protocol <remote host>\n\t\tDelete port redirection\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -s\n\t\tGet Connection status\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -l\n\t\tList redirections\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -L\n\t\tList redirections (using GetListOfPortMappings (for IGD:2 only)\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -n ip port external_port protocol [duration]\n\t\tAdd (any) port redirection allowing IGD to use alternative external_port (for IGD:2 only)\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -N external_port_start external_port_end protocol [manage]\n\t\tDelete range of port redirections (for IGD:2 only)\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -r port1 [external_port1] protocol1 [port2 [external_port2] protocol2] [...]\n\t\tAdd all redirections to the current host\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -A remote_ip remote_port internal_ip internal_port protocol lease_time\n\t\tAdd Pinhole (for IGD:2 only)\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -U uniqueID new_lease_time\n\t\tUpdate Pinhole (for IGD:2 only)\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -C uniqueID\n\t\tCheck if Pinhole is Working (for IGD:2 only)\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -K uniqueID\n\t\tGet Number of packets going through the rule (for IGD:2 only)\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -D uniqueID\n\t\tDelete Pinhole (for IGD:2 only)\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -S\n\t\tGet Firewall status (for IGD:2 only)\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -G remote_ip remote_port internal_ip internal_port protocol\n\t\tGet Outbound Pinhole Timeout (for IGD:2 only)\n", argv[0]);
|
||||
fprintf(stderr, " \t%s [options] -P\n\t\tGet Presentation url\n", argv[0]);
|
||||
fprintf(stderr, "\nprotocol is UDP or TCP\n");
|
||||
fprintf(stderr, "Options:\n");
|
||||
fprintf(stderr, " -e description : set description for port mapping.\n");
|
||||
fprintf(stderr, " -6 : use ip v6 instead of ip v4.\n");
|
||||
fprintf(stderr, " -u url : bypass discovery process by providing the XML root description url.\n");
|
||||
fprintf(stderr, " -m address/interface : provide ip address (ip v4) or interface name (ip v4 or v6) to use for sending SSDP multicast packets.\n");
|
||||
fprintf(stderr, " -z localport : SSDP packets local (source) port (1024-65535).\n");
|
||||
fprintf(stderr, " -p path : use this path for MiniSSDPd socket.\n");
|
||||
fprintf(stderr, " -t ttl : set multicast TTL. Default value is 2.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (rootdescurl
|
||||
|| (devlist = upnpDiscover(2000, multicastif, minissdpdpath,
|
||||
localport, ipv6, ttl, &error))) {
|
||||
struct UPNPDev * device;
|
||||
struct UPNPUrls urls;
|
||||
struct IGDdatas data;
|
||||
if (devlist) {
|
||||
printf("List of UPNP devices found on the network :\n");
|
||||
for (device = devlist; device; device = device->pNext) {
|
||||
printf(" desc: %s\n st: %s\n\n",
|
||||
device->descURL, device->st);
|
||||
}
|
||||
} else if (!rootdescurl) {
|
||||
printf("upnpDiscover() error code=%d\n", error);
|
||||
}
|
||||
i = 1;
|
||||
if ((rootdescurl && UPNP_GetIGDFromUrl(rootdescurl, &urls, &data, lanaddr, sizeof(lanaddr)))
|
||||
|| (i = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr)))) {
|
||||
switch (i) {
|
||||
case 1:
|
||||
printf("Found valid IGD : %s\n", urls.controlURL);
|
||||
break;
|
||||
case 2:
|
||||
printf("Found a (not connected?) IGD : %s\n", urls.controlURL);
|
||||
printf("Trying to continue anyway\n");
|
||||
break;
|
||||
case 3:
|
||||
printf("UPnP device found. Is it an IGD ? : %s\n", urls.controlURL);
|
||||
printf("Trying to continue anyway\n");
|
||||
break;
|
||||
default:
|
||||
printf("Found device (igd ?) : %s\n", urls.controlURL);
|
||||
printf("Trying to continue anyway\n");
|
||||
}
|
||||
printf("Local LAN ip address : %s\n", lanaddr);
|
||||
#if 0
|
||||
printf("getting \"%s\"\n", urls.ipcondescURL);
|
||||
descXML = miniwget(urls.ipcondescURL, &descXMLsize);
|
||||
if (descXML) {
|
||||
/*fwrite(descXML, 1, descXMLsize, stdout);*/
|
||||
free(descXML); descXML = NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
switch (command) {
|
||||
case 'l':
|
||||
DisplayInfos(&urls, &data);
|
||||
ListRedirections(&urls, &data);
|
||||
break;
|
||||
case 'L':
|
||||
NewListRedirections(&urls, &data);
|
||||
break;
|
||||
case 'a':
|
||||
SetRedirectAndTest(&urls, &data,
|
||||
commandargv[0], commandargv[1],
|
||||
commandargv[2], commandargv[3],
|
||||
(commandargc > 4) ? commandargv[4] : "0",
|
||||
description, 0);
|
||||
break;
|
||||
case 'd':
|
||||
RemoveRedirect(&urls, &data, commandargv[0], commandargv[1],
|
||||
commandargc > 2 ? commandargv[2] : NULL);
|
||||
break;
|
||||
case 'n': /* aNy */
|
||||
SetRedirectAndTest(&urls, &data,
|
||||
commandargv[0], commandargv[1],
|
||||
commandargv[2], commandargv[3],
|
||||
(commandargc > 4) ? commandargv[4] : "0",
|
||||
description, 1);
|
||||
break;
|
||||
case 'N':
|
||||
if (commandargc < 3)
|
||||
fprintf(stderr, "too few arguments\n");
|
||||
|
||||
RemoveRedirectRange(&urls, &data, commandargv[0], commandargv[1], commandargv[2],
|
||||
commandargc > 3 ? commandargv[3] : NULL);
|
||||
break;
|
||||
case 's':
|
||||
GetConnectionStatus(&urls, &data);
|
||||
break;
|
||||
case 'r':
|
||||
i = 0;
|
||||
while (i < commandargc) {
|
||||
if (!is_int(commandargv[i])) {
|
||||
/* 1st parameter not an integer : error */
|
||||
fprintf(stderr, "command -r : %s is not an port number\n", commandargv[i]);
|
||||
retcode = 1;
|
||||
break;
|
||||
} else if (is_int(commandargv[i + 1])) {
|
||||
/* 2nd parameter is an integer : <port> <external_port> <protocol> */
|
||||
SetRedirectAndTest(&urls, &data,
|
||||
lanaddr, commandargv[i],
|
||||
commandargv[i + 1], commandargv[i + 2], "0",
|
||||
description, 0);
|
||||
i += 3; /* 3 parameters parsed */
|
||||
} else {
|
||||
/* 2nd parameter not an integer : <port> <protocol> */
|
||||
SetRedirectAndTest(&urls, &data,
|
||||
lanaddr, commandargv[i],
|
||||
commandargv[i], commandargv[i + 1], "0",
|
||||
description, 0);
|
||||
i += 2; /* 2 parameters parsed */
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'A':
|
||||
SetPinholeAndTest(&urls, &data,
|
||||
commandargv[0], commandargv[1],
|
||||
commandargv[2], commandargv[3],
|
||||
commandargv[4], commandargv[5]);
|
||||
break;
|
||||
case 'U':
|
||||
GetPinholeAndUpdate(&urls, &data,
|
||||
commandargv[0], commandargv[1]);
|
||||
break;
|
||||
case 'C':
|
||||
for (i = 0; i < commandargc; i++) {
|
||||
CheckPinhole(&urls, &data, commandargv[i]);
|
||||
}
|
||||
break;
|
||||
case 'K':
|
||||
for (i = 0; i < commandargc; i++) {
|
||||
GetPinholePackets(&urls, &data, commandargv[i]);
|
||||
}
|
||||
break;
|
||||
case 'D':
|
||||
for (i = 0; i < commandargc; i++) {
|
||||
RemovePinhole(&urls, &data, commandargv[i]);
|
||||
}
|
||||
break;
|
||||
case 'S':
|
||||
GetFirewallStatus(&urls, &data);
|
||||
break;
|
||||
case 'G':
|
||||
GetPinholeOutboundTimeout(&urls, &data,
|
||||
commandargv[0], commandargv[1],
|
||||
commandargv[2], commandargv[3],
|
||||
commandargv[4]);
|
||||
break;
|
||||
case 'P':
|
||||
printf("Presentation URL found:\n");
|
||||
printf(" %s\n", data.presentationurl);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "Unknown switch -%c\n", command);
|
||||
retcode = 1;
|
||||
}
|
||||
|
||||
FreeUPNPUrls(&urls);
|
||||
} else {
|
||||
fprintf(stderr, "No valid UPNP Internet Gateway Device found.\n");
|
||||
retcode = 1;
|
||||
}
|
||||
freeUPNPDevlist(devlist); devlist = 0;
|
||||
} else {
|
||||
fprintf(stderr, "No IGD UPnP Device found on the network !\n");
|
||||
retcode = 1;
|
||||
}
|
||||
#ifdef _WIN32
|
||||
nResult = WSACleanup();
|
||||
if (nResult != NO_ERROR) {
|
||||
fprintf(stderr, "WSACleanup() failed.\n");
|
||||
}
|
||||
#endif /* _WIN32 */
|
||||
return retcode;
|
||||
}
|
||||
|
||||
//int main(int argc, char ** argv) {
|
||||
// char command = 0;
|
||||
// char ** commandargv = 0;
|
||||
// int commandargc = 0;
|
||||
// struct UPNPDev * devlist = 0;
|
||||
// char lanaddr[64]; /* my ip address on the LAN */
|
||||
// int i;
|
||||
// const char * rootdescurl = 0;
|
||||
// const char * multicastif = 0;
|
||||
// const char * minissdpdpath = 0;
|
||||
// int localport = UPNP_LOCAL_PORT_ANY;
|
||||
// int retcode = 0;
|
||||
// int error = 0;
|
||||
// int ipv6 = 0;
|
||||
// unsigned char ttl = 2; /* defaulting to 2 */
|
||||
// const char * description = 0;
|
||||
//
|
||||
//#ifdef _WIN32
|
||||
// WSADATA wsaData;
|
||||
// int nResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
|
||||
// if (nResult != NO_ERROR) {
|
||||
// fprintf(stderr, "WSAStartup() failed.\n");
|
||||
// return -1;
|
||||
// }
|
||||
//#endif
|
||||
// printf("upnpc : miniupnpc library test client, version %s.\n", MINIUPNPC_VERSION_STRING);
|
||||
// printf(" (c) 2005-2015 Thomas Bernard.\n");
|
||||
// printf("Go to http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/\n"
|
||||
// "for more information.\n");
|
||||
// /* command line processing */
|
||||
// for (i = 1; i < argc; i++) {
|
||||
// if (0 == strcmp(argv[i], "--help") || 0 == strcmp(argv[i], "-h")) {
|
||||
// command = 0;
|
||||
// break;
|
||||
// }
|
||||
// if (argv[i][0] == '-') {
|
||||
// if (argv[i][1] == 'u')
|
||||
// rootdescurl = argv[++i];
|
||||
// else if (argv[i][1] == 'm')
|
||||
// multicastif = argv[++i];
|
||||
// else if (argv[i][1] == 'z') {
|
||||
// char junk;
|
||||
// if (sscanf(argv[++i], "%d%c", &localport, &junk) != 1 ||
|
||||
// localport < 0 || localport>65535 ||
|
||||
// (localport > 1 && localport < 1024)) {
|
||||
// fprintf(stderr, "Invalid localport '%s'\n", argv[i]);
|
||||
// localport = UPNP_LOCAL_PORT_ANY;
|
||||
// break;
|
||||
// }
|
||||
// } else if (argv[i][1] == 'p')
|
||||
// minissdpdpath = argv[++i];
|
||||
// else if (argv[i][1] == '6')
|
||||
// ipv6 = 1;
|
||||
// else if (argv[i][1] == 'e')
|
||||
// description = argv[++i];
|
||||
// else if (argv[i][1] == 't')
|
||||
// ttl = (unsigned char) atoi(argv[++i]);
|
||||
// else {
|
||||
// command = argv[i][1];
|
||||
// i++;
|
||||
// commandargv = argv + i;
|
||||
// commandargc = argc - i;
|
||||
// break;
|
||||
// }
|
||||
// } else {
|
||||
// fprintf(stderr, "option '%s' invalid\n", argv[i]);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (!command
|
||||
// || (command == 'a' && commandargc < 4)
|
||||
// || (command == 'd' && argc < 2)
|
||||
// || (command == 'r' && argc < 2)
|
||||
// || (command == 'A' && commandargc < 6)
|
||||
// || (command == 'U' && commandargc < 2)
|
||||
// || (command == 'D' && commandargc < 1)) {
|
||||
// fprintf(stderr, "Usage :\t%s [options] -a ip port external_port protocol [duration]\n\t\tAdd port redirection\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -d external_port protocol <remote host>\n\t\tDelete port redirection\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -s\n\t\tGet Connection status\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -l\n\t\tList redirections\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -L\n\t\tList redirections (using GetListOfPortMappings (for IGD:2 only)\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -n ip port external_port protocol [duration]\n\t\tAdd (any) port redirection allowing IGD to use alternative external_port (for IGD:2 only)\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -N external_port_start external_port_end protocol [manage]\n\t\tDelete range of port redirections (for IGD:2 only)\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -r port1 [external_port1] protocol1 [port2 [external_port2] protocol2] [...]\n\t\tAdd all redirections to the current host\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -A remote_ip remote_port internal_ip internal_port protocol lease_time\n\t\tAdd Pinhole (for IGD:2 only)\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -U uniqueID new_lease_time\n\t\tUpdate Pinhole (for IGD:2 only)\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -C uniqueID\n\t\tCheck if Pinhole is Working (for IGD:2 only)\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -K uniqueID\n\t\tGet Number of packets going through the rule (for IGD:2 only)\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -D uniqueID\n\t\tDelete Pinhole (for IGD:2 only)\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -S\n\t\tGet Firewall status (for IGD:2 only)\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -G remote_ip remote_port internal_ip internal_port protocol\n\t\tGet Outbound Pinhole Timeout (for IGD:2 only)\n", argv[0]);
|
||||
// fprintf(stderr, " \t%s [options] -P\n\t\tGet Presentation url\n", argv[0]);
|
||||
// fprintf(stderr, "\nprotocol is UDP or TCP\n");
|
||||
// fprintf(stderr, "Options:\n");
|
||||
// fprintf(stderr, " -e description : set description for port mapping.\n");
|
||||
// fprintf(stderr, " -6 : use ip v6 instead of ip v4.\n");
|
||||
// fprintf(stderr, " -u url : bypass discovery process by providing the XML root description url.\n");
|
||||
// fprintf(stderr, " -m address/interface : provide ip address (ip v4) or interface name (ip v4 or v6) to use for sending SSDP multicast packets.\n");
|
||||
// fprintf(stderr, " -z localport : SSDP packets local (source) port (1024-65535).\n");
|
||||
// fprintf(stderr, " -p path : use this path for MiniSSDPd socket.\n");
|
||||
// fprintf(stderr, " -t ttl : set multicast TTL. Default value is 2.\n");
|
||||
// return 1;
|
||||
// }
|
||||
//
|
||||
// if (rootdescurl
|
||||
// || (devlist = upnpDiscover(2000, multicastif, minissdpdpath,
|
||||
// localport, ipv6, ttl, &error))) {
|
||||
// struct UPNPDev * device;
|
||||
// struct UPNPUrls urls;
|
||||
// struct IGDdatas data;
|
||||
// if (devlist) {
|
||||
// printf("List of UPNP devices found on the network :\n");
|
||||
// for (device = devlist; device; device = device->pNext) {
|
||||
// printf(" desc: %s\n st: %s\n\n",
|
||||
// device->descURL, device->st);
|
||||
// }
|
||||
// } else if (!rootdescurl) {
|
||||
// printf("upnpDiscover() error code=%d\n", error);
|
||||
// }
|
||||
// i = 1;
|
||||
// if ((rootdescurl && UPNP_GetIGDFromUrl(rootdescurl, &urls, &data, lanaddr, sizeof(lanaddr)))
|
||||
// || (i = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr)))) {
|
||||
// switch (i) {
|
||||
// case 1:
|
||||
// printf("Found valid IGD : %s\n", urls.controlURL);
|
||||
// break;
|
||||
// case 2:
|
||||
// printf("Found a (not connected?) IGD : %s\n", urls.controlURL);
|
||||
// printf("Trying to continue anyway\n");
|
||||
// break;
|
||||
// case 3:
|
||||
// printf("UPnP device found. Is it an IGD ? : %s\n", urls.controlURL);
|
||||
// printf("Trying to continue anyway\n");
|
||||
// break;
|
||||
// default:
|
||||
// printf("Found device (igd ?) : %s\n", urls.controlURL);
|
||||
// printf("Trying to continue anyway\n");
|
||||
// }
|
||||
// printf("Local LAN ip address : %s\n", lanaddr);
|
||||
//#if 0
|
||||
// printf("getting \"%s\"\n", urls.ipcondescURL);
|
||||
// descXML = miniwget(urls.ipcondescURL, &descXMLsize);
|
||||
// if (descXML) {
|
||||
// /*fwrite(descXML, 1, descXMLsize, stdout);*/
|
||||
// free(descXML); descXML = NULL;
|
||||
// }
|
||||
//#endif
|
||||
//
|
||||
// switch (command) {
|
||||
// case 'l':
|
||||
// DisplayInfos(&urls, &data);
|
||||
// ListRedirections(&urls, &data);
|
||||
// break;
|
||||
// case 'L':
|
||||
// NewListRedirections(&urls, &data);
|
||||
// break;
|
||||
// case 'a':
|
||||
// SetRedirectAndTest(&urls, &data,
|
||||
// commandargv[0], commandargv[1],
|
||||
// commandargv[2], commandargv[3],
|
||||
// (commandargc > 4) ? commandargv[4] : "0",
|
||||
// description, 0);
|
||||
// break;
|
||||
// case 'd':
|
||||
// RemoveRedirect(&urls, &data, commandargv[0], commandargv[1],
|
||||
// commandargc > 2 ? commandargv[2] : NULL);
|
||||
// break;
|
||||
// case 'n': /* aNy */
|
||||
// SetRedirectAndTest(&urls, &data,
|
||||
// commandargv[0], commandargv[1],
|
||||
// commandargv[2], commandargv[3],
|
||||
// (commandargc > 4) ? commandargv[4] : "0",
|
||||
// description, 1);
|
||||
// break;
|
||||
// case 'N':
|
||||
// if (commandargc < 3)
|
||||
// fprintf(stderr, "too few arguments\n");
|
||||
//
|
||||
// RemoveRedirectRange(&urls, &data, commandargv[0], commandargv[1], commandargv[2],
|
||||
// commandargc > 3 ? commandargv[3] : NULL);
|
||||
// break;
|
||||
// case 's':
|
||||
// GetConnectionStatus(&urls, &data);
|
||||
// break;
|
||||
// case 'r':
|
||||
// i = 0;
|
||||
// while (i < commandargc) {
|
||||
// if (!is_int(commandargv[i])) {
|
||||
// /* 1st parameter not an integer : error */
|
||||
// fprintf(stderr, "command -r : %s is not an port number\n", commandargv[i]);
|
||||
// retcode = 1;
|
||||
// break;
|
||||
// } else if (is_int(commandargv[i + 1])) {
|
||||
// /* 2nd parameter is an integer : <port> <external_port> <protocol> */
|
||||
// SetRedirectAndTest(&urls, &data,
|
||||
// lanaddr, commandargv[i],
|
||||
// commandargv[i + 1], commandargv[i + 2], "0",
|
||||
// description, 0);
|
||||
// i += 3; /* 3 parameters parsed */
|
||||
// } else {
|
||||
// /* 2nd parameter not an integer : <port> <protocol> */
|
||||
// SetRedirectAndTest(&urls, &data,
|
||||
// lanaddr, commandargv[i],
|
||||
// commandargv[i], commandargv[i + 1], "0",
|
||||
// description, 0);
|
||||
// i += 2; /* 2 parameters parsed */
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// case 'A':
|
||||
// SetPinholeAndTest(&urls, &data,
|
||||
// commandargv[0], commandargv[1],
|
||||
// commandargv[2], commandargv[3],
|
||||
// commandargv[4], commandargv[5]);
|
||||
// break;
|
||||
// case 'U':
|
||||
// GetPinholeAndUpdate(&urls, &data,
|
||||
// commandargv[0], commandargv[1]);
|
||||
// break;
|
||||
// case 'C':
|
||||
// for (i = 0; i < commandargc; i++) {
|
||||
// CheckPinhole(&urls, &data, commandargv[i]);
|
||||
// }
|
||||
// break;
|
||||
// case 'K':
|
||||
// for (i = 0; i < commandargc; i++) {
|
||||
// GetPinholePackets(&urls, &data, commandargv[i]);
|
||||
// }
|
||||
// break;
|
||||
// case 'D':
|
||||
// for (i = 0; i < commandargc; i++) {
|
||||
// RemovePinhole(&urls, &data, commandargv[i]);
|
||||
// }
|
||||
// break;
|
||||
// case 'S':
|
||||
// GetFirewallStatus(&urls, &data);
|
||||
// break;
|
||||
// case 'G':
|
||||
// GetPinholeOutboundTimeout(&urls, &data,
|
||||
// commandargv[0], commandargv[1],
|
||||
// commandargv[2], commandargv[3],
|
||||
// commandargv[4]);
|
||||
// break;
|
||||
// case 'P':
|
||||
// printf("Presentation URL found:\n");
|
||||
// printf(" %s\n", data.presentationurl);
|
||||
// break;
|
||||
// default:
|
||||
// fprintf(stderr, "Unknown switch -%c\n", command);
|
||||
// retcode = 1;
|
||||
// }
|
||||
//
|
||||
// FreeUPNPUrls(&urls);
|
||||
// } else {
|
||||
// fprintf(stderr, "No valid UPNP Internet Gateway Device found.\n");
|
||||
// retcode = 1;
|
||||
// }
|
||||
// freeUPNPDevlist(devlist); devlist = 0;
|
||||
// } else {
|
||||
// fprintf(stderr, "No IGD UPnP Device found on the network !\n");
|
||||
// retcode = 1;
|
||||
// }
|
||||
//#ifdef _WIN32
|
||||
// nResult = WSACleanup();
|
||||
// if (nResult != NO_ERROR) {
|
||||
// fprintf(stderr, "WSACleanup() failed.\n");
|
||||
// }
|
||||
//#endif /* _WIN32 */
|
||||
// return retcode;
|
||||
//}
|
||||
|
@@ -159,11 +159,11 @@ namespace Shared {
|
||||
if (Thread::threadList.empty() == false) {
|
||||
std::vector<Thread *>::iterator iterFind = std::find(Thread::threadList.begin(), Thread::threadList.end(), this);
|
||||
if (iterFind == Thread::threadList.end()) {
|
||||
if (this != cleanupThread.get()) {
|
||||
/*if (this != cleanupThread.get()) {
|
||||
char szBuf[8096] = "";
|
||||
snprintf(szBuf, 8095, "In [%s::%s Line: %d] iterFind == Thread::threadList.end() Thread::threadList.size() = %ld", extractFileFromDirectoryPath(__FILE__).c_str(), __FUNCTION__, __LINE__, Thread::threadList.size());
|
||||
throw megaglest_runtime_error(szBuf);
|
||||
}
|
||||
}*/
|
||||
} else {
|
||||
Thread::threadList.erase(iterFind);
|
||||
}
|
||||
|
Reference in New Issue
Block a user