网络流量计费程序(4)

来源:互联网 发布:数据库字段注释 编辑:程序博客网 时间:2024/04/30 20:16
bool isLegal(struct message* pMessage){char* urlPoint = NULL;size_t urlLength = 0;int year = 0, month = 0, day = 0, hour = 0, minute = 0, second = 0;__int64 sum = 0;if(pMessage->serverID<1 || pMessage->serverID>100)return false;if(pMessage->userID<1 || pMessage->userID>10000)return false;if(*(pMessage->timeStamp) == NULL) {return false;} else {sscanf_s(pMessage->timeStamp, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);sum = year*10000000000+month*100000000+day*1000000+hour*10000+minute*100+second;if(sum<TIME_LOW_LEVEL || sum>TIME_HIGH_LEVEL)return false;}if(pMessage->type == state) {if(pMessage->mEvent == 0)return false;} else if (pMessage->type == text) {if(*(pMessage->url) == NULL) {return false;} else {urlPoint = pMessage->url;urlLength = strlen(pMessage->url);if(urlPoint[0]!='w' || urlPoint[1]!='w' ||urlPoint[2]!='w' || urlPoint[3]!='.')return false;/*else {urlPoint = urlPoint + urlLength - strlen(".com.cn");if (urlPoint[0]!='.' || urlPoint[1]!='c' ||urlPoint[2]!='o' || urlPoint[3]!='m'||urlPoint[4]!='.' ||urlPoint[5]!='c' || urlPoint[6]!='n') {urlPoint = pMessage->url;urlPoint = urlPoint + urlLength - strlen(".com");if(urlPoint[0]!='.' || urlPoint[1]!='c' ||urlPoint[2]!='o' || urlPoint[3]!='m')return false;}}*/}if(pMessage->mMethod == 0)return false;if(pMessage->flow <= 0)return false;} else return false;return true;}
struct message* parseLine(char* line){char* pToken = NULL;char* pNext = NULL;struct message* pMessage = NULL;char keyword[128] = {0};pMessage = (struct message*) malloc(sizeof(struct message));if(pMessage == NULL)return NULL;memset(pMessage, 0, sizeof(struct message));pToken = strtok_s(line, ":", &pNext);if(0 == _stricmp(pToken, "s")) {pMessage->type = state;} else if (0 == _stricmp(pToken, "t")) {pMessage->type = text;} else {goto parse_error;}while((pToken=strtok_s( NULL, ",", &pNext)) != NULL) {while(pToken[0] == ' ') {pToken++;}sscanf_s(pToken, "%[^=]", keyword, 128) ;keyword[sizeof(keyword)-1] = '\0';pToken = pToken+strlen(keyword)+1;if(pToken!=NULL)checkKeyword(pMessage, keyword, pToken);memset(keyword, 0, sizeof(keyword));}if(!isLegal(pMessage))goto parse_error;return pMessage;parse_error:free(pMessage);return NULL;}
原创粉丝点击