drewhka 0 Опубликовано: 2009-09-28 11:00:53 Share Опубликовано: 2009-09-28 11:00:53 Stargazer 2.406-rc1, Linux, MySQL, iptables на основе ipset/mark/connmark. Иногда требуется сменить группу (group) пользователю, в ней прописывается канал (аплинк) по которому он работает. Когда он offline - всё норм (т.е. делать в OnChange вообще ничего не надо). Когда online - надо сносить все соединения, убирать из старой группы (ipset -D group1 <ip>) и переносить в другую. Вся проблема как определить авторизован ли он Stargazer'ом в данный момент или нет. Сейчас приходится его насильно выключать, менять группу и врубать обратно, что как бы палевно =) Ссылка на сообщение Поделиться на других сайтах
niidil 0 Опубликовано: 2009-09-29 06:25:22 Share Опубликовано: 2009-09-29 06:25:22 Способ немного извращённый, но рабочий. В OnConnect добавить touch /var/stargazer/online/$LOGIN В OnDisconnect rm -f /var/stargazer/online/$LOGIN А потом проверять существует файл или нет. Ссылка на сообщение Поделиться на других сайтах
drewhka 0 Опубликовано: 2009-09-29 10:17:49 Автор Share Опубликовано: 2009-09-29 10:17:49 Жёстко =) А через mysql или sgconf? Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубликовано: 2009-09-29 14:27:03 Share Опубликовано: 2009-09-29 14:27:03 А через mysql insert into/select from? Ссылка на сообщение Поделиться на других сайтах
drewhka 0 Опубликовано: 2009-09-29 20:05:13 Автор Share Опубликовано: 2009-09-29 20:05:13 Эмм, ну как-нибудь поизящней чтоли. Ушёл уже от файловой БД юзверей, опять к этому возвращаться ?) Неужели ни у кого не возникало такой задачи - выяснить в скрипте OnChange - авторизован сейчас пользователь или нет? Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубликовано: 2009-09-30 09:38:11 Share Опубликовано: 2009-09-30 09:38:11 Ушёл уже от файловой БД юзверей, опять к этому возвращаться не вижу связи Эмм, ну как-нибудь поизящней чтоли да - двумя примитивными кверизами, вам их написать? Неужели ни у кого не возникало такой задачи нет Ссылка на сообщение Поделиться на других сайтах
drewhka 0 Опубликовано: 2009-09-30 10:49:44 Автор Share Опубликовано: 2009-09-30 10:49:44 да - двумя примитивными кверизами, вам их написать? Было бы неплохо =) Или хотя бы написать из каких таблиц и полей брать эту инфу. не вижу связи Ну как бы когда база была на файлах там было понятно - фигачить всё в файлы, включая эту задачу. Идеология так сказать =) Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубликовано: 2009-09-30 11:47:16 Share Опубликовано: 2009-09-30 11:47:16 Было бы неплохо =) да вы что Или хотя бы написать из каких таблиц и полей брать эту инфу. Да хотябы так CREATE TABLE `online` (`id` INT NOT NULL AUTO_INCREMENT ,`login` VARCHAR( 50 ) NOT NULL ,PRIMARY KEY ( `id` )); //OnConnect INSERT INTO `online` (`id` ,`login`) VALUES (NULL , 'ourlogin'); //OnDisconnect delete FROM `online` WHERE `login` = "ourlogin"; как проверить есть в табличке поле или нету знаете? А еще можно и без мускуля - например на табличках ipfw2 //OnConnect ipfw table 30 add $ip //OnDisconnect ipfw table 30 delete $ip а потом уже и list/grep/awk Идеология так сказать =) не вижу идеологии Ссылка на сообщение Поделиться на других сайтах
drewhka 0 Опубликовано: 2009-09-30 12:40:28 Автор Share Опубликовано: 2009-09-30 12:40:28 Т.е. как я понял, иного метода (если не брать случай правки исходников Stargazer), как управление флагом ВКЛ/ВЫКЛ через OnConnect/OnDisconnect путём записи в тот или иной носитель (файл, таблица mysql, таблицы ipfw или ipset, и т.д.) нет? Просто тогда смысл заморачиваться ещё на один флаг, если ip авторизованного пользователя уже есть в ipset (остаётся только связать login/ip)... Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубликовано: 2009-09-30 15:58:07 Share Опубликовано: 2009-09-30 15:58:07 флагом ВКЛ/ВЫКЛ через OnConnect/OnDisconnect путём записи в тот или иной носитель (файл, таблица mysql, таблицы ipfw или ipset, и т.д.) нет? можете использовать libastral для автоматического определения флага ВКЛ/ВЫКЛ без хранения его в этом трехмерном пространстве Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас