📄 db.pc.not_sp
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <sqlca.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <Utility.h>
#include "Db.h"
#include "Stru.h"
#define DEBUG
//2004-05-20
/*********
EMAIL
*********/
//1:邮件账号
EXEC SQL BEGIN DECLARE SECTION;
typedef struct
{
int MAC_ID;
char MAC_USERID[50+1];
char MAC_PASSWORD[50+1];
char MAC_SERVERIP[15+1];
char MAC_DOMAINNAME[64+1];
short MAC_SERVICE;
char MAC_CAPTIME[14+1];
}DBSTRU_TR_T_MAILACCOUNT;
//2:邮件附件
typedef struct
{
int MLF_ID;
char MIF_ORIGINALFILE[100+1];
int MIF_FILEBEGIN;
int MIF_FILESIZE;
}DBSTRU_TR_T_MAILFILE;
//3: 邮件信息
typedef struct
{
int MIF_ID;
int MLF_ID;
char MIF_DATE[19+1];
char MIF_SUBJECT[100+1];
short MIF_PROTOCOL;
char MIF_CLIENTIP[15+1];
char MIF_SERVERIP[15+1];
char MIF_CAPTIME[14+1];
char MIF_CLNTLOCATION[300+1];
char MIF_CLNTACCOUNT[64+1];
char MIF_CLNTCALLID[64+1];
}DBSTRU_TR_T_MAILINFO ;
//4: 邮件地址
typedef struct
{
int ADM_ID;
int MIF_ID;
char ADM_ADDRESS[80+1];
short ADM_MAILROLE;
char ADM_SHOWNAME[50+1];
short ADM_ISCLIENT;
}DBSTRU_TR_T_MAILADDRESS ;
//5:邮件文本
typedef struct
{
int MTX_ID ;
int MIF_ID;
char MTX_CONTENTTYPE[50+1];
char MTX_CHARSET[50+1];
char MTX_TEXTBODY[4000+1];
}DBSTRU_TR_T_MAILTEXT;
//6:特控邮件附件
typedef struct
{
int SMF_ID;
char SMF_ORIGINALFILE[100+1];
int SMF_FILEBEGIN;
int SMF_FILESIZE;
}DBSTRU_TR_T_SPEMAILFILE;
//7:特控邮件信息
typedef struct
{
int SMI_ID;
int SMF_ID;
char SMI_DATE[19+1];
char SMI_CAPTIME[14+1];
char SMI_SUBJECT[100+1];
char SMI_CLIENTIP[15+1];
char SMI_SERVERIP[15+1];
short SMI_PROTOCOL;
char SMI_CLNTLOCATION[300+1];
char SMI_CLNTACCOUNT[64+1];
char SMI_CLNTCALLID[64+1];
short SMI_SPEINFOSTATUS;
}DBSTRU_TR_T_SPEMAILINFO;
//8:特控邮件地址
typedef struct
{
int SMA_ID;
int SMI_ID;
short SMA_MAILROLE;
char SMA_SHOWNAME[50+1];
char SMA_ADDRESS[80+1];
short SMA_ISCLIENT;
}DBSTRU_TR_T_SPEMAILADDRESS;
//9:特控邮件文本
typedef struct
{
int SMT_ID;
int SMI_ID;
char SMT_TEXTBODY[4000+1];
char SMT_CONTENTTYPE[50+1];
char SMT_CHARSET[50+1];
}DBSTRU_TR_T_SPEMAILTEXT;
/*********
HTTP
*********/
//10:提交监控规则
typedef struct
{
int SBR_ID ;
int WMR_ID ;
char SBR_SUBMITFIELD[64+1];
char SBR_APPFIELD[64+1];
char SBR_SUBMITVALUE[64+1];
short SBR_SUBMITWAY;// 0 非cookie 1 表示cookie
}DBSTRU_TR_T_SUBMITRULE;
//11:WEB应用
typedef struct
{
int WAP_ID;
char WAP_WEBAPPNAME[64+1];
char WAP_WEBAPPDESC[300+1];
}DBSTRU_TR_T_WEBAPP;
//12:WEB监控规则
typedef struct
{
int WMR_ID;
int ACT_ID;
int WAP_ID;
char WMR_URLFEATURE[500+1];
short WMR_DATAFLOW;
short WMR_CAPCALL;//0 表示只捕捉设定的字段 1 表示捕捉全部字段
short WMR_CAPCOOKIE;//0 表示不捕捉cookie 1 表示捉cookie
}DBSTRU_TR_T_WEBMONRULE;
//13:敏感网页
typedef struct
{
int SPG_ID;
int ACT_ID;
int WAP_ID;
char SPG_CLIENTIP[15+1];
char SPG_SERVERIP[15+1];
char SPG_DOMAINNAME[64+1];
char SPG_CAPTIME[14+1];
int SPG_DATAFLOW;
char SPG_CLNTLOCATION[300+1];
char SPG_CLNTACCOUNT[64+1];
char SPG_CLNTCALLID[64+1];
char SPG_PAGECONTENT[300+1];
int SPG_RESOURCELENGTH;
int SPG_HASSUBMIT;
int SPG_SPEINFOSTATUS;
}DBSTRU_TR_T_SENPAGE;
//14:活动类型
typedef struct
{
int ACT_ID;
char ACT_TYPENAME[50+1];
char ACT_TYPEDESC[250+1];
}DBSTRU_TR_T_ACTIONTYPE;
//15:提交内容
typedef struct
{
int SBC_ID;
int SPG_ID;
char SBC_FIELDNAME[64+1];
char SBC_FIELDVALUE[4000+1];
}DBSTRU_TR_T_SUBMITCONTENT;
/**********
告警
**********/
//16: 特定对象邮件地址
typedef struct
{
int AMA_ID;
int AMG_ID;
char AMA_EMAILADDRESS[80+1];
}DBSTRU_TR_T_AIMEDMAILADD;
/**********
活动记录
**********/
typedef struct
{
int INA_ID;
int CPR_ID;
int ACT_ID;
char INA_CLIENTIP[15+1];
char INA_SERVERIP[15+1];
char INA_CAPTIME[14+1];
char INA_ABOUTACTION[500+1];
char INA_CLNTLOCATION[300+1];
char INA_CLNTACCOUNT[64+1];
char INA_CLNTCALLID[64+1];
char INA_SRVRLOCATION[300+1];
char INA_SRVRACCOUNT[64+1];
char INA_SRVRCALLID[64+1];
}DBSTRU_TR_T_INETACTION;
typedef struct
{
int AMA_ID;
int AMG_ID;
char AMA_EMAILADDRESS[80+1];
}DBSSTRU_TR_T_AIMEDMAILADD;
typedef struct
{
int ALE_ID ;
int AMG_ID ;
int ALE_ALARMTYPE ;
int ALE_ALARMSTATUS ;
char ALE_ALARMTITLE [64+1];
char ALE_ALARMCONTENT[500+1];
char ALE_ALARMTIME [14+1];
short ALE_INFOTYPE;
int ALE_INFOID;
}DBSTRU_TR_T_ALARMEVENT;
typedef struct
{
int CMS_ID ;
char CMS_STARTIP[15+1];
char CMS_STOPIP[15+1];
char CMS_DOMAINNAME[64+1];
char CMS_DESC[300+1];
}DBSTRU_TR_T_COMMONMONSITE;
typedef struct
{
int AFE_ID;
int AMG_ID;
int AFE_TYPE;
char AFE_BEGINVALUE[150+1];
char AFE_ENDVALUE[150+1];
char AFE_ADDVALUE[150+1];
}DBSTRU_TR_T_AIMEDFEATURE;
typedef struct
{
int GPR_ID;
char GPR_PARANAME[64+1];
char GPR_PARAVALUE[4000+1];
char GPR_PARADESC[300+1];
}DBSTRU_TR_T_GENERALPARA;
typedef struct
{
int OTI_ID;
int AMG_ID;
int OTI_INFOID;
int OTI_INFOTYPE;
int OTI_RPRECISION;
int OTI_READSTATUS;
}DBSTRU_TR_T_OBJECT2INFO;
typedef struct
{
int SKW_ID;
short SKW_TYPE;
char SKW_VALUE[250+1];
}DBSTRU_TR_T_SENKEYWORD;
//加密网页 TR_T_SSLWEBPAGE 只记录https请求
typedef struct
{
int SWP_ID;
//int LS_ID;
char SWP_SERVERIP[15+1];
char SWP_CLIENTIP[15+1];
char SWP_CAPTIME[14+1];
char SWP_CLNTLOCATION[300+1];
char SWP_CLNTACCOUNT[64+1];
char SWP_CLNTCALLID[64+1];
}DBSTRU_TR_T_SSLWEBPAGE;
//加密网站 TR_T_SSLSITE
typedef struct
{
int SLS_ID;
char SLS_DOMAINNAME[64+1];
char SLS_REMARKS[200+1];
}DBSTRU_TR_T_SSLSITE;
//动态IP TR_T_DYNAMICIP
typedef struct
{
int DIP_ID;
int SLS_ID;
char DIP_IP[15+1];
char DIP_STARTTIME[14+1];
char DIP_STOPTIME[14+1];
}DBSTRU_TR_T_DYNAMICIP;
int gi_id;
EXEC SQL END DECLARE SECTION;
int checkSqlCode()
{
if(sqlca.sqlcode==-1405)
sqlca.sqlcode=0;
if(sqlca.sqlcode==-28 || sqlca.sqlcode==-3313 || sqlca.sqlcode==-3314)
{
TLog::toErr("!!!exit by oracle errcode=[%d]!!!",sqlca.sqlcode);
exit(0);
}
return sqlca.sqlcode;
}
bool ifExitSqlCode()
{
return true;
return false;
}
COra::COra(char *cname,char *cpass,char *server)
{
EXEC SQL BEGIN DECLARE SECTION;
char vc_name[32];
char vc_pass[32];
char vc_server[32];
EXEC SQL END DECLARE SECTION;
assert(cname!=NULL && strlen(cname)<32);
assert(cpass!=NULL && strlen(cpass)<32);
strcpy(vc_name,cname);
strcpy(vc_pass,cpass);
strcpy(vc_server,server);
EXEC SQL CONNECT :vc_name IDENTIFIED BY :vc_pass AT:vc_server;
if(sqlca.sqlcode<0)
{
printf("connect oracle(%s %s %s) error (%d)\n",vc_name,vc_pass,vc_server,sqlca.sqlcode);
TLog::toErr("connect oracle(%s %s %s) error (%d)\n",vc_name,vc_pass,vc_server,sqlca.sqlcode);
exit(-1);
}
printf("connected to oracle\n");
}
COra::COra(char *cname,char *cpass)
{
EXEC SQL BEGIN DECLARE SECTION;
char vc_name[32];
char vc_pass[32];
char vc_server[32];
EXEC SQL END DECLARE SECTION;
assert(cname!=NULL && strlen(cname)<32);
assert(cpass!=NULL && strlen(cpass)<32);
strcpy(vc_name,cname);
strcpy(vc_pass,cpass);
EXEC SQL CONNECT :vc_name IDENTIFIED BY :vc_pass ;
if(sqlca.sqlcode<0)
{
printf("connect oracle error (%d)\n",sqlca.sqlcode);
TLog::toErr("connect oracle error (%d)\n",sqlca.sqlcode);
exit(-1);
}
printf("connected to oracle\n");
}
COra::~COra()
{
EXEC SQL COMMIT WORK RELEASE;
}
/*void CSeqEmail::prepare()
{
EXEC SQL BEGIN DECLARE SECTION;
char c_sql[512];
EXEC SQL END DECLARE SECTION;
strcpy(c_sql, "SELECT S_TR_T_MAILADDRESS.NEXTVAL INTO :? FROM DUAL");
EXEC SQL PREPARE getseq_S_TR_T_MAILADDRESS FROM :c_sql;
if(checkSqlCode()!=0)
{
TLog::toErr("prepare [%s] [%d]\n",c_sql,sqlca.sqlcode);
}
strcpy(c_sql, "SELECT S_TR_T_MAILFILE.NEXTVAL INTO :? FROM DUAL");
EXEC SQL PREPARE getseq_S_TR_T_MAILFILE FROM :c_sql;
if(checkSqlCode()!=0)
{
TLog::toErr("prepare [%s] [%d]\n",c_sql,sqlca.sqlcode);
}
strcpy(c_sql, "SELECT S_TR_T_MAILINFO.NEXTVAL INTO :? FROM DUAL");
EXEC SQL PREPARE getseq_S_TR_T_MAILINFO FROM :c_sql;
if(checkSqlCode()!=0)
{
TLog::toErr("prepare [%s] [%d]\n",c_sql,sqlca.sqlcode);
}
strcpy(c_sql, "SELECT S_TR_T_MAILACCOUNT.NEXTVAL INTO :? FROM DUAL");
EXEC SQL PREPARE getseq_S_TR_T_MAILACCOUNT FROM :c_sql;
if(checkSqlCode()!=0)
{
TLog::toErr("prepare [%s] [%d]\n",c_sql,sqlca.sqlcode);
}
strcpy(c_sql, "SELECT S_TR_T_MAILTEXT.NEXTVAL INTO :? FROM DUAL");
EXEC SQL PREPARE getseq_S_TR_T_MAILTEXT FROM :c_sql;
if(checkSqlCode()!=0)
{
TLog::toErr("prepare [%s] [%d]\n",c_sql,sqlca.sqlcode);
}
strcpy(c_sql, "SELECT S_TR_T_SPEMAILFILE.NEXTVAL INTO :? FROM DUAL");
EXEC SQL PREPARE getseq_S_TR_T_SPEMAILFILE FROM :c_sql;
if(checkSqlCode()!=0)
{
TLog::toErr("prepare [%s] [%d]\n",c_sql,sqlca.sqlcode);
}
strcpy(c_sql, "SELECT S_TR_T_SPEMAILINFO.NEXTVAL INTO :? FROM DUAL");
EXEC SQL PREPARE getseq_S_TR_T_SPEMAILINFO FROM :c_sql;
if(checkSqlCode()!=0)
{
TLog::toErr("prepare [%s] [%d]\n",c_sql,sqlca.sqlcode);
}
strcpy(c_sql, "SELECT S_TR_T_SPEMAILADDRESS.NEXTVAL INTO :? FROM DUAL");
EXEC SQL PREPARE getseq_S_TR_T_SPEMAILADDRESS FROM :c_sql;
if(checkSqlCode()!=0)
{
TLog::toErr("prepare [%s] [%d]\n",c_sql,sqlca.sqlcode);
}
strcpy(c_sql, "SELECT S_TR_T_SPEMAILTEXT.NEXTVAL INTO :? FROM DUAL");
EXEC SQL PREPARE getseq_S_TR_T_SPEMAILTEXT FROM :c_sql;
if(checkSqlCode()!=0)
{
TLog::toErr("prepare [%s] [%d]\n",c_sql,sqlca.sqlcode);
}
}*/
CSeqEmail::CSeqEmail()
{
m_iS_TR_T_MAILADDRESS=getS_TR_T_MAILADDRESS();
m_iS_TR_T_MAILFILE=getS_TR_T_MAILFILE();
m_iS_TR_T_MAILINFO=getS_TR_T_MAILINFO();
m_iS_TR_T_MAILACCOUNT=getS_TR_T_MAILACCOUNT();
m_iS_TR_T_MAILTEXT=getS_TR_T_MAILTEXT();
m_iS_TR_T_SPEMAILFILE=getS_TR_T_SPEMAILFILE();
m_iS_TR_T_SPEMAILINFO=getS_TR_T_SPEMAILINFO();
m_iS_TR_T_SPEMAILADDRESS=getS_TR_T_SPEMAILADDRESS();
m_iS_TR_T_SPEMAILTEXT=getS_TR_T_SPEMAILTEXT();
}
CSeqEmail::~CSeqEmail()
{
}
int CSeqEmail::getS_TR_T_MAILADDRESS()
{
EXEC SQL BEGIN DECLARE SECTION;
int i_id;
EXEC SQL END DECLARE SECTION;
printf("getS_TR_T_MAILADDRESS()\n");
EXEC SQL SELECT S_TR_T_MAILADDRESS.NEXTVAL INTO :i_id FROM DUAL ;
printf("getS_TR_T_MAILADDRESS(%d)\n",i_id);
m_iS_TR_T_MAILADDRESS=i_id;
printf("getS_TR_T_MAILADDRESS(%d)\n",m_iS_TR_T_MAILADDRESS);
if(checkSqlCode()!=0)
{
printf("SELECT S_TR_T_MAILADDRESS.NEXTVAL [%d]\n",sqlca.sqlcode);
TLog::toErr("SELECT S_TR_T_MAILADDRESS.NEXTVAL [%d]\n",sqlca.sqlcode);
}
return (m_iS_TR_T_MAILADDRESS);
}
int CSeqEmail::getS_TR_T_MAILFILE()
{
EXEC SQL BEGIN DECLARE SECTION;
int i_id;
EXEC SQL END DECLARE SECTION;
EXEC SQL SELECT S_TR_T_MAILFILE.NEXTVAL INTO :i_id FROM DUAL ;
m_iS_TR_T_MAILFILE=i_id;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -