$Author: faust $
*/
+#include "configproto.h"
#include <unistd.h>
-#include "configproto.h"
-
//-----------------------------------------------------------------------------
void ParseXMLStart(void *data, const char *el, const char **attr)
{
}
//-----------------------------------------------------------------------------
CONFIGPROTO::CONFIGPROTO(PLUGIN_LOGGER & l)
- : answerList(),
- requestList(),
- adminIP(0),
- adminLogin(),
- adminPassword(),
+ : adminIP(0),
port(0),
- thrReciveSendConf(),
nonstop(true),
state(0),
currAdmin(NULL),
logger(l),
listenSocket(-1),
- parserGetServInfo(),
- parserGetUsers(),
- parserGetUser(),
- parserChgUser(),
- parserAddUser(),
- parserDelUser(),
- parserCheckUser(),
- parserSendMessage(),
- parserAuthBy(),
- parserGetAdmins(),
- parserAddAdmin(),
- parserDelAdmin(),
- parserChgAdmin(),
- parserGetTariffs(),
- parserAddTariff(),
- parserDelTariff(),
- parserChgTariff(),
admins(NULL),
- currParser(NULL),
- dataParser(),
- xmlParser(),
- errorStr()
+ currParser(NULL)
{
dataParser.push_back(&parserGetServInfo);
dataParser.push_back(&parserCheckUser);
dataParser.push_back(&parserSendMessage);
dataParser.push_back(&parserAuthBy);
+dataParser.push_back(&parserUserInfo);
dataParser.push_back(&parserGetTariffs);
dataParser.push_back(&parserAddTariff);
return 0;
}
//-----------------------------------------------------------------------------
-void CONFIGPROTO::SetPort(uint16_t p)
-{
-port = p;
-}
-//-----------------------------------------------------------------------------
void CONFIGPROTO::SetAdmins(ADMINS * a)
{
admins = a;
for (size_t i = 0; i < dataParser.size(); i++)
- {
dataParser[i]->SetAdmins(a);
- }
-
}
//-----------------------------------------------------------------------------
void CONFIGPROTO::SetUsers(USERS * u)
{
for (size_t i = 0; i < dataParser.size(); i++)
- {
dataParser[i]->SetUsers(u);
- }
-
}
//-----------------------------------------------------------------------------
void CONFIGPROTO::SetTariffs(TARIFFS * t)
{
for (size_t i = 0; i < dataParser.size(); i++)
- {
dataParser[i]->SetTariffs(t);
- }
}
//-----------------------------------------------------------------------------
void CONFIGPROTO::SetStore(STORE * s)
{
for (size_t i = 0; i < dataParser.size(); i++)
- {
dataParser[i]->SetStore(s);
- }
}
//-----------------------------------------------------------------------------
void CONFIGPROTO::SetStgSettings(const SETTINGS * s)
{
for (size_t i = 0; i < dataParser.size(); i++)
- {
dataParser[i]->SetStgSettings(s);
- }
}
//-----------------------------------------------------------------------------
#ifndef CONFIGPROTO_H
#define CONFIGPROTO_H
-#include <expat.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <string>
-#include <list>
+#include "parser_auth_by.h"
+#include "parser_user_info.h"
#include "stg/users.h"
#include "stg/admins.h"
#include "stg/logger.h"
#include "parser.h"
-#include "parser_auth_by.h"
+#include <string>
+#include <list>
+
+#include <expat.h>
+#include <sys/types.h>
+#include <sys/socket.h>
#define STG_HEADER "SG04"
#define OK_HEADER "OKHD"
CONFIGPROTO(PLUGIN_LOGGER & l);
~CONFIGPROTO();
- void SetPort(uint16_t port);
+ void SetPort(uint16_t p) { port = p; }
void SetAdmins(ADMINS * a);
void SetUsers(USERS * u);
void SetTariffs(TARIFFS * t);
PARSER_CHECK_USER parserCheckUser;
PARSER_SEND_MESSAGE parserSendMessage;
PARSER_AUTH_BY parserAuthBy;
+ PARSER_USER_INFO parserUserInfo;
PARSER_GET_ADMINS parserGetAdmins;
PARSER_ADD_ADMIN parserAddAdmin;
#ifndef __STG_PARSER_USER_INFO_H__
#define __STG_PARSER_USER_INFO_H__
-#include <string>
-
#include "parser.h"
+#include <string>
+
class PARSER_USER_INFO : public BASE_PARSER {
public:
int ParseStart(void *data, const char *el, const char **attr);
*
*******************************************************************/
-#include <unistd.h> // close
+#include "configproto.h"
+
+#include "stg/blowfish.h"
#include <cerrno>
#include <csignal>
#include <cstdio> // snprintf
-#include "stg/blowfish.h"
-#include "configproto.h"
+#include <unistd.h> // close
#ifndef ENODATA
// FreeBSD 4.* - suxx
&outerAddrLen);
if (!nonstop)
- {
break;
- }
if (outerSocket < 0)
{
- logger("accept error: %s", strerror(errno));
+ logger("accept error: %s", strerror(errno));
printfd(__FILE__, "accept failed\n");
continue;
}
ssize_t ret = recv(sock, &buf[pos], static_cast<int>(stgHdrLen) - static_cast<int>(pos), 0);
if (ret <= 0)
{
- if (ret < 0)
- logger("recv error: %s", strerror(errno));
+ if (ret < 0)
+ logger("recv error: %s", strerror(errno));
state = confHdr;
return -1;
}
if (ret <= 0)
{
// Error in network
- logger("recv error: %s", strerror(errno));
+ logger("recv error: %s", strerror(errno));
state = confHdr;
return ENODATA;
}
{
// Network error
printfd(__FILE__, "recv error: '%s'\n", strerror(errno));
- logger("recv error: %s", strerror(errno));
+ logger("recv error: %s", strerror(errno));
state = confHdr;
return ENODATA;
}
char login[ADM_LOGIN_LEN + 1];
for (size_t i = 0; i < ADM_LOGIN_LEN / 8; i++)
- {
DecodeString(login + i * 8, loginS + i * 8, &ctx);
- }
if (currAdmin == admins->GetNoAdmin())
{
if (ret < 0)
{
// Network error
- logger("recv error: %s", strerror(errno));
+ logger("recv error: %s", strerror(errno));
printfd(__FILE__, "recv error: '%s'\n", strerror(errno));
return -1;
}
if (n % 8 == 0)
{
EncodeString(buffS, buff, &ctx);
- int ret = static_cast<int>(send(sock, buffS, 8, 0));
- if (ret < 0)
- {
+ if (send(sock, buffS, 8, 0) < 0)
return -1;
- }
}
}
k = 0;// new node