init ems server code

This commit is contained in:
2024-09-27 15:39:34 +08:00
parent 9d4009aaca
commit 9930e4e58f
1551 changed files with 110216 additions and 102864 deletions

View File

@@ -0,0 +1,155 @@
/*************************************************
File name: cdr.h
Author:
Version: 9:00:00
Date: 2002-5-7
Description:<3A><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>cdrCollectorģ<72><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<09>ṹcdr_src,cdr_def,cdr_tlv
History:
No.
Author:
Date:
Version:
Description:
*************************************************/
#ifndef __CDR_HEAD_FILE
#define __CDR_HEAD_FILE
#include "mysql.h"
#include "errmsg.h"
#include <dirent.h>
#include "../../../../plat/public/src/include/asn1.h"
#include "../../../../plat/snmp/src/include/snmp.h"
#include "../../../omcLib/c_program/omcLib/omcLib.h"
#ifndef _T_DWORD
#define _T_DWORD
typedef unsigned int DWORD;
#endif
#define CDR_DEBUG 0
#define CDR_LINK_DEBUG 0
#define CDR_PORT 4968
#define CDR_SRC_NUM 32
#define CDR_TYPE_NUM 20
#define CDR_OBJ_MAX 128
#define HOST_NAME "localhost"
#define CDRDB_NAME "CDR_DB"
#define CSV_PATH "/usr/local/cdr"
#define CDR_LOG_PATH "../log"
#define CDR_LOG_FILE "cdrlog"
#define ST_GET_TAIL 0
#define ST_WAIT_TAIL 1
#define ST_CDR_IDLE 2
#define ST_GET_CDR 3
#define ST_WAIT_CDR 4
#define ST_TAIL_IDLE 5
#define ST_SET_TAIL 6
#define CDR_TIME_UNIT 20 //ms
#define CDR_T_idle 250 //5s lowest speed
#define CDR_T_getcdr 30 //60ms
#define CDR_T_gettail 500 //300*20=6000ms=10s
#define CDR_T_settail 100 //2s
#define HEAP_SIZE_MAX 256 //1024*28
#define HEAP_TIME_MAX 50*30 //30s
#define OMC_SINGLE 7
#define OMC_MASTER 5
char totalCdrFileName[128];
char cdrFileName[128];
int cdrHour;
//<2F>˽ṹ<CBBD><E1B9B9><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֶ<EFBFBD>
typedef struct cdr_tlv {
char tag_seq[17][20]; //16<31><36>tag<61><67>ֵ
char field_name[30]; //<2F>ֶε<D6B6><CEB5><EFBFBD><EFBFBD><EFBFBD>
BYTE type; //<2F>ֶε<D6B6><CEB5><EFBFBD><EFBFBD><EFBFBD>
BOOL optional; //<2F>ֶ<EFBFBD><D6B6>Ƿ<EFBFBD><C7B7><EFBFBD>ѡ
BYTE width; //<2F>ֶγ<D6B6><CEB3><EFBFBD>
} cdr_tlv;
//<2F>˽ṹ<CBBD><E1B9B9><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1>Ķ<EFBFBD><C4B6><EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD>ֶζ<D6B6><CEB6><EFBFBD>
typedef struct cdr_def {
BOOL valid[17]; //tagλ<67><CEBB>ʶ
char field_set[1024]; //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
char field_select[1024];//ָ<><D6B8><EFBFBD><EFBFBD><E6B1BE>ȫ<EFBFBD><C8AB><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
char create_sql[2048]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>sql<71><6C><EFBFBD><EFBFBD>
BYTE field_count; //<2F>ֶεĸ<CEB5><C4B8><EFBFBD>
cdr_tlv obj[CDR_OBJ_MAX];//<2F>ֶζ<D6B6><CEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
} cdr_def;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>CDR<44><52><EFBFBD><EFBFBD>Դ
typedef struct cdr_src {
int loss; //<2F><><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3>
int recv; //<2F><><EFBFBD>յİ<D5B5><C4B0>ĸ<EFBFBD><C4B8><EFBFBD>
int recd; //<2F><>¼<EFBFBD>İ<EFBFBD><C4B0>ĸ<EFBFBD><C4B8><EFBFBD>
BYTE cdr_ver; //<2F><EFBFBD><E6B1BE>
WORD sysTypeNo; //ϵͳ<CFB5><EFBFBD><E8B1B8>
BYTE sysid; //ϵͳ<CFB5><CDB3>
BYTE retry; //<2F><><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
//informaion for getting cdr
int get_timeout; //get<65><74><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3>ʱ<EFBFBD><CAB1>
BOOL get_state; //get״̬
DWORD instance; //ͷָ<CDB7><D6B8>
DWORD head; //βָ<CEB2><D6B8>
BYTE maxbind; //<2F><><EFBFBD><EFBFBD><EFBFBD>󶨱<EFBFBD><F3B6A8B1><EFBFBD><EFBFBD><EFBFBD>
DWORD request_id; //get<65><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
//information for setting ptail
int set_timeout; //set<65><74><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3>ʱ<EFBFBD><CAB1>
BYTE set_fail; //setʧ<74>ܴ<EFBFBD><DCB4><EFBFBD>
BOOL set_state; //set״̬
BOOL move_flag; //βָ<CEB2><D6B8><EFBFBD>Ƿ<EFBFBD><C7B7>ı<EFBFBD>
DWORD set_rid; //set<65><74><EFBFBD><EFBFBD>ID
snmp_addr addr; //IP<49>Ͷ˿ڵ<CBBF>ַ
DWORD oid[20]; //OID
BYTE oid_len; //OID<49><44><EFBFBD><EFBFBD>
DWORD head_oid[20]; //ͷָ<CDB7><D6B8>OID
DWORD tail_oid[20]; //βָ<CEB2><D6B8>OID
char record_table[30]; //<2F><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>
char define_table[30]; //<2F><><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char csv_path[50]; //<2F><><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
int backup_max; //<2F><><EFBFBD>󱸷ݸ<F3B1B8B7><DDB8><EFBFBD>
int buf_size; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
cdr_def define; //<2F><>Ӧ<EFBFBD><D3A6><EFBFBD>ֶα<D6B6><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//BOOL receive_tail;
//BOOL receive_cdr;
//int serial;
} cdr_src;
void converseFile();
void cdr_timer();
void cdr_init();
#if CDR_LINK_DEBUG
void cdrdebug_init();
#endif
void cdrdb_init();
void cdr_start();
void cdr_stop();
BOOL cdr_status();
void cdrdb_timer();
void cdrlog_init();
void cdrlog_timer();
void cdr_log(const char *fmt, ...);
void cdr_logmsg(BYTE * buf, int len);
void cdr_report();
int safe_query(MYSQL * conn, char *strquery, int retry);
#endif