myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> User Mode Fixer, API 2 | Исправление режима подключения пользователя

Рейтинг 5 V
Теги
Нет тегов для показа
Enyby
сообщение 15.1.2012, 20:02
Сообщение #61


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Название скрипта: User Mode Fixer
Версия скрипта: 2.05
Платформа: PtokaX
Версия API: API2
Автор: Enyby
Автор идеи: Meloun

Библиотека: Для работы скрипта требуется библиотека Lua Socket

Описание: Скрипт предназначен для исправления режима подключения пользователей. Подменяет нерабочий актив на пассив в поиске и запросах на соединение.

Возможности скрипта:
При подключении нового пользователя, если он актив, то проверяется доступность порта для соединения. Если порт не доступен, то хаб переводит клиента в режим переопределенного пассива. В этом режиме поисковые команды преобразуются в пассивные, а CTM в RCTM.
При включении режима исправлений IP адресов и ников, скрипт исправляет команды с неверными данными. DDoS'еры получают DDoS на свой адрес, а обычные пользователи могут искать и качать даже с неверным внешним IP адресом и/или ненастроенном активе. Правда только как пассивы.

Дополнительная информация:
  • Возможно будут наблюдаться приличные тормоза хаба, сразу после включения и после входа большого числа пользователей единовременно. Большого числа пользователей в активном режиме. Если все в пассиве, то тормозов не будет. Начиная с версии 1.06 с этим проблем нет.
  • Также возможны глюки при входе более чем 255 активных пользователей одновременно. Если будет потребность в этом скрипте на крупных хабах - перепишу на использование очереди с пулом сокетов, в этом случае проблем быть не должно. Начиная с версии 1.06 с этим проблем нет.
  • Скрипт игнорирует команды расширений NMDC протокола: TLS Шифрование и NAT Traversal. Если включено исправление IP и ника в командах, то они будут исправлены и в командах указанных расширений.


Совместимость с другими скриптами:
  • Совместим со скриптами фильтрации поиска. Такие скрипты должны быть выше в списке скриптов, чем данный скрипт. Фильтрация поиска должна осуществляться запретом обработки команд поиска.
  • Совместим со скриптами запрещающими соединение пользователей (команды ConnectToMe и RevConnectToMe). Такие скрипты должны быть выше в списке скриптов, чем данный скрипт.
  • Частично совместим со скриптами использующими бота хаба как пассивного клиента (подключение через RevConnectToMe к боту хаба). Для работы с такими скриптами потребуется указать использование отдельного бота в скрипте (sBotName = "UserModeFixer").
  • Частично совместим со скриптами, которые подменяют MyINFO. Совместим только при bFixMyINFO = false.
  • Несовместим со скриптами, которые подменяют или самостоятельно обрабатывают команды соединения пользователей (ConnectToMe и RevConnectToMe). Данные команды обработаны этим скриптом не будут. Никаких ошибок не будет, но необработанные команды могут работать неверно.
  • Несовместим со скриптами подменяющими поиск или же которые сами организуют поиск. Эти команды поиска не будут обработаны скриптом. Никаких ошибок не будет, но необработанные команды могут работать неверно.


TODO list
  1. Сделать проверку на наличие на порту нужного DC клиента, так как там может быть случайно указан какой-то другой открытый порт. Увы, сокеты в луа не позволяют это выполнить с приемлимыми затратами.
  2. Сделать проверку активных (по присылаемому тэгу) клиентов не только при входе на хаб, но и периодически во время нахождения на хабе, так как за это время проброс портов может измениться. Да и не только он. Функция опциональна и должна быть отключаема. По дефолту включена. Интервал проверки должен задаваться отдельно. По умолчанию 1 час.
  3. Сделать проверку размера очереди. Если значение больше некоторого предела, то уведомлять операторов, возможно утечка в пуле или еще какие-то проблемы.

История версий
v2.05:
  • Реализована обработка отключения пользователей без вызова UserDisconnected.

v2.04:
  • Доработан отладочный вывод.

v2.03:
  • Добавлена дополнительная проверка для одного плавающего бага.

v2.02:
  • Доработан вывод ошибок
  • Добавлены дополнительные проверки
  • Доработана статистика

v2.01:
  • Исправлены дефолтные настройки

v2.00:
  • Ядро скрипта переписано заново
  • Своя система учета числа пользователей
  • Экономное расходование ресурсов пула

v1.13:
  • Улучшена и доработана статистика.
  • Исправлен баг, связанный с учетом отключений пользователей разных профилей
  • Добавлена опция отключения валидации через функцию PtokaX

v1.12:
  • Улучшена и доработана статистика.

v1.11:
  • Улучшена и доработана статистика.
  • Улучшена и доработана быстрая отладка.
  • Добавлена возможность использования пользовательского меню.
  • Добавлена возможность исправления тэгов пользователей.

v1.10:
  • Улучшена и доработана статистика.
  • Меню сделано зависимым от активных настроек скрипта.

v1.09:
  • Исправлена ошибка целостности.
  • Добавлено исправление целостности при ее нарушении.
  • Добавлена быстрая отладка.
  • Добавлена генерация репортов при валидации. Теперь репорты приходят адекватно.
  • Поддержка изменения режима подключения "на лету", без переподключения к хабу.

v1.08:
  • Переработан вывод статистики.
  • Добавлена опция валидации целостности.

v1.07:
  • Исправлен подсчет занятого пула.

v1.06:
  • Добавлена возможность исправления IP адресов и ников в командах.
  • Добавлена очередь с пулом.
  • Реализован мягкий старт скрипта. Никаких подвисаний на старте.
  • Добавлена возможность указания отдельного бота для скрипта.
  • Добавлена возможность ведения отладочного лога.

v1.05:
  • Исправлена ошибка двойной отсылки статистики.
  • Добавлены данные про хаб и ОС в статистику.

v1.04:
  • Исправлена ошибка в очищении таблицы сокетов.
  • Добавлена статистика.

v1.03:
  • Добавлена возможность игнорирования несовпадения IP адресов. Если она не включена - будет выкидывать с хаба с соответствующим сообщением.

v1.02:
  • Убрана возможность исправления IP. Потому как это только дополнительная нагрузка на хаб. Для работы этой опции нужно отключить встроенную защиту хаба от DDoS, что крайне опасно.

v1.01:
  • Добавлены проверки на предмет существования адресата CTM на хабе.
  • Добавлена возможность исправления CTM команд с неверным IP адресом. Полезна как дополнительная защита от DDoS и от кривых настроек активного режима у клиентов.
  • Добавлена возможность включить игнорирование несовпадения ников в CTM команде.
  • Содержит ошибки! В частности в 119 строке.

v1.00:
  • Первая версия. Публичный релиз.


Прикрепленный файл  UserModeFixer_v2.05.lua ( 45.42 килобайт ) Кол-во скачиваний: 245
Предыдущие версии
Прикрепленный файл  UserModeFixer_v2.04.lua ( 43.84 килобайт ) Кол-во скачиваний: 9

Прикрепленный файл  UserModeFixer_v2.03.lua ( 43.82 килобайт ) Кол-во скачиваний: 8

Прикрепленный файл  UserModeFixer_v2.02.lua ( 43.54 килобайт ) Кол-во скачиваний: 4

Прикрепленный файл  UserModeFixer_v2.01.lua ( 43.38 килобайт ) Кол-во скачиваний: 11

Прикрепленный файл  UserModeFixer_v2.00.lua ( 43.51 килобайт ) Кол-во скачиваний: 7

Прикрепленный файл  UserModeFixer_v1.13.lua ( 37.61 килобайт ) Кол-во скачиваний: 9

Прикрепленный файл  UserModeFixer_v1.12.lua ( 37 килобайт ) Кол-во скачиваний: 9

Прикрепленный файл  UserModeFixer_v1.11.lua ( 36.22 килобайт ) Кол-во скачиваний: 14

Прикрепленный файл  UserModeFixer_v1.10.lua ( 30.32 килобайт ) Кол-во скачиваний: 4

Прикрепленный файл  UserModeFixer_v1.09.lua ( 28.82 килобайт ) Кол-во скачиваний: 7

Прикрепленный файл  UserModeFixer_v1.08.lua ( 22.8 килобайт ) Кол-во скачиваний: 4

Прикрепленный файл  UserModeFixer_v1.07.lua ( 19.95 килобайт ) Кол-во скачиваний: 5

Прикрепленный файл  UserModeFixer_v1.06.lua ( 19.51 килобайт ) Кол-во скачиваний: 15

Прикрепленный файл  UserModeFixer_v1.05.lua ( 12.38 килобайт ) Кол-во скачиваний: 9

Прикрепленный файл  UserModeFixer_v1.04.lua ( 12.21 килобайт ) Кол-во скачиваний: 5

Прикрепленный файл  UserModeFixer_v1.03.lua ( 6.88 килобайт ) Кол-во скачиваний: 18

Прикрепленный файл  UserModeFixer_v1.02.lua ( 6.74 килобайт ) Кол-во скачиваний: 3

Прикрепленный файл  UserModeFixer_v1.01.lua ( 7.13 килобайт ) Кол-во скачиваний: 2

Прикрепленный файл  UserModeFixer_v1.00.lua ( 5.94 килобайт ) Кол-во скачиваний: 5

Предыдущие версии выложены, исключительно, для ознакомления с их исходным кодом. Это связано с тем, что я могу убрать из последней версии какой-то функционал, который вам может пригодится при написании своих скриптов. Если же вас интересует использование скрипта на своем хабе, настоятельно рекомендую использовать только последнюю версию. В старых версиях могут быть ошибки.


P. S. Если у вас нет регистрации на этом форуме, а значит вы не можете качать вложения, то скачать этот скрипт, равно как и другие, можно по ссылке Мои скрипты.
Go to the top of the page
+Quote Post
7 страниц V  « < 2 3 4 5 6 > »   
Начать новую тему
Ответов
Marc
сообщение 26.1.2012, 1:14
Сообщение #62


Активный участник
***

Группа: Пользователи
Сообщений: 93
Регистрация: 25.1.2010
Пользователь №: 5 828
Спасибо сказали: 7 раз




Enyby!
Хотелось бы вот что заметить в работе данного скрипта: если админ или модератор начнёт давать ссылки нескольким пользователям с адресом хаба, то на него также в конечном счёте будет распространяться врем бан...
Если, допустим, для модератора это ещё можно и оставить, и тогда админ сам примет решение, то вот для админа неожиданно попать в бан, а на него он также будет распространяться, несколько это некорректно такое действие скрипта...
Можно ли это учесть и как-то дополнить скрипт, чтобы админ не попадал в такую ситуацию? (просто может быть так, что админ сидит за другим компом и у него нет возможности сразу самого себя разбанить)
Go to the top of the page
+Quote Post
Enyby
сообщение 26.1.2012, 1:16
Сообщение #63


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




О каком скрипте речь? Явно не о том, который обсуждается в данном топике.
Go to the top of the page
+Quote Post
Marc
сообщение 26.1.2012, 1:32
Сообщение #64


Активный участник
***

Группа: Пользователи
Сообщений: 93
Регистрация: 25.1.2010
Пользователь №: 5 828
Спасибо сказали: 7 раз




речь о скрипте: UserModeFixer_v2.01.lua ( 43.38 килобайт )
админ по нему попал в бан)
Go to the top of the page
+Quote Post
Enyby
сообщение 26.1.2012, 1:34
Сообщение #65


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Приехали. Какой бан? Этот скрипт НЕ МОЖЕТ дать бан.
У меня есть подозрение что речь идет о Defend PM.
Go to the top of the page
+Quote Post
Marc
сообщение 26.1.2012, 1:38
Сообщение #66


Активный участник
***

Группа: Пользователи
Сообщений: 93
Регистрация: 25.1.2010
Пользователь №: 5 828
Спасибо сказали: 7 раз




Enyby!
Сорри, прошу прощения, да речь шла о Defend PM!
Отвлекли меня тут разговорами...
Но я уже посмотрел, что Вы там уже внесли изменения в скрипт, именно те, что и были нужны!
Эх, так получилось, что не туда написал! Извините!
Go to the top of the page
+Quote Post
rival
сообщение 26.1.2012, 15:53
Сообщение #67


Начинающий
*

Группа: Пользователи
Сообщений: 29
Регистрация: 11.1.2009
Из: Владивосток
Пользователь №: 1 774
Спасибо сказали: 5 раз




иногда возникает ошибка
<Спикер> ...\scripts\UserModeFixer_v1.07.lua:981: attempt to index field '?' (a nil value)
stack traceback:
...\scripts\UserModeFixer_v1.07.lua:999: in function <...\scripts\UserModeFixer_v1.07.lua:998>

строка 981 >> if tUsers[tUser.sNick].bActive then
строка 999 >> Core.SendToOpChat(sErrorMsg.."\n"..debug.traceback())

на версию не обращай внимание,там свежая,просто чтоб список не обновлять,я в старом на новый(Версия скрипта: 2.01) замену кода сделал
Go to the top of the page
+Quote Post
Enyby
сообщение 26.1.2012, 16:09
Сообщение #68


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Цитата(rival @ 26.1.2012, 14:53) *
просто чтоб список не обновлять

Какой список?

В принципе за код с заменами я не отвечаю, ибо вы могли выпустить какую-то тонкость, не зная об этом.

Выложил версию 2.02.
Там добавлена дополнительная обработка ошибок и некоторые улучшения статистики.
Если будут снова ошибки, то будут со статистикой и отладкой.
Если в статистистике будет появляется параметр "+NilUser" - присылайте статистику с отладкой, будем разбираться.


Спасибо сказали:
Go to the top of the page
+Quote Post
rival
сообщение 26.1.2012, 16:25
Сообщение #69


Начинающий
*

Группа: Пользователи
Сообщений: 29
Регистрация: 11.1.2009
Из: Владивосток
Пользователь №: 1 774
Спасибо сказали: 5 раз




Раскрывающийся текст
Статистика для скрипта User Mode Fixer v2.01

Настройки:
sCmdPrefix = 'UMF'
bDetailedStats = true
bValidate = true
bFastDebug = true
iFastDebugHistory = 30
sDebugLog = nil
bFixMyINFO = true
iActionToInvalidIP = 1
iActionToInvalidNick = 1
iMaxPoolSize = 64
iCheckInterval = 100 мс
iSelectTimeout = 0 с
iTimeout = 60 с
iConnectTimeout = 3 с
Core.GetUsersCount() = 1149
#Core.GetOnlineUsers() = 1149

Статистика:
Время работы скрипта = 86301 с

MinMemoryUsage = 352
MemoryUsage = 717
MaxMemoryUsage = 5070

MinWaitCTM = 0
WaitCTM = 6
MaxWaitCTM = 593

MinPassive = 1
Passive = 466
MaxPassive = 502

MinPoolSize = 0
PoolSize = 0
MaxPoolSize = 359

MinForcedPassive = 1
ForcedPassive = 125
MaxForcedPassive = 162

MinInQueue = 0
InQueue = 0
MaxInQueue = 227

MinUsersCount = 1
UsersCount = 1149
MaxUsersCount = 1282

MinWaitConnect = 0
WaitConnect = 0
MaxWaitConnect = 359

MinActive = 1
Active = 552
MaxActive = 664

Время сбора статистики = 86301 с

+Connect = 7408 (0.085839098040579 в секунду или 1 за 11.649703023758 секунд)
+BlockedRCTMBetweenPassive = 1416 (0.016407689366288 в секунду или 1 за 60.947033898305 секунд)
+TimeoutWaitCTM = 1930 (0.02236358790744 в секунду или 1 за 44.715544041451 секунд)
+FixedSearchIP = 5701 (0.066059489461304 в секунду или 1 за 15.137870549026 секунд)
+SendRCTM = 12105 (0.14026488684952 в секунду или 1 за 7.1293680297398 секунд)
+Errors = 1 (1.1587351247378e-05 в секунду или 1 за 86301 секунд)
+ConnectTimeout = 1047 (0.012131956756005 в секунду или 1 за 82.426934097421 секунд)
+BlockedRCTMToOffline = 11488 (0.13311549112988 в секунду или 1 за 7.5122736768802 секунд)
+OtherCTMForBot = 118 (0.0013673074471906 в секунду или 1 за 731.36440677966 секунд)
+FixedSearch = 18712 (0.21682251654094 в секунду или 1 за 4.612067122702 секунд)
+FixedCTMIP = 75664 (0.87674534478164 в секунду или 1 за 1.1405820469444 секунд)
+SendFixedMyINFO = 30586 (0.35441072525231 в секунду или 1 за 2.8215850389067 секунд)
+BlockedCTMToPassive = 39266 (0.45498893407956 в секунду или 1 за 2.1978556511995 секунд)
+FixedCTM = 33861 (0.39235930058748 в секунду или 1 за 2.548684327102 секунд)
+SendFixedMyINFOs = 11859 (0.13741439844266 в секунду или 1 за 7.2772577789021 секунд)
+BlockedCTMToOffline = 3047 (0.035306659250762 в секунду или 1 за 28.323268788973 секунд)
+ChangedMyINFO = 3924 (0.045468766294713 в секунду или 1 за 21.993119266055 секунд)
+ConnectDone = 6356 (0.073649204528337 в секунду или 1 за 13.577879169289 секунд)

