Genius Posted June 16, 2007 at 02:04 PM Posted June 16, 2007 at 02:04 PM Данный патч исправляет баг описанный тут http://local.com.ua/forum/index.php?showto...indpost&p=54300 Сразу скажу что C++ не мой родной язык, так что на абсолютную правльность не претендует. В процессе изучения бага в DEBUG режиме было выяснено что он происходит в любом случае когда одному пользователю с данного IP ответило ошибкой, то с этого IP не сможет зайти ни один другой пользователь до тех пор пока не войдет первый или ребута биллинга. Это связано с неудалением ip из массива пользователей. Если у кого-то есть идеи по более правильному решению этой ошибки будет хорошо, надеюсь что автор или уважаемые патчеписатели обратят внимание на эту проблему. --- projects/stargazer/plugins/authorization/inetaccess/inetaccess.cpp.old 2007-01-20 14:47:05.000000000 +0300 +++ projects/stargazer/plugins/authorization/inetaccess/inetaccess.cpp 2007-06-16 17:40:12.000000000 +0400 @@ -957,8 +957,21 @@ printfd(__FILE__, "SendError_8 %d bytes sent\n", res); break; } + map<uint32_t, IA_USER>::iterator it; + it = ip2user.find(ip); + + if (it != ip2user.end()) + { + map<uint32_t, IA_USER>::iterator itNext = ++it; + ip2user.erase(--it); + it = itNext; + printfd(__FILE__, "User %s erased\n", inet_ntostr(ip)); + } + else + printfd(__FILE__, "User %s NOT erased, not found in map\n", inet_ntostr(ip)); + return 0; } //----------------------------------------------------------------------------- int AUTH_IA::Send(uint32_t ip, const char * buffer, int len)
platerx Posted August 8, 2007 at 02:03 PM Posted August 8, 2007 at 02:03 PM Хм, а что делает этот код ? + map<uint32_t, IA_USER>::iterator itNext = ++it; + ip2user.erase(--it); + it = itNext; не проше ли было ? + ip2user.erase(it);
XoRe Posted August 11, 2007 at 04:29 PM Posted August 11, 2007 at 04:29 PM Сразу скажу что C++ не мой родной язык, так что на абсолютную правльность не претендует. ... Если у кого-то есть идеи по более правильному решению этой ошибки будет хорошо 2platerx: Человек сразу написал, что не претендует на оптимальность. Поэтому, если есть идеи, поделитесь)
Genius Posted August 16, 2007 at 07:51 AM Author Posted August 16, 2007 at 07:51 AM Вообщем могу отписать что патч рождает после себя глюки с не отключаемыми пользователями при переходе из месяца в месяц, который мне непонятен, в дебаг режиме его так и не ловил.
Genius Posted August 23, 2007 at 05:55 PM Author Posted August 23, 2007 at 05:55 PM Патч более неактуален, ошибка поправлена в новой сборке СТГ http://local.com.ua/forum/index.php?showtopic=9355 Спасибо автору.
Alferov Posted September 11, 2007 at 09:43 AM Posted September 11, 2007 at 09:43 AM Еще как актуален! Ничего там не поправлено.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now