JRuDevels

Jabber Russian Developers Forum.
Log in Register FAQ Memberlist Search JRuDevels Forum Index

JRuDevels Forum Index » Разработка и проектирование [Devel] » Регистрация пользователей через Perl-бот
Post new topic  Reply to topic View previous topic :: View next topic 
Регистрация пользователей через Perl-бот
PostPosted: Thu Dec 04, 2008 5:51 pm Reply with quote
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);

Надеюсь на ваш опыт, Спасибо!
View user's profile Send private message
PostPosted: Thu Dec 04, 2008 7:14 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




то, что это простейший антифлуд на стороне сервера в голову не приходило? Smile

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Thu Dec 04, 2008 7:19 pm Reply with quote
teplov
Отметившийся
Отметившийся
Joined: 04 Dec 2008
Posts: 5




Binary wrote:
то, что это простейший антифлуд на стороне сервера в голову не приходило? Smile


Приходило, но не слишком ли жестокие настройки по-умолчанию? Регистрация 1 учетной записи за 5 минут? Кстати, где изменить этот параметр в конфигах ejabberd?
View user's profile Send private message
PostPosted: Thu Dec 04, 2008 7:21 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




teplov wrote:
Binary wrote:
то, что это простейший антифлуд на стороне сервера в голову не приходило? Smile


Приходило, но не слишком ли жестокие настройки по-умолчанию? Регистрация 1 учетной записи за 5 минут? Кстати, где изменить этот параметр в конфигах ejabberd?

в рассчете на 1 IP. в исходниках.

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Thu Dec 04, 2008 7:27 pm Reply with quote
teplov
Отметившийся
Отметившийся
Joined: 04 Dec 2008
Posts: 5




Binary wrote:
в рассчете на 1 IP. в исходниках.


А если клиенты выходят в сеть через прокси с одним IP на всех, то им всем облом будет? Как-то меня огорчает необходимость менять исходный код, тем более на Erlang. Confused
View user's profile Send private message
PostPosted: Thu Dec 04, 2008 7:29 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




teplov wrote:
Binary wrote:
в рассчете на 1 IP. в исходниках.


А если клиенты выходят в сеть через прокси с одним IP на всех, то им всем облом будет? Как-то меня огорчает необходимость менять исходный код, тем более на Erlang. Confused

да, им будет облом, но не в логине, а в регистрации, которую надо делать один раз.

Зачем вам понадобилось регистрировать много пользователей разом - другой вопрос.

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Thu Dec 04, 2008 7:35 pm Reply with quote
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]
View user's profile Send private message
PostPosted: Thu Dec 04, 2008 7:40 pm Reply with quote
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!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Thu Dec 04, 2008 7:41 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




кстати, неужели "instead of integer" ничего не говорит?

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Thu Dec 04, 2008 8:09 pm Reply with quote
teplov
Отметившийся
Отметившийся
Joined: 04 Dec 2008
Posts: 5




Большое спасибо за помощь!

Решил проблему путем добавления параметра в конфиге:
Code:
{registration_timeout, infinity}.

Перед блоком {modules, ...
View user's profile Send private message
PostPosted: Fri Dec 05, 2008 9:11 am Reply with quote
Juriks
Разработчик
Разработчик
Joined: 21 Nov 2006
Posts: 203
Location: Москва




Если я правильно понял, ты регистрируешь пользователей на своём сервере. Не проще ли их тогда напрямую в базу вносить?
View user's profile Send private message HabaHaba - Fast communicate
PostPosted: Fri Dec 05, 2008 2:23 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




Juriks wrote:
Если я правильно понял, ты регистрируешь пользователей на своём сервере. Не проще ли их тогда напрямую в базу вносить?

человек отказывается здраво мыслить Smile

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
Регистрация пользователей через Perl-бот
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  

  
  
 Post new topic  Reply to topic  


Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin