Jump to content
Калькуляторы

freeradius2 + rlm_perl + mysql

Всем приветы,

интересует вот что:

во всех примерах, которые видел, обращение к mysql из rlm_perl функций ( authorization, accounting ... т.д.) производится через создание DBI коннектора в каждой функции. Как это сказывается на производительности? Можно ли создать глобальный DBI коннектор (например, объявив его через our ) и использовать его в вызовах rlm_perl?

Спасибо.

Share this post


Link to post
Share on other sites

Насколько я понимаю - rlm_perl грузится при запуске радиуса и висит в памяти, соответственно и соединение с БД одно и то же также висит

Единственное - стОит, возможно, при каждом обращении вызывать ф-ию DBI->connect_cached, которая восстановит соединение, если вдруг оно оборвалось

Share this post


Link to post
Share on other sites

хмм у меня коннект в

sub CLONE(){
       $dbh = DBI->connect('DBI:mysql:radius;host=localhost;port=3306',
               db_user, db_pass) or return RLM_MODULE_FAIL;
}

 

правда mysqladmin показывает больше колличество коннектов от самого радиуса чем от скрипта, правда в скрипте не для всех функций радиуса используется, только authorize и post_auth

Share this post


Link to post
Share on other sites

хмм у меня коннект в

sub CLONE(){
       $dbh = DBI->connect('DBI:mysql:radius;host=localhost;port=3306',
               db_user, db_pass) or return RLM_MODULE_FAIL;
}

 

правда mysqladmin показывает больше колличество коннектов от самого радиуса чем от скрипта, правда в скрипте не для всех функций радиуса используется, только authorize и post_auth

что-то я не видел в примерах stub CLONE для rlm_perl freeradius2

Share this post


Link to post
Share on other sites

что-то я не видел в примерах stub CLONE для rlm_perl freeradius2

 

значит надо искать не в примерах :) не помню откуда взял, давно было. Быстрей всего с freeradius-users лист.

Share this post


Link to post
Share on other sites

значит надо искать не в примерах :) не помню откуда взял, давно было. Быстрей всего с freeradius-users лист.

в src/modules/rlm_perl/example.pl из исходников freeradius'а

 

# If you are using DBI and do some queries to DB, please be sure to
# use the CLONE function to initialize the DBI connection to DB.

Share this post


Link to post
Share on other sites

значит надо искать не в примерах :) не помню откуда взял, давно было. Быстрей всего с freeradius-users лист.

в src/modules/rlm_perl/example.pl из исходников freeradius'а

 

# If you are using DBI and do some queries to DB, please be sure to
# use the CLONE function to initialize the DBI connection to DB.

ok, спасибо, там еще не смотрел :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.