stg-34 0 Опубликовано: 2005-12-20 23:11:25 Share Опубликовано: 2005-12-20 23:11:25 stg-2.4 beta01 stg-2.4-2006.02.10-01.09.16 Что нового: Пофикшено 1. Пара багов в счетчике трафика. Оба бага приводили к падению сервера. 2. При удалении тарифа подвисал сервер 3. Пофикшена ошибка при проверке прав у админа. 4. Пофикшена ошибка записи времени в детальную статистику. В интервал времени писалось два одинаковых времени 18:40-18:40, вместо 18:40-18:50 5. Приведены в порядок логи Это версия только для тестов. Внутри аврхва небольшая дока по компиляции и установке. Release notes stg-2.401.7.6 Данная версия является ступенькой перед версией stg-2.5 Она отличается от stg-2.5, тем, что не хватает некоторых деталей, которые не слишком существенны, но тем не менее не позволяют сервер назвать stg-2.5. В чем разница между 2.4 и 2.5 * В 2.5 будет изменен конфигурационный файл сервера. Он будет примерно такой-же как у апача. Нынешний конфигурационный файл не позволяет иметь переменное кол-во опций. Это необходимо, напимер, для того, что бы иметь произвольное кол-во плагинов. * В stg 2.4 отсутсвует поддержка отправки сообщений пользователям в авторизатор. Теперь собственно про сервер. Что нового # Весь код стг, можно сказать, написан с нуля. Стг-2.4, это другой биллинг, который пытается быть похожим по функциональности на стг-2 # Поддержка плагинов. В плагины ушли такие функции: * Авторизация (inetaccess, always online) * Конфигурация (SgConfig) * Захват трафика (стандартные из стг-2: linux ether_cap, freebsd bpf_cap. divert и ipq пока нет) * Работа с БД (стандартно, файлы) * Пингование клиентов # Изменился конфигурационный файл. Он распался на несколько файлов. Один для ядра Стг, и на каждый плагин по маленькому файлу. # Немного изменились логи, они стали более "правильными" # Изменилась логика обработки авторизации. Произошло разделение понятий "авторизован" и "подключен". Пользователь может быть авторизованным, но из-за отсутствия денег не подключенным. Как следствие, если юзер авторизован, но нет денег, и ему добавить денег, то он автоматически станет подключенным, без необходимости нажимать конпки в авторизаторе. # Перестало быть необходимым поле iface в параметрах пользователя. Сейчас оно игнорируется сервером. # Изменился способ добавления пользователя. При добавлении из конфигуратора, все поля, кроме Login игнорируются. Как не странно, это позволит сделать в конфигураторе добавление и редактирование пользователя в одном и том же окне, с одинаковым набором атрибутов, доступных для редактирования. # Немного изменеилась перезачитка правил "на ходу". Раньше при необходимости перечитаь rules, если в них была ошибка, сервер останавливался, сейчас же он пишет об этом в лог и возвращается к старым правилам Ошибки # При редактировании трафика из конфигуратора, поля, которые не были изменены, сбрасываются в 0 # Неправильно отрабатывается снятие АП и установка предоплаченного трафика для свежедобавленного пользователя. Если он был добавлен в средине месяца у него будет не 1/2 АП и 1/2 предоплаченног трафика, а полностью и то и другое. # Не проверены все варианты снятия АП. # Не работает скрипт OnChange # Не работает время жизни кредита. Особенности * Не работает отсылка сообщений через авторизатор. Будет исправлено только в Стг-2.5 * Отсутствует для авторизатора опция AntiFlood. Будет исправлено в Стг-2.4 * Отсутствует для авторизатора и конфигуратора проверка адресов с которых происходит подключение (опции AdminAllowFrom, UserAllowFrom, ...) Будет исправлено в Стг-2.4 * Остановка сервера: kill pid_of_stargazer. Однако на некоторых системах это может не сработать (на тех системах где stargazer в процессах виден как несколько процессов). В таком случае спасает killall stargazer. При этом происходит корректная остановка сервера. Вообще говоря на Debian 3.0, ядро 2.2.20; RedHat 7.3, ядро 2.4.28 наблюдалась такая картина. По kill сервер останавливался если указан любой из pid-ов отмеченных жирным 10323 ? S< 0:00 ./stargazer 10324 ? S 0:00 ./stargazer 10325 ? S 0:00 ./stargazer 10326 ? S 0:00 ./stargazer 10327 ? S 0:00 ./stargazer 10328 ? S 0:00 ./stargazer 10329 ? S 0:00 ./stargazer 10330 ? S 0:00 ./stargazer 10331 ? S 0:00 ./stargazer Похоже это свойственно всем ядрам 2.2.x и 2.4.x На SuSE 9.3, ядро 2.6.11 в процессах всего один stargazer, который благополучно убивается оп kill. Во FreeBSD таких особенностей замечено не было. OS Компиляция сервера проверялась на следующих ОС: * Debian 3.0 * RedHat 7.3 * RedHat 9.0 * SuSE 9.3 * FreeBSD 4.8 * FreeBSD 5.3 Все платформы i386. На 64 битных ОС не проверялось. Работоспособность (базовая, без глубоких тестов) проверялась на следующих ОС: * RedHat 7.3 * RedHat 9.0 * SuSE 9.3 * FreeBSD 4.8 * FreeBSD 5.3 Все платформы i386. На 64 битных ОС не проверялось. Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2005-12-20 23:19:48 Автор Share Опубліковано: 2005-12-20 23:19:48 Исправляю неточность предыдущего поста. Вообще говоря на Debian 3.0, ядро 2.2.20; RedHat 7.3, ядро 2.4.28 наблюдалась такая картина. По kill сервер останавливался если указан любой из pid-ов отмеченных жирным 10323 ? S< 0:00 ./stargazer 10324 ? S 0:00 ./stargazer 10325 ? S 0:00 ./stargazer 10326 ? S 0:00 ./stargazer 10327 ? S 0:00 ./stargazer 10328 ? S 0:00 ./stargazer 10329 ? S 0:00 ./stargazer 10330 ? S 0:00 ./stargazer 10331 ? S 0:00 ./stargazer Ссылка на сообщение Поделиться на других сайтах
Bruce 0 Опубліковано: 2005-12-21 00:13:35 Share Опубліковано: 2005-12-21 00:13:35 На Fedora Core 4 компилится с кучей warnings, но запускается ... На сколько хорошо работает - не тестил т.к. все пять серваков с биллингом рабочие :-( Буду ждать других :-) Ссылка на сообщение Поделиться на других сайтах
djfox 0 Опубліковано: 2005-12-21 00:14:20 Share Опубліковано: 2005-12-21 00:14:20 Извините, если не в тему. Выражаю личные пожелания (может кто меня поддержит). 1. не видно функции "один баланс для нескольких юзеров" (а мы ее так ждем) 2. не хватает галочки "не снимать абон. плату у заблокированного юзера" (это когда минусовой баланс, меньше кредита, когда инет блокируется, а абон. плата снимается) 3. предоплаченый трафик: это когда стоимость предоплаченого трафика ноль, и абон плата не зависит от того, сколько юзер израсходовал за месяц. + сюда такое понятие, как несгораемый трафик (это когда остатки неизрасходонного трафика перекидываются на следующий месяц). 4. конфигуратор: жутко не хватает отчетов о трафике за определенный период, о общей "кассе" и так далее. все, с чистой совестью спать :muu: Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2005-12-21 00:30:48 Автор Share Опубліковано: 2005-12-21 00:30:48 1. не видно функции "один баланс для нескольких юзеров" (а мы ее так ждем)2. не хватает галочки "не снимать абон. плату у заблокированного юзера" (это когда минусовой баланс, меньше кредита, когда инет блокируется, а абон. плата снимается) 3. предоплаченый трафик: это когда стоимость предоплаченого трафика ноль, и абон плата не зависит от того, сколько юзер израсходовал за месяц. + сюда такое понятие, как несгораемый трафик (это когда остатки неизрасходонного трафика перекидываются на следующий месяц). 4. конфигуратор: жутко не хватает отчетов о трафике за определенный период, о общей "кассе" и так далее. все, с чистой совестью спать :muu: 1. Это будет. Плагином. 2. Галочка пользователь заморожен. В стг-2 были глюки на эту тему. Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2005-12-21 03:15:39 Share Опубліковано: 2005-12-21 03:15:39 feature request http://local.com.ua/forum/index.php?showto...t=0entry24163 =) Ссылка на сообщение Поделиться на других сайтах
egor2fsys 5 Опубліковано: 2005-12-21 04:57:42 Share Опубліковано: 2005-12-21 04:57:42 4. конфигуратор: жутко не хватает отчетов о трафике за определенный период, о общей "кассе" и так далее. это сделано средствами административной статистики. конфигуратор для этого не предназначен. Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2005-12-21 08:00:04 Автор Share Опубліковано: 2005-12-21 08:00:04 feature requesthttp://local.com.ua/forum/index.php?showto...t=0entry24163 =) Я помню. Однако сейчас я хочу: 1. сделать сервак аналогичный ао функционалу стг-2, но без багов. 2. большая часть и feature request решается плагинами. Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2005-12-21 08:33:07 Share Опубліковано: 2005-12-21 08:33:07 бб (базара без), ду ю бест) Ссылка на сообщение Поделиться на других сайтах
MaйeR 0 Опубліковано: 2005-12-21 14:23:12 Share Опубліковано: 2005-12-21 14:23:12 В общем при сборке на FreeBSD 5.4 столкнулся с тем что не собирается модуль ao.so вот что говорит: elaisa > gmake g++ -c ao.cpp -g3 -Wall -fPIC -I ../../../../../include -DFREE_BSD5 In file included from ao.cpp:5: ao.h: In member function `void CHG_BEFORE_NOTIFIER<varParamType>::Notify(const varParamType&, const varParamType&)': ao.h:20: error: invalid use of undefined type `const struct AUTH_AO' ao.h:12: error: forward declaration of `const struct AUTH_AO' ao.h: In member function `void CHG_AFTER_NOTIFIER<varParamType>::Notify(const varParamType&, const varParamType&)': ao.h:38: error: invalid use of undefined type `const struct AUTH_AO' ao.h:12: error: forward declaration of `const struct AUTH_AO' gmake: *** [ao.o] Error 1 elaisa > Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2005-12-21 14:28:14 Автор Share Опубліковано: 2005-12-21 14:28:14 В общем при сборке на FreeBSD 5.4 столкнулся с тем что не собирается модуль ao.so вот что говорит: elaisa > gmake g++ -c ao.cpp -g3 -Wall -fPIC -I ../../../../../include -DFREE_BSD5 In file included from ao.cpp:5: ao.h: In member function `void CHG_BEFORE_NOTIFIER<varParamType>::Notify(const varParamType&, const varParamType&)': ao.h:20: error: invalid use of undefined type `const struct AUTH_AO' ao.h:12: error: forward declaration of `const struct AUTH_AO' ao.h: In member function `void CHG_AFTER_NOTIFIER<varParamType>::Notify(const varParamType&, const varParamType&)': ao.h:38: error: invalid use of undefined type `const struct AUTH_AO' ao.h:12: error: forward declaration of `const struct AUTH_AO' gmake: *** [ao.o] Error 1 elaisa > Понял. Ща пофикшу Ссылка на сообщение Поделиться на других сайтах
Bas 2 Опубліковано: 2005-12-21 14:31:26 Share Опубліковано: 2005-12-21 14:31:26 Кто-нибудь пробывал на FreeBSD 6.0? Интересует данный вопрос, так как в скором времени планируется переход сервера на данную версию. Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2005-12-21 14:41:44 Автор Share Опубліковано: 2005-12-21 14:41:44 поменяй файл ./projects/stargazer/plugins/authorization/ao/ao.h на код ниже: Если заработает, скажи. Сам проврить на фре не могу #include <string> #include <pthread.h> #include "base_plugin.h" #include "notifer.h" #include "user_ips.h" #include "../../../users.h" using namespace std; extern "C" BASE_PLUGIN * GetPlugin(); class AUTH_AO; //----------------------------------------------------------------------------- template <typename varParamType> class CHG_BEFORE_NOTIFIER: public PROPERTY_NOTIFIER_BASE<varParamType> { public: void Notify(const varParamType & oldValue, const varParamType & newValue); //{ //auth->Unauthorize(user); //} void SetUser(user_iter u) { user = u; } user_iter GetUser() {return user; } void SetAuthorizator(const AUTH_AO * a) { auth = a; } private: user_iter user; const AUTH_AO * auth; }; //----------------------------------------------------------------------------- template <typename varParamType> class CHG_AFTER_NOTIFIER: public PROPERTY_NOTIFIER_BASE<varParamType> { public: void Notify(const varParamType & oldValue, const varParamType & newValue); //{ //auth->UpdateUserAuthorization(user); //} void SetUser(user_iter u) { user = u; } user_iter GetUser() {return user; } void SetAuthorizator(const AUTH_AO * a) { auth = a; } private: user_iter user; const AUTH_AO * auth; }; //----------------------------------------------------------------------------- class AUTH_AO_SETTINGS: public BASE_SETTINGS { public: const string& GetStrError() const { static string s; return s; } int ReadSettings(const CONFIGFILE &cf) { return 0; } }; //----------------------------------------------------------------------------- class AUTH_AO :public BASE_PLUGIN { public: AUTH_AO(); virtual ~AUTH_AO(){}; void SetUsers(USERS * u); void SetTariffs(TARIFFS * t){}; void SetAdmins(ADMINS * a){}; void SetTraffcounter(TRAFFCOUNTER * tc){}; void SetStore(BASE_STORE * ){}; void SetStgSettings(const SETTINGS *){}; int Start(); int Stop(); BASE_SETTINGS * GetSettings(); const string & GetStrError() const; const string GetVersion() const; uint16_t GetStartPosition() const; uint16_t GetStopPosition() const; void AddUser(user_iter u); void DelUser(user_iter u); void UpdateUserAuthorization(user_iter u) const; void Unauthorize(user_iter u) const; private: void GetUsers(); void SetUserNotifiers(user_iter u); void UnSetUserNotifiers(user_iter u); mutable string errorStr; AUTH_AO_SETTINGS aoSettings; USERS * users; list<user_iter> usersList; /* мы должны перепроверить возможность авторизации юзера при изменении следующих его параметров: - alwaysOnline - ips - iface */ list<CHG_BEFORE_NOTIFIER<int> > BeforeChgAONotifierList; list<CHG_AFTER_NOTIFIER<int> > AfterChgAONotifierList; list<CHG_BEFORE_NOTIFIER<USER_IPS> > BeforeChgIPNotifierList; list<CHG_AFTER_NOTIFIER<USER_IPS> > AfterChgIPNotifierList; list<CHG_BEFORE_NOTIFIER<string> > BeforeChgIfaceNotifierList; list<CHG_AFTER_NOTIFIER<string> > AfterChgIfaceNotifierList; class ADD_USER_NONIFIER: public NOTIFIER_BASE<user_iter> { public: ADD_USER_NONIFIER(){}; virtual ~ADD_USER_NONIFIER(){}; void SetAuthorizator(AUTH_AO * a) { auth = a; } void Notify(const user_iter & user) { auth->AddUser(user); } private: AUTH_AO * auth; } onAddUserNotifier; class DEL_USER_NONIFIER: public NOTIFIER_BASE<user_iter> { public: DEL_USER_NONIFIER(){}; virtual ~DEL_USER_NONIFIER(){}; void SetAuthorizator(AUTH_AO * a) { auth = a; } void Notify(const user_iter & user) { auth->DelUser(user); } private: AUTH_AO * auth; } onDelUserNotifier; }; //----------------------------------------------------------------------------- template <typename varParamType> void CHG_BEFORE_NOTIFIER<varParamType>::Notify(const varParamType & oldValue, const varParamType & newValue) { auth->Unauthorize(user); } //----------------------------------------------------------------------------- template <typename varParamType> void CHG_AFTER_NOTIFIER<varParamType>::Notify(const varParamType & oldValue, const varParamType & newValue) { auth->UpdateUserAuthorization(user); } //----------------------------------------------------------------------------- Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2005-12-21 14:43:16 Автор Share Опубліковано: 2005-12-21 14:43:16 Кто-нибудь пробывал на FreeBSD 6.0? Интересует данный вопрос, так как в скором времени планируется переход сервера на данную версию. Стг-2.4 не пробовал, но стг-2 скомпилился. Там пришлось переименовать одну переменную и всё заработало. Если кому надо расскажу. Кто-то про это спрашивал. Ссылка на сообщение Поделиться на других сайтах
MaйeR 0 Опубліковано: 2005-12-21 14:46:50 Share Опубліковано: 2005-12-21 14:46:50 Да сейчас собрался, сча работоспособность проверю, если не сложно в сл раз номера строк с изменениями указывай, мне быстрее руками исходник поправить чем файл заменить Ссылка на сообщение Поделиться на других сайтах
MaйeR 0 Опубліковано: 2005-12-21 14:49:51 Share Опубліковано: 2005-12-21 14:49:51 Да сейчас собрался, сча работоспособность проверю, если не сложно в сл раз номера строк с изменениями указывай, мне быстрее руками исходник поправить чем файл заменить 2005-12-22 00:48:44 -- Stg v. Stg 2.4 alpha.01 2005-12-22 00:48:44 -- Timer thread started successfully. 2005-12-22 00:48:44 -- Storage plugin: file_store v.1.00. Loading successfull. 2005-12-22 00:48:44 -- Users started successfully. 2005-12-22 00:48:44 -- Traffcounter started successfully. 2005-12-22 00:48:44 -- Plugin: bpf_cap v.1.0. Start successfull. 2005-12-22 00:48:44 -- Error: Plugin loading failed. ./plugins/authorization/ao/ao.so: Undefined symbol "_ZN18CHG_AFTER_NOTIF IERISsE6NotifyERKSsS2_" Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2005-12-21 14:50:22 Автор Share Опубліковано: 2005-12-21 14:50:22 Ну я не знаю, кому что лучше. Дашь дифф, а потом спрсят, а это что? Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2005-12-21 14:58:11 Автор Share Опубліковано: 2005-12-21 14:58:11 Да сейчас собрался, сча работоспособность проверю, если не сложно в сл раз номера строк с изменениями указывай, мне быстрее руками исходник поправить чем файл заменить 2005-12-22 00:48:44 -- Stg v. Stg 2.4 alpha.01 2005-12-22 00:48:44 -- Timer thread started successfully. 2005-12-22 00:48:44 -- Storage plugin: file_store v.1.00. Loading successfull. 2005-12-22 00:48:44 -- Users started successfully. 2005-12-22 00:48:44 -- Traffcounter started successfully. 2005-12-22 00:48:44 -- Plugin: bpf_cap v.1.0. Start successfull. 2005-12-22 00:48:44 -- Error: Plugin loading failed. ./plugins/authorization/ao/ao.so: Undefined symbol "_ZN18CHG_AFTER_NOTIF IERISsE6NotifyERKSsS2_" Перенеси этот код. ao.h -> ao.cpp //----------------------------------------------------------------------------- template <typename varParamType> void CHG_BEFORE_NOTIFIER<varParamType>::Notify(const varParamType & oldValue, const varParamType & newValue) { auth->Unauthorize(user); } //----------------------------------------------------------------------------- template <typename varParamType> void CHG_AFTER_NOTIFIER<varParamType>::Notify(const varParamType & oldValue, const varParamType & newValue) { auth->UpdateUserAuthorization(user); } //----------------------------------------------------------------------------- Ссылка на сообщение Поделиться на других сайтах
MaйeR 0 Опубліковано: 2005-12-21 14:58:27 Share Опубліковано: 2005-12-21 14:58:27 Ну я не знаю, кому что лучше. Дашь дифф, а потом спрсят, а это что? Еще изменения будут? А то раздумываю спать или нет Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2005-12-21 15:02:04 Автор Share Опубліковано: 2005-12-21 15:02:04 Не спать. Изменение есть Компилится запускается под фрей 5.4 stg-2.4-2005.12.21-18.05.47.tgz Никаких функциональных изменений. Ссылка на сообщение Поделиться на других сайтах
centre-lan 1 Опубліковано: 2005-12-21 16:32:57 Share Опубліковано: 2005-12-21 16:32:57 это а как теперь с iface в фриибсд? теперь ему пофиг на каком интерфейсе считать? такой вопрос у меня парвила выгоядят так ALL 10.0.0.0/8 NULL ALL UA-IX DIR0 ALL WORLD DIR1 таквот через 10.0.0.0/8 проходит терабайт трафика который считать ненадо как сделать так что-бы старгейзер на него вобще внимание не обращал? а то реально старгейзер лишний раз считает\грузит проц.. Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2005-12-21 16:35:54 Автор Share Опубліковано: 2005-12-21 16:35:54 этоа как теперь с iface в фриибсд? теперь ему пофиг на каком интерфейсе считать? Нет, в настройках capturer.conf прописать надо интерфейс. Однако юзерам прописывать не надо. такой вопросу меня парвила выгоядят так ALL 10.0.0.0/8 NULL ALL UA-IX DIR0 ALL WORLD DIR1 таквот через 10.0.0.0/8 проходит терабайт трафика который считать ненадо как сделать так что-бы старгейзер на него вобще внимание не обращал? а то реально старгейзер лишний раз считает\грузит проц.. Он и с интерфейсом обращал на него внимание А вообще ipq тут должен рулить. С помощью него можно завернуть в стг всё кроме локалки. ПС. Новый стг должен меньше грузить проц на подсчете трафика. Ссылка на сообщение Поделиться на других сайтах
centre-lan 1 Опубліковано: 2005-12-21 16:42:50 Share Опубліковано: 2005-12-21 16:42:50 дак старгейзер ведь с ipq и divertom еще не научен работать? Ссылка на сообщение Поделиться на других сайтах
stg-34 0 Опубліковано: 2005-12-21 16:48:19 Автор Share Опубліковано: 2005-12-21 16:48:19 я про старый. или ты этот сбрался на юзеров ставить? Ссылка на сообщение Поделиться на других сайтах
centre-lan 1 Опубліковано: 2005-12-21 18:53:19 Share Опубліковано: 2005-12-21 18:53:19 я про старый. или ты этот сбрался на юзеров ставить? дак ты написал в первом посте что с ipq и divert еще не дружит.. потом пишешь что с ipq будет все хорошо.. вот и получается ЗЫ у меня фриибсд, тут диверт как не крути - не фунциклирует.. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения