- int RecvHdr(int sock);
- int RecvLogin(int sock);
- int SendLoginAnswer(int sock, int err);
- int SendHdrAnswer(int sock, int err);
- int RecvLoginS(int sock);
- int SendLoginSAnswer(int sock, int err);
- int RecvData(int sock);
- int SendDataAnswer(int sock);
- void SendError(const char * text);
- void WriteLogAccessFailed(uint32_t ip);
-
- int ParseCommand();
-
- list<string> answerList;
- list<string> requestList;
- uint32_t adminIP;
- string adminLogin;
- uint16_t port;
- pthread_t thrReciveSendConf;
- bool nonstop;
- int state;
- //HOSTALLOW * hostAllow;
- ADMIN currAdmin;
- STG_LOGGER & WriteServLog;
-
- int outerSocket;
- int listenSocket;
- struct sockaddr_in outerAddr;
- socklen_t outerAddrLen;
-
- 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_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;
- //USERS * users;
- //TARIFFS * tariffs;
- //BASE_STORE * store;
- //const SETTINGS * settings;
-
- BASE_PARSER * currParser;
- vector<BASE_PARSER*> dataParser;
-
- XML_Parser xmlParser;
-
- string errorStr;
-
- friend void ParseXMLStart(void *data, const char *el, const char **attr);
- friend void ParseXMLEnd(void *data, const char *el);
+ CONFIGPROTO(const CONFIGPROTO & rvalue);
+ CONFIGPROTO & operator=(const CONFIGPROTO & rvalue);
+
+ const SETTINGS * m_settings;
+ ADMINS * m_admins;
+ TARIFFS * m_tariffs;
+ USERS * m_users;
+ SERVICES * m_services;
+ CORPORATIONS * m_corporations;
+ STORE * m_store;
+
+ uint16_t m_port;
+ std::string m_bindAddress;
+ bool m_running;
+ bool m_stopped;
+ PLUGIN_LOGGER & m_logger;
+ int m_listenSocket;
+
+ std::string m_errorStr;
+
+ BASE_PARSER::REGISTRY m_registry;
+ std::deque<STG::Conn *> m_conns;
+
+ bool Bind();
+
+ void RegisterParsers();
+
+ int MaxFD() const;
+ void BuildFDSet(fd_set & fds) const;
+ void CleanupConns();
+ void HandleEvents(const fd_set & fds);
+ void AcceptConnection();