*/
+#include "parser.h"
+#include "parser_auth_by.h"
+#include "parser_user_info.h"
+
+#include "stg/users.h"
+#include "stg/admins.h"
+#include "stg/tariffs.h"
+#include "stg/logger.h"
+
#include <unistd.h>
#include "configproto.h"
xmlParser(),
errorStr()
{
-dataParser.push_back(&parserGetServInfo);
+dataParser.push_back(new PARSER_GET_SERVER_INFO);
-dataParser.push_back(&parserGetUsers);
-dataParser.push_back(&parserGetUser);
-dataParser.push_back(&parserChgUser);
-dataParser.push_back(&parserAddUser);
-dataParser.push_back(&parserDelUser);
-dataParser.push_back(&parserCheckUser);
-dataParser.push_back(&parserSendMessage);
-dataParser.push_back(&parserAuthBy);
+dataParser.push_back(new PARSER_GET_USERS);
+dataParser.push_back(new PARSER_GET_USER);
+dataParser.push_back(new PARSER_CHG_USER);
+dataParser.push_back(new PARSER_ADD_USER);
+dataParser.push_back(new PARSER_DEL_USER);
+dataParser.push_back(new PARSER_CHECK_USER);
+dataParser.push_back(new PARSER_SEND_MESSAGE);
+dataParser.push_back(new PARSER_AUTH_BY);
+dataParser.push_back(new PARSER_USER_INFO);
-dataParser.push_back(&parserGetTariffs);
-dataParser.push_back(&parserAddTariff);
-dataParser.push_back(&parserDelTariff);
-dataParser.push_back(&parserChgTariff);
+dataParser.push_back(new PARSER_GET_TARIFFS);
+dataParser.push_back(new PARSER_ADD_TARIFF);
+dataParser.push_back(new PARSER_DEL_TARIFF);
+dataParser.push_back(new PARSER_CHG_TARIFF);
-dataParser.push_back(&parserGetAdmins);
-dataParser.push_back(&parserChgAdmin);
-dataParser.push_back(&parserDelAdmin);
-dataParser.push_back(&parserAddAdmin);
+dataParser.push_back(new PARSER_GET_ADMINS);
+dataParser.push_back(new PARSER_CHG_ADMIN);
+dataParser.push_back(new PARSER_DEL_ADMIN);
+dataParser.push_back(new PARSER_ADD_ADMIN);
xmlParser = XML_ParserCreate(NULL);
//-----------------------------------------------------------------------------
CONFIGPROTO::~CONFIGPROTO()
{
+for (size_t i = 0; i < dataParser.size(); ++i)
+ delete dataParser[i];
XML_ParserFree(xmlParser);
}
//-----------------------------------------------------------------------------
#ifndef CONFIGPROTO_H
#define CONFIGPROTO_H
-#include <expat.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
#include <string>
#include <list>
+#include <vector>
-#include "stg/users.h"
-#include "stg/admins.h"
-#include "stg/tariffs.h"
-#include "stg/logger.h"
-#include "parser.h"
+#include "stg/os_int.h"
-#include "parser_auth_by.h"
+#include <expat.h>
+#include <pthread.h>
#define STG_HEADER "SG04"
#define OK_HEADER "OKHD"
#define OK_LOGINS "OKLS"
#define ERR_LOGINS "ERLS"
+class BASE_PARSER;
+class USERS;
+class ADMINS;
+class ADMIN;
+class TARIFFS;
+class PLUGIN_LOGGER;
+class STORE;
+class SETTINGS;
+
//-----------------------------------------------------------------------------
class CONFIGPROTO {
public:
int listenSocket;
- PARSER_GET_SERVER_INFO parserGetServInfo;
-
- PARSER_GET_USERS parserGetUsers;
- PARSER_GET_USER parserGetUser;
- PARSER_CHG_USER parserChgUser;
- PARSER_ADD_USER parserAddUser;
- PARSER_DEL_USER parserDelUser;
- PARSER_CHECK_USER parserCheckUser;
- PARSER_SEND_MESSAGE parserSendMessage;
- PARSER_AUTH_BY parserAuthBy;
-
- PARSER_GET_ADMINS parserGetAdmins;
- PARSER_ADD_ADMIN parserAddAdmin;
- PARSER_DEL_ADMIN parserDelAdmin;
- PARSER_CHG_ADMIN parserChgAdmin;
-
- PARSER_GET_TARIFFS parserGetTariffs;
- PARSER_ADD_TARIFF parserAddTariff;
- PARSER_DEL_TARIFF parserDelTariff;
- PARSER_CHG_TARIFF parserChgTariff;
-
ADMINS * admins;
BASE_PARSER * currParser;
*
*******************************************************************/
-#include <unistd.h> // close
+#include "configproto.h"
+
+#include "stg/admins.h"
+#include "stg/logger.h"
+#include "stg/common.h"
+#include "stg/blowfish.h"
#include <cerrno>
#include <csignal>
#include <cstdio> // snprintf
+#include <cstring> // strerror
-#include "stg/blowfish.h"
-#include "configproto.h"
+#include <unistd.h> // close
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
#ifndef ENODATA
// FreeBSD 4.* - suxx