| | Регистрация пользователей через Perl-бот |
| |
Posted: Thu Dec 04, 2008 5:51 pm |
|
|
teplov |
Отметившийся |
|
|
Joined: 04 Dec 2008 |
Posts: 5 |
|
|
|
|
|
|
|
Добрый день!
Я пишу бота на Perl используя библиотеку Net::XMPP. Столкнулся со странным поведением, когда многократная регистрация новых пользователей в ejabberd происходит не всегда, а через довольно длительный таймаут. При первом обращении сервер сразу отвечает ОК, а при повторных обращениях выдает код 500 и скрипт зависает. Повоторный запуск скрипта так же выдает ошибку 500 и зависает. Через минут 5, очередная попытка запуска бота - успешно регистрирует нового пользователя, но потом опять проблемы повторяются. Зависает только скрипт бота, сам сервер продолжает работать без проблем, записей об ошибках в логах сервера нет. Ребята, помогите разобраться в проблеме!
Привожу краткий код бота:
Code: |
#!/usr/bin/perl -w
use Net::XMPP;
my $server = "localhost";
my $port = "5222";
my $login = "bot";
my $password = "botpwd";
my $resource = "test";
my $Connection = new Net::XMPP::Client();
my $status = $Connection->Connect( hostname => $server, port => $port );
my %result = $Connection->RegisterRequest(to => 'localhost', timeout => 5);
my @regs = $Connection->RegisterSend(
to => "localhost",
username => "test01",
password => "test111",
resource => "test",
key => "1233"
);
$Connection->Disconnect();
exit(0);
|
Надеюсь на ваш опыт, Спасибо! |
|
|
|
|
| | |
Posted: Thu Dec 04, 2008 7:14 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
то, что это простейший антифлуд на стороне сервера в голову не приходило? |
|
_________________ And I'm feeling good! |
|
|
|
Posted: Thu Dec 04, 2008 7:19 pm |
|
|
teplov |
Отметившийся |
|
|
Joined: 04 Dec 2008 |
Posts: 5 |
|
|
|
|
|
|
|
Binary wrote: | то, что это простейший антифлуд на стороне сервера в голову не приходило? |
Приходило, но не слишком ли жестокие настройки по-умолчанию? Регистрация 1 учетной записи за 5 минут? Кстати, где изменить этот параметр в конфигах ejabberd? |
|
|
|
|
Posted: Thu Dec 04, 2008 7:21 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
teplov wrote: | Binary wrote: | то, что это простейший антифлуд на стороне сервера в голову не приходило? |
Приходило, но не слишком ли жестокие настройки по-умолчанию? Регистрация 1 учетной записи за 5 минут? Кстати, где изменить этот параметр в конфигах ejabberd? |
в рассчете на 1 IP. в исходниках. |
|
_________________ And I'm feeling good! |
|
|
|
Posted: Thu Dec 04, 2008 7:27 pm |
|
|
teplov |
Отметившийся |
|
|
Joined: 04 Dec 2008 |
Posts: 5 |
|
|
|
|
|
|
|
Binary wrote: | в рассчете на 1 IP. в исходниках. |
А если клиенты выходят в сеть через прокси с одним IP на всех, то им всем облом будет? Как-то меня огорчает необходимость менять исходный код, тем более на Erlang. |
|
|
|
|
Posted: Thu Dec 04, 2008 7:29 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
teplov wrote: | Binary wrote: | в рассчете на 1 IP. в исходниках. |
А если клиенты выходят в сеть через прокси с одним IP на всех, то им всем облом будет? Как-то меня огорчает необходимость менять исходный код, тем более на Erlang. |
да, им будет облом, но не в логине, а в регистрации, которую надо делать один раз.
Зачем вам понадобилось регистрировать много пользователей разом - другой вопрос. |
|
_________________ And I'm feeling good! |
|
|
|
| | |
Posted: Thu Dec 04, 2008 7:35 pm |
|
|
teplov |
Отметившийся |
|
|
Joined: 04 Dec 2008 |
Posts: 5 |
|
|
|
|
|
|
|
Binary wrote: | Зачем вам понадобилось регистрировать много пользователей разом - другой вопрос. |
Да, у меня задача в частой регистрации пользователей c одного IP-адреса. Нашел решение прописать в конфиге:
Code: |
{modules, [
{mod_register, [
{registration_timeout, 90}.
...
]},
...
]}.
|
Но похоже эта махинация не проходит, т.к. рекомендуют проделать следующее:
Code: |
Timeout is expressed in seconds, and must be an integer.
To disable this limitation,
instead of an integer put a word like: \term{infinity}.
Default value: 600 seconds. |
Не подскажете, где прописывать \term{infinity}?[/quote] |
|
|
|
|
| | |
Posted: Thu Dec 04, 2008 7:40 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
teplov wrote: | Binary wrote: | Зачем вам понадобилось регистрировать много пользователей разом - другой вопрос. |
Да, у меня задача в частой регистрации пользователей c одного IP-адреса. Нашел решение прописать в конфиге:
Code: |
{modules, [
{mod_register, [
{registration_timeout, 90}.
...
]},
...
]}.
|
Но похоже эта махинация не проходит, т.к. рекомендуют проделать следующее:
Code: |
Timeout is expressed in seconds, and must be an integer.
To disable this limitation,
instead of an integer put a word like: \term{infinity}.
Default value: 600 seconds. |
Не подскажете, где прописывать \term{infinity}? |
вместо к-ва секунд и прописывать. однако, видится мне, что чушь вы какую-то изобретаете. с таким значением, вашему серверу прямая дорога в бан на крупных jabber-серверах. |
|
_________________ And I'm feeling good! |
|
|
|
| | |
Posted: Thu Dec 04, 2008 7:41 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
кстати, неужели "instead of integer" ничего не говорит? |
|
_________________ And I'm feeling good! |
|
|
|
Posted: Thu Dec 04, 2008 8:09 pm |
|
|
teplov |
Отметившийся |
|
|
Joined: 04 Dec 2008 |
Posts: 5 |
|
|
|
|
|
|
|
Большое спасибо за помощь!
Решил проблему путем добавления параметра в конфиге:
Code: | {registration_timeout, infinity}. |
Перед блоком {modules, ... |
|
|
|
|
Posted: Fri Dec 05, 2008 9:11 am |
|
|
Juriks |
Разработчик |
|
|
Joined: 21 Nov 2006 |
Posts: 203 |
Location: Москва |
|
|
|
|
|
|
Если я правильно понял, ты регистрируешь пользователей на своём сервере. Не проще ли их тогда напрямую в базу вносить? |
|
|
|
|
Posted: Fri Dec 05, 2008 2:23 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
Juriks wrote: | Если я правильно понял, ты регистрируешь пользователей на своём сервере. Не проще ли их тогда напрямую в базу вносить? |
человек отказывается здраво мыслить |
|
_________________ And I'm feeling good! |
|
|
|
JRuDevels Forum Index » Разработка и проектирование [Devel] |
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
All times are GMT + 3 Hours
Page 1 of 1
|
|
|
|