📄 apphttp.cpp
字号:
}void CAppHttp::registerPage(){ STRU_TR_T_SENPAGE recpage; struct in_addr inaddr; if(m_pappweb->matchedUrl()) { recpage.ACT_ID=m_pappweb->getACT_ID(); recpage.WAP_ID=m_pappweb->getWAP_ID(); } else { recpage.ACT_ID=0; recpage.WAP_ID=0; } recpage.SPG_ID=m_pseqweb->getS_TR_T_SENPAGE(); if(strlen(m_szdir)<sizeof(recpage.SPG_PAGEPOSITION)) strcpy(recpage.SPG_PAGEPOSITION,m_szdir); else { memcpy(recpage.SPG_PAGEPOSITION,m_szdir,sizeof(recpage.SPG_PAGEPOSITION)-1); recpage.SPG_PAGEPOSITION[sizeof(recpage.SPG_PAGEPOSITION)-1]=0; } if(strlen(m_szurl)<sizeof(recpage.SPG_DOMAINNAME)) strcpy(recpage.SPG_DOMAINNAME,m_szurl); else { memcpy(recpage.SPG_DOMAINNAME,m_szurl,sizeof(recpage.SPG_DOMAINNAME)-1); recpage.SPG_DOMAINNAME[sizeof(recpage.SPG_DOMAINNAME)-1]=0; } inaddr.s_addr = m_theHead.src_ip; sprintf(recpage.SPG_CLIENTIP,"%s",inet_ntoa(inaddr)); inaddr.s_addr = m_theHead.dst_ip; sprintf(recpage.SPG_SERVERIP,"%s",inet_ntoa(inaddr)); strcpy(recpage.SPG_CAPTIME,TUTime::YYYYMMDDHHMMSS()); recpage.SPG_DATAFLOW=m_idataflow; /* if(strcasecmp(m_szmethod,"POST")==0) recpage.SPG_DATAFLOW=0; else recpage.SPG_DATAFLOW=1; */ recpage.SPG_RESOURCELENGTH=m_iretDataLen; strcpy(recpage.SPG_CLNTCALLID,"-"); m_pInfo->getAccount(m_theHead.src_ip, recpage.SPG_CLNTACCOUNT,recpage.SPG_CLNTCALLID); //TLog::toErr("[%s] act=[%s][%s]\n",recpage.SPG_CLIENTIP, recpage.SPG_CLNTACCOUNT,recpage.SPG_CLNTCALLID); m_pInfo->getLocation(m_theHead.src_ip, recpage.SPG_CLNTLOCATION); recpage.SPG_HASSUBMIT=0; m_ptblweb->insRecord(&recpage);}void CAppHttp::registerspPage(char *szdir,int isubmit){ STRU_TR_T_SPESENPAGE recpage; struct in_addr inaddr; recpage.SSP_ID=m_pspseqweb->getS_TR_T_SPESENPAGE(); printf("sspid=%d\n",recpage.SSP_ID); if(strlen(szdir)<sizeof(recpage.SSP_PAGEPOSITION)) strcpy(recpage.SSP_PAGEPOSITION,szdir); else { memcpy(recpage.SSP_PAGEPOSITION,szdir,sizeof(recpage.SSP_PAGEPOSITION)-1); recpage.SSP_PAGEPOSITION[sizeof(recpage.SSP_PAGEPOSITION)-1]=0; } if(strlen(m_szurl)<sizeof(recpage.SSP_DOMAINNAME)) strcpy(recpage.SSP_DOMAINNAME,m_szurl); else { memcpy(recpage.SSP_DOMAINNAME,m_szurl,sizeof(recpage.SSP_DOMAINNAME)-1); recpage.SSP_DOMAINNAME[sizeof(recpage.SSP_DOMAINNAME)-1]=0; } inaddr.s_addr = m_theHead.src_ip; sprintf(recpage.SSP_CLIENTIP,"%s",inet_ntoa(inaddr)); inaddr.s_addr = m_theHead.dst_ip; sprintf(recpage.SSP_SERVERIP,"%s",inet_ntoa(inaddr)); strcpy(recpage.SSP_CAPTIME,TUTime::YYYYMMDDHHMMSS()); recpage.SSP_DATAFLOW=m_idataflow; /* if(strcasecmp(m_szmethod,"POST")==0) recpage.SPG_DATAFLOW=0; else recpage.SPG_DATAFLOW=1; */ recpage.SSP_RESOURCELENGTH=m_iretDataLen; strcpy(recpage.SSP_CLNTCALLID,"-"); m_pInfo->getAccount(m_theHead.src_ip, recpage.SSP_CLNTACCOUNT,recpage.SSP_CLNTCALLID); //TLog::toErr("[%s] act=[%s][%s]\n",recpage.SPG_CLIENTIP, recpage.SPG_CLNTACCOUNT,recpage.SPG_CLNTCALLID); m_pInfo->getLocation(m_theHead.src_ip, recpage.SSP_CLNTLOCATION); recpage.SSP_HASSUBMIT=isubmit; m_psptblweb->insRecord(&recpage);}void CAppHttp::initDir(){ ST_AIMOBJ stObj[32]; #ifdef SIMULATE_SPE sprintf(m_szinidir,"/html/%05d/",102); #else int iobjs=m_prdsip->isInWatched(m_theHead.src_ip,stObj); if(iobjs>=1) sprintf(m_szinidir,"/html/%05d/",stObj[0].amgid); else strcpy(m_szinidir,"html/default/"); #endif}int CAppHttp::registerspWatchedObj(){ #ifdef SIMULATE_SPE STRU_TR_T_OBJECT2INFO rec; rec.OTI_ID=m_pSeqSpWarm->getS_TR_T_OBJECT2INFO(); rec.AMG_ID=102; rec.OTI_INFOID=m_pspseqweb->getfkS_TR_T_SPESENPAGE(); rec.OTI_INFOTYPE=2; rec.OTI_RPRECISION=0; rec.OTI_READSTATUS=1; m_pTblSpWarm->insRecord(&rec); return 102; #else ST_AIMOBJ stObj[32]; int iobjs=m_prdsip->isInWatched(m_theHead.src_ip,stObj); for(int i=0;i<iobjs;i++) { STRU_TR_T_OBJECT2INFO rec; rec.OTI_ID=m_pSeqSpWarm->getS_TR_T_OBJECT2INFO(); rec.AMG_ID=stObj[i].amgid; rec.OTI_INFOID=m_pspseqweb->getfkS_TR_T_SPESENPAGE(); rec.OTI_INFOTYPE=2; rec.OTI_RPRECISION=stObj[i].precision; rec.OTI_READSTATUS=1; m_pTblSpWarm->insRecord(&rec); } return stObj[0].amgid; #endif} int CAppHttp::registerWatchedObj(){ #ifdef SIMULATE_SPE STRU_TR_T_OBJECT2INFO rec; rec.OTI_ID=m_pSeqSpWarm->getS_TR_T_OBJECT2INFO(); rec.AMG_ID=102; rec.OTI_INFOID=m_pseqweb->getfkS_TR_T_SENPAGE(); rec.OTI_INFOTYPE=2; rec.OTI_RPRECISION=0; rec.OTI_READSTATUS=1; m_pTblSpWarm->insRecord(&rec); return 102; #else ST_AIMOBJ stObj[32]; int iobjs=m_prdsip->isInWatched(m_theHead.src_ip,stObj); for(int i=0;i<iobjs;i++) { STRU_TR_T_OBJECT2INFO rec; rec.OTI_ID=m_pSeqSpWarm->getS_TR_T_OBJECT2INFO(); rec.AMG_ID=stObj[i].amgid; rec.OTI_INFOID=m_pseqweb->getfkS_TR_T_SENPAGE(); rec.OTI_INFOTYPE=2; rec.OTI_RPRECISION=stObj[i].precision; rec.OTI_READSTATUS=1; m_pTblSpWarm->insRecord(&rec); } return stObj[0].amgid;; #endif} void CAppHttp::registerContent(){ bool m_bhascontent=false; STRU_TR_T_SUBMITCONTENT rec; #define len_fname sizeof(rec.SBC_FIELDNAME) #define len_val sizeof(rec.SBC_FIELDVALUE) if(!m_pappweb->matchedUrl()) return; if(m_pappweb->isCAPCOOKIE()) { char *pcookie=m_pinqhv->getValue("Cookie"); #ifdef DEBUG printf("cookie=[%s]\n",pcookie); #endif if(pcookie!=NULL) { if(m_pappweb->initSubmitContent(pcookie, ";",THIS_IS_COOKIE)) { while(m_pappweb->getNextContent()) { if(m_pappweb->matchWP(rec.SBC_FIELDNAME,len_fname,rec.SBC_FIELDVALUE, len_val)) { rec.SBC_ID=m_pseqweb->getS_TR_T_SUBMITCONTENT(); rec.SPG_ID=m_pseqweb->getfkS_TR_T_SENPAGE(); m_ptblweb->insRecord(&rec); m_bhascontent=true; } } } } } char *pszdata=NULL; if(strcasecmp(m_szmethod,"POST")==0 ) pszdata=m_pszpostdata; else if (strcasecmp(m_szmethod,"GET")==0 && strlen(m_szpostpara)>10) pszdata=m_szpostpara; if(pszdata!=NULL) { printf("prof post data[%s]\n",pszdata); //TLog::toErr("prof post data[%s]\n",m_pszpostdata); if(m_pappweb->initSubmitContent(pszdata, "&",NOT_COOKIE)) { while(m_pappweb->getNextContent()) { if(m_pappweb->matchWP(rec.SBC_FIELDNAME,len_fname,rec.SBC_FIELDVALUE, len_val)) { rec.SBC_ID=m_pseqweb->getS_TR_T_SUBMITCONTENT(); rec.SPG_ID=m_pseqweb->getfkS_TR_T_SENPAGE(); m_ptblweb->insRecord(&rec); m_bhascontent=true; } else if(m_pappweb->isCAPALL()) { m_pappweb->setWP(rec.SBC_FIELDNAME,len_fname,rec.SBC_FIELDVALUE, len_val); rec.SBC_ID=m_pseqweb->getS_TR_T_SUBMITCONTENT(); rec.SPG_ID=m_pseqweb->getfkS_TR_T_SENPAGE(); m_ptblweb->insRecord(&rec); m_bhascontent=true; } } } } if(m_bhascontent) m_ptblweb->updateSUBMIT(m_pseqweb->getfkS_TR_T_SENPAGE()); } void CAppHttp::registerspContent(){ bool m_bhascontent=false; //STRU_TR_T_SUBMITCONTENT rec; STRU_TR_T_SPESUBMITCONTENT rec; if(!m_pappweb->matchedUrl()) return; if(m_pappweb->isCAPCOOKIE()) { char *pcookie=m_pinqhv->getValue("Cookie"); #ifdef DEBUG printf("cookie=[%s]\n",pcookie); #endif if(pcookie!=NULL) { if(m_pappweb->initSubmitContent(pcookie, ";",THIS_IS_COOKIE)) { while(m_pappweb->getNextContent()) { if(m_pappweb->matchWP(rec.SSB_FIELDNAME,sizeof(rec.SSB_FIELDNAME),rec.SSB_FIELDVALUE, sizeof(rec.SSB_FIELDVALUE))) { rec.SSB_ID=m_pspseqweb->getS_TR_T_SPESUBMITCONTENT(); rec.SSP_ID=m_pspseqweb->getfkS_TR_T_SPESENPAGE(); m_psptblweb->insRecord(&rec); m_bhascontent=true; } } } } } char *pszdata=NULL; if(strcasecmp(m_szmethod,"POST")==0 ) pszdata=m_pszpostdata; else if (strcasecmp(m_szmethod,"GET")==0 && strlen(m_szpostpara)>10) pszdata=m_szpostpara; if(pszdata!=NULL) { printf("prof post data[%s]\n",pszdata); //TLog::toErr("prof post data[%s]\n",m_pszpostdata); if(m_pappweb->initSubmitContent(pszdata, "&",NOT_COOKIE)) { while(m_pappweb->getNextContent()) { if(m_pappweb->matchWP(rec.SSB_FIELDNAME,sizeof(rec.SSB_FIELDNAME),rec.SSB_FIELDVALUE, sizeof(rec.SSB_FIELDVALUE))) { rec.SSB_ID=m_pspseqweb->getS_TR_T_SPESUBMITCONTENT(); rec.SSP_ID=m_pspseqweb->getfkS_TR_T_SPESENPAGE(); m_psptblweb->insRecord(&rec); m_bhascontent=true; } else if(m_pappweb->isCAPALL()) { m_pappweb->setWP(rec.SSB_FIELDNAME,sizeof(rec.SSB_FIELDNAME),rec.SSB_FIELDVALUE, sizeof(rec.SSB_FIELDVALUE)); rec.SSB_ID=m_pspseqweb->getS_TR_T_SPESUBMITCONTENT(); rec.SSP_ID=m_pspseqweb->getfkS_TR_T_SPESENPAGE(); m_psptblweb->insRecord(&rec); m_bhascontent=true; } } } } if(m_bhascontent) m_psptblweb->updateSPESUBMIT(m_pspseqweb->getfkS_TR_T_SPESENPAGE()); }bool CAppHttp::setinqHead(){ char *p; int len; char szbuf[1024]; memset(szbuf,0,sizeof(szbuf)); memcpy(szbuf,m_theinqStream->getCurPos(),80); printf("inq=[%s]\n",szbuf); memset(szbuf,0,sizeof(szbuf)); len=m_theinqStream->getLine(szbuf); if(len<=0) return false; if((p=strtok(szbuf,"? "))==NULL) { return false; } if(strlen(p)>=16) return false; strcpy(m_szmethod,p); if(strcasecmp(m_szmethod,"GET")!=0 && strcasecmp(m_szmethod,"POST")!=0) return false; if((p=strtok(NULL,"? "))==NULL) { return false; } if(strlen(p)>=256) { printf("error url[%s]\n",p); TLog::toErr("url=[%s]",p); return false; } strcpy(m_szurl,p); if(m_szurl[strlen(m_szurl)-1]=='/') { strcat(m_szurl,"index.html"); } *m_szpostpara=0; if(strcasecmp(m_szmethod,"get")==0) { if((p=strtok(NULL,"? "))!=NULL) strcpy(m_szpostpara,p); } //printf("get url[%s]\n",m_szurl); #ifdef DEBUG printf("set inq hv\n"); #endif m_pinqhv->clear(); m_pinqhv->setValues(m_theinqStream); /* if(strcasecmp(m_szmethod,"post")==0) {//this is post method //m_pinqhv-> } else */ {//this is get method strcpy(m_szdir,m_szinidir); char *p=m_pinqhv->getValue("Host"); if(p!=NULL) { strcat(m_szdir,p); strcat(m_szdir,"/"); strcpy(m_szhost,p); char *pp=m_szurl; while(pp) { if(*pp=='/') pp++; else break; } strcat(m_szdir,pp); strcpy(szbuf,m_szhost); strcat(szbuf,m_szurl); strcpy(m_szurl,szbuf); } else { char *pp=m_szurl; while(pp) { if(*pp=='/') pp++; else break; } strcat(m_szdir,pp); } printf("m_szdir=[%s]\n",m_szdir); } return true;}bool CAppHttp::profoneInqData(){ if(strcasecmp(m_szmethod,"post")==0) {//this is post method char *p=m_pinqhv->getValue("Content-Length"); if(p==NULL) { printf("post method losing Content-Length\n"); return false; } int len=atoi(p); p=m_pinqhv->getValue("Content-Type"); if(p!=NULL) { printf("[%s]\n",p); int ii=strncmp(p,sztype_multidata,strlen(sztype_multidata)); if(ii==0) { profmultiform(); } //else{ // return false; } memset(m_pszpostdata,0,sizeof(m_pszpostdata)); memcpy(m_pszpostdata,m_theinqStream->getCurPos(),len); m_ilenpostdata=len; m_theinqStream->goaHead(len); } return true; }bool CAppHttp::isavailfilename(char *filename){ char *pval=m_szline; char aword[1024]; m_theinqStream->getLine( m_szline); if(Cval::getNextAtom(pval,aword)) { if(strcasecmp(aword,"Content-Disposition")) return false; else if(Cval::getNextAtom(pval,aword)) { Cval::getNextAtom(pval,aword); if(strcasecmp(aword,"form-data")) return false; Cval::getNextAtom(pval,aword); } else return false; } else return false; if(Cval::getNextAtom(pval,aword)) { if(strcasecmp(aword,"name")) return false; else if(Cval::getNextAtom(pval,aword)) { Cval::getNextAtom(pval,aword); } else return false; if (Cval::getNextAtom(pval,aword)) {// the word is ; } else return false; } else return false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -