Genius 0 Опубликовано: 2007-06-16 14:04:13 Share Опубликовано: 2007-06-16 14:04:13 Данный патч исправляет баг описанный тут 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 0 Опубліковано: 2007-08-08 14:03:29 Share Опубліковано: 2007-08-08 14:03:29 Хм, а что делает этот код ? + map<uint32_t, IA_USER>::iterator itNext = ++it; + ip2user.erase(--it); + it = itNext; не проше ли было ? + ip2user.erase(it); Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2007-08-11 16:29:04 Share Опубліковано: 2007-08-11 16:29:04 Сразу скажу что C++ не мой родной язык, так что на абсолютную правльность не претендует. ... Если у кого-то есть идеи по более правильному решению этой ошибки будет хорошо 2platerx: Человек сразу написал, что не претендует на оптимальность. Поэтому, если есть идеи, поделитесь) Ссылка на сообщение Поделиться на других сайтах
Genius 0 Опубліковано: 2007-08-16 07:51:37 Автор Share Опубліковано: 2007-08-16 07:51:37 Вообщем могу отписать что патч рождает после себя глюки с не отключаемыми пользователями при переходе из месяца в месяц, который мне непонятен, в дебаг режиме его так и не ловил. Ссылка на сообщение Поделиться на других сайтах
Genius 0 Опубліковано: 2007-08-23 17:55:23 Автор Share Опубліковано: 2007-08-23 17:55:23 Патч более неактуален, ошибка поправлена в новой сборке СТГ http://local.com.ua/forum/index.php?showtopic=9355 Спасибо автору. Ссылка на сообщение Поделиться на других сайтах
Alferov 0 Опубліковано: 2007-09-11 09:43:34 Share Опубліковано: 2007-09-11 09:43:34 Еще как актуален! Ничего там не поправлено. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас