* Большая часть кода приведена в соответствие с рекомендациями Скотта
Мейерса.
* Вычищена куча кода. Но это еще не конец.
+ * Исправлена ошибка установки в случае наличия предыдущей установки.
+ * Добавлена поддержка FreeBSD9.
+ * Структура базы для Firebird больше не создается при make install-data,
+ нужно создавать вручную.
Compilation:
* При проверке условий сборки теперь используются переменные CC и CXX
и gcc, и clang и ekopath).
* Существенно переработана система сборки. Теперь она не сорит
заголовочными файлами и библотеками там где не нужно.
+ * Убрана зависимость от bash.
Libraries:
* Использование динамических внутренних библиотек признано
* Добавлена специализация x2str для беззнаковых типов.
* Библиотеки crypto.lib и scriptexecuter.lib теперь содержат 100% кода на
языке C!
+ * Исправлена работа библиотеки ia.lib на платформах с Big Endian.
Plugins:
* В плагин для PostgreSQL добавлен параметр retries указывающий количество
- количество абонентов с положительным кредитом;
- количество абонентов с положительным предоплаченным трафиком;
- количество абонентов меняющих тарифный план в следующем месяце;
+ - количество абонентов с ненулевым трафиком за сессию;
- общее количество тарифов;
- количество абонентов потарифно;
- общее количество админов;
корректной остановки плагина. Привет мейнтейнерам Debian которые до сих
пор не обновили xmlrpc-c! Зато минус одно падение с SIGSEGV и General
Protection Fault при останове!
+ * Плагин remote_script больше не сообщает об ошибке и позволяет системе
+ запуститься если файл привязки подсетей пуст.
+ * Пересмотрен порядок загрузки плагинов.
stargazer:
* Исправлена ошибка приводящая к неправильному сообщению о причине
USERS что позволило избавиться от дедлока в определенных условиях.
* Устранена возможность выгрузки активного плагина. Минус одно
потенциальное падение с SIGSEGV и General Protection Fault!
-
-rscriptd:
- * В примере конфигурационного файла для rscriptd путь /etc/rscriptd
- заменен на /etc/stargazer.
int ParseSettings() { return 0; }
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const;
- uint16_t GetStartPosition() const { return 70; }
- uint16_t GetStopPosition() const { return 70; }
+ uint16_t GetStartPosition() const { return 30; }
+ uint16_t GetStopPosition() const { return 30; }
void AddUser(USER_PTR u);
void DelUser(USER_PTR u);
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const { return "InetAccess authorization plugin v.1.4"; }
- uint16_t GetStartPosition() const { return 50; }
- uint16_t GetStopPosition() const { return 50; }
+ uint16_t GetStartPosition() const { return 30; }
+ uint16_t GetStopPosition() const { return 30; }
int SendMessage(const STG_MSG & msg, uint32_t ip) const;
//-----------------------------------------------------------------------------
uint16_t AUTH_STRESS::GetStartPosition() const
{
-return 70;
+return 30;
}
//-----------------------------------------------------------------------------
uint16_t AUTH_STRESS::GetStopPosition() const
{
-return 70;
+return 30;
}
//-----------------------------------------------------------------------------
void AUTH_STRESS::SetUserNotifiers(USER_PTR u)
//-----------------------------------------------------------------------------
uint16_t DEBUG_CAP::GetStartPosition() const
{
-return 0;
+return 40;
}
//-----------------------------------------------------------------------------
uint16_t DEBUG_CAP::GetStopPosition() const
{
-return 0;
+return 40;
}
//-----------------------------------------------------------------------------
RAW_PACKET MakeTCPPacket(const char * src,
#include "stg/module_settings.h"
#define VERSION "CAP_NF v. 0.4"
-#define START_POS 10
-#define STOP_POS 10
+#define START_POS 40
+#define STOP_POS 40
class USERS;
class USER;
int ParseSettings();
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const;
- uint16_t GetStartPosition() const { return 10; }
- uint16_t GetStopPosition() const { return 10; }
+ uint16_t GetStartPosition() const { return 40; }
+ uint16_t GetStopPosition() const { return 40; }
private:
DIVERT_CAP(const DIVERT_CAP & rvalue);
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const;
- uint16_t GetStartPosition() const { return 10; }
- uint16_t GetStopPosition() const { return 10; }
+ uint16_t GetStartPosition() const { return 40; }
+ uint16_t GetStopPosition() const { return 40; }
private:
BPF_CAP(const BPF_CAP & rvalue);
int ParseSettings() { return 0; }
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const;
- uint16_t GetStartPosition() const { return 10; }
- uint16_t GetStopPosition() const { return 10; }
+ uint16_t GetStartPosition() const { return 40; }
+ uint16_t GetStopPosition() const { return 40; }
private:
ETHER_CAP(const ETHER_CAP & rvalue);
int ParseSettings() { return 0; }
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const;
- uint16_t GetStartPosition() const { return 10; }
- uint16_t GetStopPosition() const { return 10; }
+ uint16_t GetStartPosition() const { return 40; }
+ uint16_t GetStopPosition() const { return 40; }
private:
IPQ_CAP(const IPQ_CAP & rvalue);
+#include <ostream> // xmlrpc-c devs have missed something :)
+
#include "stg/common.h"
#include "admins_methods.h"
#include "rpcconfig.h"
#include <sys/utsname.h>
+#include <ostream> // xmlrpc-c devs have missed something :)
+
#include "stg/version.h"
#include "stg/common.h"
#include "info_methods.h"
+#include <ostream> // xmlrpc-c devs have missed something :)
+
#include "stg/message.h"
#include "stg/common.h"
#include "utils.h"
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
+#include <unistd.h>
#include <cstdlib>
#include <csignal>
#include <cstring>
#include <vector>
#include <algorithm>
+#include <ostream> // xmlrpc-c devs have missed something :)
#include "stg/common.h"
#include "stg/admin.h"
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const { return RPC_CONFIG_VERSION; }
- uint16_t GetStartPosition() const { return 220; }
- uint16_t GetStopPosition() const { return 220; }
+ uint16_t GetStartPosition() const { return 20; }
+ uint16_t GetStopPosition() const { return 20; }
bool GetAdminInfo(const std::string & cookie,
ADMIN_INFO * info);
+#include <ostream> // xmlrpc-c devs have missed something :)
+
#include "tariff_helper.h"
void TARIFF_HELPER::GetTariffInfo(xmlrpc_c::value * info) const
+#include <ostream> // xmlrpc-c devs have missed something :)
+
#include "tariffs_methods.h"
#include "rpcconfig.h"
#include "tariff_helper.h"
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const { return PLUGIN_VERSION; }
- uint16_t GetStartPosition() const { return 220; }
- uint16_t GetStopPosition() const { return 220; }
+ uint16_t GetStartPosition() const { return 20; }
+ uint16_t GetStopPosition() const { return 20; }
private:
USERS * users;
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const;
- uint16_t GetStartPosition() const { return 220; }
- uint16_t GetStopPosition() const { return 220; }
+ uint16_t GetStartPosition() const { return 20; }
+ uint16_t GetStopPosition() const { return 20; }
private:
STG_CONFIG(const STG_CONFIG & rvalue);
uint16_t STG_CONFIG::GetStartPosition() const
{
-return 220;
+return 20;
}
uint16_t STG_CONFIG::GetStopPosition() const
{
-return 220;
+return 20;
}
bool PrepareNetwork()
//-----------------------------------------------------------------------------
uint16_t XR_CONFIG::GetStartPosition() const
{
-return 221;
+return 20;
}
//-----------------------------------------------------------------------------
uint16_t XR_CONFIG::GetStopPosition() const
{
-return 221;
+return 20;
}
//-----------------------------------------------------------------------------
int XR_CONFIG::SetUserCash(const string & admLogin, const string & usrLogin, double cash) const
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const { return "Pinger v.1.01"; }
- uint16_t GetStartPosition() const { return 100; }
- uint16_t GetStopPosition() const { return 100; }
+ uint16_t GetStartPosition() const { return 10; }
+ uint16_t GetStopPosition() const { return 10; }
void AddUser(USER_PTR u);
void DelUser(USER_PTR u);
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const { return "RADIUS data access plugin v 0.6"; }
- uint16_t GetStartPosition() const { return 20; }
- uint16_t GetStopPosition() const { return 20; }
+ uint16_t GetStartPosition() const { return 30; }
+ uint16_t GetStopPosition() const { return 30; }
int SendMessage(const STG_MSG &, uint32_t) const { return 0; }
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const { return "Remote script v 0.3"; }
- uint16_t GetStartPosition() const { return 20; }
- uint16_t GetStopPosition() const { return 20; }
+ uint16_t GetStartPosition() const { return 10; }
+ uint16_t GetStopPosition() const { return 10; }
void DelUser(USER_PTR u) { UnSetUserNotifier(u); }
void AddUser(USER_PTR u) { SetUserNotifier(u); }
const std::string & GetStrError() const { return errorStr; }
const std::string GetVersion() const { return "Stg SMUX Plugin 1.1"; }
- uint16_t GetStartPosition() const { return 100; }
- uint16_t GetStopPosition() const { return 100; }
+ uint16_t GetStartPosition() const { return 10; }
+ uint16_t GetStopPosition() const { return 10; }
bool UpdateTables();
virtual bool IsRunning() { return isRunning; }
virtual const string & GetStrError() const { return errorStr; }
virtual const string GetVersion() const { return version; }
- virtual uint16_t GetStartPosition() const { return 0; }
- virtual uint16_t GetStopPosition() const { return 0; }
+ virtual uint16_t GetStartPosition() const { return 10; }
+ virtual uint16_t GetStopPosition() const { return 10; }
private:
struct IsDone : public unary_function<DataThread, bool>