Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Технические вопросы по RusHub'у _ Вопросы по RusHub

Автор: Jaska 28.8.2009, 16:18

летает surrender.gif успехов в разработке! уверен проект будет успешным!

Автор: Delion 28.8.2009, 16:55

Цитата
Я надеюсь всё только впереди

А почему нет ни слова про отличительные особенности? Перспективы? Преимущества?
На чём движок,кстати?

Автор: Setuper 28.8.2009, 17:22

Пока что почти полностью реализовал протокол. В перспективе подключить мускул, сделать веб-морду и удалённое управление.
Преимущество - достаточно высокая оптимизация.
Написано на vs 2008 или vs 2005 без разницы big_smile.gif

Автор: aspirin 28.8.2009, 18:50

Работает отлично! Про функционал конечно "Москва не сразу строилась" будем ждать новых версий.
Setuper респект! big_smile.gif

Автор: Alexey 28.8.2009, 23:55

Цитата(mariner @ 28.8.2009, 16:11) *
/rеквестую сабж на qt в режиме - сервер-модра (чтобы мона было без гуи пахать). ну и да - кроссплатформенность тоже не помешает

А при чём тут qt, если гуй не нужен?

Автор: mariner 29.8.2009, 0:03

гуй нужен(с). Дужно схему как с мускулем - демон без гуй и гуй отдельно, для подключения и руления деманом

Автор: Wariner 29.8.2009, 0:27

Илюх, не сочти за наглость, но может все надпись сделаешь на русском? Раз это русский хаб то пусть всё будет по нашему! Думаю стоит продвигать наш язык))))

Автор: Setuper 29.8.2009, 0:30

Естественно. Скажу даже больше... Надписи можно будет менять и переводить на другие языки если захочется. Всё это в разработке пока что, а те надписи, которые существуют, так это временно big_smile.gif

Автор: Wariner 23.9.2009, 8:05

Вопрос зачем иметь две функции при входе юзера(в момент захода и при окончательном заходе) что это даёт?

Автор: Setuper 23.9.2009, 12:16

Функция OnUserEnter - это аналог функции птохи UserConnected.
Функция OnUserConnected - это функция, которая выполняется самой первой при входе. Выполняется после отправки клиенту команды $Lock и до любых других действий. В птохе некий аналог этой функции SupportsArrival. Однако, функция SupportsArrival не будет выполняться, если клиент не поддерживает характеристики и дополнения. Так как это первоначальный этап входа, то на данном этапе определён только ip адрес.

Автор: mariner 4.1.2010, 18:44

Собственно техпорсы предлагаю пенренести сюда, оставив в теме RusHUB только багрепорты и новости в новых версиях.

Автор: Nickolya 4.1.2010, 23:36

Можно разъяснений по поводу работы функции

Код
Core.SetUser(UID/sNick, iType, Value)
а именно вот этих 2 показателей:
Код
3 - пользовательские данные (sData)
4 - пользователь в оп-лите (bInOpList)
что вообще есть пользовательские данные и должен ли юзер при смене данных о нахождении в оплисте туда попадать или исчезать оттуда, по моим маленьким тестам если выставить bInOpList в true при том что юзер онлайн, юзер не попадает в оплист, и при изменении bInOpList с true на false тоже никаких действий нет, юзер так и остается в оплисте. Так и должно быть? По-моему будет удобно если хаб будет сам выполнять данные операции по вводу и выводу из оплиста юзера.

Автор: Setuper 4.1.2010, 23:56

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

Core.SetUser(UID, 4, true) до входа (после получения пароля) вносит пользователя в лист операторов (устанавливает ключик).


Пример из скрипта регистрации:

Код
function OnMyPass(UID, sData)
  local sPass = sData:match"^.- (%S+)$" -- "$MyPass <pass>"
  local tRegInfo = tRegUsers[Core.GetUser(UID, 1).sNick] -- Получаем регистрационные данные
  if not sPass or sPass ~= tRegInfo.sPass then -- Проверяем правильность пароля
    Core.SendToUser(UID, ("<%s> "):format(sBot)..sBadPassMsg.."|$BadPass") -- Отсылаем сообщение о неверном пароле
    Core.Disconnect(UID) -- Разъединяем пользователя
  else
    Core.SetUser(UID, 1, tRegInfo.iProfile) -- Устанавливаем профиль пользователю
    Core.SetUser(UID, 4, true) -- Добавляем пользователя в оплист
  end
end

Хотя действительно нужно сделать эту возможность не только при входе (не только до добавления пользователя в списки). В следующем релизе сделаю.

Автор: ExC0tiC 5.1.2010, 12:12

Можно ли добавить функцию, или реализовать скриптом аналог этого

Цитата
Core.RegBot(sBot,sEmail,sDesc,true)
из птоки.
Возможно с этим введение, решилась бы проблема со входом на хаб пользователей с никами ботов.

Автор: Setuper 5.1.2010, 14:34

Можно.
Записал себе в TODO

Автор: Nickolya 6.1.2010, 19:19

Хочу узнать, а зачем делать функции которые возвращают всегда статичные данные пока хаб работает? Я про фукнции

Цитата
Core.GetHubInfo() Core.GetMainDir() Core.GetScriptsDir()
может лучше определить некоторые переменные в таблице Core типа
Цитата
sLuaPluginVersin sHubVersion sMainDir sScriptsDir
чтобы не делать лишних вызовов функций? По-моему так удобнее, логичнее и разумнее.

Автор: Setuper 6.1.2010, 20:12

Да, действительно. В следующей версии плагина сделаю.

Однако, опять же это будет изменение api, и придётся немного подправлять имеющиеся скрипты

Автор: Wariner 6.1.2010, 20:30

я думаю это не страшно)))

Автор: Nickolya 7.1.2010, 3:46

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

Еще один вопрос: в своем хабе PPK сделал разделение таблиц в которых хранятся функции апи, к примеру Core, SetMan, BanMan etc... Будет ли оптимальней сделать так или же не критично что все функции хранятся в одной таблице?

Автор: Setuper 7.1.2010, 13:51

Разные таблицы он сделал только для логического разделения. Вообще без разницы в нескольких таблицах хранить или в одной. Единственное, разница есть в оптимизации таблиц: легче написать для одной таблицы local Core = Core, чем перебирать все таблицы. Да и запомнить легче одну таблицы, а не вспоминать какой таблице принадлежит та функция, которую мы хотим использовать. Кроме этого, за хабом мы закрепляем одну таблицу, а остальные таблицы мы закрепляем за различными модулями, - вот вам и логическое разделение. Core - функции хаба, Ban - функции модуля бана и тд.

Автор: fixx 10.1.2010, 20:01

Возник вопрос. Можно как-то указать путь, куда будут создаваться хабом файлы. Я запустил по-простому - в итоге все файлы в папке system32. Не очень удобно.
зы По-простому - это через srvinstw и instsrv

Автор: Setuper 10.1.2010, 20:27

Пока такой возможности нету, однако есть же специальные проги, например, FireDaemon Service Manager, которые позволяют указать откуда запускаться службе. Ведь не обязательно использовать стандартные пути создания служб. Или это так принципиально?

Автор: fixx 10.1.2010, 21:45

Да нет, не принципиально, но фаердемон бесплатный позволяет только одну службу создать и он уже используется, а крякнутый pro нежелательно использовать. Сервер на работе и там все должно быть тип-топ, на счет вареза ;)
Ну да ладно, я ярлыков в папку отдельную насоздавал и пользуюсь, чтоб не искать файлы.

Автор: fixx 14.1.2010, 12:32

Че-то несмог изменить предыдущее сообщение, потому оверпост.

А только один порт можно прописать? А как же 1209? У меня половина юзеров его пользует...

Автор: -=Alexandr=- 14.1.2010, 12:44

Будет-ли поддержка прослушки дополнительных портов? Если уже есть то как установить? Например у меня хаб стоит на 411 и 4111 портах...

Автор: Nickolya 14.1.2010, 13:39

Внимательно читаем http://mydc.ru/topic2378.html и видим:

Цитата
sSubPorts - дополнительные порты хаба (нужно указывать через пробел).
iMainPort - основной прослушиваемый порт.

Автор: Ska 14.1.2010, 20:56

Многоядерность данный хаб задействует? И выдержит онлайн 15тыс. пользователей? А то Верли мрёт под фряхой...=(

Автор: mariner 14.1.2010, 21:14

как ты представляешь многопоточный хаб - для начала расскажи эту концепцию. Ведь хабы работают с одним потогом данных. Куда и зачем пихать второй поток.
Ну и верли и фряха. Ну ты понел. Немного не то это. Он же на линукс пишется.

Автор: Ska 14.1.2010, 21:21

Цитата(mariner @ 14.1.2010, 23:14) *
как ты представляешь многопоточный хаб - для начала расскажи эту концепцию. Ведь хабы работают с одним потогом данных. Куда и зачем пихать второй поток.
Ну и верли и фряха. Ну ты понел. Немного не то это. Он же на линукс пишется.


Поток данных ессно один, но обрабатывать отдавать на другой тред допустим входящих пользователей, иль скрипты. Возможно заблуждаюсь)
А про Верли - я думал он заточен под Фряху=) а не никсы)
Про онлайн и стабильность вопрос остался=)

Автор: mariner 14.1.2010, 21:26

Цитата
Поток данных ессно один, но обрабатывать отдавать на другой тред допустим входящих пользователей, иль скрипты. Возможно заблуждаюсь)


ИМХО, заблуждаешься. Данные ктоме того что в потоке одном, они еще и по очереди идут. то есть юзер выполнил команду - и он встала в очередь. Очередь дошла - хаб выполнил команды и вставил её в очередь на отправку. И причем очереди зависят друг от друга. То есть в каком порядке идут запросы, от том же порядке идут и ответы хаба. То есть иначе всеравно надо вводить какие-то блокировки, чтобы не нарушать последовательность. И зачем тогда городить велосипед?

Автор: Setuper 14.1.2010, 22:02

Испытания на поддержку большого количества пользователей не проводились.
Как правильно сказал маринер, поток один.

Автор: fixx 15.1.2010, 14:25

Eсли скрипт удалить из папки, то он не удаляется из списка скриптов, даже после перезапуска всех скриптов. Это так и должно быть? Пробовал даже тупо из Scripts.xml удалить... Глухо, они опять там появляются.
Надо обязательно хаб перезапускать или есть способ, который я не учел?

Автор: Setuper 15.1.2010, 15:22

Спасибо. Исправлю.

Автор: nail 19.1.2010, 23:03

Я не прогер, может это и не возможно... разделить по потокам:
один - юзерлист
второй - поисковые запросы ... для активов
третий - поисковые запросты для пассивов
четвёртый - главный чат и лички
пятый - сжатие трафика zlib, т.е. всего, что сделают вышеуказанные потоки?

Меня даже интересует в данном случае не это, а что впринципе делать, когда хаб достигает критической точки?

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

Есть ли способ как-то распределить нагрузку, кроме линковки? Она всётаки согласитесь, не очень удачный выход...

Может быть можно как-то запустить допустим 10 хабов и один основной, играющий роль роутера?
Чтобы оснновной только получал, распределял и перенаправлял трафик, а 10 других обрабатывали всё, что поступает от основного?

Подобные темы уже пробовали поднимать на форумах птохи и верли, но там разработчики явно дали понять что на одном энтузиазме они это реализовывать не собираются... а общем скоро все держатели хабов столкнуться с этой проблемой. Setuper былоб очень хорошо, еслиб вы нашли и реализовали решение проблемы в своём проекте.

Автор: alex82 22.1.2010, 0:05

Цитата
Функция работает только с переменными типов: string, number, boolean, lightuserdata...

lightuserdata - что за зверь такой?

Автор: Setuper 22.1.2010, 0:24

Это указатель на сишный объект. В скриптах такой тип данных имеет только UID.

Автор: Nickolya 22.1.2010, 0:43

Тогда в чем отличие от типа userdata? Ведь везде упоминание идет только о нем, приставки ligt- нету...

Автор: Setuper 22.1.2010, 0:49

Для lua нет разницы, можете называть просто userdata (даже неверное так и следует делать чтобы не сбивать с толку).
Разница есть только для си.
big_smile.gif

Автор: Nickolya 22.1.2010, 12:15

А никто не хочет ответить nail, а то как-то игнорировать человека нехорошо nothing.gif

Автор: Setuper 22.1.2010, 13:11

На больших хабах вполне естественно что всё упирается в производительность системы.

При использовании стека протоколов TCP/IP пользователь идентифицируется сервером по своему ip-адресу, порту на клиентской машине и ip-адресу с портом на серверной машине. Обычно, на серверной машине выделяется по одному порту на каждого из клиентов в текущий момент, следовательно работать с ними можно пользуясь номерами портов и используемым ip-адресом. Вся эта информация скрывается внутри сокетов, которыми можно оперировать как обычными файлами.

Можно создавать для каждого пользователя отдельный процесс с копией сервера. Если это делать каждый раз при коннекте пользователя и потом процесс уничтожать, то такой подход становится чрезвычайно расточительным, в связи с тем, что вызов для создания процессов, является очень дорогостоящим: происходит создание копии процесса-родителя (который вызвал этот процесс), что приводит к перемещениям больших объемов данных из одного места оперативной памяти в другое. Можно сразу же создать некоторое количество серверов в отдельных процессах и передавать им управление при поступлении новых запросов. Этот способ значительно лучше, тем не менее он хорошо подходит для процессов, в которых время обработки запросов само по себе значительно, а в данный момент мы рассматриваем обработку данных, когда большую часть затраченного времени составляет именно работа с сетью.

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

Остается действовать в пределах одного процесса и организовывать цикл обработки сообщений от сетевого окружения операционной системы. Чаще всего используются системные вызовы poll() или select().

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

Затем следует "пробежка" по множествам с целью поиска "готовых" дескрипторов. Опять же, в случае большого количества соединений эта операция достаточно длительна.

Если на каждую запись или чтение выполняется какая-то своя длительная операция, со своими внутренними циклами, ветвлениями и прочим, то все это не особенно важно. Но если обработка полученных дескрипторов сводится к копированию данных из внутренних буферов в дескрипторы и обратно, то выполнение бесконечного цикла обработки select(), копирования данных при вызове, а так же пробежка по битовым массивам становится, по сути, единственными действиями, которые выполняет сервер. На самом деле, именно эти операции ограничивают его производительность.

Автор: nail 26.1.2010, 18:49

Честно сказать ничё не понял...но вывод полагаю такой: распределить нагрузку не возможно? Т.е. технология впринципе обречена?

Автор: Setuper 26.1.2010, 19:15

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

Автор: Nickolya 27.1.2010, 15:09

Может и глупость, однако хочется вот такого изврата, навеяно ЛуаАИО. Чтобы была апи функция, запускающая функцию скрипта в отдельном потоке, не блокирующем выполнение основного потока, для различных длительных операций. В идеале конечно чтобы окружение для запущенной в отдельном потоке функции было тем же глобальным окружением что и в самом скрипте. Возможно такое? И сложно ли это будет реализовать??

Автор: Setuper 27.1.2010, 16:15

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

Автор: nail 31.1.2010, 3:22

У меня на хабе больше всего нагружают проц именно луа скрипты, т.ч. былобы совсем неплохо.

Ещё вопрос, в грейлинке подключили mmx, можноли её в хабе также использовать? или sse2?
И можно ли как-нибудь вместо луа - пшп? Пшп гораздо проще в освоении и написании big_smile.gif

Автор: Wariner 31.1.2010, 9:08

Цитата(nail @ 31.1.2010, 3:22) *
И можно ли как-нибудь вместо луа - пшп? Пшп гораздо проще в освоении и написании big_smile.gif

Бред, php гораздо сложнее!)))

Автор: Jaska 31.1.2010, 10:21

Думаю http://mydc.ru/r/?http://shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=lua&lang2=php скажет о многом

Автор: nail 3.2.2010, 3:08

Wariner ну не знаю, спорить не буду, т.к. моё мнение основано только на моём личном опыте. LUA я даже с инструкциями не смог освоить, а на пшп уже написал дофига скриптов, модулей для разных двигов сайтов + хаблист с подробной статистикой по всем параметрам. И этовсё пользуясь всего одним сайтом, где описаны все функции.
Насчёт нагрузки, на неё, при многопоточности можно забить.

Автор: Nickolya 3.2.2010, 15:20

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

Я кстати подумывал о такой системе типа работы с интренетом, базами, большими таблицами сделать в луааио, и сделать интерфейс для получения и передачи команд между хабом и луааио, но потом я решил что это черезчур костыльный метод, да и не так будет просто объяснить как это запускается и работает.

Автор: Nickolya 5.2.2010, 13:22

Вопрос по функции Core.RestartScripts(iType) с параметром iType равным 1, получается это просто обновление списка скриптов?

Автор: Setuper 5.2.2010, 13:24

Фактически да.

Автор: alex82 6.2.2010, 4:21

Setuper

Пасиб за добавление событий OnScriptError и RestartScripts(2). Теперь я могу продолжить разработку гуевины для РусХаба.

У меня вопрос. Вот фрагмент кода серверной части гуевины, отвечающий за запуск скриптов:

Код
                if act == "ON" then
                    if Core.StartScript(script) then
                        ToClients("$SSET 3 "..script..":ON")
                    else
                        Send(user,"$SERR 4 "..script..":ON")
                    end

А вот функция OnScriptError:
Код
function OnScriptError(name,err,stop)
    ToClients("$SERR 5 "..err)
    if stop then
        ToClients("$SSET 3 "..name..":OFF")
    end
end
При этом сообщение об ошибке в скрипте приходит раньше, чем сообщение об успешном запуске:
Цитата
[03:04:25] Ошибка в скрипте Userbars.lua: D:/Data/Desktop/RusHub/scripts/Userbars.lua:9: module 'gd' not found:
no field package.preload['gd']
no file 'D:\Data\Desktop\RusHub\gd.lua'
...
[03:04:25] Остановлен скрипт Userbars.lua.
[03:04:25] Запущен скрипт Userbars.lua.
Это как-то связано с внутренним планировщиком хаба?
И вообще, почему Core.StartScript() возвращает true, если скрипт содержит ошибку?

Автор: Setuper 6.2.2010, 12:37

Действительно, так не должно быть. Исправлю big_smile.gif
По сути дела скрипт ведь не запускается, но функция действительно возвращает в этом случае true, что неправильно.

Кстати, функцию OnScriptError я смог реализовать и без очереди. Этого можно добиться если не ловить этой функцией ошибки текущего скрипта. Ошибки текущего скрипта ловятся функцией OnError, поэтому функция OnScriptError выполняется сразу же, а не ставится в очередь задач big_smile.gif

Для отлова таких команд как "$SSET" конечно можно использовать событие OnAny и возвращать в нём true для того, чтобы команда не обрабатывалась. Однако это событие ловит все команды протокола. Для того чтобы ловить неизвестные команды протокола (а эта команда $SSET не является известной командой протокола) лучше использовать событие OnUnknown и возвращать в нём true, для того чтобы хаб не разъединял за неизвестную команду.

Автор: STRELOK_IS74 28.2.2010, 13:48

Как можно сделать, чтобы мне посылались ИП адреса всех юзеров на хабе? Т.е. рядом с сообщением был показан ИП адрес пользователя:

Цитата
[15:45:07 | 127.0.0.1 ] <Admin> test

Говорю сразу, функция показа ИП в чате включена, но ИП не определяется.

Автор: Setuper 28.2.2010, 16:38

Открываем скрипт FirstRusHubBot и изменяем функцию OnValidateNick:

Код
function OnValidateNick(UID, sData)
  local sNick = Core.GetUser(UID, 1).sNick
  local tRegInfo = tRegUsers[sNick] -- Получаем регистрационные данные
  local iProfile = -1
  if tRegInfo then
    iProfile = tRegInfo.iProfile
  end
  if tProfiles[iProfile].bHaveKey then
    Core.SetUser(UID, 4, true) -- КЛЮЧИК
    Core.SetUser(UID, 6, true) -- ПОЛУЧЕНИЕ IP АДРЕСОВ ВСЕХ ПОЛЬЗОВАТЕЛЕЙ
  end
  if tRegInfo then -- Проверяем зарегистрированность ника
    return true -- Возвращаем true для того, чтобы запросить пароль
  end
end

Автор: STRELOK_IS74 28.2.2010, 17:59

Цитата
<Security> В запросе на подключение вы отсылаете неверный ip адрес: 127.0.0.1, ваш реальный ip: 10.49.229.179.

Цитата
<Security> В поисковом запросе вы отсылаете неверный ip адрес: 127.0.0.1, ваш реальный ip: 10.49.229.179.
Как отключить проверку ИП юзера? Точнее, как отключить подобные сообщения, пользователей не пускает на хаб.

UPD: Проблему решил, сделал так:
Код
    <Item Name="bCheckSearchIp">0</Item>
    <Item Name="bCheckCTMIp">0</Item>

Автор: lewonchik 9.3.2010, 18:03

У меня вопрос - как перенести зарегистрированных пользователей из Птоки на RusHub? Может я невнимательно прочитал темы, прошу ткнуть носом если тема уже была, не могу найти...

Автор: Setuper 9.3.2010, 18:13

информация о зарегистрированных пользователях хранится тут: FirstRusHubBot/RegUsers.dat

Автор: lewonchik 10.3.2010, 20:34

Я подозреваю что делать это нужно вручную? А есть возможность перекодировать из xml в dat? А то вручную больше сотни регистраций это каюк...

Автор: Nickolya 10.3.2010, 23:21

Возможность сделать все на автомате есть, завтра накидаю простой скриптик.

Автор: Nickolya 11.3.2010, 12:06

Итак, прикладываю скрипт который создаст базу для РусХаба, если таковая уже имеется, то кладем ее рядом со скриптом, который надо положить в папку scripts птоки, запускаем скрипт и если файл с регистрациями лежит, то он перезапишется, при этом совпадающие регистрации не будут перезаписаны. В случае если вы не положили базу с регистрациями, создастся новая, пригодная для скрипта FirstRusHubBot под РусХаб.

 RegsSaverFromPtokaxToRusHub.lua ( 1.14 килобайт ) : 37
 

Автор: lewonchik 11.3.2010, 19:51

Цитата(Nickolya @ 11.3.2010, 14:06) *
Итак, прикладываю скрипт который создаст базу для РусХаба

Спасибо большое, все работает!!!

Такой вопрос - хаб отключается с такой записью
Код
[21:47:43] <CRYPTUS> В поисковом запросе вы отсылаете неверный ip адрес: 10.0.50.***, ваш реальный ip: 89.113.224.***.
[21:47:43] *** This socket has been closed...

что нужно исправить?

Автор: Setuper 11.3.2010, 20:04

Либо прописать в клиенте правильный ip, либо отключить проверку ip в настройках хаба:

Код
<Item Name="bCheckSearchIp">0</Item>


Однако, всё же предпочтительнее первый вариант.

Автор: lewonchik 11.3.2010, 20:18

Цитата(Setuper @ 11.3.2010, 22:04) *
Либо прописать в клиенте правильный ip, либо отключить проверку ip в настройках хаба:

Хаб работает как в локальной сети так и в интернете, нужно чтобы доступ был из обоих сетей. Если не 0.0.0.0 то что прописать?

Туплю
Цитата
прописать в клиенте
а я в настройках хаба...

Автор: STRELOK_IS74 18.3.2010, 9:54

Пользователи стали жаловаться, что их кикает с хаба с такой причиной:

Цитата
Ваш клиент слишком часто пингует хаб.
Как отключить это? Просмотрел конфиг не раз, менял уже почти всё и всё равно кикает :(

Автор: Setuper 18.3.2010, 12:03

За флуд пингами отвечает параметр miMinClientPingInt. По умолчанию он равен 30 сек. Уменьши его, допустим, до 15 сек. Однако, что это за клиенты такие, которые пингуют чаще чем раз в 30 сек? Не попытки ли это атак? big_smile.gif
Пинг - это отсылка со стороны клиента пустой команды, то есть отсылка просто пайпа |. Эта отсылка служит для проверки состояния сервера, - жив ли он ещё?

Хотя возможно что это просто пустая команда, прицепленная к обычной команде. В таком случае параметр miMinClientPingInt пока можно уменьшить до 0. В следующей версии исправлю это big_smile.gif

Автор: ViRuS 3.4.2010, 23:13

в конфиге ищменяю название хаба..запускаю..но топик и название не обновляются...в чем проблема ?

Автор: Saymon 4.4.2010, 1:18

перезапусти хаб

Автор: ViRuS 4.4.2010, 9:37

не пашет все равно ! думаешь я такой глупый ??

Автор: Setuper 4.4.2010, 11:16

Что за винда?
Похоже твоя винда не понимает относительных путей

В следующей версии сделаю абсолютные пути к файлам настроек

Автор: ViRuS 4.4.2010, 13:08

xp 64 бит...

скажите а как motd сделать ?? которе выводитсчя при коннекте всем юзерам..

Автор: Setuper 4.4.2010, 13:40

Текущая версия собрана под win32 и под 64-х разрядными системами не должна работать.

Следующую версию планирую собрать и под 64-х разрядную систему, ибо портируемый код позволяет это сделать big_smile.gif


MOTD можно сделать при помощи скриптов.

Автор: ViRuS 4.4.2010, 15:49

а у меня в х64 прекрасно работает...

можно как нибудь чат сделать пошустрее когда был на верли..все прекрасно...и быстро работало...

Автор: ALEX_SE 4.4.2010, 15:56

На счет путей - он файлы конфигов создал в корне профиля текущего пользователя. На XP64. Вот и не принимал настройки файлов которые лежат в папке с сервером. Потому что другие файлы смотрел.

Автор: ViRuS 4.4.2010, 17:51

есть веб регистрация для руса?

Автор: Setuper 4.4.2010, 17:53

Цитата(ViRuS @ 4.4.2010, 16:49) *
можно как нибудь чат сделать пошустрее когда был на верли..все прекрасно...и быстро работало...
Что значит по-шустрее? Куда ещё шустрее? Он итак должен быть шустрее, чем даже на верлике.

Цитата(ALEX_SE @ 4.4.2010, 16:56) *
На счет путей - он файлы конфигов создал в корне профиля текущего пользователя. На XP64. Вот и не принимал настройки файлов которые лежат в папке с сервером. Потому что другие файлы смотрел.

Разные системы по-разному работают с относительными путями, поэтому в следующей версии сделаю везде абсолютные пути.

Автор: ViRuS 4.4.2010, 17:56

ну я бы не сказал что со скриптам он очень быстро работает...а что насчет веб регистрации..?

Автор: Nickolya 4.4.2010, 21:35

Скорость скорее зависит от специфики сокетов, а не от скриптов, хотя их тоже можно криво писать. На каком онлайне вас не устраивает скорость работы? И что вам надо от веб-регистрации? Как таковых пока хороших профилей к русхабу нет.

Автор: ViRuS 4.4.2010, 21:49

600 человек...со скриптом банов и менюшками... уже не то...плюс пропадают операторы сверху с ключиками..хотя при коннекте показывается в профиле администратор....

Автор: Setuper 4.4.2010, 22:11

Ещё раз говорю, что данная версия не предназначения для работы под x64, так как была собрана под 32 разрядную систему.
Поэтому от работы на x64 можно ожидать всё что угодно, в том числе и жуткие тормоза.

Автор: ViRuS 4.4.2010, 22:12

когда ждать а 64 бита

Автор: DarkGod 11.4.2010, 16:43

Начал тестить RusHub
1.Как себя зделать админом?
2. Как поставить антирекламу? Дайте мне её и скажите куда её совать)
3. И дайте ещё прикольные скрипты и скажите куда их совать))

Автор: Trans 11.4.2010, 17:36

Блин....ну и лексика...."куда совать", "прикольные скрипты"...
Как будто гоп пришёл в магазин приколов.
Извините...

Автор: Wariner 11.4.2010, 18:34

Не поленись почитать форум и ты поймёшь что и куда совать))))

Автор: Saymon 11.4.2010, 20:50

Цитата
Как себя зделать админом?

FirstRusHubBot в помощь
Цитата
Как поставить антирекламу? Дайте мне её и скажите куда её совать)

закинуть в папку scripts и запустить
Цитата
И дайте ещё прикольные скрипты и скажите куда их совать))

http://mydc.ru/forum44.html

И научись нормально писать.


Автор: FosFriend 16.7.2010, 12:28

У меня возникла небольшая проблемма , менюшки у пользователей нету - зарегистрироваться через меню они не могут , у меня и зарегенным пользователем и незарегенным нормально отображаетса менюшка . Версия хаба 2.1.7 , луа плагины 1.20.

Скрипты:

Раскрывающийся текст
№ 01 [ вкл ] FirstRusHubBot.lua (238 Кб)
№ 02 [ вкл ] Informer.lua (26 Кб)
№ 03 [ вкл ] Records.lua (43 Кб)
№ 04 [ вкл ] AntiFlood.lua (32 Кб)
№ 05 [ вкл ] chathist.lua (39 Кб)
№ 06 [ вкл ] ChatRanks.lua (61 Кб)
№ 07 [ вкл ] Bomb.lua (66 Кб)
№ 08 [ вкл ] ContextMenu.lua (29 Кб)

Автор: Nickolya 16.7.2010, 13:01

Странно все это, ты не первый с такой проблемой. Я сейчас подумал, может хаб чувствителен к характеристике UserCommand в $Supports, может если клиент ее не отсылает, меню и не шлется? Проверьте, я как только смогу - тоже проверю и отпишусь.

Автор: Setuper 16.7.2010, 14:17

Если клиент отсылает на хаб $Supports команду, то хаб в любом случае будет отсылать ответ в виде:

Код
$Supports UserCommand NoGetINFO NoHello UserIP2


Отсюда, либо клиент вовсе не отсылает команду $Supports на хаб, либо клиент просто не поддерживает менюшки, либо менюшки просто отключены в настройках клиента big_smile.gif

Для проверки отсылки команды $Supports нужно посмотреть распечатку CDM отладчика.
Попроси у того пользователя, у которого не отсылаются менюшки, распечатку CDM отладчика после непосредственного входа на хаб.

Единственный случай когда хаб не будет отсылать клиенту команду $Supports, это если в скриптовой функции OnSupports вернуть true

Автор: Nickolya 16.7.2010, 15:28

Можно еще воспользоваться вот таким скриптом:

Код
tLogging = {}

iMaxSec = 30
Core.AddTimer(1, 1000, "MainTimer")
sFileWay = Core.sScriptsDir.."SupportsLog.txt"

sHandle = io.open(sFileWay, "a")

function OnExit()
    sHandle:flush()
    sHandle:close()
end

function MainTimer()
    local iTime = os.time()
    for UID, tData in pairs(tLogging) do
        if tData[1] > iTime then
            tLogging[UID] = nil
        end
    end
end

function OnSupports(UID, sData)
    tLogging[UID] = {os.time() + iMaxSec, sData}
end

function OnUserEnter(UID)
    if tLogging[UID] then
        sHandle:write(os.date("%X %x").."    ||    Юзер "..UID.sNick.." ("..UID.sIP..") / "..(tLogging[UID][2]:find("UserCommand") and "с поддержкой UserCommand" or "без поддержки UserCommand").." / отослал следующий Supports: "..tLogging[UID][2].."\n")
    else
        sHandle:write(os.date("%X %x").."    ||    Юзер "..UID.sNick.." ("..UID.sIP..") не отослал Supports вообще!\n")
    end
    sHandle:flush()
end

И потом выложить сюда файл SupportsLog.txt, он будет лежать в папке scripts.

P.S.: плохо что через UID нет доступа к данным типа Supports, как в птоке, к примеру, bUserCommand, bQuickList, только не обязательно прямо вот так, можно просто сделать доступной строку что отправляет клиент, без команды $Supports естественно. И все остальные данные надо тоже сделать доступными, это мой реквест big_smile.gif

Автор: Setuper 16.7.2010, 16:24

ок. сделаю. Тем более, что эта строка хранится в структуре юзера, просто не сделан доступ в lua.
Кстати, автозапуск новых скриптов по твоему же реквесту я убрал big_smile.gif Авто запуск на самом деле был сделан для автоматического старта при первом запуске хаба, когда скриптов ещё нету и нету файла scripts.xml для того чтобы, например, можно было сразу управлять хабом через функционал запущенных скриптов и через скрипты уже подгружать новый скрипты. Теперь после первого запуска хаба нужно будет залезть в файл scripts.xml и включить нужные скрипты для управления уже в будущем через них (имеется ввиду в главным образом скрипт FirstRusHubBot) big_smile.gif

Автор: Infinity_Love 17.10.2010, 11:33

Спасибо за разработку!

В процессе проверки хаба получены вопросы:

1. Как использовать русские буквы в названии хаба, имени бота, теме и описании?
При попытке прописать в config.xml вместо русских букв появляются вопросительные знаки:
[10:39:13] <????> Этот хаб работает под управлением RusHub 2.2.5...

2. Возможно ли сделать скрытие в трей (рядом с часами) значка программы (и было бы неплохо прикрутить красивый значёк)?

3. Как сделать, чтобы при входе каждому человеку отсылалсь IP всех участников (как на ADC хабах)?

4. Планируется ли внедрить некоторые возможности ADC хабов, например, смену ника без переподключения и др.?

Автор: Setuper 17.10.2010, 11:49

1. Проверь кодировку файла.
2. Нет смысла, хаб предназначен для того чтобы окошка вообще не было видно, то есть нужно запихнуть его в службы.
3. Lua Скриптом
4. В будущем возможен вообще переход на ADC, но это в будущем))

Автор: Infinity_Love 17.10.2010, 14:15

Цитата
1. Проверь кодировку файла.

В файле config.xml:

<?xml version="1.0" encoding="windows-1252" standalone="yes" ?> (на 1251 тоже вопросительные знаки)
<Item Name="sLocale">Russian_Russia.1251</Item>

При этом отображаются вопросительные знаки. Что нужно сделать чтбы хаб понимал русский?


Проверено на Win7 x64 и WinXP x86 SP3.

======= Ответ:

Было обнаружено, что кодировка самого файла windows-1252, а кодировка русского языка windows-1251.
Через Notepad++ нужно изменить кодировку на 1251.

======= Предложение: Почему бы сразу не сменить кодировку на windows-1251 (в дистрибутиве)? Зачем нужна 1252, ведь на русскоязычной системе Windows на хабе будут вопросительные знаки?


2. Как ни странно, но не сделано пока самого главного. Логически понятной инструкции что делать, чтобы всё работало. Информации много, а как её задействовать не указано.

Пока не понятно как установить lua скрипт.

======= Вот маленький пример инструкции:

1. Чтобы использовать lua скрипт надо установить lua плагин, который можно скачать отсюда: http://rushub.org/download/ .
2. Помещаем его в папку plugins, которая расположена рядом с rushub.exe
3. Перезапускаем хаб (закрываем чёрное окошко).
4. Затем загружаем необходимый скрипт отсюда http://mydc.ru/forum44.html
5. Кладём его........ куда?

Вот что дальше?

На основе ответов можно написать подробную инструкцию, исключив и лишние вопросы и сделать более популярным проект.

Автор: PomanoB 18.10.2010, 8:50

+1, я тоже установил первый скрипт на русхаб чисто случайно)))

Автор: Setuper 18.10.2010, 8:58

По поводу кодировки учту, изменю для удобства на 1251, хотя странно, но 1252 должна по идее тоже нормально отображаться, по крайней мере у меня всё отображается, да и у других пользователей тоже вроде проблем с отображением не было.

Цитата
5. Кладём его........ куда?

В папку scripts естественно. После загрузки плагина, он автоматически создаёт эту папку

Автор: Saymon 23.10.2010, 16:49

Цитата(Setuper @ 17.10.2010, 12:49) *
4. В будущем возможен вообще переход на ADC, но это в будущем))


поддержка NMDC тогда будет прекращена?

Автор: DEN 007 13.11.2010, 3:29

надо переходить на ютф8, пускай русский текст весить будет больше но зато везде будет корректно отображаться...

Автор: KT315 21.11.2010, 22:17

Здраствуйте! Чудная вещь! Но не могу разобраться, поэтому задам пару вопросов:
1. Откуда брать конфиг?
2. Какие компоненты требует RusHub для сборки и для работы, например в ubuntu linux?
Спасибо!

Автор: mariner 21.11.2010, 22:25

Привет, земляк.
Значит, т.к. слегка вхожу в тиму русхабовцев, то рапортую
1. Для сбоки надо g++, libstdc++ и собственно все. Для луаплагина соответсвенно нужна liblua5.1-dev
2. Конфиг появится в домашке юзера, от которого хаб пущен, если не указана отдельно директория для настроек.

Автор: philoum 2.12.2010, 5:59

Hi, with new release rushub, we cant open others tcp ports now ?
please
How we can made a script to redirect some users ?
still_dreaming.gif
thanks
Greetings

Автор: Setuper 2.12.2010, 9:50

New rushub has a new setting "sAddresses".

Example of the use:

Код
<Item Name="sAddresses">0.0.0.0:411 0.0.0.0:413 192.168.0.1:4111 dc.hub.com:412</Item>


Now you can specify different listening ports and different ip addresses (hosts) big_smile.gif

Автор: DEN 007 2.12.2010, 10:10

Цитата(Setuper @ 2.12.2010, 10:50) *
New rushub has a new setting "sAddresses".

Example of the use:
Код
<Item Name="sAddresses">0.0.0.0:411 0.0.0.0:413 192.168.0.1:4111 dc.hub.com:412</Item>


Now you can specify different listening ports and different ip addresses (hosts) big_smile.gif


а вот это очень даже интересно. спс

Автор: Nickolya 2.12.2010, 14:54

philoum, U can redirect (tell user that he can move to) user simply send him protocol command:

Цитата
$ForceMove [new_adress]

So we can make our simple function for user redirection. For global redirect, for example, the code will be:
Код
function Core.Redirect(user, sAdress)        -- our redirect function, first parameter can be UID or user's nick, the second - move to adress
    Core.SendToUser(user, '$ForceMove '..sAdress)
    Core.Disconnect(user)
end

function OnUserConnected(UID)    -- event after $Lock sended
    Core.Redirect(UID, 'localhost:4111')
end

Автор: philoum 3.12.2010, 20:05

hi; thanks u very much, i note this
but for a script wiht we can redirect manually somes users
like !redirect usersXX address cause
?
ty
greetings

Автор: Saymon 6.12.2010, 4:11

Собственно вопросец таков:
Добавлен парамерт UID.sIPConn
По конфигу хаба

Код
<Item Name="sAddresses">0.0.0.0:8224</Item>

Подключаюсь по домену, который за внешним айпишником и вижу параметр выдаёт 0.0.0.0
Думаю что-то не то или всё верно?

Автор: philoum 6.12.2010, 6:04

Hi, i try to make a script but dont run :

Код
--- =================================================
-- Script de redirection users  par Admin
--- By Philoum 12/2010 pour rushub 2.29 et +
--- =================================================

accessProfile = {
    [0] = 1,   ---owner
    [1] = 0,   -- master
    [2] = 0,   -- mod
    [3] = 0,   --op
    [4] = 0,  -- vip
    [5] = 0,   -- reg
    [-1] = 0,  -- unreg
}
sAdress = ""
local sMenu = "$UserCommand 1 3 --> Redirection Users$<%[mynick]> !redirect %[line:Users xxx] %[line:Adresse de redirection] %[line:Cause de redirection]|"

function Core.Redirect(user, sAdress)        -- fonction redirect, 1er paramètres iud ou user et second envoie a adresse
    Core.SendToUser(user, '$ForceMove '..sAdress)
    Core.Disconnect(user)
end

--function OnUserConnected(UID)    -- event after $Lock sended
   -- Core.Redirect(UID, 'localhost:4111')
--end


function OnUserConnected(UID)    -- event after $Lock sended
    --Core.Redirect(UID, 'localhost:4111')
    if accessProfile[UID.iProfile] == 1 then
        Core.SendToUser(UID, sMenu)
    end
end

function OnChat(UID, sData)
    local sCmd, sArg = sData:match"^%r<> [%+!/](%S+)(.*)$"
    local tUser = Core.GetUser(UID, 1)
    local sCmd = sData:match"%r<>%s+[!%+](%S+)"
    if sCmd == "redirect" then

        Core.Disconnect(UID)
        Core.Redirect(UID, sAdress)

    end
end


function OnError(sErrorMsg)
    Core.SendToAll(sErrorMsg, sBot)
    return true
end



thanks for help
greetings

Автор: Setuper 6.12.2010, 10:20

Код
local accessProfile = {
    [0] = 1,   ---owner
    [1] = 0,   -- master
    [2] = 0,   -- mod
    [3] = 0,   --op
    [4] = 0,  -- vip
    [5] = 0,   -- reg
    [-1] = 0,  -- unreg
}
local sAdress = ""
local sMenu = "$UserCommand 1 3 --> Redirection Users$<%[mynick]> !redirect %[line:Users xxx] %[line:Adresse de redirection] %[line:Cause de redirection]&#124;"
local sRedirectMsg = "$To:[nick] From: [bot] $<[bot]> You are being re-directed to [address] because: [reason]|<[bot]> You are being re-directed to [address] because: [reason]|"

function Core.Redirect(tUser, sAddress, sReason)        -- fonction redirect, 1er paramètres iud ou user et second envoie a adresse
    sReason = sReason or ''
    local sMsg = sRedirectMsg
    sMsg = sMsg:gsub("%[nick%]", tUser.sNick)
    sMsg = sMsg:gsub("%[bot%]", Config.sHubBot)
    sMsg = sMsg:gsub("%[address%]", sAddress)
    sMsg = sMsg:gsub("%[reason%]", sReason)

    Core.SendToUser(tUser, sMsg..'$ForceMove '..sAddress)
    Core.Disconnect(tUser)
end

--function OnUserConnected(UID)    -- event after $Lock sended
   -- Core.Redirect(UID, 'localhost:4111')
--end


function OnUserConnected(UID)    -- event after $Lock sended
    --Core.Redirect(UID, 'localhost:4111')
    if accessProfile[UID.iProfile] == 1 then
        Core.SendToUser(UID, sMenu)
    end
end

function OnChat(UID, sData)
    local sCmd, sArg = sData:match"^%b<>%s+[%+!/](%S+)%s*(.*)"
    if sCmd and sCmd == "redirect" then
        local sNick, sAddress, sReason = sArg:match"(%S+)%s+(%S+)%s*(.*)"
        if not sNick then
            Core.SendToUser(UID, "Use  !redirect <nick> <address> [<reason>]")
            return true
        end
        local tUser = Core.GetUser(sNick)
        if tUser then
            Core.Redirect(tUser, sAddress, sReason)
        else
            Core.SendToUser(UID, "User '"..sNick.."' was not found")
        end
        return true
    end
end


function OnError(sErrorMsg)
    Core.SendToAll(sErrorMsg, sBot)
    return true
end

Автор: philoum 7.12.2010, 6:43

oh, thank you
I tested it but it does not, alas, I have no menu and if I
run the command !redirect it nothing happens and I have no script error
[04:37:21] <þ††i£øû]v[™> !redirect....
thank you for your help
greetings secret_smile.gif

Автор: Setuper 7.12.2010, 13:44

philoum, i corrected my script. Try

Saymon, всё правильно ведь хаб слушает 0.0.0.0 и не знает какие там у тебя внешние ip адреса
На какой прослушиваемый ip адрес поступит пользователь, такой ip и будет в параметре sIPConn. В данном случае слушается 0.0.0.0, поэтому он и записан в параметр.

Автор: philoum 8.12.2010, 7:22

hello, thank you very much, the script works fine, everything is ok
I like Rushubi!
cordially still_dreaming.gif




Привет, большое спасибо, скрипт работает нормально, все в порядке
Я Rushubi!
сердечно :p

Автор: lewonchik 19.12.2010, 3:15

Никак не могу сообразить как выводить содержимое текстовых файлов в чат или в личку, например "Правила". Подскажите пожалуйста, или если возможно - приведите пример скриптика для RusHub'а. Очень хочется понять, но без помощи не разобраться.

P.s. Прошу прощения если написал не в той теме...

Автор: Saymon 19.12.2010, 3:44

lewonchik, http://mydc.ru/topic2915.html

Автор: Alexey 19.12.2010, 3:53

Раздел скриптов для русхаба умещается на двух страницах (с настройками по-умолчанию), даже вручную легко находится http://mydc.ru/topic2915.html.

Автор: lewonchik 19.12.2010, 16:49

Saymon, Спасибо большое!

Alexey, мне уже помогли, но и Вам тоже спасибо. .

Автор: Sekretchik 26.12.2010, 17:06

Setuper - подскажи пожалуйста, настройки (config.xml) создаваемые при первом запуске больше не расширить? Просто я не могу там найти минимальное значение "шары" (помню на 1.0.5b были...) И есть ли где более подробная информация по "оптимальным" настройкам. Смотрел на сайте проекта. Там совсем чуть-чуть... Может кто что - подскажет.

Автор: Saymon 26.12.2010, 17:10

Sekretchik, для ограничений по шаре можно легко скрипт написать в несколько строчек.

Автор: Sekretchik 26.12.2010, 17:55

Спасибо Saymon - но меня настройки в целом интересуют.

Nickolya - спасибо.

Суть вопроса. RusHub установлен - IP - локальный - 192.168.1.2 порт 411 (то же самое было на PtokaX) В клиенте ничего не менял. Подключаюсь к хабу без проблем. Но находясь в активном режиме - не могу использовать поиск на хабе ну и тем более, просматривать списки. Это становится возможным после перехода в "пассив". До перехода на RusHub такого не было. В чем может быть искомина? Если кто сталкивался - буду рад услышать совет.

Автор: philoum 30.12.2010, 9:15

HI, en error on rushub and scratched :

(error)[Thu Dec 30 06:46:11 2010|968] (0) cConnSelect: Fatal error:
error in operator *()
Item = 00AA69C8
Hash = 360
End = 2048
(error)[Thu Dec 30 06:46:11 2010|968] (0) cConnSelect:

thanks for help
Greetings and good "réveillon" 31 ! big_smile.gif)

Автор: Infinity_Love 31.12.2010, 19:27

Привет!

Выкидывает с хаба с ошибкой:

Цитата
В поисковом запросе вы отсылаете неверный ip адрес: 80.24.3.1, ваш реальный ip: 192.168.100.77.


В Ptokax есть опция, чтобы отключить проверку адреса и избавиться от этой ошибки. Есть ли такая опция в RusHub, ибо хаб используется через интернет и через локальный канал, и такая ошибка бывает часто?

Если такой опции нет, то она очень нужна.

Всего самого Светлого в Новом Году!

Автор: Saymon 31.12.2010, 19:36

не проще в настройках клиента написать 0.0.0.0 ?

Автор: Infinity_Love 31.12.2010, 19:38

Цитата
не проще в настройках клиента написать 0.0.0.0 ?

Прописано, не помогает. Нужно отключить проверку на хабе.

Автор: Alexey 1.1.2011, 1:21

Впиши свой адрес в настройках избранного хаба.

Автор: Sekretchik 1.1.2011, 19:34

Saymon - вы с такой - http://mydc.ru/index.html?showtopic=2902&view=findpost&p=36159 - не сталкивались?
Вы на свой "тестовый" хаб под управлением RusHub подключаетесь с этого же компа? если да, работает ли актив. Как выставлен локальный IP в настройках хаба и клиента. Просто до этого на "птохе" такого не было.

Автор: Saymon 1.1.2011, 20:23

да. вполне всё работает...

Автор: Infinity_Love 2.1.2011, 3:03

Цитата
Впиши свой адрес в настройках избранного хаба.

В данном случае необходимо именно отключение проверки на хабе, так она совсем не нужна.

Как настроить клиент - всё понятно. Но это не выход, так как не настроить клиент всем. На PtokaX это просто решается опцией отключения проверки IP адреса в командах. Вот она то и нужна на RusHubе.

Автор: Setuper 2.1.2011, 18:53

Настройки (1 - проверять, 0 - не проверять):
bCheckSRNick - проверять ник в $SR команде
bCheckRctmNick - проверять ли ник в RCTM команде
bCheckCTMIp - проверять ip в CTM команде
bCheckSearchIp - проверять ip при активном поиске

Автор: Setuper 3.1.2011, 14:02

Цитата(philoum @ 30.12.2010, 9:15) *
HI, en error on rushub and scratched :

(error)[Thu Dec 30 06:46:11 2010|968] (0) cConnSelect: Fatal error:
error in operator *()
Item = 00AA69C8
Hash = 360
End = 2048
(error)[Thu Dec 30 06:46:11 2010|968] (0) cConnSelect:

thanks for help
Greetings and good "réveillon" 31 ! big_smile.gif)


Thanks. I will fix it

Автор: Sekretchik 6.1.2011, 13:10

Доброго вам всем времени суток. Прошу помощи:
- на 'хаблисте' статус хаба - офлайн (какой параметр в конфиге отвечает за пинг со стороны хаблиста?)
- для меня поиск и скачивание только в пассиве (клиент и хаб на одной машине), актив работает только на внешних хабах.
- где можно найти полный список настроек хаба с пояснением? На официальном сайте смотрел.

Буду признателен любой помощи. Такого на PtokaX до перехода на RusHub не было. IP и port для подключения выставлены как на 'птохе'. Не хочется менять серверное ПО - уж больно хорош - RusHub

Автор: Setuper 6.1.2011, 13:25

Если хаб онлайн, а хаб лист показывает его как оффлайн, то это проблемы в хаблисте а не в хабе
по поводу отключения проверок смотри двумя постами выше

Список всех настроек написан тут: http://mydc.ru/topic2378.html
Список всех настроек можно также получить скриптом:

Код
for _, v in ipairs(Config.table()) do
  Core.SendToAll(v.." = "..Config[v])
end

Автор: Sekretchik 6.1.2011, 14:24

Спасибо вам Илья. Я это уже все внимательно изучал и смотрел. По поводу скрипта - спасибо. Попробую.
А по поводу хаблиста, вот - http://mydc.ru/r/?http://dchublist.ru/search/?query=RusHub
Хабы Артема и Саймона - онлайн. Фоеникс - тот понятно - на птохе...

Автор: Saymon 6.1.2011, 15:19

проверь настройки http://mydc.ru/topic2880.html. Актуальны ли данные,которые указаны в нём.
У меня было токое когда в настройках хаба указаны одни данные, а в скрипте другие....

Автор: Sekretchik 7.1.2011, 6:16

Доброго вам времени суток. Этот скрипт на форуме видел но ни разу не читал о нём ничего. За ссылку на скрипт - спасибо. Скрипт помог решить проблему статуса хаба на 'хаблисте'. По поводу актива - работаю greedy.gif

Автор: Sin 15.1.2011, 16:25

Добрый день! На свежеустановленной системе debian x86_64 хаб собрался без проблем, при запуске создал конфиг с хомке юзера, но через минуту вываливается процесс. Порт свободен, в логах ничего говорящего. Подскажите, пожалуйста, что я упускаю ?

Автор: mariner 15.1.2011, 21:14

Вывод консольки сюда

Автор: Sin 16.1.2011, 2:23

root@ki:~/rushub# ./RusHub
Убито

[Sun Jan 16 01:17:51 2011|557] (3) cPluginList: Open plugin dir: /root/rushub/plugins/
[Sun Jan 16 01:17:51 2011|567] (3) cDCServer: Reg bot: RusHub
[Sun Jan 16 01:17:51 2011|567] (4) cFullUserList: (0)[UserList] Before add: RusHub Size: 0
[Sun Jan 16 01:17:51 2011|567] (4) cFullUserList: (1)[UserList] After add: RusHub Size: 1

Автор: Sin 17.1.2011, 16:41

Так есть какие идеи?

Автор: mariner 17.1.2011, 17:08

это, версия хаба какая? И дебиан какой.
PS с gdb умеешь работать?

Автор: Sin 17.1.2011, 17:26

сквиз x86_64, 2.6.37, на 36-ом тоже самое. rushub 2.2.13, без скриптов запускаю. c дебаггером не приходилось работать. Смотрю, 14-ый хаб появился.. Вечером посмотрю как он себя поведет

Автор: mariner 17.1.2011, 18:21

Просто странно то, что на чистом сквизе ничо не падает)

Автор: Sin 19.1.2011, 1:29

Значит есть где-то мои ошибки. По порядку на примере 14-ой версии хаба :
в системе есть g++ libstdc++ liblua5.1-dev и проч. Копирую исходники, распаковываю (unrar unrar-nonfree отказались распаковывать, кидают ошибку... пришлось распакавать в другой системе :( )
tinyxml: правлю makefile, добавляю -fPIC
make
hub: правлю makefile, добавляю -fPIC
make
cconn.cpp:436: warning: comparison is always false due to limited range of data type
cconn.cpp:82: warning: dereferencing pointer ‘saddr_in’ does break strict-aliasing rules
cconn.cpp:82: warning: dereferencing pointer ‘saddr_in’ does break strict-aliasing rules
cdctag.cpp:48: warning: comparison is always true due to limited range of data type
stringutils.cpp:190: warning: comparison is always true due to limited range of data type
.Всё. Получаем RusHub, при запуске без параметров который создает конфиги в хомке, но чуть позже умирает.

Автор: mariner 19.1.2011, 11:20

Цитата
tinyxml: правлю makefile, добавляю -fPIC

Не нужно. Ты хоть знаешь зачем этот флаг?

Автор: Sin 19.1.2011, 12:37

position independent code - для генерации позиционно-независимого кода, для разделяемых библиотек. У меня amd64, 13-ый хаб не собирался без флага, а
gcc version 4.4.5 не подставлял этот флаг. По своим ошибкам нагуглил решение. 14-ый собирается без -fPIC (.оО), но результат тот же. Да, еще: хаб после запуска сжирает все ресурсы процессора, соединение на порт, указанный в конфиге, не открывается.

cpu
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel® Celeron® CPU 2.66GHz
stepping : 9
cpu MHz : 2659.435
cache size : 256 KB
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall lm constant_tsc pebs bts nopl pni dtes64 monitor ds_cpl tm2 cid cx16 xtpr lahf_lm
bogomips : 5318.87
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 48 bits virtual

Автор: mariner 19.1.2011, 15:46

Лог сборки сюда, пожалуйсто.
Хаб возьми с свн.

Код
svn co https://rushub.svn.sourceforge.net/svnroot/rushub/trunk rushub

И собери без всех правок.

И так, собрал на последнем сквиззи с обновллениями. Да, есть ошибка зацикливания.
Из лога сборки (думается проблема тут)
Код
/home/gyrt/rushub/trunk/rushub/src/stringutils.cpp: In function ‘void nUtils::StringSplit(const std::string&, char, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)’:
/home/gyrt/rushub/trunk/rushub/src/stringutils.cpp:190: warning: comparison is always true due to limited range of data type
/home/gyrt/rushub/trunk/rushub/src/cdctag.cpp: In member function ‘void nDCServer::DcTag::parse(std::string&)’:
/home/gyrt/rushub/trunk/rushub/src/cdctag.cpp:48: warning: comparison is always true due to limited range of data type
/home/gyrt/rushub/trunk/rushub/src/cconn.cpp: In member function ‘int nServer::cConn::ReadFromRecvBuf()’:
/home/gyrt/rushub/trunk/rushub/src/cconn.cpp:436: warning: comparison is always false due to limited range of data type


Щас попробую отладить.

Зацикливание происходит в 174ой строке cdcserver.cpp
Код
getAddresses(msAddresses, vAddresses, 411);


Копаем дальше ;)

строка 154 того же файла
Код
StringSplit(sAddresses, ' ', vAddresses);


Собстенно тут мы и имеет бесконечный цикл. Ура) Терь думаем как фиксить.

Автор: Sin 19.1.2011, 19:31

лог сборки

root@kira:/usr/src/14/rushub/rushub/src/tinyxml# make
g++ -O2 -Wall -Wextra -c -o /usr/src/14/rushub/rushub/src/tinyxml/tinystr.o /usr/src/14/rushub/rushub/src/tinyxml/tinystr.cpp
g++ -O2 -Wall -Wextra -c -o /usr/src/14/rushub/rushub/src/tinyxml/tinyxml.o /usr/src/14/rushub/rushub/src/tinyxml/tinyxml.cpp
g++ -O2 -Wall -Wextra -c -o /usr/src/14/rushub/rushub/src/tinyxml/tinyxmlerror.o /usr/src/14/rushub/rushub/src/tinyxml/tinyxmlerror.cpp
g++ -O2 -Wall -Wextra -c -o /usr/src/14/rushub/rushub/src/tinyxml/tinyxmlparser.o /usr/src/14/rushub/rushub/src/tinyxml/tinyxmlparser.cpp
ar rv tinyxml.a /usr/src/14/rushub/rushub/src/tinyxml/tinystr.o /usr/src/14/rushub/rushub/src/tinyxml/tinyxml.o /usr/src/14/rushub/rushub/src/tinyxml/tinyxmlerror.o /usr/src/14/rushub/rushub/src/tinyxml/tinyxmlparser.o
ar: creating tinyxml.a
a - /usr/src/14/rushub/rushub/src/tinyxml/tinystr.o
a - /usr/src/14/rushub/rushub/src/tinyxml/tinyxml.o
a - /usr/src/14/rushub/rushub/src/tinyxml/tinyxmlerror.o
a - /usr/src/14/rushub/rushub/src/tinyxml/tinyxmlparser.o
root@kira:/usr/src/14/rushub/rushub/src/tinyxml#
root@kira:/usr/src/14/rushub/rushub/src# make
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cantiflood.o /usr/src/14/rushub/rushub/src/cantiflood.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/ccalllist.o /usr/src/14/rushub/rushub/src/ccalllist.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/ccli.o /usr/src/14/rushub/rushub/src/ccli.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cconfig.o /usr/src/14/rushub/rushub/src/cconfig.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cconfiglist.o /usr/src/14/rushub/rushub/src/cconfiglist.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cconfigloader.o /usr/src/14/rushub/rushub/src/cconfigloader.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cconn.o /usr/src/14/rushub/rushub/src/cconn.cpp
/usr/src/14/rushub/rushub/src/cconn.cpp: In member function ‘int nServer::cConn::ReadFromRecvBuf()’:
/usr/src/14/rushub/rushub/src/cconn.cpp:436: warning: comparison is always false due to limited range of data type
/usr/src/14/rushub/rushub/src/cconn.cpp: In constructor ‘nServer::cConn::cConn(tSocket, nServer::cServer*, nServer::tConnType)’:
/usr/src/14/rushub/rushub/src/cconn.cpp:82: warning: dereferencing pointer ‘saddr_in’ does break strict-aliasing rules
/usr/src/14/rushub/rushub/src/cconn.cpp:79: note: initialized from here
/usr/src/14/rushub/rushub/src/cconn.cpp: In constructor ‘nServer::cConn::cConn(tSocket, nServer::cServer*, nServer::tConnType)’:
/usr/src/14/rushub/rushub/src/cconn.cpp:82: warning: dereferencing pointer ‘saddr_in’ does break strict-aliasing rules
/usr/src/14/rushub/rushub/src/cconn.cpp:79: note: initialized from here
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cconnchoose.o /usr/src/14/rushub/rushub/src/cconnchoose.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cconnpoll.o /usr/src/14/rushub/rushub/src/cconnpoll.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cconnselect.o /usr/src/14/rushub/rushub/src/cconnselect.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cdcconfig.o /usr/src/14/rushub/rushub/src/cdcconfig.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cdcconn.o /usr/src/14/rushub/rushub/src/cdcconn.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cdciplist.o /usr/src/14/rushub/rushub/src/cdciplist.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cdcparser.o /usr/src/14/rushub/rushub/src/cdcparser.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cdcprotocol.o /usr/src/14/rushub/rushub/src/cdcprotocol.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cdcserver.o /usr/src/14/rushub/rushub/src/cdcserver.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cdctag.o /usr/src/14/rushub/rushub/src/cdctag.cpp
/usr/src/14/rushub/rushub/src/cdctag.cpp: In member function ‘void nDCServer::DcTag::parse(std::string&)’:
/usr/src/14/rushub/rushub/src/cdctag.cpp:48: warning: comparison is always true due to limited range of data type
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cdcuser.o /usr/src/14/rushub/rushub/src/cdcuser.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cdir.o /usr/src/14/rushub/rushub/src/cdir.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cexception.o /usr/src/14/rushub/rushub/src/cexception.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cmainpath.o /usr/src/14/rushub/rushub/src/cmainpath.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cmyinfo.o /usr/src/14/rushub/rushub/src/cmyinfo.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cobj.o /usr/src/14/rushub/rushub/src/cobj.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cpluginlist.o /usr/src/14/rushub/rushub/src/cpluginlist.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cpluginloader.o /usr/src/14/rushub/rushub/src/cpluginloader.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cprotocol.o /usr/src/14/rushub/rushub/src/cprotocol.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cprotocolcmd.o /usr/src/14/rushub/rushub/src/cprotocolcmd.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cserver.o /usr/src/14/rushub/rushub/src/cserver.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cservice.o /usr/src/14/rushub/rushub/src/cservice.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cstrtoarg.o /usr/src/14/rushub/rushub/src/cstrtoarg.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/ctime.o /usr/src/14/rushub/rushub/src/ctime.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cuserlist.o /usr/src/14/rushub/rushub/src/cuserlist.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cwebconn.o /usr/src/14/rushub/rushub/src/cwebconn.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cwebparser.o /usr/src/14/rushub/rushub/src/cwebparser.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/cwebprotocol.o /usr/src/14/rushub/rushub/src/cwebprotocol.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/dlfcn.o /usr/src/14/rushub/rushub/src/dlfcn.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/main.o /usr/src/14/rushub/rushub/src/main.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/src/14/rushub/rushub/src/stringutils.o /usr/src/14/rushub/rushub/src/stringutils.cpp
/usr/src/14/rushub/rushub/src/stringutils.cpp: In function ‘void nUtils::StringSplit(const std::string&, char, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)’:
/usr/src/14/rushub/rushub/src/stringutils.cpp:190: warning: comparison is always true due to limited range of data type
g++ -lrt -ldl -o RusHub /usr/src/14/rushub/rushub/src/cantiflood.o /usr/src/14/rushub/rushub/src/ccalllist.o /usr/src/14/rushub/rushub/src/ccli.o /usr/src/14/rushub/rushub/src/cconfig.o /usr/src/14/rushub/rushub/src/cconfiglist.o /usr/src/14/rushub/rushub/src/cconfigloader.o /usr/src/14/rushub/rushub/src/cconn.o /usr/src/14/rushub/rushub/src/cconnchoose.o /usr/src/14/rushub/rushub/src/cconnpoll.o /usr/src/14/rushub/rushub/src/cconnselect.o /usr/src/14/rushub/rushub/src/cdcconfig.o /usr/src/14/rushub/rushub/src/cdcconn.o /usr/src/14/rushub/rushub/src/cdciplist.o /usr/src/14/rushub/rushub/src/cdcparser.o /usr/src/14/rushub/rushub/src/cdcprotocol.o /usr/src/14/rushub/rushub/src/cdcserver.o /usr/src/14/rushub/rushub/src/cdctag.o /usr/src/14/rushub/rushub/src/cdcuser.o /usr/src/14/rushub/rushub/src/cdir.o /usr/src/14/rushub/rushub/src/cexception.o /usr/src/14/rushub/rushub/src/cmainpath.o /usr/src/14/rushub/rushub/src/cmyinfo.o /usr/src/14/rushub/rushub/src/cobj.o /usr/src/14/rushub/rushub/src/cpluginlist.o /usr/src/14/rushub/rushub/src/cpluginloader.o /usr/src/14/rushub/rushub/src/cprotocol.o /usr/src/14/rushub/rushub/src/cprotocolcmd.o /usr/src/14/rushub/rushub/src/cserver.o /usr/src/14/rushub/rushub/src/cservice.o /usr/src/14/rushub/rushub/src/cstrtoarg.o /usr/src/14/rushub/rushub/src/ctime.o /usr/src/14/rushub/rushub/src/cuserlist.o /usr/src/14/rushub/rushub/src/cwebconn.o /usr/src/14/rushub/rushub/src/cwebparser.o /usr/src/14/rushub/rushub/src/cwebprotocol.o /usr/src/14/rushub/rushub/src/dlfcn.o /usr/src/14/rushub/rushub/src/main.o /usr/src/14/rushub/rushub/src/stringutils.o /usr/src/14/rushub/rushub/src/tinyxml/tinyxml.a
root@kira:/usr/src/14/rushub/rushub/src#
root@kira:/usr/src/14/rushub/rushub/src# ./RusHub

Убито

Автор: Setuper 19.1.2011, 21:15

mariner прав.

Нужно в файле stringutils.cpp в строке 189 заменить unsigned на size_t.
Действительно, по всей видимости, разница есть.

Автор: mariner 19.1.2011, 21:41

Ну и в остальных файлах. Там несколько ошибок.

Автор: Sin 20.1.2011, 3:01

можно Вас попросить перечислить необходимые правки?
в дальнейшем это учтено будет, не нужно будет править пере сбркой новой версии хаба?

Автор: mariner 20.1.2011, 3:27

ну конечно будет)
Я думаю уже завтра вечером можно будет завбрать готовые сурцы с свн.

Автор: Setuper 20.1.2011, 9:50

Ну кроме этих правок будут ещё правки.
Поэтому на svn этим вечером будет бета версия.
Sin, спасибо за обнаружение багов, а миринеру за выяснение причин.

Автор: Sin 23.1.2011, 0:00

... а при сборке луа мне с правкой мэйкфайла tinyxml суждено, видимо, собирать :

собственно
/usr/bin/ld: /usr/src/rushub/lua_plugin/src/tinyxml/tinyxml.a(tinystr.o): relocation R_X86_64_32S against `TiXmlString::nullrep_' can not be used when making a shared object; recompile with -fPIC
/usr/src/rushub/lua_plugin/src/tinyxml/tinyxml.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [lib] Ошибка 1



..Да, при сборе луаплугина мне нужно подкинуть cplugin.h из хаба и диру tinyxml. Всё верно?

Автор: Saymon 23.1.2011, 0:29

Sin, http://mydc.ru/r/?http://wiki.mydc.ru/%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_RusHub_%D0%B8_Lua_%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0_%D0%B8%D0%B7_%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2_%D0%BD%D0%B0_Ubuntu_10.10

Автор: mariner 23.1.2011, 0:34

почти. При смене архитектуры надо еще в мейкфайле fpic на fPIC махнуть. Кроме того. В Debian6 уже есть libtinyxml. Можно облегчить и хаб и плагин, удалив статическую линковку с tinyxml.a и линканус с -ltinyxml. Я русхаб уже собираю без tinyxml. Вроде все работает.

Автор: Sin 23.1.2011, 0:44

В мэйк файле луаплугина. понял, спасибо.

Автор: Midgard 3.3.2011, 0:29

Подскажите, а как запускать хаб так, чтобы не пришлось постоянно держать открытым окно командной строки? Если окно закрываешь, то и хаб отключается? Например в качестве службы в винде, запустил эксешник окно исчезло и всё. Версия хаба 2.2.14

Автор: Alexey 3.3.2011, 1:26

См. http://mydc.ru/r/?http://wiki.mydc.ru/RusHub#.D0.9E.D0.BF.D1.86.D0.B8.D0.B8_.D0.BA.D0.BE.D0.BC.D0.B0.D0.BD.D0.B4.D0.BD.D0.BE.D0.B9_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8.

Автор: Otshelnik-Fm 3.3.2011, 18:00

Цитата(Midgard @ 3.3.2011, 0:29) *
Подскажите, а как запускать хаб так, чтобы не пришлось постоянно держать открытым окно командной строки? Если окно закрываешь, то и хаб отключается? Например в качестве службы в винде, запустил эксешник окно исчезло и всё. Версия хаба 2.2.14

А я воспользовался http://mydc.ru/topic4075.html

Автор: Saymon 5.3.2011, 1:05

Давайте всётаки разберёмся, в чём дело на freebsd

1
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/AntiFlood.o /usr/home/saymon21/rushub/trunk/rushub/src/AntiFlood.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/CallList.o /usr/home/saymon21/rushub/trunk/rushub/src/CallList.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/Cli.o /usr/home/saymon21/rushub/trunk/rushub/src/Cli.cpp
/usr/home/saymon21/rushub/trunk/rushub/src/Cli.cpp: In member function 'pid_t Cli::demonizeServer(std::string)':
/usr/home/saymon21/rushub/trunk/rushub/src/Cli.cpp:106: warning: 'pid' may be used uninitialized in this function
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/Config.o /usr/home/saymon21/rushub/trunk/rushub/src/Config.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/ConfigList.o /usr/home/saymon21/rushub/trunk/rushub/src/ConfigList.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/Conn.o /usr/home/saymon21/rushub/trunk/rushub/src/Conn.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/ConnChoose.o /usr/home/saymon21/rushub/trunk/rushub/src/ConnChoose.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/ConnPoll.o /usr/home/saymon21/rushub/trunk/rushub/src/ConnPoll.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/ConnSelect.o /usr/home/saymon21/rushub/trunk/rushub/src/ConnSelect.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/DcConfig.o /usr/home/saymon21/rushub/trunk/rushub/src/DcConfig.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/DcConfigLoader.o /usr/home/saymon21/rushub/trunk/rushub/src/DcConfigLoader.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/DcConn.o /usr/home/saymon21/rushub/trunk/rushub/src/DcConn.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/DcIpList.o /usr/home/saymon21/rushub/trunk/rushub/src/DcIpList.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/DcParser.o /usr/home/saymon21/rushub/trunk/rushub/src/DcParser.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/DcProtocol.o /usr/home/saymon21/rushub/trunk/rushub/src/DcProtocol.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/DcServer.o /usr/home/saymon21/rushub/trunk/rushub/src/DcServer.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/DcTag.o /usr/home/saymon21/rushub/trunk/rushub/src/DcTag.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/DcUser.o /usr/home/saymon21/rushub/trunk/rushub/src/DcUser.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/Dir.o /usr/home/saymon21/rushub/trunk/rushub/src/Dir.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/dlfcn.o /usr/home/saymon21/rushub/trunk/rushub/src/dlfcn.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/Exception.o /usr/home/saymon21/rushub/trunk/rushub/src/Exception.cpp
/usr/home/saymon21/rushub/trunk/rushub/src/Exception.cpp:318:17: warning: no newline at end of file
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/main.o /usr/home/saymon21/rushub/trunk/rushub/src/main.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/MyInfo.o /usr/home/saymon21/rushub/trunk/rushub/src/MyInfo.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/Obj.o /usr/home/saymon21/rushub/trunk/rushub/src/Obj.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/PluginList.o /usr/home/saymon21/rushub/trunk/rushub/src/PluginList.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/PluginLoader.o /usr/home/saymon21/rushub/trunk/rushub/src/PluginLoader.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/Protocol.o /usr/home/saymon21/rushub/trunk/rushub/src/Protocol.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/ProtocolCommand.o /usr/home/saymon21/rushub/trunk/rushub/src/ProtocolCommand.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/Server.o /usr/home/saymon21/rushub/trunk/rushub/src/Server.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/Service.o /usr/home/saymon21/rushub/trunk/rushub/src/Service.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/StringToArg.o /usr/home/saymon21/rushub/trunk/rushub/src/StringToArg.cpp
In file included from /usr/home/saymon21/rushub/trunk/rushub/src/StringToArg.cpp:20:
/usr/home/saymon21/rushub/trunk/rushub/src/StringToArg.h:51:23: warning: no newline at end of file
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/stringutils.o /usr/home/saymon21/rushub/trunk/rushub/src/stringutils.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/Times.o /usr/home/saymon21/rushub/trunk/rushub/src/Times.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/UserList.o /usr/home/saymon21/rushub/trunk/rushub/src/UserList.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/WebConn.o /usr/home/saymon21/rushub/trunk/rushub/src/WebConn.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/WebParser.o /usr/home/saymon21/rushub/trunk/rushub/src/WebParser.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /usr/home/saymon21/rushub/trunk/rushub/src/WebProtocol.o /usr/home/saymon21/rushub/trunk/rushub/src/WebProtocol.cpp
g++ -lrt -ldl -o RusHub /usr/home/saymon21/rushub/trunk/rushub/src/AntiFlood.o /usr/home/saymon21/rushub/trunk/rushub/src/CallList.o /usr/home/saymon21/rushub/trunk/rushub/src/Cli.o /usr/home/saymon21/rushub/trunk/rushub/src/Config.o /usr/home/saymon21/rushub/trunk/rushub/src/ConfigList.o /usr/home/saymon21/rushub/trunk/rushub/src/Conn.o /usr/home/saymon21/rushub/trunk/rushub/src/ConnChoose.o /usr/home/saymon21/rushub/trunk/rushub/src/ConnPoll.o /usr/home/saymon21/rushub/trunk/rushub/src/ConnSelect.o /usr/home/saymon21/rushub/trunk/rushub/src/DcConfig.o /usr/home/saymon21/rushub/trunk/rushub/src/DcConfigLoader.o /usr/home/saymon21/rushub/trunk/rushub/src/DcConn.o /usr/home/saymon21/rushub/trunk/rushub/src/DcIpList.o /usr/home/saymon21/rushub/trunk/rushub/src/DcParser.o /usr/home/saymon21/rushub/trunk/rushub/src/DcProtocol.o /usr/home/saymon21/rushub/trunk/rushub/src/DcServer.o /usr/home/saymon21/rushub/trunk/rushub/src/DcTag.o /usr/home/saymon21/rushub/trunk/rushub/src/DcUser.o /usr/home/saymon21/rushub/trunk/rushub/src/Dir.o /usr/home/saymon21/rushub/trunk/rushub/src/dlfcn.o /usr/home/saymon21/rushub/trunk/rushub/src/Exception.o /usr/home/saymon21/rushub/trunk/rushub/src/main.o /usr/home/saymon21/rushub/trunk/rushub/src/MyInfo.o /usr/home/saymon21/rushub/trunk/rushub/src/Obj.o /usr/home/saymon21/rushub/trunk/rushub/src/PluginList.o /usr/home/saymon21/rushub/trunk/rushub/src/PluginLoader.o /usr/home/saymon21/rushub/trunk/rushub/src/Protocol.o /usr/home/saymon21/rushub/trunk/rushub/src/ProtocolCommand.o /usr/home/saymon21/rushub/trunk/rushub/src/Server.o /usr/home/saymon21/rushub/trunk/rushub/src/Service.o /usr/home/saymon21/rushub/trunk/rushub/src/StringToArg.o /usr/home/saymon21/rushub/trunk/rushub/src/stringutils.o /usr/home/saymon21/rushub/trunk/rushub/src/Times.o /usr/home/saymon21/rushub/trunk/rushub/src/UserList.o /usr/home/saymon21/rushub/trunk/rushub/src/WebConn.o /usr/home/saymon21/rushub/trunk/rushub/src/WebParser.o /usr/home/saymon21/rushub/trunk/rushub/src/WebProtocol.o /usr/home/saymon21/rushub/trunk/rushub/src/tinyxml/tinyxml.a
/usr/bin/ld: cannot find -ldl
gmake: *** [RusHub] Error 1

и
2
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/home/saymon21/rushub/trunk/lua_plugin/src/api.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/api.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/home/saymon21/rushub/trunk/lua_plugin/src/Dir.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/Dir.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/home/saymon21/rushub/trunk/lua_plugin/src/LuaInterpreter.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/LuaInterpreter.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/home/saymon21/rushub/trunk/lua_plugin/src/LuaPlugin.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/LuaPlugin.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/home/saymon21/rushub/trunk/lua_plugin/src/TaskList.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/TaskList.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/home/saymon21/rushub/trunk/lua_plugin/src/TimerList.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/TimerList.cpp
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -I/usr/include/lua5.1 -I/usr/include/lua -I/usr/include/lua/5.1 -c -o /usr/home/saymon21/rushub/trunk/lua_plugin/src/Uid.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/Uid.cpp
g++ -llua5.1 -shared -fpic -lrt -o lua.so /usr/home/saymon21/rushub/trunk/lua_plugin/src/api.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/Dir.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/LuaInterpreter.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/LuaPlugin.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/TaskList.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/TimerList.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/Uid.o /usr/home/saymon21/rushub/trunk/lua_plugin/src/tinyxml/tinyxml.a
/usr/bin/ld: cannot find -llua5.1
gmake: *** [lib] Error 1

Кто что может сказать по этому поводу?

Автор: mariner 5.3.2011, 9:17

Как же вы задрали, а.... Голова зачем нужна? Чтобы шляпу носить и в нее есть?
Думать не пробовал? Мы с тобой этот вопрос уже 2(!!!) раза обсуждали и еще несколько раз на хабе.

Код
/usr/bin/ld: cannot find -ldl

В бсд не нужен этот флаг при сборке и его можно найти в makefile и удалить.
Цитата
/usr/bin/ld: cannot find -llua5.1

Это линковка только с дебиановким луа. В других дистрах оно называется по разному и может быть вообще статическилинкуемой либой. 1ое что надо - понять как линкуется. 2ое - либо убрать флаг луа и указать путь до liblua.a либо изменить флаг на нужный. Ну или попробовать подорбрать. То есть -llua5.1, -llua, -llua51, -llua5

Автор: mod 14.3.2011, 21:41

Хотел добавить адрес хаба в хаблист, но сервис пишет "Пингеру не удалось завершить проверку хаба. Статус: Хаб не ответил на команду $BotINFO"
Сам бот заходит на хаб и выходит.

Как решить?


UPD: Надо было скрипт поставить. big_smile.gif Вопрос снят.

Автор: Midgard 25.3.2011, 21:43

Подскажите мне пожалуйста ещё одну вещь, я вот как понял в хабе есть возможность при входе показывать его информацию, а также mac-адрес. Но у меня почему-то вместо mac-адреса показывает n/a. Почему так? Хаб работает в локальной небольшой сети.

Автор: Setuper 26.3.2011, 10:59

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

Автор: Midgard 26.3.2011, 21:26

Вон оно что, тогда понятно, благодарю. Скажите, а планируется русхаб к выпуску с графическим интерфейсом, по типу как у птоки?

Автор: mariner 26.3.2011, 22:19

Хаб планируется только в клиент-серверном исполеннии. Гуи будет выделенное. Собственно оно уже есть. RusRC

Автор: Saymon21 27.3.2011, 15:39

но надо бы таки допилить RusRC, много изменений.

Автор: AltSide 8.4.2011, 2:06

Планируется ли перл плагин вместо луа?

Автор: Alexey 8.4.2011, 3:06

А что-то мешает фонатам перла написать этот плагин самим?

Автор: Dimon21 6.5.2011, 21:31

Проблемы с RusHub начиная с версии 2.3.0 и 2.3.1 хаб начал подвисать на 64 юзерах.Пробовал отключать скрипты.Но это не помогло.Ось Win 7.Настройки по умолчанию.

Автор: Setuper 6.5.2011, 21:59

Что значит подвисать? Поконкретнее?

Автор: Dimon21 6.5.2011, 22:00

соединение
и висит не кто зайти не может и если зайдёш то в чат ничего не проходит

Автор: Setuper 6.5.2011, 22:09

А по логам что?

Автор: Dimon21 6.5.2011, 22:22

хаб повис на 64 юзере



 system.2011_05_06.rar ( 36.2 килобайт ) : 7
 

Автор: Dimon21 8.5.2011, 21:08

Сегодня 08.05.2011 в 21-19 решил снова запустить хаб, но опять упёрся на те же грабли .Ось Windows-7 Pro 32-bit. Лог приводится.

 system.2011_05_08.rar ( 26.87 килобайт ) : 2
 

Автор: Setuper 8.5.2011, 21:33

Почему-то твоя система не допускает использование более 64 файловых дескрипторов. Это может быть связано с недостаточностью прав пользователя, из-под которого запускается хаб, или же просто windows 7 принудительно на уровне ядра ограничивает число файловых дескрипторов, ибо сам хаб позволяет использовать более 64 файловых дескрипторов и даже в хабе предусмотрена соответствующая ошибка в логе, когда число файловых дескрипторов превысит предельно допустимое значение (по логам я этой ошибки не увидел и не должен был увидеть, ибо ограничение намного больше, чем 64).

Во вторник проверю факт ограничения на windows 7 (правда на x64, но думаю не суть).

Автор: Dimon21 8.5.2011, 21:55

Но Ptokax 0.4.1.2 работает при этом отлично.Setuper ок будем ждать вторника.UAC в система отключена касперский интернет секъюрити порты прописаны в роуторе Dir 615 порты переброшены.

Автор: Setuper 8.5.2011, 22:07

птоха не опрашивает сокеты при помощи select

Автор: Dimon21 9.5.2011, 8:59

Setuper нашёл проблему что всё блокирует . Оказалось маленькая программа от спама для браузеров Adgard_4.2.0.Проблема решена.

Да прошу прощения с праздником господа!

Автор: Dimon21 16.5.2011, 10:43

После перезагрузки скриптов хаб упал

 00111251.zip ( 82.21 килобайт ) : 4
 

Автор: Setuper 16.5.2011, 19:36

А зачем приложил какой-то реферат?
Возможно данный баг уже исправлен и в следующей версии его не будет.

Автор: Dimon21 17.5.2011, 4:21

Setuper действитель в спешке я вставил не тот файл прошу прощения.Впреть буду относиться к этому серьёзнее.

Автор: LEXSOR 26.5.2011, 16:52

Не знаю баг или фича Rushub у всех админов(опов) доступна функция в меню (Выкинуть)кикнуть пользователя, только не работает пишет в отладке типо пользователь кикнут и 0 эффекта)

задаю вопрос ибо просмотрел много тем и ответа на вопрос не нашёл...

Автор: Setuper 26.5.2011, 17:25

Ответ очень прост: для того чтобы кикать нужно иметь право это делать. Право должно устанавливаться из скрипта, собственно таким же образом как и установка профиля (UID.bKick = true).

Читаем раздел привилегий:
http://mydc.ru/r/?http://wiki.mydc.ru/%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F_%D0%B2_RusHub

Автор: Артём 26.5.2011, 17:48

наверное он имел ввиду про ...


это не скриптами, а в самом клиенте dc++, да, оно не кикает, в лс приходит
Цитата
You are being kicked because:
без кика, только скриптом можно кикнуть.

Автор: LEXSOR 26.5.2011, 18:26

Цитата(Артём @ 26.5.2011, 18:48) *
наверное он имел ввиду про ...

это не скриптами, а в самом клиенте dc++, да, оно не кикает, в лс приходит без кика, только скриптом можно кикнуть.



Да так во всех клиентах кто имеет права выше vip имеется строчка и там подразумевается команда !kick, и выползание окна(причина)

Автор: Setuper 26.5.2011, 20:20

Вообще-то это команда не !kick, а http://mydc.ru/ipb.html?act=findpost&pid=6718

Цитата
без кика, только скриптом можно кикнуть.

Повторяю, что при помощи этого клиентского меню можно кикать, но для того предварительно юзеру нужно установить через скрипт право на использование кика следующим образом:
Код
UID.bKick = true

Другими словами, в русхабе наличие ключика не означает наличие права кикать.
Таким образом ключик можно дать и обычным юзерам, и при этом они не будут обладать правами операторов big_smile.gif

Автор: LEXSOR 26.5.2011, 20:57

Цитата(Setuper @ 26.5.2011, 21:20) *
Вообще-то это команда не !kick, а http://mydc.ru/ipb.html?act=findpost&pid=6718


Повторяю, что при помощи этого клиентского меню можно кикать, но для того предварительно юзеру нужно установить через скрипт право на использование кика следующим образом:
Код
UID.bKick = true

Другими словами, в русхабе наличие ключика не означает наличие права кикать.
Таким образом ключик можно дать и обычным юзерам, и при этом они не будут обладать правами операторов big_smile.gif



Нужно написать скрипт себе как я понимаю)

Если не трудно можешь простенький набросок сделать...

Автор: Setuper 26.5.2011, 20:58

можно не писать, а взять FirstRuHubBot и вставить в нужном месте указанную мною строку кода

Автор: kotuk 8.8.2011, 22:05

К сожалению не так хорошо разбираюсь в API как хотелось бы. Поэтому вопрос сведущим:
Имееет ли rushub возможно получить информацию о скачанных/переданных пользователями файлах, в частности интересует размер отправленной и принятой клиентом пользователя информации?

Автор: Setuper 8.8.2011, 22:10

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

Конечно можно как-то отследить что качает пользователь по поиску альтернативных источников, который делает клиент, который качает, однако такой метод определения является приблизительным.

Автор: DEN 007 9.8.2011, 20:06

kotuk,
Такое сделать возможно например в торрентах клиент присылает такую информацию(так как сервер ее просто не может знать), но о реальности статистики можно полагаться только полагаясь на честность клиента)))
Реализовать такое в dc на уровне протокола никто не будет, да и в adc думаю тоже, а вот можно это реализовать на уровне скрипта на сервере и скрипта на стороне пользователя. Но возникает множество проблем, поставить на сервер скрипт проблемы не составит, а вот сделать так чтобы у пользователя стоял клиент со скриптом дело провальное, можно конечно сделать сборку с уже установленным скриптом и предлагать юзерам установить ее, но это будут единицы, ну даже если получится части пользователей все-таки клиент втюрить, то образуется проблема номер два, умельце полазят по клиенту и найдут этот скриптик и начнут в экспериментальных целях его модифицировать, тем самым обманывая статистику как это делают в тех же торрентах))

Это я расписал на случай, ответа: "раз можно то давайте попробуем написать!" .

Автор: CrazyKiller 14.8.2011, 21:26

Вышла новая Версия РусХаб, Спасибо большое !

Код
rushub v 2.3.6

Added: Добавлена частичная поддержка ADC протокола (вход/выход и чат).
Для переключения хаба в ADC режим работы нужно установить настройку bAdcOn.

Fixed: Устранена проблема с поиском пользователей в 64 битной системе.
Fixed: Устранен баг с установкой MyINFO из скрипта.


Но у меня маленький вопрос по поводу ADC, при переключении будут ли работать ADC+NMDC ?

Автор: Setuper 14.8.2011, 21:34

Нет.
Либо NMDC, либо ADC.

Кроме этого ADC поддерживается только частично: только вход/выход и чат.

Автор: CrazyKiller 14.8.2011, 21:36

Цитата(Setuper @ 14.8.2011, 22:34) *
Нет.
Либо NMDC, либо ADC.

Кроме этого ADC поддерживается только частично: только вход/выход и чат.



Спасибо, ждём когда будут они вместе работать, если таковы у вас TODO записано ! big_smile.gif

Просто видел Hex Hub, они вместе работают NMDC+ADC

Автор: Setuper 14.8.2011, 21:59

Во-первых, в TODO ничего про одновременность NMDC и ADC не написано, во-вторых, насколько мне известно Hex хаб - это NMDC хаб. Может ты спутал с Flex хабом?

Кстати, по поводу одновременной работы. Если это и будет сделано, то протоколы будут на разных портах.
На одном порту 2 протокола работать не могут. В Flex хаба это всё работает из-за того, что хаб работает медленнее клиента, и поэтому за время, пока хаб принимает соединение, ADC клиент успевает отослать первые команды.

То есть основывается всё на том, что якобы NMDC клиент первым не отсылает команды при входе на хаб, а ADC клиент отсылает.
Что же делает Flex хаб? Он ждёт какое-то время пока клиент отошлёт ему первые команды. Если он получает команды, то он идентифицирует клиента как ADC клиента, иначе он говорит, что перед ним NMDC клиент. Однако, проблема заключается в том, на сколько долго хаб ждёт эти первые команды? А если сеть перегружена и команды приходят с задержками, получается что хаб может реального ADC клиента идентифицировать как NMDC?

Автор: CrazyKiller 10.9.2011, 20:41

Setuper

Подскажи пожалуйста !

Хаб 2.3.6 версия.
Платформа Ubuntu Server 10.04.3 LTS
Канал Инет до 100 МБ, с инетом точно проблем нет ! big_smile.gif
Роутер Dlink Dir-320
Открыто и прописано 3 порта,411,412,413.
Количество Юзеров 261
Использование CPU 2.8 % ./RusHub -d

Список Скриптов

¦ 01 ¦ ¦ ON ¦ = ¦ 61 Кб ¦ = BanManager.lua
¦ 02 ¦ ¦ ON ¦ = ¦ 348 Кб ¦ = FirstRusHubBot.lua
¦ 03 ¦ ¦ ON ¦ = ¦ 45 Кб ¦ = ScanReg.lua
¦ 04 ¦ ¦ ON ¦ = ¦ 48 Кб ¦ = chatcontrol.lua
¦ 05 ¦ ¦ ON ¦ = ¦ 55 Кб ¦ = ContextMenu.lua
¦ 06 ¦ ¦ ON ¦ = ¦ 112 Кб ¦ = BashMySQL.lua
¦ 07 ¦ ¦ ON ¦ = ¦ 36 Кб ¦ = pinger.lua
¦ 08 ¦ ¦ ON ¦ = ¦ 35 Кб ¦ = noCAPS.lua
¦ 09 ¦ ¦ ON ¦ = ¦ 77 Кб ¦ = Deyst.lua
¦ 10 ¦ ¦ ON ¦ = ¦ 93 Кб ¦ = scripts.lua
¦ 11 ¦ ¦ ON ¦ = ¦ 374 Кб ¦ = proxy.lua
¦ 12 ¦ ¦ ON ¦ = ¦ 58 Кб ¦ = NetInDescription.lua
¦ 13 ¦ ¦ ON ¦ = ¦ 50 Кб ¦ = texts.lua
¦ 14 ¦ ¦ ON ¦ = ¦ 34 Кб ¦ = Informer.lua
¦ 15 ¦ ¦ ON ¦ = ¦ 53 Кб ¦ = antirecl.lua
¦ 16 ¦ ¦ ON ¦ = ¦ 69 Кб ¦ = ChatLogsMySQL.lua
¦ 17 ¦ ¦ ON ¦ = ¦ 111 Кб ¦ = RSS.Triolan.ua.lua
¦ 18 ¦ ¦ ON ¦ = ¦ 103 Кб ¦ = RSS.Triolan.net.lua
¦ 19 ¦ ¦ ON ¦ = ¦ 273 Кб ¦ = Temp.lua
¦ 20 ¦ ¦ ON ¦ = ¦ 42 Кб ¦ = messenger.lua
¦ 21 ¦ ¦ ON ¦ = ¦ 77 Кб ¦ = Antimat.lua
¦ 22 ¦ ¦ ON ¦ = ¦ 65 Кб ¦ = nick_protect.lua


Железка в Компе

1) Проц 2500+ Атлончик
2) Мать Асус со встройкой Видео на 8 мб
3) ОЗУ 504 Т.К Видео 8 сожрало
4) Винт ИДЕ 80 гиг


и чат начинает глючить, ну начиная с 200 юзеров примерно, отправляеш в чат, и секунд через 5 только проходит, не я только это заметил, есть ещё много людей которые заметили такое явление.

Что может быть, кто виноват, Скрипт какой та, или что та другое ?

Автор: Setuper 10.9.2011, 21:01

Скорее всего скрипты.
Попробуй поотключать скрипты.

По-моему даже на тестах при 20000 юзерах 5 секунд никогда не было.

Автор: Angel_D 13.9.2011, 9:01

RussHub 2.3.6 Win x32
вопрос следующего характера:
какое потребление памяти хабом при онлайне порядка 5200 юзверей можно считать нормальным?
ибо при нижеприложенном наборе скриптов и указанном онлайне цифра памятепотребления у меня вечерами скачет от 350 до 420 Mb, вот и хочеться мнения на тему того, на сколько это нормально.

Цитата
№ 01 [ вкл ] actions.lua (332 Кб)
№ 02 [ вкл ] BanManager.lua (104 Кб)
№ 03 [ вкл ] FirstRusHubBot.lua (1771 Кб)
№ 04 [ вкл ] RusRC_Server.lua (94 Кб)
№ 05 [ вкл ] NetInDescription.lua (61 Кб)
№ 06 [ вкл ] minSHARE_for_RusHub.lua (94 Кб)
№ 07 [ вкл ] talkingbot_for_RusHub.lua (100 Кб)
№ 08 [ вкл ] Informer.lua (28 Кб)
№ 09 [ выкл ] nick_protect.lua
№ 10 [ вкл ] GagMe.lua (150 Кб)
№ 11 [ вкл ] RHWarningsUsers.lua (117 Кб)
№ 12 [ вкл ] pinger.lua (60 Кб)
№ 13 [ вкл ] texts.lua (115 Кб)
№ 14 [ вкл ] chatcontrol.lua (46 Кб)
№ 15 [ вкл ] RH_PekJIama_B_Huke.lua (83 Кб)
№ 16 [ вкл ] antibot.lua (115 Кб)
№ 17 [ вкл ] kenny.lua (73 Кб)
№ 18 [ вкл ] hideme.lua (77 Кб)
№ 19 [ вкл ] messenger.lua (101 Кб)
№ 20 [ вкл ] AntiPornoSearch.lua (54 Кб)
№ 21 [ вкл ] Monitor1.0.lua (163 Кб)
№ 22 [ вкл ] webstats.lua (111 Кб)
№ 23 [ вкл ] Weather [ RusHub ] [ by Nickolya ] .lua (140 Кб)
№ 24 [ вкл ] kaspersky.lua (128 Кб)
№ 25 [ вкл ] SendReports.lua (54 Кб)
№ 26 [ вкл ] Userbars.lua (319 Кб)
№ 27 [ вкл ] rss_kinozal_tv.lua (31 Кб)
№ 28 [ вкл ] RSS.Feed.Bot.V2.3.Final.LUA5-RusHub.lua (325 Кб)
№ 29 [ вкл ] GraphRusHub.lua (287 Кб)
№ 30 [ вкл ] AntiFlood.lua (87 Кб)
№ 31 [ вкл ] Bomb.lua (276 Кб)
№ 32 [ вкл ] ChatHistorySQL.lua (142 Кб)
№ 33 [ вкл ] announcements.lua (120 Кб)

*** Общее использование памяти скриптами: 5758 Кб


По логам скриптов кроме безобидного warning: function 'GetConfig' was deprecated. Use 'Config[sName]' instead ничего нет.
По логам сервера - разве что
Цитата
[Tue Sep 13 00:29:37 2011|683] (0) DcConn: (sock 4820) Sending buffer has big size, closing
[Tue Sep 13 03:20:22 2011|472] (0) DcConn: (sock 7284) Sending buffer has big size, closing
[Tue Sep 13 04:03:02 2011|622] (0) DcConn: (sock 10908) Sending buffer has big size, closing
[Tue Sep 13 07:56:08 2011|137] (0) DcConn: (sock 6892) Sending buffer has big size, closing

Автор: CrazyKiller 18.9.2011, 12:00

Цитата(Setuper @ 10.9.2011, 22:01) *
Скорее всего скрипты.
Попробуй поотключать скрипты.

По-моему даже на тестах при 20000 юзерах 5 секунд никогда не было.


Здравствуйте !

Тестировал Хаб, выключал скрипты разные, на данный момент отключил все скрипты которые лезут с инет и даже в мускул.

Список Сриптов

¦ 01 ¦ ¦ ON ¦ = ¦ 66 Кб ¦ = BanManager.lua
¦ 02 ¦ ¦ ON ¦ = ¦ 322 Кб ¦ = FirstRusHubBot.lua
¦ 03 ¦ ¦ ON ¦ = ¦ 34 Кб ¦ = texts.lua
¦ 04 ¦ ¦ ON ¦ = ¦ 50 Кб ¦ = chathist.lua
¦ 05 ¦ ¦ ON ¦ = ¦ 31 Кб ¦ = antibot.lua
¦ 06 ¦ ¦ ON ¦ = ¦ 30 Кб ¦ = antiadv.lua
¦ 07 ¦ ¦ ON ¦ = ¦ 47 Кб ¦ = ScanReg.lua
¦ 08 ¦ ¦ ON ¦ = ¦ 34 Кб ¦ = chatcontrol.lua
¦ 09 ¦ ¦ ON ¦ = ¦ 33 Кб ¦ = pinger.lua
¦ 10 ¦ ¦ ON ¦ = ¦ 32 Кб ¦ = noCAPS.lua
¦ 11 ¦ ¦ ON ¦ = ¦ 78 Кб ¦ = Deyst.lua
¦ 12 ¦ ¦ ON ¦ = ¦ 66 Кб ¦ = scripts.lua
¦ 13 ¦ ¦ ON ¦ = ¦ 57 Кб ¦ = NetInDescription.lua
¦ 14 ¦ ¦ ON ¦ = ¦ 25 Кб ¦ = Informer.lua
¦ 15 ¦ ¦ ON ¦ = ¦ 33 Кб ¦ = messenger.lua
¦ 16 ¦ ¦ ON ¦ = ¦ 176 Кб ¦ = nick_protect.lua
¦ 17 ¦ ¦ ON ¦ = ¦ 73 Кб ¦ = GagMe.lua


Ставил даже на тест ВерлиХаб новый 1.0.0 от Гит, на недельку ставил, ставил скрипты разные, инетовские и т д, все отлично работало, перебоев в чате не было.
Вот вчера опять включил РусХаб, и почти та же беда, секунд на 1-3 задержки бывает, но не всегда что самое прикольное, Илья выручи пожалуйста ?

и да, тут ещё одна проблема, при запуске любого скрипта с хаба, хаб крашится, и в логи не чего не пишет :(

Автор: ShadoWx 26.9.2011, 8:44

на дебиане - полет замечательный. вчера было 360 человек, скрипты примерно такие же.

Автор: AfLc 29.9.2011, 14:26

Планируется ли сделать так чтобы за частый поиск не отключало от хаба ? А то хоть у меня народу человек 40 где-то и то идут жалобы , что кикает за частый поиск . Пока перелез на другой софт , жалко :( Не знаю может у меня настройки слишком жёсткие 4 поиска за 60 секунд . big_smile.gif

Автор: Saymon21 29.9.2011, 14:45

AfLc,

Код
function OnFlood(UID, iType, iNum)
  if iType == 3 then
    return true
  end
end

как-то так.

Автор: Angel_D 17.10.2011, 9:34

достаточно часто в системных логах хаба вижу такое...

Цитата
[Sun Oct 16 22:50:54 2011|807] (0) DcConn: (sock 22512) Sending buffer has big size, closing
[Sun Oct 16 22:51:44 2011|171] (0) DcConn: (sock 27716) Sending buffer has big size, closing
[Sun Oct 16 22:52:33 2011|601] (0) DcConn: (sock 15664) Sending buffer has big size, closing
[Sun Oct 16 22:53:04 2011|703] (0) DcConn: (sock 8384) Sending buffer has big size, closing
[Sun Oct 16 22:53:04 2011|737] (0) DcConn: (sock 17448) Sending buffer has big size, closing

что это? на это стоит обращать внимание?

Автор: Setuper 17.10.2011, 14:27

При таком сообщении пользователь отключается.
Это означает, что пользователю отправляется гигантский объём информации (более 2 Мбайт текста).

Скорее всего установлены какие-то скрипты, которые столько много шлют.

Наверное стоит этот параметр вынести в файл настроек, чтобы можно было его настраивать. В след. версии сделаю.

Автор: Angel_D 18.10.2011, 11:09

Благодарю за разъяснения.
В принципе набор скриптов на своем хабе выложил чуть выше - пока основной подозреваемый в "гипертрафике" - NetInDescription.lua
Пока отключил его - буду смотреть.

Еще хотелось бы уточнить один момент...
Где-то месяц назад был выявлен http://mydc.ru/topic2910.html?view=findpost&p=40243 и успешно вылечен в svn.
Очень хочется win-решение проблемы ибо ощущение что на хабе это уже стало известно не только несколько модерам, но и парочке "злодеев" с динамическими IP, которые успешно выкидывают модеров описанным нехитрым способом.
В принципе если до запланированного релиза осталось "недолго" - ну думаю "отобьёмся" как-нибудь, если релиз всё еще "неблизкий свет" - спасите наши души. big_smile.gif

Автор: Setuper 18.10.2011, 11:19

Ок. На этих выходных сделаю релиз.

Автор: Angel_D 18.10.2011, 13:33

хм... уже отключил и "действия" как ни странно, но продолжается...

Цитата
[Tue Oct 18 13:23:14 2011|787] (0) DcConn: (sock 2040) Sending buffer has big size, closing
[Tue Oct 18 13:25:13 2011|741] (0) DcConn: (sock 10544) Sending buffer has big size, closing
[Tue Oct 18 13:26:21 2011|421] (0) DcConn: (sock 8980) Sending buffer has big size, closing
[Tue Oct 18 13:26:27 2011|512] (0) DcConn: (sock 9400) Sending buffer has big size, closing


И время не особо пиковое...
Из оставшихся скриптов разве что-то серьёзное может слать клиенту? даже меню хаба при таком наборе относительно скромное...
Цитата
№ 01 [ выкл ] actions.lua
№ 02 [ вкл ] BanManager.lua (129 Кб)
№ 03 [ вкл ] FirstRusHubBot.lua (1565 Кб)
№ 04 [ вкл ] RusRC_Server.lua (73 Кб)
№ 05 [ выкл ] NetInDescription.lua
№ 06 [ вкл ] minSHARE_for_RusHub.lua (85 Кб)
№ 07 [ вкл ] talkingbot_for_RusHub.lua (81 Кб)
№ 08 [ вкл ] Informer.lua (28 Кб)
№ 09 [ выкл ] nick_protect.lua
№ 10 [ вкл ] GagMe.lua (197 Кб)
№ 11 [ вкл ] GagByShare.lua (65 Кб)
№ 12 [ вкл ] RHWarningsUsers.lua (110 Кб)
№ 13 [ вкл ] pinger.lua (57 Кб)
№ 14 [ вкл ] texts.lua (57 Кб)
№ 15 [ вкл ] chatcontrol.lua (57 Кб)
№ 16 [ вкл ] RH_PekJIama_B_Huke.lua (68 Кб)
№ 17 [ вкл ] antibot.lua (52 Кб)
№ 18 [ вкл ] kenny.lua (107 Кб)
№ 19 [ вкл ] hideme.lua (79 Кб)
№ 20 [ вкл ] messenger.lua (55 Кб)
№ 21 [ вкл ] AntiPornoSearch.lua (82 Кб)
№ 22 [ вкл ] Monitor1.0.lua (237 Кб)
№ 23 [ вкл ] webstats.lua (335 Кб)
№ 24 [ выкл ] Weather [ RusHub ] [ by Nickolya ] .lua
№ 25 [ вкл ] kaspersky.lua (85 Кб)
№ 26 [ вкл ] SendReports.lua (62 Кб)
№ 27 [ вкл ] Userbars.lua (520 Кб)
№ 28 [ вкл ] rss_kinozal_tv.lua (31 Кб)
№ 29 [ вкл ] RSS.Feed.Bot.V2.3.Final.LUA5-RusHub.lua (430 Кб)
№ 30 [ вкл ] GraphRusHub.lua (239 Кб)
№ 31 [ вкл ] AntiFlood.lua (61 Кб)
№ 32 [ выкл ] Bomb.lua
№ 33 [ вкл ] ChatHistorySQL.lua (150 Кб)
№ 34 [ вкл ] announcements.lua (91 Кб)
№ 35 [ вкл ] antiadv_rushub.lua (40 Кб)

Автор: Setuper 18.10.2011, 15:00

Попробуй отключить все скрипты. Может это и не из-за скриптов. Это может кто-то лезит на хаб, возможно даже не по протоколу dc, и отсылает на хаб огромный объём информации, возможно с целью повесить хаб.

Ещё одним способом выяснить что происходит - это увеличить уровень логирования, возможно тогда станет ясно.

Автор: Angel_D 18.10.2011, 15:54

попробовал увеличить уровень логирования до максимума
указанное выше событие находиться в окружении вот такого всего...
(на всякий случай скрипт пингера тоже был отключен. другие - пока не трогал)

[Tue Oct 18 15:47:56 2011|287
(5) DcServer: <new actions>: 1 [0]
[Tue Oct 18 15:47:56 2011|287] (5) DcConn: (sock 2584) ::(s)inputEvent
[Tue Oct 18 15:47:56 2011|287] (4) DcConn: (sock 2584) IN: $ConnectToMe 786yj8olk7uy 95.191.3.115:1411
[Tue Oct 18 15:47:56 2011|287] (5) DcConn: (sock 2584) [S]Stage 16
[Tue Oct 18 15:47:56 2011|287] (5) DcConn: (sock 2584) [E]Stage 16
[Tue Oct 18 15:47:56 2011|287] (5) DcConn: (sock 2584) ::(e)inputEvent
[Tue Oct 18 15:47:56 2011|287] (5) DcServer: <exit actions>
[Tue Oct 18 15:47:56 2011|300] (4) UserList: (0)[HelloList] sendToAll begin
[Tue Oct 18 15:47:56 2011|300] (4) UserList: (0)[HelloList] sendToAll end
[Tue Oct 18 15:47:56 2011|300] (4) UserList: (3553)[UserList] sendToAll begin
[Tue Oct 18 15:47:56 2011|302] (3) DcConn: (sock 14284) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|303] (3) DcConn: (sock 2888) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|305] (3) DcConn: (sock 1184) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|305] (3) DcConn: (sock 13588) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|316] (3) DcConn: (sock 9540) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|317] (3) DcConn: (sock 12016) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|324] (3) DcConn: (sock 1900) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|326] (3) DcConn: (sock 11236) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|327] (3) DcConn: (sock 1944) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|328] (3) DcConn: (sock 14396) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|331] (3) DcConn: (sock 8484) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|338] (3) DcConn: (sock 14276) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|340] (3) DcConn: (sock 12232) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|340] (3) DcConn: (sock 12232) Unblock output channel
[Tue Oct 18 15:47:56 2011|341] (3) DcConn: (sock 1132) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|343] (3) DcConn: (sock 1272) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|343] (3) DcConn: (sock 13252) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|343] (3) DcConn: (sock 4352) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|353] (3) DcConn: (sock 1152) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|355] (3) DcConn: (sock 9764) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|360] (3) DcConn: (sock 14332) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|364] (3) DcConn: (sock 14216) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|370] (3) DcConn: (sock 864) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|370] (3) DcConn: (sock 864) Unblock output channel
[Tue Oct 18 15:47:56 2011|373] (3) DcConn: (sock 14060) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|373] (3) DcConn: (sock 14176) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|374] (3) DcConn: (sock 14092) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|377] (3) DcConn: (sock 3704) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|377] (3) DcConn: (sock 12296) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|378] (3) DcConn: (sock 13212) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|378] (3) DcConn: (sock 13212) Unblock output channel
[Tue Oct 18 15:47:56 2011|379] (3) DcConn: (sock 14228) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|385] (0) DcConn: (sock 2696) Sending buffer has big size, closing
[Tue Oct 18 15:47:56 2011|385] (3) DcConn: (sock 2696) closeNow (reason 6)
[Tue Oct 18 15:47:56 2011|386] (3) DcConn: (sock 4600) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|387] (3) DcConn: (sock 2924) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|387] (3) DcConn: (sock 14164) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|392] (3) DcConn: (sock 4680) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|396] (3) DcConn: (sock 12360) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|397] (3) DcConn: (sock 6684) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|401] (3) DcConn: (sock 2684) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|405] (3) DcConn: (sock 1432) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|407] (3) DcConn: (sock 1548) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|407] (3) DcConn: (sock 1548) Unblock output channel
[Tue Oct 18 15:47:56 2011|408] (3) DcConn: (sock 7336) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|409] (3) DcConn: (sock 3216) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|412] (3) DcConn: (sock 1536) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|414] (3) DcConn: (sock 1488) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|416] (3) DcConn: (sock 4440) Block sent. Was sent 0 bytes
[Tue Oct 18 15:47:56 2011|416] (3) DcConn: (sock 536) Block sent. Was sent 0 bytes
]

Автор: Setuper 18.10.2011, 16:18

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

Автор: Angel_D 18.10.2011, 18:38

Цитата
Причиной может быть узкий канал либо со стороны хаба, либо со стороны клиентов

сервер на гигабитном интерфейсе... порядка 90% пользователей - пользователи локальной сети. на "внешку" дано 100 мегабит, которые на оставшиеся 10% в принципе должно хватать...
что ж, остановимся на версии "узкий канал юзверя".
спасибо. самому было интересно разобраться, надеюсь и вам не бес толку такие разбирательства...

Автор: Mangust 19.10.2011, 2:22

Доброго времени суток товарищи!
Столкнулся с некой проблемой.
Думаю всем известно о WEB системе Magneto. К этой системе имеется Модуль Atlant_is, одной из функций которой является система просмотра информации о сидах.
Осуществляется все это специальным клиентом с минимальным количеством настроек.
Проблема вот в чем. При подключению к хабу с этого клиента, его выкидывает с хаба через 2-4 секунды.
Пробовал ковырять настройки, но все безуспешно.

Вот лог:

Код
[Wed Oct 19 11:19:55 2011|62] (3) Conn: (sock 176) Accept new socket: 68
[Wed Oct 19 11:19:55 2011|78] (4) DcConn: (sock 68) IN: $Key …СА° A С±±АА01Рr/%DCN096%/іУqУУ±bВaPQqТЦБССЃ
[Wed Oct 19 11:19:55 2011|78] (4) DcConn: (sock 68) IN: $ValidateNick Magneto
[Wed Oct 19 11:19:55 2011|78] (3) DcConn: (sock 68) User Magneto to validate nick
[Wed Oct 19 11:19:55 2011|93] (4) DcConn: (sock 68) IN: $Version 1.0091
[Wed Oct 19 11:19:55 2011|93] (3) DcConn: (sock 68) Version:1.0091
[Wed Oct 19 11:19:55 2011|93] (4) DcConn: (sock 68) IN: $MyINFO $ALL Magneto <StrongDC++ V:2.03,M:A,H:3/3/0,S:1,O:1>$ $LAN(T3) 1$nomail$7345678954$
[Wed Oct 19 11:19:55 2011|93] (3) DcConn: (sock 68) Begin login
[Wed Oct 19 11:19:55 2011|93] (4) UserList: (1)[UserList] Before add: Magneto Size: 1
[Wed Oct 19 11:19:55 2011|93] (4) UserList: (2)[UserList] After add: Magneto Size: 2
[Wed Oct 19 11:19:55 2011|93] (3) DcConn: (sock 68) Adding at the end of Nicklist
[Wed Oct 19 11:19:55 2011|93] (3) DcConn: (sock 68) Entered on the hub
[Wed Oct 19 11:19:57 2011|62] (4) UserList: (1)[HelloList] sendToAll begin
[Wed Oct 19 11:19:57 2011|62] (4) UserList: (1)[HelloList] sendToAll end
[Wed Oct 19 11:19:57 2011|62] (4) UserList: (2)[UserList] sendToAll begin
[Wed Oct 19 11:19:57 2011|62] (4) UserList: (2)[UserList] sendToAll end
[Wed Oct 19 11:19:57 2011|62] (4) UserList: (0)[EnterList] sendToAll begin
[Wed Oct 19 11:19:57 2011|62] (4) UserList: (0)[EnterList] sendToAll end
[Wed Oct 19 11:19:57 2011|62] (4) UserList: (0)[IpList] sendToAll begin
[Wed Oct 19 11:19:57 2011|62] (4) UserList: (0)[IpList] sendToAll end
[Wed Oct 19 11:19:57 2011|140] (4) DcConn: (sock 68) IN: $Version 1.0091
[Wed Oct 19 11:19:57 2011|140] (1) DcConn: (sock 68) Attempt to attack in Version (repeated sending)
[Wed Oct 19 11:19:57 2011|140] (3) DcConn: (sock 68) closeNow (reason 8)
[Wed Oct 19 11:19:57 2011|140] (4) UserList: (2)[UserList] Before leave: Magneto Size: 2
[Wed Oct 19 11:19:57 2011|140] (4) UserList: (1)[UserList] After leave: Magneto Size: 1
[Wed Oct 19 11:19:57 2011|140] (3) DcConn: (sock 68) Closing socket: 68
[Wed Oct 19 11:19:59 2011|140] (4) UserList: (1)[UserList] sendToAll begin
[Wed Oct 19 11:19:59 2011|140] (4) UserList: (1)[UserList] sendToAll end


Подскажите, как можно исправить данную проблему?
Тестировал так же на ProtaX, проблем не возникло.

Автор: Setuper 19.10.2011, 7:01

Тот кто писал Magneto допустил ошибку в версии. Magneto отправляет на хаб версию 1.0091, а по NMDC протоколу нужно отправлять версию 1,0091, то есть дробная и целая част должна быть отделена запятой, а не точкой.

Чтобы включить проверку в русхабе, достаточно написать небольшой скриптик:

Код
function OnVersion()
  return true
end


http://mydc.ru/r/?http://wiki.mydc.ru/%D0%A1%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F_Lua_API_%D0%B2_RusHub#OnVersion

Автор: Mangust 19.10.2011, 7:33

Цитата(Setuper @ 19.10.2011, 16:01) *
Тот кто писал Magneto допустил ошибку в версии. Magneto отправляет на хаб версию 1.0091, а по NMDC протоколу нужно отправлять версию 1,0091, то есть дробная и целая част должна быть отделена запятой, а не точкой.

Чтобы включить проверку в русхабе, достаточно написать небольшой скриптик:

Код
function OnVersion()
  return true
end


http://mydc.ru/r/?http://wiki.mydc.ru/%D0%A1%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F_Lua_API_%D0%B2_RusHub#OnVersion


Не подскажите куда именно это нужно вписать?
Создал onversion.lua в него вписал
Код
function OnVersion()
  return true
end

Включил скрипт в scripts.xml, но без изменений.

Автор: Atlant 19.10.2011, 8:17

Цитата(Setuper @ 19.10.2011, 10:01) *
Тот кто писал Magneto допустил ошибку в версии. Magneto отправляет на хаб версию 1.0091, а по NMDC протоколу нужно отправлять версию 1,0091, то есть дробная и целая част должна быть отделена запятой, а не точкой.

Чтобы включить проверку в русхабе, достаточно написать небольшой скриптик:

Код
function OnVersion()
  return true
end


http://mydc.ru/r/?http://wiki.mydc.ru/%D0%A1%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F_Lua_API_%D0%B2_RusHub#OnVersion

Писал его я big_smile.gif
Внимание, вопрос. Ткните в исходную документацию по протоколу, в связи с чем должна быть именно запятая? VerliHub и PtokaX совершенно нормально это переваривают...

Автор: Mangust 19.10.2011, 8:45

Цитата(Setuper @ 19.10.2011, 16:01) *
Тот кто писал Magneto допустил ошибку в версии. Magneto отправляет на хаб версию 1.0091, а по NMDC протоколу нужно отправлять версию 1,0091, то есть дробная и целая част должна быть отделена запятой, а не точкой.

Чтобы включить проверку в русхабе, достаточно написать небольшой скриптик:

Код
function OnVersion()
  return true
end


http://mydc.ru/r/?http://wiki.mydc.ru/%D0%A1%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F_Lua_API_%D0%B2_RusHub#OnVersion

Уважаемый atlant_is перекомпилировал клиент.
Теперь ошибка выглядит так
Код
[Wed Oct 19 17:39:19 2011|890] (4) DcConn: (sock 68) IN: $Version 1,0091
[Wed Oct 19 17:39:19 2011|890] (1) DcConn: (sock 68) Attempt to attack in Version (repeated sending)
[Wed Oct 19 17:39:19 2011|890] (3) DcConn: (sock 68) closeNow (reason 8)

Автор: Setuper 19.10.2011, 8:57

К сожалению оригинальный сайт одного из бывших авторов протокола, на котором было описание большинства команд протокола, перестал существовать. Однако есть перевод на русский, а также некоторые сайты-клоны, которые успели скопировать содержимое.

http://mydc.ru/r/?http://wiki.mydc.ru/$Version
http://mydc.ru/r/?http://wiki.gusari.org/index.php?title=$Version

Mangust, ошибка говорит о том, что команда $Version была отослана повторно. В русхабе установлена защита от повторной отсылки команд стадии входа.

Автор: Atlant 19.10.2011, 9:02

Вот, все-таки,

Цитата
Remember multiple separators can be used, the comma (,) and period (.) being the most common.

Вероятно, на стороне RusHub'а стоит предусмотреть оба варианта...

Перешерстил код, не нашел повторной отправки $Version (за нее, по-моему и verlihub кикает). Можно кусок лога чуть подробнее?

Автор: Setuper 19.10.2011, 9:07

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

Автор: Angel_D 19.10.2011, 9:09

Цитата
что ж, остановимся на версии "узкий канал юзверя"

вечером пришлось вернуться к данному вопросу.
решил попинговать сервак в пиковое время и оказалось очень даже не зря.
по онлайне порядка 6.5к пинг до серва на гигабитном интерфейсе (мне до несколько коммутаторов) 140/240 мс, порой теряются пакеты. при этом нагрузка интерфейса прыгает от 300 до 800 мегабит. отключил все скрипты, кроме FirstRusHubBot и BanManager - ситуация ни чуть не изменилась.
попробовал запустить ProkaX вместо RussHub и подождать, пока он медленно и нудно впустит всех желающих - пинг стабильная 1мс, нагрузка на сетевой интерфейс раза в 3 упала (при том же онлайне +-200 пользователей).
что-то не так... если я верно всё помню, одна из целей проекта - "быстрый хаб для больших онлайнов", а 7к - это далеко не предел действующих хабов...

Автор: Setuper 19.10.2011, 9:15

Хотя, честно говоря, когда я читал описание, там по-моему была только запятая.
Толи я невнимательно читал, толи точку дописали как ещё один вариант.

Angel_D, ну с птохой сравнивать в данном случае не корректно, так как птоха использует потоки с блокирующими сокетами, а русхаб использует один поток и неблокирующие сокеты. Да, возможно дело именно в архитектуре русхаба. Спасибо за проведенные тесты - я буду разбираться.

Автор: Atlant 19.10.2011, 9:15

По крайней мере, PtokaX и Verlihub нормально реагируют на оба варианта.

Автор: Setuper 19.10.2011, 9:18

В них просто отсутствует проверка версии.

Автор: Mangust 19.10.2011, 9:19

А мне то что делать? Rushub меня вполне устраивает и от клиента отказываться не хочу)))

Автор: Setuper 19.10.2011, 9:26

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

То есть в каком-то из скриптов у тебя функция OnVersion возвращает true или 1, поэтому проверка версии включается.

Автор: Mangust 19.10.2011, 9:34

Цитата(Setuper @ 19.10.2011, 18:26) *
Эм... я немного перепутал.
Всё наоборот в скриптах не должно быть функции OnVersion, которая возвращает true, так как по умолчанию проверка отключена.

То есть в каком-то из скриптов у тебя функция OnVersion возвращает true или 1, поэтому проверка версии включается.

Я сначала думал, что дело в скриптах. Но поставил чистый Rushub доступный для скачивания на главное странице хаба + lua.dll . Никаких дополнительный скриптов не стоит.

Автор: Setuper 19.10.2011, 9:38

Такс... ещё раз... На чистом хабе без скриптов что в логи пишет?

Автор: Atlant 19.10.2011, 9:46

Цитата(Setuper @ 19.10.2011, 12:18) *
В них просто отсутствует проверка версии.

У меня даже в коде есть коммент, что верлик хочет версию, без нее кикает. А птоха - да, не проверяет.

Автор: Mangust 19.10.2011, 9:46

Цитата(Setuper @ 19.10.2011, 18:38) *
Такс... ещё раз... На чистом хабе без скриптов что в логи пишет?

Код
[Wed Oct 19 18:44:10 2011|484] (3) Conn: (sock 176) Accept new socket: 68
[Wed Oct 19 18:44:10 2011|500] (4) DcConn: (sock 68) IN: $Key …СА° A С±±АА01Рr/%DCN096%/іУqУУ±bВaPQqТЦБССЃ
[Wed Oct 19 18:44:10 2011|500] (4) DcConn: (sock 68) IN: $ValidateNick Magneto
[Wed Oct 19 18:44:10 2011|500] (3) DcConn: (sock 68) User Magneto to validate nick
[Wed Oct 19 18:44:10 2011|500] (4) DcConn: (sock 68) IN: $Version 1,0091
[Wed Oct 19 18:44:10 2011|500] (3) DcConn: (sock 68) Version:1,0091
[Wed Oct 19 18:44:10 2011|500] (4) DcConn: (sock 68) IN: $MyINFO $ALL Magneto <StrongDC++ V:2.03,M:A,H:3/3/0,S:1,O:1>$ $LAN(T3) 1$nomail$7345678954$
[Wed Oct 19 18:44:10 2011|500] (3) DcConn: (sock 68) Begin login
[Wed Oct 19 18:44:10 2011|500] (4) UserList: (1)[UserList] Before add: Magneto Size: 1
[Wed Oct 19 18:44:10 2011|500] (4) UserList: (2)[UserList] After add: Magneto Size: 2
[Wed Oct 19 18:44:10 2011|500] (3) DcConn: (sock 68) Adding at the end of Nicklist
[Wed Oct 19 18:44:10 2011|500] (3) DcConn: (sock 68) Entered on the hub
[Wed Oct 19 18:44:11 2011|656] (4) UserList: (1)[HelloList] sendToAll begin
[Wed Oct 19 18:44:11 2011|656] (4) UserList: (1)[HelloList] sendToAll end
[Wed Oct 19 18:44:11 2011|656] (4) UserList: (2)[UserList] sendToAll begin
[Wed Oct 19 18:44:11 2011|656] (4) UserList: (2)[UserList] sendToAll end
[Wed Oct 19 18:44:11 2011|656] (4) UserList: (0)[EnterList] sendToAll begin
[Wed Oct 19 18:44:11 2011|656] (4) UserList: (0)[EnterList] sendToAll end
[Wed Oct 19 18:44:11 2011|656] (4) UserList: (0)[IpList] sendToAll begin
[Wed Oct 19 18:44:11 2011|656] (4) UserList: (0)[IpList] sendToAll end
[Wed Oct 19 18:44:11 2011|656] (4) DcConn: (sock 68) IN: $Version 1,0091
[Wed Oct 19 18:44:11 2011|656] (1) DcConn: (sock 68) Attempt to attack in Version (repeated sending)
[Wed Oct 19 18:44:11 2011|656] (3) DcConn: (sock 68) closeNow (reason 8)
[Wed Oct 19 18:44:11 2011|656] (4) UserList: (2)[UserList] Before leave: Magneto Size: 2
[Wed Oct 19 18:44:11 2011|656] (4) UserList: (1)[UserList] After leave: Magneto Size: 1
[Wed Oct 19 18:44:11 2011|656] (3) DcConn: (sock 68) Closing socket: 68
[Wed Oct 19 18:44:13 2011|734] (4) UserList: (1)[UserList] sendToAll begin
[Wed Oct 19 18:44:13 2011|734] (4) UserList: (1)[UserList] sendToAll end

от момента входа, до момента выхода.

Автор: Setuper 19.10.2011, 9:56

Magneto 2 раза отсылает версию.
Для чего это сделано не знаю, но русхаб отключает после повторной отсылки команд стадии входа, так как это часть огромной системы антифлуда.
Atlant, можешь убрать повторную отсылку команды $Version в Magneto?

Цитата(Atlant @ 19.10.2011, 10:46) *
У меня даже в коде есть коммент, что верлик хочет версию, без нее кикает. А птоха - да, не проверяет.

Верлик хочет версию, но не проверяет её значение.

Автор: Atlant 19.10.2011, 10:08

Я бы с удовольствием отключил, но пока не могу найти в своем же коде, в какой момент это может происходить. Точнее, даже так, оно отправляет версию в ответ на $Hello от хаба. РусХаб для каких-то целей повторно отправляет приветствие?

Автор: Setuper 19.10.2011, 10:12

Если в $Supports не указано NoHello, то русхаб пересылает $Hello каждого пользователя из списка всех пользователей хаба.

Автор: Angel_D 19.10.2011, 10:14

Цитата
ну с птохой сравнивать в данном случае не корректно, так как птоха использует потоки с блокирующими сокетами, а русхаб использует один поток и неблокирующие сокеты

да, с этим безусловно согласен, и скажем больше - только поддерживаю то, что вы предпочитаете сделать что-то новое, а не такое же.
просто подобное "насилование" сетевого интерфейса всетаки не нормально, о чем решил вам сообщить.
на всякий случай - пользовался Win32 версией хаба под WinServer 2008 R2

Автор: Setuper 19.10.2011, 10:15

Atlant, а ты что не можешь сделать отправку $Version только после первого $Hello ?
Вообще логично после первого $Hello отправлять разом 3 команды: $Version 1,0091|$GetNickList|$MyINFO $ALL

Автор: Atlant 19.10.2011, 10:34

Ясно. Ок, сейчас пересоберу с учетом нового знания. big_smile.gif

Цитата(Setuper @ 19.10.2011, 13:15) *
Atlant, а ты что не можешь сделать отправку $Version только после первого $Hello ?
Вообще логично после первого $Hello отправлять разом 3 команды: $Version 1,0091|$GetNickList|$MyINFO $ALL

У меня определенный зоопарк уже из этих ботов. Для целей унификации и ускорения процесса написания сделан общий родительский класс, в котором прописана реакция на команды от хаба, каждая в свой метод. А уже в методах обрабатывает, в зависимости от того, подо что бот будет заточен big_smile.gif Поскольку на RusHub'е это все не тестировалось, потому было оставлено как есть. Сейчас сделал проверку на состояние залогиненности и повторно оно не отправляет версию в ответ на $Hello.

Автор: Angel_D 19.10.2011, 10:40

Кстати, вот график нашелся для наглядности моих вчерашних экспериментов...


Автор: Mangust 19.10.2011, 12:57

Цитата(Atlant @ 19.10.2011, 19:34) *
Ясно. Ок, сейчас пересоберу с учетом нового знания. big_smile.gif


У меня определенный зоопарк уже из этих ботов. Для целей унификации и ускорения процесса написания сделан общий родительский класс, в котором прописана реакция на команды от хаба, каждая в свой метод. А уже в методах обрабатывает, в зависимости от того, подо что бот будет заточен big_smile.gif Поскольку на RusHub'е это все не тестировалось, потому было оставлено как есть. Сейчас сделал проверку на состояние залогиненности и повторно оно не отправляет версию в ответ на $Hello.

Спасибо огромное.. Подтверждаю, все работает на ура )

Автор: PomanoB 19.10.2011, 14:45

Atlant, Mangust наверное использует старую версию хаба, Setuper же исправлял эту ошибку с повторной отправкой хелло http://mydc.ru/topic2910s100.html?p=40064#entry40064

Автор: Setuper 19.10.2011, 15:10

Исправить то исправил, а вот релиза после исправления ещё не было.
В эти выходные сделаю релиз, а то действительно по мелочи набралось всего, да и давненько уже релиз не выпускался big_smile.gif

Автор: Atlant 21.10.2011, 9:07

Ага, значит все-таки ошибка была. Ну в любом случае, исправлено как минимум с моей стороны big_smile.gif

Автор: dimajak 14.11.2011, 23:39

Для новичка есть инструкции?
Скачал rushub_2.3.7_win32.rar, скачал lua_plugin_2.6_win32.rar.
Распаковал, запустил rushub.exe. Создались подкаталоги: lang, logs, plugins и файл RusHub.xml.
Lua плагин в подкаталог plugins ?
Как установить хаб службой?
Как управлять хабом?
Есть GUI для управления хабом?
Скрипты куда кладутся?
Где хранятся данные о юзерах?

Автор: Артём 15.11.2011, 0:21

Цитата(dimajak @ 14.11.2011, 23:39) *
Есть GUI для управления хабом?

Пока только http://mydc.ru/topic3288.html?hl=RusRC
Цитата
Скрипты куда кладутся?

в папку scripts
Цитата
Как управлять хабом?

скачать http://mydc.ru/topic2878.html
Цитата
Как установить хаб службой?

http://mydc.ru/topic4075.html?hl=rushub

Автор: dimajak 15.11.2011, 1:05

Встретил упоминание файла scripts.xml. Где он должен находиться и каково его содержимое?
Первый раз запустил RusHub, как стать админом хаба?

Автор: Артём 15.11.2011, 1:22

Цитата(dimajak @ 15.11.2011, 1:05) *
Первый раз запустил RusHub, как стать админом хаба?

скачать http://mydc.ru/topic2878.html
зарегистрироваться, залезть в файл с регистрами и изменить себе профиль.

Автор: dimajak 15.11.2011, 1:25

Цитата(dimajak @ 15.11.2011, 0:39) *
Скрипты куда кладутся?

Цитата(Артём @ 15.11.2011, 1:21) *
в папку scripts

Где должна быть папка /scripts ?
в подкаталоге plugins ?
Отвечу сам себе - нет, в корневой папке хаба. Почему разработчик не создал ее при первом запуске хаба? Вопрос.
Почему я предположил, что там?
Упоминалась на форуме эта страница http://mydc.ru/r/?http://wiki.mydc.ru/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_RusHub_%D0%BD%D0%B0_Windows_%D0%B8_Ubuntu_10.04, где было сказано
Цитата
Лезем в папку plugins и в файле scripts.xml для активации скрипта меняем "0" на "1":

Автор: Артём 15.11.2011, 1:34

dimajak, там же где и ехешник

Автор: dimajak 15.11.2011, 1:48

Артём, нашел http://mydc.ru/topic2902.html?view=findpost&p=40864

Цитата
Лезем в папку plugins и в файле scripts.xml для активации скрипта меняем "0" на "1":

Автор: Alexey 15.11.2011, 5:51

Цитата(dimajak @ 15.11.2011, 2:25) *
Почему разработчик не создал ее при первом запуске хаба?

Потому-что без подключенного луа-плагина необходимости в этой папке нет.

Автор: dimajak 18.11.2011, 23:15

Спасибо за ответы. Разобрался во многом. Порадовал wiki RusHub, спасибо.
Но остались вопросы:
1. Как установить RusHub службой в windows?
2. Есть GUI для управления RusHub (а-ля PXControl) ?

Автор: mariner 18.11.2011, 23:50

1. На сколько помню - вызвать с ключом -i (А ваще -h не пробовал?)
2. Есть, но устарела

Автор: Alexey 19.11.2011, 4:20

Дополню предыдущего оратора:
1. Про это в вики http://mydc.ru/r/?http://wiki.mydc.ru/RusHub#.D0.9E.D0.BF.D1.86.D0.B8.D0.B8_.D0.BA.D0.BE.D0.BC.D0.B0.D0.BD.D0.B4.D0.BD.D0.BE.D0.B9_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8.
2. http://mydc.ru/topic3288.html

Автор: dimajak 21.11.2011, 21:02

Текст выдаваемый хабом "Папка, содержащая скрипты" без значения, т.е. после "Папка, содержащая скрипты" пусто.

Цитата
[20:53:04] <RusHubBot> *** Скрипты:

№ 01 [ вкл ] FirstRusHubBot.lua (157 Кб)
№ 02 [ вкл ] mafia_RH.lua (97 Кб)
№ 03 [ выкл ] Bomb_RH.lua

*** Общее использование памяти скриптами: 254 Кб
*** Папка, содержащая скрипты:
Не нашел где и кто это сообщает, вроде не срипты, но и в lang\Russian.xml нет.

Автор: Saymon21 21.11.2011, 22:43

dimajak, http://mydc.ru/topic2878.html?view=findpost&p=37905

Автор: dimajak 22.11.2011, 3:00

В Вики нет описания события OnTimer
http://mydc.ru/r/?http://wiki.mydc.ru/LUA_API_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F_%D0%B2_RusHub#OnTimer

Автор: Alexey 22.11.2011, 3:49

Как смог описáл. Ссылку в вики исправил.

Автор: dimajak 16.1.2012, 13:24

обновил RusHub до 2.3.8, теперь в подкаталоге logs пусто. lua_errors.log появился при ошибке в скрипте, а файла логов хаба нет.

Автор: Setuper 16.1.2012, 21:50

Изменились уровни логирования, поэтому в старой версии файла у тебя настройка: iMaxLevel = 0 (настройку iMaxErrLevel можно удалить, она теперь содержится в iMaxLevel).

Система логирования теперь такая:
FATAL - критическая ошибка (уровень 0);
ERROR - ошибка (уровень 1);
WARN - предупреждение (уровень 2);
INFO - информационное сообщение (уровень 3);
DEBUG - отладочное сообщение (уровень 4);
TRACE - трейс сообщение (уровень 5).

Параметр iMaxLevel показывает текущий уровень логирования (по умолчанию теперь 3).
При этом уровень логирования позволяет логировать и всё события, которые ниже уровнем.

Например, если у нас стоит уровень логирования 3 (INFO), то будут логироваться события INFO, WARN, ERROR и FATAL.
Если уровень логирования 5 (TRACE), то логируются все события.

Поэтому поставь уровень логирования iMaxLevel = 3, и логи должны появятся.

Автор: KT315 3.2.2012, 14:58

В списке поддерживаемых ОС можно добавить Solaris x86. Русхаб там тоже собираеся и, в целом работает. Методику сборки опишу позже.

Автор: mariner 3.2.2012, 15:05

А еще MacOS X тоже можно добавить.

Автор: KT315 3.2.2012, 15:09

OS 10 вроде как есть в списке

Автор: mariner 3.2.2012, 15:38

Значит уже добавили.

Автор: Setuper 3.2.2012, 16:01

На самом деле собирать хаб легко на многих платформах. Гораздо больше гемора с lua плагином.
Собирался ли lua плагин под указанные платформы?

Автор: MaxFox 13.2.2012, 6:16

Вопросы:
1. Какой количество пользователей выдержит данный софт?
2. Какой количество пользователей данный софт может запустить на хаб за 1 секунду(10 секунд)? Птока имеет настройку 500 юзеров за 10 секунд... мне этого уже мало...

Я там темой ошибся, и мне отвечали что стрес тестом 15 и 19 загоняли... так вот, мне минимум 30 нужно...

Автор: MaxFox 14.2.2012, 21:24

"молчанье было ей ответом..."

Автор: Otshelnik-Fm 14.2.2012, 21:43

Экспериментировать на пользователях не хотите? Вот и проверили бы

сорри за почти пустой ответ. Я задавал в общалке http://mydc.ru/topic4184.html

Автор: MaxFox 14.2.2012, 22:33

Цитата(Otshelnik-Fm @ 14.2.2012, 22:43) *
Экспериментировать на пользователях не хотите? Вот и проверили бы

сорри за почти пустой ответ. Я задавал в общалке http://mydc.ru/topic4184.html

не хочу, если он обречен на провал... я бы изначально уточнил все детали.. а потом бы уже делал, поэтому и спрашиваю...

З.Ы. Хоть какой-то ответ =)

Автор: Ksan 14.2.2012, 23:29

Цитата
так вот, мне минимум 30 нужно.

MaxFox, ну так делай 30 тыс. и проверяй. Какие проблемы-то?
За тебя кто-то должен другой загонять столько народу?

Автор: MaxFox 15.2.2012, 1:02

Цитата(Ksan @ 15.2.2012, 0:29) *
MaxFox, ну так делай 30 тыс. и проверяй. Какие проблемы-то?
За тебя кто-то должен другой загонять столько народу?

а может ответить создатель софта? выскажет свое мнение...

З.Ы. Если бы я хотел сам все проверить, я бы и не спрашивал... такие ответы вымораживают...

Автор: Ksan 15.2.2012, 1:27

Цитата
З.Ы. Если бы я хотел сам все проверить

MaxFox, так захоти!
Почему другие должны хотеть за тебя? И делать..
А автору больше нечего делать, как проверять твои пожелания?
А если завтра другой придёт спросит про 100 тыс? Ему опять всё бросать и загонять 100 тысяч народу?
Лучше спроси - а как сделать стресс-тест самому?

Автор: Артём 15.2.2012, 1:28

MaxFox, а какой ты ждал ответ? Хабсофт в стадии разработки, всё тестируется во время работы на живых юзерах.

Автор: CrazyKiller 15.2.2012, 2:06

Цитата(Ksan @ 15.2.2012, 2:27) *
MaxFox, так захоти!
Почему другие должны хотеть за тебя? И делать..
А автору больше нечего делать, как проверять твои пожелания?
А если завтра другой придёт спросит про 100 тыс? Ему опять всё бросать и загонять 100 тысяч народу?
Лучше спроси - а как сделать стресс-тест самому?


А как сделать Стресс тест ? ))

Автор: MaxFox 15.2.2012, 8:52

facepalm

забейте парни... все с вами понятно...

З.Ы. Все же попробую дождаться автора, хотябы по вопросу, количества подключений юзерав за 1(10) сек... или тоже самому проверить?

Автор: Saymon21 15.2.2012, 11:26

CrazyKiller, собрать утилиту stress-test, которая находится в svn русхаба и запусить с параметром -h.


ps. Какие всётаки админы крупных хабов. Всё только дай, а дальше обложат десятью ....
Сами ведь делать ничего не хотят... :(

Автор: mariner 15.2.2012, 13:13

Цитата(MaxFox @ 15.2.2012, 9:52) *
facepalm


Смотри сильно не фэйспальм, лицо разбить можно же.

По поводу стресстеста. Какой железо на сервере? Просто допустим у меня Зеон на 2.3 Ггц, естественно он будет обрабатывать подключение медленее, чем i7 2700K на частоте 3.5 ГГц.

Автор: Setuper 15.2.2012, 20:20

Действительно, всё зависит от железа.
Ограничение очереди на соединение равна 64 за один цикл хаба.
В секунду может пройти достаточно много циклов, всё зависит от железа.

Автор: MaxFox 16.2.2012, 6:27

Цитата(Saymon21 @ 15.2.2012, 12:26) *
CrazyKiller, собрать утилиту stress-test, которая находится в svn русхаба и запусить с параметром -h.


ps. Какие всётаки админы крупных хабов. Всё только дай, а дальше обложат десятью ....
Сами ведь делать ничего не хотят... :(

Что конкретно я делать не хочу? Я не понимаю, в чем сложность ответить на 2 вопроса... устроили цирк... привожу пример... вчера. я прекрасно пообщался с PPK, ровно с теми же впросами, получил ответ что птока может вместить на данный момент 32 767, обусловлено это именно софтом... но это на данный момент и в последствии эта величина может быть изменена.

Каким образом я должен протестировать данный софт и узнать его возможности на одновременный вход юзеров на хаб?

Камень - Q9550

Что за вечный негатив? В чем у вас проблема? Возможно есть конкретные претензии ко мне?

Автор: Ksan 16.2.2012, 10:10

MaxFox, а ещё ты ябедничал PPK на наш форум. Такое не прощается.
И да, помнишь своё:

Цитата
З.Ы. Если бы я хотел сам все проверить, я бы и не спрашивал
Нет смысла помогать таким.
Остальное уже высказано выше.

Автор: mariner 16.2.2012, 11:37

Цитата
Камень - Q9550

У меня нет такого камня, поэтому проверить русхаб можешь только ты сам. Могу дать результаты с более толстой системы, но они могут быть выше, чем те, что ты можешь получить у тебя.

Цитата
я прекрасно пообщался с PPK, ровно с теми же впросами, получил ответ что птока может вместить на данный момент 32 767

Это теоретическая вместимость. У русхаба она такая же. Эта информация тут где-то уже проскакивала, кстати.

Автор: Otshelnik-Fm 16.2.2012, 12:30

Софт некомерчесский, дц хабы как правило тоже... А им оказывается кто-то должен. Спасибо энтузиастам (разработчикам, тестировщикам), за то что в нашем мире всё еще что-то делается просто так

Автор: MaxFox 16.2.2012, 15:27

Цитата(Ksan @ 16.2.2012, 11:10) *
MaxFox, а ещё ты ябедничал PPK на наш форум. Такое не прощается.
И да, помнишь своё: Нет смысла помогать таким.
Остальное уже высказано выше.

Твои коменты, это каждый раз альтернатива на тему "Отвали, иди сам разбирайся..." хороший подоход... так держать. Я то разберусь, а вот ты как был г***м, так им и останешься судя по всему...
Я что-то не помню, чтобы я жаловался на ваш форум... логи есть?
Я всего лишь написал, что "some russian... ignore any documentation... and, when i ask him on forum about his product, they tell me... "you need answer on the questions? you can testing our product and get them..." this is not good support..." где-то есть ссылка на ваш форум? упоминания о нем? Или это всего лишь ваше чрезмерное самомнение? Возможно вы использовали как идентификатор упоминания о форуме фразу ""you need answer on the questions? you can testing our product and get them..." this is not good support..." в таком случае могу лишь предположить что правда глаза режет.

Цитата(mariner @ 16.2.2012, 12:37) *
У меня нет такого камня, поэтому проверить русхаб можешь только ты сам. Могу дать результаты с более толстой системы, но они могут быть выше, чем те, что ты можешь получить у тебя.
Это теоретическая вместимость. У русхаба она такая же. Эта информация тут где-то уже проскакивала, кстати.

Был бы признателен, за любую инфу, что бы иметь хоть какое-то представление...
И прежде чем написать сове первое сообщение, долго и упорно пытался нарыть эту инфу... возможно не заметил.

Цитата(Otshelnik-Fm @ 16.2.2012, 13:30) *
Софт некомерчесский, дц хабы как правило тоже... А им оказывается кто-то должен. Спасибо энтузиастам (разработчикам, тестировщикам), за то что в нашем мире всё еще что-то делается просто так

омг... жду с нетерпением продуктов "без поддержки и вообще какой либо документации"... под лозунгами "Мы подготовили вам продукт, вам осталось разобраться в нем с нуля"... это хорошая тенденция...

Никому в голову не приходит, что если бы данная информация была, я бы вас и не спрашивал... разводить срач уже хз на сколько, вместо того чтобы написать либо "Мы не знаем, мы не тестировали, но предполагаем столько то...", либо "Мы тестировали, мы знаем столько то, это предел" все, все что от я хотел.
Что у вас за проблемы? что за негатив то постоянный? есть ко мне притензии.. ну давайте пишите, обсудим...

З.Ы. Кстати название топика "Технические вопросы по RusHub'у"... гж парни...

Автор: CrazyKiller 21.2.2012, 1:05

в логах бяки всякие, не пойму чего хаб хочет от меня, как исправить ?

Лог 1

2012-02-18 12:59:47,506 INFO PluginList(41): Using plugins in: ./plugins/
2012-02-18 12:59:47,600 INFO PluginList(287): Plugin detected: LuaPlugin v 2.7
2012-02-18 12:59:48,207 INFO DcServer(207): Listening on 0.0.0.0:411 TCP
2012-02-18 12:59:48,207 INFO DcServer(334): NMDC Server RusHub 2.3.9[beta] is running on [0.0.0.0]:411 TCP
2012-02-18 12:59:48,208 INFO DcServer(231): Main loop start
2012-02-18 13:00:32,066 INFO DcServer(67): Received a 15 signal, quiting
2012-02-18 13:00:32,067 INFO DcServer(266): Main loop stop(0)
2012-02-18 13:00:32,067 INFO DcServer(143): Destruct DcServer
2012-02-18 13:00:32,181 ERROR [sock:30] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,213 ERROR [sock:57] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,214 ERROR [sock:79] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,218 ERROR [sock:68] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,219 ERROR [sock:7] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,221 ERROR [sock:41] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,222 ERROR [sock:6] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,235 ERROR [sock:16] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,237 ERROR [sock:20] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,238 ERROR [sock:62] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,248 ERROR [sock:43] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,250 ERROR [sock:11] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,251 ERROR [sock:42] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,252 ERROR [sock:17] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,254 ERROR [sock:70] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,270 ERROR [sock:47] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,272 ERROR [sock:35] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,273 ERROR [sock:59] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,286 ERROR [sock:48] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,287 ERROR [sock:55] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,289 ERROR [sock:78] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,290 ERROR [sock:80] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,300 ERROR [sock:86] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,302 ERROR [sock:58] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,310 ERROR [sock:23] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,312 ERROR [sock:53] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,313 ERROR [sock:25] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,314 ERROR [sock:87] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,326 ERROR [sock:33] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,328 ERROR [sock:38] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,329 ERROR [sock:67] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,330 ERROR [sock:31] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,344 ERROR [sock:94] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,346 ERROR [sock:46] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,357 ERROR [sock:32] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,359 ERROR [sock:64] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,360 ERROR [sock:95] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,362 ERROR [sock:50] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,376 ERROR [sock:92] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,377 ERROR [sock:93] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,388 ERROR [sock:8] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,389 ERROR [sock:66] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,397 ERROR [sock:81] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,398 ERROR [sock:51] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,400 ERROR [sock:72] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,401 ERROR [sock:14] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,402 ERROR [sock:39] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,415 ERROR [sock:75] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,416 ERROR [sock:37] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,418 ERROR [sock:44] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,429 ERROR [sock:61] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,430 ERROR [sock:71] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,436 ERROR [sock:73] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,437 ERROR [sock:56] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,452 ERROR [sock:21] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,454 ERROR [sock:36] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,460 ERROR [sock:18] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,461 ERROR [sock:26] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,465 ERROR [sock:84] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,467 ERROR [sock:82] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,468 ERROR [sock:83] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,470 ERROR [sock:34] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,514 ERROR [sock:45] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,516 ERROR [sock:60] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,518 ERROR [sock:13] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,521 ERROR [sock:9] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,522 ERROR [sock:27] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,528 ERROR [sock:15] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,530 ERROR [sock:5] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,536 ERROR [sock:69] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,538 ERROR [sock:85] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,539 ERROR [sock:91] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,543 ERROR [sock:24] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,545 ERROR [sock:54] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,546 ERROR [sock:10] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,548 ERROR [sock:89] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,549 ERROR [sock:40] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,551 ERROR [sock:90] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,553 ERROR [sock:74] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,554 ERROR [sock:77] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,555 ERROR [sock:29] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,556 ERROR [sock:63] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,558 ERROR [sock:65] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,560 ERROR [sock:76] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,561 ERROR [sock:22] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,563 ERROR [sock:52] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,564 ERROR [sock:49] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,566 ERROR [sock:12] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,567 ERROR [sock:88] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,569 ERROR [sock:28] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,571 ERROR [sock:19] DcConn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:00:32,572 ERROR [sock:4] Conn(114): Socket not closed: Прерван системный вызов [4]
2012-02-18 13:45:39,376 INFO PluginList(41): Using plugins in: ./plugins/
2012-02-18 13:45:39,485 INFO PluginList(287): Plugin detected: LuaPlugin v 2.7
2012-02-18 13:45:40,101 INFO DcServer(207): Listening on 0.0.0.0:411 TCP
2012-02-18 13:45:40,102 INFO DcServer(334): NMDC Server RusHub 2.3.9[beta] is running on [0.0.0.0]:411 TCP
2012-02-18 13:45:40,102 INFO DcServer(231): Main loop start
2012-02-18 13:53:02,068 INFO PluginList(41): Using plugins in: ./plugins/
2012-02-18 13:53:02,121 INFO PluginList(287): Plugin detected: LuaPlugin v 2.7
2012-02-18 13:53:02,710 INFO DcServer(207): Listening on 0.0.0.0:411 TCP
2012-02-18 13:53:02,711 INFO DcServer(334): NMDC Server RusHub 2.3.9[beta] is running on [0.0.0.0]:411 TCP
2012-02-18 13:53:02,711 INFO DcServer(231): Main loop start
2012-02-18 17:49:30,049 WARN [sock:167] DcConn(910): Sending buffer has big size, closing
2012-02-18 18:16:28,259 WARN [sock:135] DcConn(910): Sending buffer has big size, closing
2012-02-18 20:41:44,229 WARN [sock:457] DcConn(910): Sending buffer has big size, closing
2012-02-18 22:40:41,403 WARN [sock:494] DcConn(910): Sending buffer has big size, closing
2012-02-18 23:33:18,096 WARN [sock:254] DcConn(910): Sending buffer has big size, closing
2012-02-18 23:45:58,939 WARN [sock:311] DcConn(910): Sending buffer has big size, closing
2012-02-19 01:22:59,426 WARN [sock:196] DcConn(910): Sending buffer has big size, closing
2012-02-19 13:21:18,010 WARN [sock:58] DcConn(910): Sending buffer has big size, closing
2012-02-19 17:11:08,467 WARN [sock:277] DcConn(910): Sending buffer has big size, closing
2012-02-19 19:34:46,281 WARN [sock:465] DcConn(910): Sending buffer has big size, closing
2012-02-19 19:56:14,193 WARN [sock:294] DcConn(910): Sending buffer has big size, closing
2012-02-19 20:03:25,768 WARN [sock:477] DcConn(910): Sending buffer has big size, closing


Лог 2
2012-02-19 23:09:29,827 INFO PluginList(41): Using plugins in: ./plugins/
2012-02-19 23:09:29,877 INFO PluginList(287): Plugin detected: LuaPlugin v 2.7
2012-02-19 23:09:30,619 INFO DcServer(207): Listening on 0.0.0.0:411 TCP
2012-02-19 23:09:30,619 INFO DcServer(334): NMDC Server RusHub 2.3.9[beta] is running on [0.0.0.0]:411 TCP
2012-02-19 23:09:30,619 INFO DcServer(231): Main loop start
2012-02-20 16:32:00,907 WARN [sock:51] DcConn(910): Sending buffer has big size, closing
2012-02-20 20:24:36,478 WARN [sock:117] DcConn(910): Sending buffer has big size, closing
2012-02-20 20:54:30,861 WARN [sock:293] DcConn(910): Sending buffer has big size, closing
2012-02-20 21:36:42,796 WARN [sock:191] DcConn(910): Sending buffer has big size, closing
2012-02-20 21:53:19,211 WARN DcServer(436): System loading: 1 level (was 0 level)
2012-02-20 21:53:54,509 WARN DcServer(436): System loading: 0 level (was 1 level)
2012-02-20 22:54:59,379 WARN [sock:304] DcConn(910): Sending buffer has big size, closing

Автор: Setuper 21.2.2012, 16:40

А перевести не можешь?
Написано: буфер отправки имеет большой размер.
Другими словами слишком много данный пытаешься отправить. Возможно какой-то скрипт так много отправляет (более 2 Мбайт).

Автор: CrazyKiller 22.2.2012, 11:10

Как узнать какой из скриптов ? big_smile.gif

Автор: mariner 22.2.2012, 13:14

Методом научного тыка

Автор: Setuper 22.2.2012, 14:25

Для диагностики можно уровень логирования повыше поставить

Автор: LEXSOR 24.2.2012, 13:24

странно, хаб отказывается стартовать не от рута на порту 411, на 4111 нормально стартует

лог)

[Fri Feb 24 13:49:56 2012|893] INFO DcServer(207): Listening on 0.0.0.0:4111 TCP
[Fri Feb 24 13:49:56 2012|893] INFO DcServer(255): NMDC Server RusHub 2.3.8 is running on [0.0.0.0]:4111 TCP
[Fri Feb 24 13:49:56 2012|893] INFO DcServer(231): Main loop start
[Fri Feb 24 13:53:51 2012|368] INFO DcServer(67): Received a 2 signal, quiting
[Fri Feb 24 13:53:51 2012|368] INFO DcServer(266): Main loop stop(0)
[Fri Feb 24 13:53:51 2012|368] INFO DcServer(141): Destruct DcServer
[Fri Feb 24 13:53:51 2012|369] ERROR [sock:4] Conn(407): Socket not closed: Interrupted system call [4]
[Fri Feb 24 14:04:45 2012|528] INFO PluginList(41): Using plugins in: ./plugins/
[Fri Feb 24 14:04:45 2012|530] INFO PluginList(289): Plugin detected: LuaPlugin v 2.7
[Fri Feb 24 14:04:45 2012|531] FATAL [sock:4] Conn(324): Error bind: Permission denied [13]
[Fri Feb 24 14:04:45 2012|531] FATAL DcServer(186): Fatal error: Can't listen on 0.0.0.0:411 TCP
[Fri Feb 24 14:04:45 2012|531] FATAL DcServer(122): Listening failed
[Fri Feb 24 14:04:45 2012|531] INFO DcServer(141): Destruct DcServer
[Fri Feb 24 14:05:22 2012|526] INFO PluginList(41): Using plugins in: ./plugins/
[Fri Feb 24 14:05:22 2012|527] INFO PluginList(289): Plugin detected: LuaPlugin v 2.7
[Fri Feb 24 14:05:22 2012|527] FATAL [sock:4] Conn(324): Error bind: Permission denied [13]
[Fri Feb 24 14:05:22 2012|527] FATAL DcServer(186): Fatal error: Can't listen on 0.0.0.0:411 TCP
[Fri Feb 24 14:05:22 2012|527] FATAL DcServer(122): Listening failed
[Fri Feb 24 14:05:22 2012|527] INFO DcServer(141): Destruct DcServer



Автор: mariner 24.2.2012, 14:35

Цитата
странно, хаб отказывается стартовать не от рута на порту 411

Потому, что на большинстве NIX систем стартовать хаб на портах ниже 1000 можно тока от рута. Чтобы обойти это надо юзать, например, posix capabilities и русхаб их поддерживает. Вопрос остался только в том - а может ли так некроось.

Автор: KT315 5.3.2012, 16:01

Доброго вечера! 2.3.9 не собирается на Ubuntu 10.04 x64

Раскрывающийся текст
Код
:~/src/rushub/rushub-2.3.9$ make RusHub_shared
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /home/sid/src/rushub/rushub-2.3.9/AdcParser.o /home/sid/src/rushub/rushub-2.3.9/AdcParser.cpp
In file included from /home/sid/src/rushub/rushub-2.3.9/Param.h:24,
                 from /home/sid/src/rushub/rushub-2.3.9/DcUser.h:28,
                 from /home/sid/src/rushub/rushub-2.3.9/AdcParser.cpp:26:
/home/sid/src/rushub/rushub-2.3.9/stringutils.h:57: error: default argument given for parameter 5 of ‘std::string& utils::stringReplace(const std::string&, const std::string&, std::string&, int64_t, bool, bool)’
/home/sid/src/rushub/rushub-2.3.9/stringutils.h:56: error: after previous specification in ‘std::string& utils::stringReplace(const std::string&, const std::string&, std::string&, long int, bool, bool)’
/home/sid/src/rushub/rushub-2.3.9/stringutils.h:57: error: default argument given for parameter 6 of ‘std::string& utils::stringReplace(const std::string&, const std::string&, std::string&, int64_t, bool, bool)’
/home/sid/src/rushub/rushub-2.3.9/stringutils.h:56: error: after previous specification in ‘std::string& utils::stringReplace(const std::string&, const std::string&, std::string&, long int, bool, bool)’
/home/sid/src/rushub/rushub-2.3.9/stdinc.h:269: warning: ‘_BIG_ENDIAN’ defined but not used
make: *** [/home/sid/src/rushub/rushub-2.3.9/AdcParser.o] Error 1
:~/src/rushub/rushub-2.3.9$


Раскрывающийся текст
Код
:~/src/rushub/rushub-2.3.9$ ldd --version
ldd (Ubuntu EGLIBC 2.11.1-0ubuntu7.8) 2.11.1
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
:~/src/rushub/rushub-2.3.9$ gcc --version
gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
:~/src/rushub/rushub-2.3.9$


Автор: CrazyKiller 5.3.2012, 17:31

Цитата(KT315 @ 5.3.2012, 17:01) *
Доброго вечера! 2.3.9 не собирается на Ubuntu 10.04 x64
Раскрывающийся текст
Код
:~/src/rushub/rushub-2.3.9$ make RusHub_shared
g++ -O2 -Wall -Wextra -pipe -I/usr/include -I/usr/local/include -c -o /home/sid/src/rushub/rushub-2.3.9/AdcParser.o /home/sid/src/rushub/rushub-2.3.9/AdcParser.cpp
In file included from /home/sid/src/rushub/rushub-2.3.9/Param.h:24,
                 from /home/sid/src/rushub/rushub-2.3.9/DcUser.h:28,
                 from /home/sid/src/rushub/rushub-2.3.9/AdcParser.cpp:26:
/home/sid/src/rushub/rushub-2.3.9/stringutils.h:57: error: default argument given for parameter 5 of ‘std::string& utils::stringReplace(const std::string&, const std::string&, std::string&, int64_t, bool, bool)’
/home/sid/src/rushub/rushub-2.3.9/stringutils.h:56: error: after previous specification in ‘std::string& utils::stringReplace(const std::string&, const std::string&, std::string&, long int, bool, bool)’
/home/sid/src/rushub/rushub-2.3.9/stringutils.h:57: error: default argument given for parameter 6 of ‘std::string& utils::stringReplace(const std::string&, const std::string&, std::string&, int64_t, bool, bool)’
/home/sid/src/rushub/rushub-2.3.9/stringutils.h:56: error: after previous specification in ‘std::string& utils::stringReplace(const std::string&, const std::string&, std::string&, long int, bool, bool)’
/home/sid/src/rushub/rushub-2.3.9/stdinc.h:269: warning: ‘_BIG_ENDIAN’ defined but not used
make: *** [/home/sid/src/rushub/rushub-2.3.9/AdcParser.o] Error 1
:~/src/rushub/rushub-2.3.9$


Раскрывающийся текст
Код
:~/src/rushub/rushub-2.3.9$ ldd --version
ldd (Ubuntu EGLIBC 2.11.1-0ubuntu7.8) 2.11.1
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
:~/src/rushub/rushub-2.3.9$ gcc --version
gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
:~/src/rushub/rushub-2.3.9$



Собрал норм на 10.04 х32

из http://mydc.ru/r/?https://rushub.svn.sourceforge.net/svnroot/rushub/trunk/

Автор: Setuper 5.3.2012, 21:04

Действительно для некоторых 64 битных систем могли возникать конфликты.
Поправил, написав более универсальную функцию. Теперь должно собираться. Скачать можно из trunk

Автор: Saymon21 21.3.2012, 20:23

Илья, а popen не работает в русхабовом луа плагине?

Код
function ipcalc(ip)
    local data=""
    local r = io.popen("/usr/bin/ipcalc \""..ip.."\"")
    if r then
        local data = r:read("*a")
        r:close()
        return data
    else
        return "Could not exec ipcalc"
    end
end
function OnStartup()
Core.SendToAll(ipcalc("109.248.163.117"))
end

Возвращает пустую строку. Хотя пробовал дёрнуть эту функцию напрямую интерпретатором - всё норм.

Автор: Ksan 21.3.2012, 20:44

Попробуй без кавычек подсунуть тут айпи:

Код
local r = io.popen("/usr/bin/ipcalc \""..ip.."\"")

Автор: Setuper 21.3.2012, 21:27

Я тут не при чём. Я с этой функцией ничего не делал.

Автор: Axiator 22.5.2012, 14:35

Добрый день!

Не могу собрать под линуксом (gentoo x64) rushub из svn. Последняя версия, которая собирается, 2.3.7_2.6.

Использую GCC 4.5.3, glibc 2.14.1, в системе установлены lua 5.1.4 и tinyxml 2.6.2

autoreconf -i и затем ./configure --enable-caps отрабатывают нормально, но make затыкается :(

Код
Making all in src
make[1]: Вход в каталог `/opt/rushub-svn/rushub/src'
make  all-am
make[2]: Вход в каталог `/opt/rushub-svn/rushub/src'
g++ -DHAVE_CONFIG_H -I.     -g -O2 -MT AdcParser.o -MD -MP -MF .deps/AdcParser.Tpo -c -o AdcParser.o AdcParser.cpp
mv -f .deps/AdcParser.Tpo .deps/AdcParser.Po
g++ -DHAVE_CONFIG_H -I.     -g -O2 -MT DcConfig.o -MD -MP -MF .deps/DcConfig.Tpo -c -o DcConfig.o DcConfig.cpp
In file included from DcConfig.h:28:0,
                 from DcConfig.cpp:25:
ConfigList.h:55:2: ошибка: ‘configuration::ConfigItemInt64* configuration::ConfigFactory::add(int64_t&)’ cannot be overloaded
ConfigList.h:52:2: ошибка: with ‘configuration::ConfigItemLong* configuration::ConfigFactory::add(long int&)’
ConfigList.h:55:2: ошибка: ‘configuration::ConfigItemPInt64* configuration::ConfigFactory::add(int64_t*&)’ cannot be overloaded
ConfigList.h:52:2: ошибка: with ‘configuration::ConfigItemPLong* configuration::ConfigFactory::add(long int*&)’
make[2]: *** [DcConfig.o] Ошибка 1
make[2]: Выход из каталога `/opt/rushub-svn/rushub/src'
make[1]: *** [all] Ошибка 2
make[1]: Выход из каталога `/opt/rushub-svn/rushub/src'
make: *** [all-recursive] Ошибка 1



Пробовал на всяких пожарный ./configure --enable-caps --enable-sharedtinyxml --enable-sharedzlib, ошибка не меняется.

Надеюсь на подсказку, спасибо!

Автор: Saymon21 22.5.2012, 15:02

Из trunk брал? Там не всегда бывают стабильные, рабочие версии.

Автор: Axiator 22.5.2012, 15:26

Цитата(Saymon21 @ 22.5.2012, 16:02) *
Из trunk брал? Там не всегда бывают стабильные, рабочие версии.



Да, из trunk.

Потом пробовал tags/2.3.8_2.7, он не собрался с другой ошибкой:

Код
g++  -g -O2 -lrt -ltinyxml -ldl  -o RusHub AdcParser.o DcConfig.o dlfuncs.o NmdcProtocol.o Service.o WebConn.o AdcProtocol.o DcConfigLoader.o ConnChoose.o Exception.o Obj.o StringToArg.o WebParser.o AntiFlood.o DcConn.o Conn.o stringutils.o WebProtocol.o CallList.o ConnEpoll.o DcIpList.o PluginList.o Cli.o DcServer.o main.o PluginLoader.o Times.o ConnPoll.o ConfigItem.o DcUser.o Protocol.o ConnSelect.o ConfigList.o Dir.o NmdcParser.o Server.o UserList.o  
DcUser.o: In function `~DcUser':
/opt/rushub-svn/rushub/src/DcUser.cpp:56: undefined reference to `dcserver::Param::~Param()'
DcUser.o: In function `dcserver::DcUser::removeParam(char const*)':
/opt/rushub-svn/rushub/src/DcUser.cpp:166: undefined reference to `dcserver::Param::getMode() const'
/opt/rushub-svn/rushub/src/DcUser.cpp:177: undefined reference to `dcserver::Param::~Param()'
DcUser.o: In function `dcserver::DcUser::getParamForce(char const*, bool)':
/opt/rushub-svn/rushub/src/DcUser.cpp:108: undefined reference to `dcserver::Param::Param(dcserver::DcUser*, char const*)'
collect2: выполнение ld завершилось с кодом возврата 1
make[2]: *** [RusHub] Ошибка 1
make[2]: Выход из каталога `/opt/rushub-svn/rushub/src'
make[1]: *** [all] Ошибка 2
make[1]: Выход из каталога `/opt/rushub-svn/rushub/src'
make: *** [all-recursive] Ошибка 1


и только tags/2.3.7_2.6 собрался и заработал big_smile.gif

Автор: Setuper 23.5.2012, 11:09

то, что в транке действительно на 64 битном линуксе не собирается (чуть позже будет исправлено).

2.3.8 на x64 должен собираться!

Автор: Axiator 23.5.2012, 15:20

Спасибо, попробую ещё на другой машинке.

Автор: mariner 23.5.2012, 16:59

Возможно Илья забыл добавить какой-нибудь файл в систему сборки и она его игнорирует?

Автор: Axiator 10.6.2012, 16:30

Сегодня стянул ревизию 812 из svn, она собралась! Спасибо!

Отдельное спасибо за --enable-sharedtinyxml / --enable-sharedzlib.
А в lua_plugin можно предусмотреть, на будущее, сборку с системным tinyxml?

Автор: mariner 10.6.2012, 17:42

а она предусмотрена. Надо лишь флаг задать компилятору. На скольк помню - опция -D

Автор: Axiator 10.6.2012, 22:07

Спасибо, собрал! Извиняюсь за глупость.