*** src/bzfs/commands.cxx 2007-02-24 19:02:17.000000000 +0300 --- src/bzfs/commands.cxx.patched 2007-02-24 16:07:11.000000000 +0300 *************** *** 1517,1528 **** char reply[MessageLen] = {0}; ! if (message[8] == ' ') { const char *maxlag = message + 9; clOptions->lagwarnthresh = (float) (atoi(maxlag) / 1000.0); snprintf(reply, MessageLen, "lagwarn is now %d ms", int(clOptions->lagwarnthresh * 1000 + 0.5)); ! } else { ! snprintf(reply, MessageLen, "lagwarn is set to %d ms", int(clOptions->lagwarnthresh * 1000 + 0.5)); } LagInfo::setThreshold(clOptions->lagwarnthresh,(float)clOptions->maxlagwarn); sendMessage(ServerPlayer, t, reply); --- 1517,1530 ---- char reply[MessageLen] = {0}; ! if (message[8] == ' ' && isdigit(message[9])) { // we don't want null or non-digit input after first space to cause lagwarn to drop to 0ms const char *maxlag = message + 9; clOptions->lagwarnthresh = (float) (atoi(maxlag) / 1000.0); snprintf(reply, MessageLen, "lagwarn is now %d ms", int(clOptions->lagwarnthresh * 1000 + 0.5)); ! } else if (message [8] == ' ' && message[9] != '\0'){ // multiple spaces || trash input: display warning, change nothing ! snprintf(reply, MessageLen, "Please provide correct argument"); ! } else { ! snprintf(reply, MessageLen, "lagwarn is set to %d ms", int(clOptions->lagwarnthresh * 1000 + 0.5)); // allow _first_ trailing space (@autocompleter code author: why is it added anyway?) } LagInfo::setThreshold(clOptions->lagwarnthresh,(float)clOptions->maxlagwarn); sendMessage(ServerPlayer, t, reply); *************** *** 1541,1551 **** char reply[MessageLen] = {0}; ! if (message[8] == ' ') { const char *maxwarn = message + 9; clOptions->maxlagwarn = atoi(maxwarn); snprintf(reply, MessageLen, "lagdrop is now %d", clOptions->maxlagwarn); ! } else { snprintf(reply, MessageLen, "lagdrop is set to %d", clOptions->maxlagwarn); } LagInfo::setThreshold(clOptions->lagwarnthresh,(float)clOptions->maxlagwarn); --- 1543,1555 ---- char reply[MessageLen] = {0}; ! if (message[8] == ' ' && isdigit(message[9])) { //see lagwarn const char *maxwarn = message + 9; clOptions->maxlagwarn = atoi(maxwarn); snprintf(reply, MessageLen, "lagdrop is now %d", clOptions->maxlagwarn); ! } else if (message [8] == ' ' && message[9] != '\0'){ ! snprintf(reply, MessageLen, "Please provide correct argument"); ! }else{ snprintf(reply, MessageLen, "lagdrop is set to %d", clOptions->maxlagwarn); } LagInfo::setThreshold(clOptions->lagwarnthresh,(float)clOptions->maxlagwarn); *************** *** 1566,1576 **** char reply[MessageLen] = {0}; ! if (message[11] == ' ') { const char *maxjit = message + 12; clOptions->jitterwarnthresh = (float) (atoi(maxjit) / 1000.0); snprintf(reply, MessageLen, "jitterwarn is now %d ms", int(clOptions->jitterwarnthresh * 1000 + 0.5)); } else { snprintf(reply, MessageLen, "jitterwarn is set to %d ms", int(clOptions->jitterwarnthresh * 1000 + 0.5)); --- 1570,1582 ---- char reply[MessageLen] = {0}; ! if (message[11] == ' ' && isdigit(message[12])) { //see lagwarn const char *maxjit = message + 12; clOptions->jitterwarnthresh = (float) (atoi(maxjit) / 1000.0); snprintf(reply, MessageLen, "jitterwarn is now %d ms", int(clOptions->jitterwarnthresh * 1000 + 0.5)); + } else if (message [11] == ' ' && message[12] != '\0'){ + snprintf(reply, MessageLen, "Please provide correct argument"); } else { snprintf(reply, MessageLen, "jitterwarn is set to %d ms", int(clOptions->jitterwarnthresh * 1000 + 0.5)); *************** *** 1594,1604 **** char reply[MessageLen] = {0}; ! if (message[11] == ' ') { const char *maxwarn = message + 12; clOptions->maxjitterwarn = atoi(maxwarn); snprintf(reply, MessageLen, "jitterdrop is now %d", clOptions->maxjitterwarn); } else { snprintf(reply, MessageLen, "jitterdrop is set to %d", clOptions->maxjitterwarn); --- 1600,1612 ---- char reply[MessageLen] = {0}; ! if (message[11] == ' ' && isdigit(message[12])) { //see lagwarn const char *maxwarn = message + 12; clOptions->maxjitterwarn = atoi(maxwarn); snprintf(reply, MessageLen, "jitterdrop is now %d", clOptions->maxjitterwarn); + } else if (message [11] == ' ' && message[12] != '\0'){ + snprintf(reply, MessageLen, "Please provide correct argument"); } else { snprintf(reply, MessageLen, "jitterdrop is set to %d", clOptions->maxjitterwarn);