Jump to content

mysql + OnConnect конкретного пользователя


Recommended Posts

Доброго времени суток!

 

 

При использовании базы в файлах была возможность создать в папке пользователя файлы OnConnect/OnDisconnect, которые выполнялись для при подключении этого пользователя. Есть ли такая возможность при использовании в качестве бд mysql?

 

Нужно для того, чтобы загонять несколко логинов в одну трубу (pipe).

Link to post
Share on other sites

Доброго времени суток!

 

 

При использовании базы в файлах была возможность создать в папке пользователя файлы OnConnect/OnDisconnect, которые выполнялись для при подключении этого пользователя. Есть ли такая возможность при использовании в качестве бд mysql?

 

Нужно для того, чтобы загонять несколко логинов в одну трубу (pipe).

Ну вообще-то эта возможность зависит не от базы а от скриптов OnConnect/OnDisconnect.

И я не вижу необходимости в создании этих скриптов под каждого пользователя. А если их 7000? Все можно сделать скриптом, группируя пользователей по какому-то признаку.

Link to post
Share on other sites

Проблема в том, что номера труб я беру из ID, а параметры из userdata0 и userdata1. Т.е. при подключении пользователя создаются pipe-правила. Это удобно. Изменять ширину трубы можно из конфигуратора.

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

В случае с скриптами OnConnect/OnDisconnect в папке пользователя просто создается одна труба на 2 логина с номером, который не попадает в диапазон значений ID и все. Как решить с мусклом?

Link to post
Share on other sites

А у вас еще на каждого юзера и по два пайпа?

 

Почитайте на досуге для чего нужен mask dst-ip 0xffffffff а также о том как всетаки пакеты проходят фаервол и как с эти соотносится быстродействие системы.

Link to post
Share on other sites

Мы уходим от темы. Знаю я про нагрузку. В моем случае это не актуально. Сеть малелькая, нагрузка еще меньше. Перспектив для развития нет.

 

Так можно сделать юзерский OnConnect используя базу mysaql?

Link to post
Share on other sites

Мы уходим от темы. Знаю я про нагрузку. В моем случае это не актуально. Сеть малелькая, нагрузка еще меньше. Перспектив для развития нет.

 

Так можно сделать юзерский OnConnect используя базу mysaql?

 

 

Хмм, я конечно не знаток баша и mysql (ну или какой у вас там используется интерпретатор для скриптов), но вроде бы можно добавить, допустим в таблицу users поле типа varchar, и при выполнении скрипта OnConnect или OnDisconnect читать поле из этой таблицы и обрабатывать выхлоп mysql. Т.е. если поле с содержимым скрипта пустое, то продолжать выполнение скрипта, если же не пустое, то записать содержимое поля во временный файл и выполнить его с нужным параметрами.

SQL синтаксис получения содержимого поля может выглядеть примерно так:

 

USE stargazer_database_name;

SELECT `script` FROM `users` WHERE `IP` = $IP;

 

Соответственно в самом скрипте даем команду вида

 

mysql < sql.sql

 

Данное дело возвратит нам две строки минимум, 1 с именем поля, вторая и последующие (если поле многострочное) - сам скрипт. Ну а его уже можно использовать по вкусу.

 

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

Link to post
Share on other sites
Так можно сделать юзерский OnConnect используя базу mysaql?

Дык в чем проблема вытянуть в онконнект-ондисконнект данные из "mysaql"? :)

 

#cat /etc/stargazer/OnConnect

LOGIN=$1
SOMEDATA=`/etc/stargazer/GetSomedata $LOGIN`

 

#cat /etc/stargazer/GetSomedata

#!/usr/local/bin/php
<?php
$login=$argv[1];
$link = mysql_connect("localhost", "mysqllogin", "mysqlpassword");
mysql_select_db("stg");
$query = 'SELECT `somedata` FROM `sometable` where `login`= "'.$login.'"';
$result = mysql_query($query);
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
foreach ($line as $col_value) {
print ($col_value);
}
}
?>

Link to post
Share on other sites

Вобще вопрос стоял прото, умеет ли stargazer делать это из коробки. Про правку скриптов, это понятно.

 

 

Всем спасибо за ответы.

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

Link to post
Share on other sites

Умел. Точно умел. В версии 2.0 точно было :)

Ну вот в 2.4 точно убрали. Потому что смысла в этом нет ;)

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...