Статус:
#tClientSockets = 0
#tUsers = 1149
#tQueue = 0
#tQueueIndex = 0
#tForcedPassive = 125
#tWaitCTM = 6
#tClientConnect = 0
#tSocketNick = 0
#tFastDebugHistory = 30

HubVersion = 0.4.1.1
LuaVersion = Lua 5.1
OS = Windows_NT

Go to the top of the page
+Quote Post
Enyby
сообщение 26.1.2012, 16:30
Сообщение #70


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Нужна статистика + быстрая отладка (Fast Debug) сразу после возникновения ошибки. Если ее сейчас нет, то ставьте обновленную версию, она сама снимет все что надо в момент возникновения ошибки. Пришлете все это сюда.
А так сказать что-то трудно.

Хотя, скорее всего, уже ошибки не будет, а будет повявлятся параметр "+NilUser". В этом случае тоже статитистику неплохо бы.
Go to the top of the page
+Quote Post
rival
сообщение 26.1.2012, 23:36
Сообщение #71


Начинающий
*

Группа: Пользователи
Сообщений: 29
Регистрация: 11.1.2009
Из: Владивосток
Пользователь №: 1 774
Спасибо сказали: 5 раз




Раскрывающийся текст
[05:04:55] <Спикер> ...\scripts\UserModeFixer_v2.02.lua:981: attempt to index field '?' (a nil value)
stack traceback:
...\scripts\UserModeFixer_v2.02.lua:1002: in function <...\scripts\UserModeFixer_v2.02.lua:1000>

Статистика для скрипта User Mode Fixer v2.02

Настройки:
sCmdPrefix = 'UMF'
bDetailedStats = true
bValidate = true
bFastDebug = true
iFastDebugHistory = 30
sDebugLog = nil
bFixMyINFO = true
iActionToInvalidIP = 1
iActionToInvalidNick = 1
iMaxPoolSize = 64
iCheckInterval = 250 мс
iSelectTimeout = 0 с
iTimeout = 60 с
iConnectTimeout = 3 с
Core.GetUsersCount() = 1056
#Core.GetOnlineUsers() = 1056

Статистика:
Время работы скрипта = 10753 с

MinMemoryUsage = 322
MemoryUsage = 567
MaxMemoryUsage = 5168

MinWaitCTM = 0
WaitCTM = 10
MaxWaitCTM = 604

MinPassive = 1
Passive = 428
MaxPassive = 514

MinPoolSize = 0
PoolSize = 0
MaxPoolSize = 309

MinForcedPassive = 1
ForcedPassive = 158
MaxForcedPassive = 363

MinInQueue = 0
InQueue = 0
MaxInQueue = 157

MinUsersCount = 1
UsersCount = 1056
MaxUsersCount = 1121

MinWaitConnect = 0
WaitConnect = 0
MaxWaitConnect = 309

MinActive = 1
Active = 460
MaxActive = 486

Время сбора статистики = 10753 с

+Connect = 2818 (0.2620664000744 в секунду или 1 за 3.8158268275373 секунд)
+BlockedRCTMBetweenPassive = 852 (0.079233702222636 в секунду или 1 за 12.620892018779 секунд)
+TimeoutWaitCTM = 1303 (0.12117548591091 в секунду или 1 за 8.2524942440522 секунд)
+FixedSearchIP = 521 (0.048451594903748 в секунду или 1 за 20.63915547025 секунд)
+SendRCTM = 4834 (0.44954896308007 в секунду или 1 за 2.2244517997518 секунд)
+Errors = 1 (9.2997303078211e-05 в секунду или 1 за 10753 секунд)
+ConnectTimeout = 500 (0.046498651539105 в секунду или 1 за 21.506 секунд)
+BlockedRCTMToOffline = 2723 (0.25323165628197 в секунду или 1 за 3.9489533602644 секунд)
+OtherCTMForBot = 30 (0.0027899190923463 в секунду или 1 за 358.43333333333 секунд)
+FixedSearch = 3040 (0.28271180135776 в секунду или 1 за 3.5371710526316 секунд)
+FixedCTMIP = 9416 (0.87566260578443 в секунду или 1 за 1.141992353441 секунд)
+SendFixedMyINFOs = 4481 (0.41672091509346 в секунду или 1 за 2.3996875697389 секунд)
+BlockedCTMToPassive = 5826 (0.54180228773366 в секунду или 1 за 1.8456917267422 секунд)
+FixedCTM = 4267 (0.39681949223473 в секунду или 1 за 2.5200374970705 секунд)
+SendFixedMyINFO = 5745 (0.53426950618432 в секунду или 1 за 1.8717145343777 секунд)
+BlockedCTMToOffline = 71 (0.006602808518553 в секунду или 1 за 151.45070422535 секунд)
+ChangedMyINFO = 1335 (0.12415139960941 в секунду или 1 за 8.0546816479401 секунд)
+ConnectDone = 2316 (0.21538175392914 в секунду или 1 за 4.6429188255613 секунд)

Статус:
#tClientSockets = 0
#tUsers = 1056
#tQueue = 0
#tQueueIndex = 0
#tForcedPassive = 158
#tWaitCTM = 10
#tClientConnect = 0
#tSocketNick = 0
#tFastDebugHistory = 30

HubVersion = 0.4.1.1
LuaVersion = Lua 5.1
OS = Windows_NT


FastDebug:
1. 88.85.200.244 Ex1 true Block CTM to Passive: $ConnectToMe [irina916] 88.85.200.244:0|
2. 88.85.200.244 Ex1 true Block CTM to Passive: $ConnectToMe [irina916] 88.85.200.244:0|
3. 88.85.200.244 Ex1 true Block CTM to Passive: $ConnectToMe [irina916] 88.85.200.244:0|
4. 88.85.200.244 Ex1 true Block CTM to Passive: $ConnectToMe benail 88.85.200.244:0|
5. 88.85.200.244 Ex1 true Block CTM to Passive: $ConnectToMe benail 88.85.200.244:0|
6. 88.85.200.244 Ex1 true Block CTM to Passive: $ConnectToMe benail 88.85.200.244:0|
7. 88.85.200.244 Ex1 true Block CTM to Passive: $ConnectToMe benail 88.85.200.244:0|
8. 88.85.200.244 Ex1 true Block CTM to Passive: $ConnectToMe 0883nic2 88.85.200.244:0|
9. 88.85.200.244 Ex1 true Block CTM to Passive: $ConnectToMe 0883nic2 88.85.200.244:0|
10. 88.85.200.244 Ex1 true Block CTM to Passive: $ConnectToMe 0883nic2 88.85.200.244:0|
11. 95.27.68.172 9xPrototipx9 true Sended RCTM: $RevConnectToMe pozitiv 9xPrototipx9|
12. 95.27.68.172 9xPrototipx9 true real connect
13. 109.126.21.210 barada true Invalid IP in CTM: $ConnectToMe satneve 172.26.252.12:10031|
14. 109.126.21.210 barada true Fix CTM: $ConnectToMe satneve 172.26.252.12:10031| to: $ConnectToMe satneve 109.126.21.210:10031|
15. 109.126.21.210 barada true Invalid IP in CTM: $ConnectToMe satneve 172.26.252.12:10031|
16. 109.126.21.210 barada true Fix CTM: $ConnectToMe satneve 172.26.252.12:10031| to: $ConnectToMe satneve 109.126.21.210:10031|
17. 109.126.21.210 barada true Invalid IP in CTM: $ConnectToMe satneve 172.26.252.12:10031|
18. 109.126.21.210 barada true Fix CTM: $ConnectToMe satneve 172.26.252.12:10031| to: $ConnectToMe satneve 109.126.21.210:10031|
19. 188.187.12.37 [OZK]Rurulnew true Block RCTM to Offline: $RevConnectToMe [OZK]Rurulnew pozitiv|
20. 88.85.200.244 Ex1 true real disconnect
21. 2.93.233.15 kokonv true Fix Search: $Search 2.93.233.15:3271 F?T?0?9?TTH:6EBVO6XMF2NJ5HGTBNKSJZVN5C5ZWFEQW2KX2MI| to: $Search Hub:kokonv F?T?0?9?TTH:6EBVO6XMF2NJ5HGTBNKSJZVN5C5ZWFEQW2KX2MI|
22. 79.164.28.125 Ksilo true fixed MyINFO. from: $MyINFO $ALL Ksilo <StrgDC++ V:2.42,M:A,H:75/0/0,S:75>$ $10 $$182321811486$| to: $MyINFO $ALL Ksilo <StrgDC++ V:2.42,M:P,H:75/0/0,S:75>$ $10 $$182321811486$|
23. 2.93.90.197 [saratov]kseniy true Added in queue
24. 2.93.90.197 [saratov]kseniy true Connect done
25. 81.88.222.19 lysandrej true Block CTM to Passive: $ConnectToMe jenek25 81.88.222.19:28502|
26. 81.88.222.19 lysandrej true Block CTM to Passive: $ConnectToMe jenek25 81.88.222.19:28502|
27. 81.88.222.19 lysandrej true Block CTM to Passive: $ConnectToMe jenek25 81.88.222.19:28502|
28. 81.88.222.19 lysandrej true Block CTM to Passive: $ConnectToMe jenek25 81.88.222.19:28502|
29. 91.206.126.248 kinderhomjkdenis true Sended RCTM: $RevConnectToMe pozitiv kinderhomjkdenis|
30. 91.206.126.248 kinderhomjkdenis true real connect

Пожалуйста, пришлите данное сообщение на форум mydc.ru: http://mydc.ru/topic5112.html или же на почту: enyby@ya.ru

Line 981: if tUsers[tUser.sNick].bActive then
есть подозрение,ошибка вылазит при разрыве связи от провайдера,но выложить стоило,как пример
Go to the top of the page
+Quote Post
Enyby
сообщение 27.1.2012, 0:18
Сообщение #72


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Все это выглядит похоже на подключение юзера в обход UserConnected.
Или на присутствии на хабе юзера, который не выводится в общем списке.
Или на отсылке запроса на подключения юзеру находящемуся на невнятной стадии подключения. Это, кстати, возможно если кого-то часто кидает.
А так все это похоже на мистику.

Новая версия 2.03.
Добавил обработку этого бага.

Кстати, совет тем, у кого большой хаб. Если происходит медленный вход, то это может стать причиной отваливания юзеров по таймауту и переопределением в пассив. Чтобы этого не происходило - увеличиваем таймаут соединения с 3 секунд до приемлимых значений, например, 10 секунд. В тоже время можно попробовать уменьшить интервал вызова главного цикла с 100 мс до 10 мс.
На винде сделать интервал меньше 10 мс не получится в принципе, так как все что меньше, будет приводится к 10 мс. Это особенности реализации таймеров C++ на винде.
На линуксовой птоке используется своя реализация таймеров, работающая из принимающего цикла, так что там может быть все что угодно, но на крупных хабах, хотя бы 10 мс задержки между вызовами получить будет нереально, будет больше. А все потому что пользователей много и все обычно что-то шлют.


Спасибо сказали:
Go to the top of the page
+Quote Post
Ameet
сообщение 27.1.2012, 10:31
Сообщение #73


Активный участник
***

Группа: Пользователи
Сообщений: 73
Регистрация: 5.1.2009
Из: Украина, г. Сумы
Пользователь №: 1 684
Спасибо сказали: 0 раз




Enyby,
ты о local iCheckInterval = 100 -- интервал в миллисекундах между проверками: таймаута RCTM, соединения, опроса сокетов и обработки очереди?
здесь ставить 10 мс?
Go to the top of the page
+Quote Post
Enyby
сообщение 27.1.2012, 10:33
Сообщение #74


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Да.
Go to the top of the page
+Quote Post
Ameet
сообщение 27.1.2012, 11:19
Сообщение #75


Активный участник
***

Группа: Пользователи
Сообщений: 73
Регистрация: 5.1.2009
Из: Украина, г. Сумы
Пользователь №: 1 684
Спасибо сказали: 0 раз




онлайн почти 1к, вечером жду 3к+ посмотрим что будет

Ошибка
FatalError: Unknown user in WaitCTM

Статистика для скрипта User Mode Fixer v2.03

Настройки:
sCmdPrefix = 'UMF'
bDetailedStats = true
bValidate = true
bFastDebug = true
iFastDebugHistory = 30
sDebugLog = nil
bFixMyINFO = true
iActionToInvalidIP = 1
iActionToInvalidNick = 1
iMaxPoolSize = 32
iCheckInterval = 100 мс
iSelectTimeout = 0 с
iTimeout = 60 с
iConnectTimeout = 3 с
Core.GetUsersCount() = 960
#Core.GetOnlineUsers() = 960

Статистика:
Время работы скрипта = 3775 с

MinMemoryUsage = 289
MemoryUsage = 466
MaxMemoryUsage = 1199

MinActive = 1
Active = 8
MaxActive = 11

MinWaitCTM = 0
WaitCTM = 7
MaxWaitCTM = 416

MinPassive = 1
Passive = 460
MaxPassive = 475

MinPoolSize = 0
PoolSize = 0
MaxPoolSize = 8

MinWaitConnect = 0
WaitConnect = 0
MaxWaitConnect = 8

MinInQueue = 0
InQueue = 0
MaxInQueue = 8

MinUsersCount = 1
UsersCount = 963
MaxUsersCount = 980

MinForcedPassive = 1
ForcedPassive = 488
MaxForcedPassive = 489

Время сбора статистики = 3775 с

+TimeoutWaitCTM = 782 (0.20715231788079 в секунду или 1 за 4.8273657289003 секунд)
+FixedSearchIP = 21 (0.0055629139072848 в секунду или 1 за 179.7619047619 секунд)
+SendFixedMyINFOs = 866 (0.22940397350993 в секунду или 1 за 4.3591224018476 секунд)
+FixedSearch = 6932 (1.8362913907285 в секунду или 1 за 0.54457587997692 секунд)
+SendFixedMyINFO = 7599 (2.0129801324503 в секунду или 1 за 0.49677589156468 секунд)
+FixedCTMIP = 143 (0.037880794701987 в секунду или 1 за 26.398601398601 секунд)
+ConnectedDuplicateUser = 16 (0.0042384105960265 в секунду или 1 за 235.9375 секунд)
+Connect = 21 (0.0055629139072848 в секунду или 1 за 179.7619047619 секунд)
+ChangedMyINFO = 17 (0.0045033112582781 в секунду или 1 за 222.05882352941 секунд)
+ConnectDone = 21 (0.0055629139072848 в секунду или 1 за 179.7619047619 секунд)
+SendRCTM = 881 (0.23337748344371 в секунду или 1 за 4.2849035187287 секунд)

Статус:
#tClientSockets = 0
#tUsers = 963
#tQueue = 0
#tQueueIndex = 0
#tForcedPassive = 488
#tWaitCTM = 7
#tClientConnect = 0
#tSocketNick = 0
#tFastDebugHistory = 30

HubVersion = 0.4.1.2
LuaVersion = Lua 5.1
OS = Windows_NT


