137 lines
3.5 KiB
C++
137 lines
3.5 KiB
C++
/****************************************************************************
|
|
|
|
od_statusd : Application status monitoring daemon for OpenDisk service
|
|
|
|
CopyRight(C) 2005 SolutionBox Inc. All Rights reserved.
|
|
Author : Sean Kim (sean@0x31.com)
|
|
|
|
$Id: serv_conf.h,v 1.7 2007/02/20 04:31:12 mirshead Exp $
|
|
|
|
Redistribution and use in source and binary forms, with or with out
|
|
modification, are not permitted in outside of SolutionBox Inc.
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
#ifndef __SERV_CONF_H__
|
|
#define __SERV_CONF_H__
|
|
|
|
#include <iostream>
|
|
#include <list>
|
|
#include <string>
|
|
#include <mm.h>
|
|
|
|
#include "util.h"
|
|
#include "rconfig.h"
|
|
#include "address.h"
|
|
#include "protocol.h"
|
|
|
|
using namespace std;
|
|
using namespace SDSocket;
|
|
|
|
#define NumOfServerType 10
|
|
#define MaxSizeOfServerName 32
|
|
#define MaxSizeOfServerAddr 16
|
|
#define MaxSizeOfServerPort 8
|
|
#define MaxSizeOfServerType 24
|
|
|
|
#define MaxSizeOfRCAcctName 32
|
|
#define MaxSizeOfRCAcctUser 32
|
|
#define MaxSizeOfRCAcctPassword 32
|
|
#define MaxSizeOfRCAcctCert 128
|
|
#define MaxSizeOfRCAcctAuthkey 128
|
|
|
|
#define CONFIG_SERV "SERV"
|
|
#define CONFIG_RCACCT "RCACCT"
|
|
|
|
enum eServType
|
|
{
|
|
SERV_WWW = 0,
|
|
SERV_FHS = 1,
|
|
SERV_RC = 2,
|
|
SERV_DB = 3
|
|
};
|
|
|
|
const char a_ServType[NumOfServerType][MaxSizeOfServerType]
|
|
= {"www", "rts", "rc", "ccdb", "rcts", "gts", "rcdb", "gms", "timed", "stat"};
|
|
|
|
#define MAX_IP_STRING 17
|
|
|
|
typedef struct _ServInfo_e
|
|
{
|
|
char * m_pszServName;
|
|
|
|
char m_szIpString[MAX_IP_STRING];
|
|
short m_sPort;
|
|
//Address m_Address;
|
|
time_t m_StatChgTime;
|
|
unsigned int m_Status;
|
|
unsigned int m_ServType;
|
|
unsigned int m_DeadCount;
|
|
char * m_pszDomainName;
|
|
struct svr_status ss;
|
|
|
|
struct _ServInfo_e *next;
|
|
} servinfo_t;
|
|
|
|
typedef struct _RCAcct_e
|
|
{
|
|
char * m_pszServiceName;
|
|
char * m_pszUserName;
|
|
char * m_pszPassword;
|
|
char * m_pszAuthkey;
|
|
char * m_pszCertLocation;
|
|
|
|
struct _RCAcct_e *next;
|
|
} rcacct_t;
|
|
|
|
typedef struct _CellInfo
|
|
{
|
|
string m_strCellPhone;
|
|
} cellinfo_t;
|
|
|
|
class CLoadServConfig : public Config
|
|
{
|
|
public:
|
|
enum eStatus
|
|
{
|
|
ALIVE = 1,
|
|
DEAD = 2
|
|
};
|
|
CLoadServConfig() throw();
|
|
virtual int GetValue(const char *pzKey, char *pszValue);
|
|
int LoadServConfig(const char *pszFileName);
|
|
void clearLoadCount(void) { m_Counter = 0; }
|
|
int getServerCount(void) { return m_ServerCounter; }
|
|
int getRCAcctCount(void) { return m_RCAcctCounter; }
|
|
int GetServerValue(servinfo_t *pServInfo);
|
|
int GetRCAcctValue(rcacct_t *pRCAcctInfo);
|
|
int GetCellphoneValue(cellinfo_t *pCellInfo);
|
|
servinfo_t *getList(void) throw() { return m_pServerList; }
|
|
void addServerToList(servinfo_t newServInfo) throw();
|
|
void addRCToList(rcacct_t newAcctInfo) throw();
|
|
rcacct_t *RCAcctFind(char *name);
|
|
void addCellphoneToList(cellinfo_t newCellphoneInfo) throw();
|
|
void InsertServKeyValue(const char *pszKey, const char *pzValue);
|
|
int UpdateStatus(unsigned int _ServType, eStatus _Status, char *servname);
|
|
int IncreaseDeadCount(unsigned int _ServType, char *servname);
|
|
void DumpStatusString(string &strStatus) throw();
|
|
void DumpPrintAll(void) throw();
|
|
|
|
char *getMemory(int size) throw();
|
|
void releaseMemory(char *ptr) throw();
|
|
|
|
private:
|
|
unsigned int m_RCAcctCounter;
|
|
unsigned int m_ServerCounter;
|
|
unsigned int m_Counter;
|
|
//std::list<servinfo_t> m_ServerList;
|
|
servinfo_t *m_pServerList;
|
|
rcacct_t *m_pRCAcctList;
|
|
std::list<cellinfo_t> m_CellInfo;
|
|
static Semaphore threadsLock;
|
|
MM *m_pShm;
|
|
};
|
|
|
|
#endif
|