diff --git a/mk/windows/vs2015-32/libglest.vcxproj b/mk/windows/vs2015-32/libglest.vcxproj
index b20b9a977..36bdbd2c2 100644
--- a/mk/windows/vs2015-32/libglest.vcxproj
+++ b/mk/windows/vs2015-32/libglest.vcxproj
@@ -371,7 +371,7 @@
true
$(OutDir)$(ProjectName).pdb
Level3
- ProgramDatabase
+ OldStyle
4996;4250;%(DisableSpecificWarnings)
true
NotUsing
diff --git a/mk/windows/vs2015-32/libstreflop.vcxproj b/mk/windows/vs2015-32/libstreflop.vcxproj
index fbe16c3de..b8691e715 100644
--- a/mk/windows/vs2015-32/libstreflop.vcxproj
+++ b/mk/windows/vs2015-32/libstreflop.vcxproj
@@ -308,7 +308,7 @@
true
$(OutDir)$(ProjectName).pdb
Level3
- ProgramDatabase
+ OldStyle
true
4996;4250;%(DisableSpecificWarnings)
diff --git a/mk/windows/vs2015-64/libglest.vcxproj b/mk/windows/vs2015-64/libglest.vcxproj
index 9d9130695..d22cb4079 100644
--- a/mk/windows/vs2015-64/libglest.vcxproj
+++ b/mk/windows/vs2015-64/libglest.vcxproj
@@ -298,7 +298,7 @@
true
$(OutDir)$(ProjectName).pdb
Level3
- ProgramDatabase
+ OldStyle
4996;4250;%(DisableSpecificWarnings)
true
NotUsing
diff --git a/mk/windows/vs2015-64/libstreflop.vcxproj b/mk/windows/vs2015-64/libstreflop.vcxproj
index aaacceded..a65382a24 100644
--- a/mk/windows/vs2015-64/libstreflop.vcxproj
+++ b/mk/windows/vs2015-64/libstreflop.vcxproj
@@ -256,7 +256,7 @@
true
$(OutDir)$(ProjectName).pdb
Level3
- ProgramDatabase
+ OldStyle
true
4996;4250;%(DisableSpecificWarnings)
false
diff --git a/mk/windows/vs2017-32/libglest.vcxproj b/mk/windows/vs2017-32/libglest.vcxproj
index b563ca686..e50d7371a 100644
--- a/mk/windows/vs2017-32/libglest.vcxproj
+++ b/mk/windows/vs2017-32/libglest.vcxproj
@@ -374,7 +374,7 @@
true
$(OutDir)$(ProjectName).pdb
Level3
- ProgramDatabase
+ OldStyle
4996;4250;%(DisableSpecificWarnings)
true
NotUsing
diff --git a/mk/windows/vs2017-32/libstreflop.vcxproj b/mk/windows/vs2017-32/libstreflop.vcxproj
index fff2ba98e..cf0eb68e1 100644
--- a/mk/windows/vs2017-32/libstreflop.vcxproj
+++ b/mk/windows/vs2017-32/libstreflop.vcxproj
@@ -308,7 +308,7 @@
true
$(OutDir)$(ProjectName).pdb
Level3
- ProgramDatabase
+ OldStyle
true
4996;4250;%(DisableSpecificWarnings)
diff --git a/mk/windows/vs2017-64/libglest.vcxproj b/mk/windows/vs2017-64/libglest.vcxproj
index f283edd31..8fc9b99c9 100644
--- a/mk/windows/vs2017-64/libglest.vcxproj
+++ b/mk/windows/vs2017-64/libglest.vcxproj
@@ -298,7 +298,7 @@
true
$(OutDir)$(ProjectName).pdb
Level3
- ProgramDatabase
+ OldStyle
4996;4250;%(DisableSpecificWarnings)
true
NotUsing
diff --git a/mk/windows/vs2017-64/libstreflop.vcxproj b/mk/windows/vs2017-64/libstreflop.vcxproj
index 7ad80879b..eae0ec147 100644
--- a/mk/windows/vs2017-64/libstreflop.vcxproj
+++ b/mk/windows/vs2017-64/libstreflop.vcxproj
@@ -256,7 +256,7 @@
true
$(OutDir)$(ProjectName).pdb
Level3
- ProgramDatabase
+ OldStyle
true
4996;4250;%(DisableSpecificWarnings)
false
diff --git a/source/glest_game/ai/ai_interface.cpp b/source/glest_game/ai/ai_interface.cpp
index 17c62eb4c..baa9ad5bb 100644
--- a/source/glest_game/ai/ai_interface.cpp
+++ b/source/glest_game/ai/ai_interface.cpp
@@ -561,6 +561,8 @@ namespace
throw
megaglest_runtime_error(szBuf);
}
+ /*if (unit->getProgress2() != NULL)
+ return result;*/
const UnitType *
unitType = unit->getType();
if (unitType == NULL) {
@@ -659,6 +661,8 @@ namespace
throw
megaglest_runtime_error(szBuf);
}
+ /*if (unit->getProgress2() != NULL)
+ return result;*/
const UnitType *
unitType = unit->getType();
if (unitType == NULL) {
@@ -746,6 +750,8 @@ namespace
throw
megaglest_runtime_error(szBuf);
}
+ /*if (unit->getProgress2() != NULL)
+ return result;*/
const UnitType *
unitType = unit->getType();
if (unitType == NULL) {
@@ -832,6 +838,8 @@ namespace
throw
megaglest_runtime_error(szBuf);
}
+ /*if (unit->getProgress2() != NULL)
+ return result;*/
const UnitType *
unitType = unit->getType();
if (unitType == NULL) {
diff --git a/source/glest_game/network/server_interface.cpp b/source/glest_game/network/server_interface.cpp
index 7f10ef703..5a3f104d3 100644
--- a/source/glest_game/network/server_interface.cpp
+++ b/source/glest_game/network/server_interface.cpp
@@ -50,7 +50,6 @@ using namespace Shared::Map;
namespace Glest {
namespace Game {
-
double maxFrameCountLagAllowed = 30;
double maxClientLagTimeAllowed = 25;
double maxFrameCountLagAllowedEver = 30;
@@ -59,10 +58,10 @@ namespace Glest {
double warnFrameCountLagPercent = 0.50;
double LAG_CHECK_GRACE_PERIOD = 15;
double LAG_CHECK_INTERVAL_PERIOD = 4;
- int GRACE_LAG_CTR_LIMIT = 5;
+ int GRACE_LAG_CTR_LIMIT = 10;
const int MAX_CLIENT_WAIT_SECONDS_FOR_PAUSE_MILLISECONDS = 15000;
- const int MAX_CLIENT_PAUSE_FOR_LAG_COUNT = 3;
+ const int MAX_CLIENT_PAUSE_FOR_LAG_COUNT = 5;
const int MAX_SLOT_THREAD_WAIT_TIME_MILLISECONDS = 1500;
const int MASTERSERVER_HEARTBEAT_GAME_STATUS_SECONDS = 30;
@@ -800,8 +799,8 @@ namespace Glest {
}
}
- if ((gameSettings.getNetworkPauseGameForLaggedClients() == false ||
- ((maxFrameCountLagAllowedEver > 0 && clientLagCount > maxFrameCountLagAllowedEver) ||
+ if (gameSettings.getNetworkPauseGameForLaggedClients() == false ||
+ (((maxFrameCountLagAllowedEver > 0 && clientLagCount > maxFrameCountLagAllowedEver) ||
(maxClientLagTimeAllowedEver > 0 && clientLagTime > maxClientLagTimeAllowedEver)) &&
connectionSlot->getGraceLagCtr() > GRACE_LAG_CTR_LIMIT)) {
diff --git a/source/shared_lib/sources/platform/miniupnpc/minixmlvalid.c b/source/shared_lib/sources/platform/miniupnpc/minixmlvalid.c
index a3c7faa67..3a46ee02d 100644
--- a/source/shared_lib/sources/platform/miniupnpc/minixmlvalid.c
+++ b/source/shared_lib/sources/platform/miniupnpc/minixmlvalid.c
@@ -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;
-}
+}*/
diff --git a/source/shared_lib/sources/platform/miniupnpc/upnpc.c b/source/shared_lib/sources/platform/miniupnpc/upnpc.c
index 9fabe550e..5663065f5 100644
--- a/source/shared_lib/sources/platform/miniupnpc/upnpc.c
+++ b/source/shared_lib/sources/platform/miniupnpc/upnpc.c
@@ -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 \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 : */
- 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 : */
- 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 \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 : */
+// 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 : */
+// 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;
+//}
diff --git a/source/shared_lib/sources/platform/sdl/thread.cpp b/source/shared_lib/sources/platform/sdl/thread.cpp
index c4b7cf39b..e183465cc 100644
--- a/source/shared_lib/sources/platform/sdl/thread.cpp
+++ b/source/shared_lib/sources/platform/sdl/thread.cpp
@@ -159,11 +159,11 @@ namespace Shared {
if (Thread::threadList.empty() == false) {
std::vector::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);
}