FastDebug:
1. 95.24.97.42 shrek_SENSEY true fixed MyINFO. from: $MyINFO $ALL shrek_SENSEY [3]Бан за бан<FlylinkDC++ V:r501-beta69,M:A,H:30/0/0,S:15>$ $50 $$299286891763$| to: $MyINFO $ALL shrek_SENSEY [3]Бан за бан<FlylinkDC++ V:r501-beta69,M:P,H:30/0/0,S:15>$ $50 $$299286891763$|
2. 93.79.69.113 Kesh777 true fixed MyINFO. from: $MyINFO $ALL Kesh777 <SSQLite++ V:2.42.6834,M:A,H:9/0/0,S:9>$ $100$$26244272265$| to: $MyINFO $ALL Kesh777 <SSQLite++ V:2.42.6834,M:P,H:9/0/0,S:9>$ $100$$26244272265$|
3. 93.79.90.30 peer. false real disconnect
4. 93.79.3.114 Aviva true Sended RCTM: $RevConnectToMe #[Barabashka] Aviva|
5. 93.79.3.114 Aviva true real connect
6. 93.79.1.44 Таничка true Wait CTM timeout. Send to all fixed MyINFO: $MyINFO $ALL Таничка [15]<FlylinkDC++ V:r500-x64,M:P,H:12/0/0,S:15>$ $50$$11324788654$|
7. 46.118.235.200 Порнослоник true Fix Search: $Search 46.118.235.200:9113 F?T?0?9?TTH:NAYVMN33SPVZ3IZH4K6LJMSWYTI34YDK24S4NLI| to: $Search Hub:Порнослоник F?T?0?9?TTH:NAYVMN33SPVZ3IZH4K6LJMSWYTI34YDK24S4NLI|
8. 178.77.1.197 Season true Fix Search: $Search 178.77.1.197:1100 F?T?0?9?TTH:TPWR5SHZA5LKZREJW4U3VAVWOBJIHEX4AE2WINY| to: $Search Hub:Season F?T?0?9?TTH:TPWR5SHZA5LKZREJW4U3VAVWOBJIHEX4AE2WINY|
9. 93.79.56.93 Kubik true Fix Search: $Search 93.79.56.93:1426 F?T?0?9?TTH:QXVBVYIP2O565Z55XECWPAMC2B7F7OJYPDSBFLY| to: $Search Hub:Kubik F?T?0?9?TTH:QXVBVYIP2O565Z55XECWPAMC2B7F7OJYPDSBFLY|
10. 93.79.20.3 28serg26 true Fix Search: $Search 93.79.20.3:5280 F?T?0?9?TTH:NMOU4ACQ7EZAFUMI2CYNDAGQWAAGUV4FYDWTYII| to: $Search Hub:28serg26 F?T?0?9?TTH:NMOU4ACQ7EZAFUMI2CYNDAGQWAAGUV4FYDWTYII|
11. 93.79.58.169 hkgfkfkyfy true Fix Search: $Search 93.79.58.169:1026 F?T?0?9?TTH:ZM6H465RJNIJB5WKHJTU5QJWZQEKYE2KHFCSEIY| to: $Search Hub:hkgfkfkyfy F?T?0?9?TTH:ZM6H465RJNIJB5WKHJTU5QJWZQEKYE2KHFCSEIY|
12. 93.79.5.12 bodrov87 true Fix Search: $Search 93.79.5.12:2811 F?T?0?9?TTH:N4CNSCE2WQ2UIQLZM5YZ4NLQJWAE6RJVEG2EIJQ| to: $Search Hub:bodrov87 F?T?0?9?TTH:N4CNSCE2WQ2UIQLZM5YZ4NLQJWAE6RJVEG2EIJQ|
13. 93.79.61.253 matein84 true fixed MyINFO. from: $MyINFO $ALL matein84 [0]<FlylinkDC++ V:r404,M:A,H:17/0/0,S:15>$ $0.005$$50176080925$| to: $MyINFO $ALL matein84 [0]<FlylinkDC++ V:r404,M:P,H:17/0/0,S:15>$ $0.005$$50176080925$|
14. 93.79.95.116 Shutka true Fix Search: $Search 93.79.95.116:4839 F?T?0?9?TTH:R2ZSPFUS7P3WL336IV7E5T5JT6SLGSLQ7WIXYAI| to: $Search Hub:Shutka F?T?0?9?TTH:R2ZSPFUS7P3WL336IV7E5T5JT6SLGSLQ7WIXYAI|
15. 93.79.22.95 DONIC777 true fixed MyINFO. from: $MyINFO $ALL DONIC777 [14]<FlylinkDC++ V:r501-beta69-x64,M:A,H:12/0/0,S:15>$ $50$$18280318245$| to: $MyINFO $ALL DONIC777 [14]<FlylinkDC++ V:r501-beta69-x64,M:P,H:12/0/0,S:15>$ $50$$18280318245$|
16. 178.213.212.137 268310268310 true Fix Search: $Search 178.213.212.137:1320 F?T?0?9?TTH:OHV2OP7EKICPIPZ7TTQTLUB62H76JVIDM3Z4DYQ| to: $Search Hub:268310268310 F?T?0?9?TTH:OHV2OP7EKICPIPZ7TTQTLUB62H76JVIDM3Z4DYQ|
17. 93.79.1.44 Таничка true Fix Search: $Search 93.79.1.44:64411 F?T?0?9?TTH:LIDH2JDD7O24JUNZAIN7MKQKG3LDJHXBRLUVFWI| to: $Search Hub:Таничка F?T?0?9?TTH:LIDH2JDD7O24JUNZAIN7MKQKG3LDJHXBRLUVFWI|
18. 31.135.145.249 djulija false real connect
19. 77.122.76.182 Xomiak true fixed MyINFO. from: $MyINFO $ALL Xomiak <SSQLite++ V:2.42.6834,M:A,H:7/1/0,S:8>$ $0.01$$45037566398$| to: $MyINFO $ALL Xomiak <SSQLite++ V:2.42.6834,M:P,H:7/1/0,S:8>$ $0.01$$45037566398$|
20. 93.79.69.231 Lizass true Fix Search: $Search 93.79.69.231:7145 F?T?0?9?TTH:OJQ7NO7ISIVLOWX2PYU66OAVXWBJBPZEE3ONMFI| to: $Search Hub:Lizass F?T?0?9?TTH:OJQ7NO7ISIVLOWX2PYU66OAVXWBJBPZEE3ONMFI|
21. 93.79.89.112 jay-z true Wait CTM timeout. Send to all fixed MyINFO: $MyINFO $ALL jay-z <FlylinkDC++ V:(r384),M:P,H:6/0/0,S:15>$ $100$$30740732577$|
22. 93.79.1.16 123334 false real disconnect
23. 93.79.61.143 ромашка true Fix Search: $Search 93.79.61.143:1034 F?T?0?9?TTH:4Y2LLXHNEA3ZHQJB66D4HJERKT5OW5MAPNGG73Q| to: $Search Hub:ромашка F?T?0?9?TTH:4Y2LLXHNEA3ZHQJB66D4HJERKT5OW5MAPNGG73Q|
24. 95.106.56.163 Brixx true Sended RCTM: $RevConnectToMe #[Barabashka] Brixx|
25. 95.106.56.163 Brixx true real connect
26. 109.162.82.34 GooNiik1 true Fix Search: $Search 109.162.82.34:10060 F?T?0?9?TTH:BQCSVB7RTPPIUWYMPCKHVX5I52K4BBK4GAQA54Y| to: $Search Hub:GooNiik1 F?T?0?9?TTH:BQCSVB7RTPPIUWYMPCKHVX5I52K4BBK4GAQA54Y|
27. 195.222.88.147 впапоалyoj true Fix Search: $Search 195.222.88.147:30255 F?T?0?9?TTH:WRVVYDOA5XXS2MZUP33OGI2AXJ4X6JSU2SEQLBI| to: $Search Hub:впапоалyoj F?T?0?9?TTH:WRVVYDOA5XXS2MZUP33OGI2AXJ4X6JSU2SEQLBI|
28. 93.79.59.9 Маруся true Fix Search: $Search 93.79.59.9:30372 F?T?0?9?TTH:ZSHZB56N67S2DQ32O3QRJC2MJPCI6YN33L2ITFI| to: $Search Hub:Маруся F?T?0?9?TTH:ZSHZB56N67S2DQ32O3QRJC2MJPCI6YN33L2ITFI|
29. 176.8.210.184 _shaitan4eg_ true fixed MyINFO. from: $MyINFO $ALL _shaitan4eg_ [9]<FlylinkDC++ V:r501-beta69,M:A,H:18/0/0,S:15>$ $1000 $$162586421556$| to: $MyINFO $ALL _shaitan4eg_ [9]<FlylinkDC++ V:r501-beta69,M:P,H:18/0/0,S:15>$ $1000 $$162586421556$|
30. Text message: Unknown user in WaitCTM
Go to the top of the page
+Quote Post
rival
сообщение 27.1.2012, 11:42
Сообщение #76


Начинающий
*

Группа: Пользователи
Сообщений: 29
Регистрация: 11.1.2009
Из: Владивосток
Пользователь №: 1 774
Спасибо сказали: 5 раз




пробуй скрипт поставить выше/ниже других,и посмотри что будет, определяет пассив(принудительно),по факту - активный режим(я про себя) заходил
у тебя стоит скрипт который определяет страну и профиль пользователя в описании,весьма вероятная причина в работе этого скрипта
Go to the top of the page
+Quote Post
Enyby
сообщение 27.1.2012, 12:04
Сообщение #77


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Цитата(Ameet @ 27.1.2012, 10:19) *
+TimeoutWaitCTM = 782 (0.20715231788079 в секунду или 1 за 4.8273657289003 секунд)

Это плохой признак. Следует увеличить iTimeout. Поставьте 600 для начала.
Цитата(Ameet @ 27.1.2012, 10:19) *
+ConnectedDuplicateUser = 16 (0.0042384105960265 в секунду или 1 за 235.9375 секунд)

Это вообще очень круто.
В общем это вызов UserConnected для одного ника несколько раз, без UserDisconnected между вызовами.
Попробуйте остальные скрипты отрубить или поставить этот выше всех.
Выше не должно быть скриптов, которые возвращают return true в UserDisconnected, а ниже - скриптов, которые отключают юзера в UserConnected.

ADD:
Версия 2.04.
Улучшен отладочный вывод. Никаких критичных ихменений.

Ameet, ставь новую версию и присылай снова лог ошибки. Там будет чуть больше информации. Так же проверь другие скрипты на предмет совместимости с этим.


Спасибо сказали:
Go to the top of the page
+Quote Post
Ameet
сообщение 27.1.2012, 12:21
Сообщение #78


Активный участник
***

Группа: Пользователи
Сообщений: 73
Регистрация: 5.1.2009
Из: Украина, г. Сумы
Пользователь №: 1 684
Спасибо сказали: 0 раз




Цитата(Enyby @ 27.1.2012, 12:04) *
Это плохой признак. Следует увеличить iTimeout. Поставьте 600 для начала.

Это вообще очень круто.
В общем это вызов UserConnected для одного ника несколько раз, без UserDisconnected между вызовами.
Попробуйте остальные скрипты отрубить или поставить этот выше всех.
Выше не должно быть скриптов, которые возвращают return true в UserDisconnected, а ниже - скриптов, которые отключают юзера в UserConnected.

ADD:
Версия 2.04.
Улучшен отладочный вывод. Никаких критичных ихменений.

Ameet, ставь новую версию и присылай снова лог ошибки. Там будет чуть больше информации. Так же проверь другие скрипты на предмет совместимости с этим.

Установил таймаут 600, что ещё бы ты посоветовал для большого онлайна?
Go to the top of the page
+Quote Post
rival
сообщение 27.1.2012, 12:21
Сообщение #79


Начинающий
*

Группа: Пользователи
Сообщений: 29
Регистрация: 11.1.2009
Из: Владивосток
Пользователь №: 1 774
Спасибо сказали: 5 раз




не успеваю обновлять big_smile.gif
Go to the top of the page
+Quote Post
Ameet
сообщение 27.1.2012, 12:31
Сообщение #80


Активный участник
***

Группа: Пользователи
Сообщений: 73
Регистрация: 5.1.2009
Из: Украина, г. Сумы
Пользователь №: 1 684
Спасибо сказали: 0 раз




Цитата(rival @ 27.1.2012, 11:42) *
пробуй скрипт поставить выше/ниже других,и посмотри что будет, определяет пассив(принудительно),по факту - активный режим(я про себя) заходил
у тебя стоит скрипт который определяет страну и профиль пользователя в описании,весьма вероятная причина в работе этого скрипта

сейчас только выше стоит антиреклама и авто-сохранение
Go to the top of the page
+Quote Post
rival
сообщение 27.1.2012, 12:33
Сообщение #81


Начинающий
*

Группа: Пользователи
Сообщений: 29
Регистрация: 11.1.2009
Из: Владивосток
Пользователь №: 1 774
Спасибо сказали: 5 раз




вот теперь нормально определило
Go to the top of the page
+Quote Post

7 страниц V  « < 2 3 4 5 6 > » 
Ответить в данную темуНачать новую тему
7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts От: User Info 1.0 (русская Версия)
От темы с ID: 205
0 Sergey613 4 582 9.10.2012, 20:03 Посл. сообщение: Sergey613
No new Topic has attachmentsUser Info 1.0 (русская Версия)
API2 | Скрипт для просмотра информации о юзерах
26 dimetrius 39 098 28.12.2010, 17:54 Посл. сообщение: ProGeTTo
No New Posts запрос: User-Sity
Скрипт, выдающий город выделенного юзера
7 Uncle_Dif 11 717 1.9.2009, 20:20 Посл. сообщение: Jaska
No New Posts Topic has attachmentsPowersimple User Information 1.2
API1, API2 | Информация по IP и никам юзеров
5 NikseR 9 117 15.8.2009, 16:57 Посл. сообщение: Климент
Closed Fake User
2 West 7 480 27.11.2008, 19:28 Посл. сообщение: Svyat

 



RSS Сейчас: 23.11.2024, 5:29