int third_arg_or_xor_and(t_all *all) { if (check_register(all->taab[2], all) == 1) return (1); all->flag = -1; return (0); }
void show_motd(int connfd){ user* u = check_register(connfd); if(u){ char MOTD[MAX_MSG_LEN]; int length = 0; length += snprintf(MOTD+length, MAX_MSG_LEN-length,":IRC_SERVER 375 %s :- Hello! Message of the day - \n",u->nick_name); length += snprintf(MOTD+length, MAX_MSG_LEN-length,":IRC_SERVER 372 %s :- Welcome to Use IRC Server!\n",u->nick_name); length += snprintf(MOTD+length, MAX_MSG_LEN-length,":IRC_SERVER 376 %s :End of /MOTD command\n",u->nick_name); send_msg_back(connfd,MOTD); send_command_to_daemon("ADDUSER",u->nick_name); } }
int first_arg_or_xor_and(t_all *all) { if (all->taab[0][0] == 'r') { if (check_register(all->taab[0], all) == 1) if (second_arg_or_xor_and(all) == 1) return (1); all->flag = -1; return (0); } else if (if_dir_or_ind_value(all, 0, 0) == 1) if (second_arg_or_xor_and(all) == 1) return (1); all->flag = -1; return (0); }
int second_arg_or_xor_and(t_all *all) { if (all->taab[1][0] == 'r') { if (check_register(all->taab[1], all) == 1) { if (third_arg_or_xor_and(all) == 1) return (1); } all->flag = -1; return (0); } else if (if_dir_or_ind_value(all, 1, 0) == 1) { if (third_arg_or_xor_and(all) == 1) return (1); } all->flag = -1; return (0); }
int allow_register_2(struct sip_msg* msg, char* allow_file, char* deny_file) { return check_register(msg, (int)(long)allow_file); }
int allow_register_1(struct sip_msg* msg, char* basename, char* s) { return check_register(msg, (int)(long)basename); }
static void user_login() { char ans[4], i; char genbuf[200]; struct tm *ptime, *tmp; time_t now; int a; /*** Heat:廣告詞 char *ADV[17] = { "記得唷!! 5/12在台大二活地下室見~~~", "你知道Ptt之夜是什麼嗎? 5/12號就要上演耶 快去問吧!", "5/12 Ptt之夜即將引爆 能不去嗎? 在台大二活地下室咩", "不來就落伍了 啥? 就Ptt之夜啊 很棒的晚會唷 時間:5/12", "差點忘了提醒你 5/12我們有約 就台大二活地下室咩!!", "Ptt是啥 想知嗎? 5/12在台大二活地下室告訴你唷", "來來來....5/12快到台大二活地下室去拿獎品吧~~", "去去去...到台大二活地下室去 就5/12麻 有粉多獎品耶", "喂喂喂 怎還楞在這!!快呼朋引伴大鬧ptt", "Ptt最佳豬腳 換你幹幹看 5/12來吧....*^_^*", "幹什麼幹什麼?? 你怎麼不曉得啥是Ptt之夜..老土唷", "累了嗎? 讓我們來為你來一段精采表演吧.. 5/12 Ptt之夜", "世紀末最屁力的晚會 就在台大二活地下室 5/12不見不散 gogo", "到底誰比較帥(美) 來比比吧 5/12Ptt之夜 一較高下", "台大二活地下室 5/12 聽說會有一場很棒的晚會唷 Ptt之夜", "台大二活地下室 5/12 你能不來嗎?粉多網友等著你耶", "5/12 台大二活地下室 是各約網友見面的好地方呢", }; char *ADV[] = { "7/17 @LIVE 亂彈, 何欣穗 的 入場卷要送給 ptt 的愛用者!", "欲知詳情請看 PttAct 板!!", }; ***/ log_usies("ENTER", getenv("RFC931") /* fromhost */ ); setproctitle("%s: %s", margs, cuser.userid); /* resolve all cache */ resolve_garbage(); /* get ptt cache */ resolve_fcache(); resolve_boards(); /* 初始化 uinfo、flag、mode */ setup_utmp(LOGIN); mysrand(); /* 初始化: random number 增加user跟時間的差異 */ currmode = MODE_STARTED; enter_uflag = cuser.uflag; /* get local time */ time(&now); ptime = localtime(&now); tmp = localtime(&cuser.lastlogin); if((a = utmpshm->number) > fcache->max_user) { sem_init(FROMSEM_KEY, &fcache_semid); sem_lock(SEM_ENTER, fcache_semid); fcache->max_user = a; fcache->max_time = now; sem_lock(SEM_LEAVE, fcache_semid); } #ifdef INITIAL_SETUP if(!getbnum(DEFAULT_BOARD)) { strcpy(currboard, "尚未選定"); } else #endif { brc_initial(DEFAULT_BOARD); set_board(); } /* 畫面處理開始 */ if(!(HAS_PERM(PERM_SYSOP) && HAS_PERM(PERM_DENYPOST))) do_aloha("<<上站通知>> -- 我來啦!"); if(ptime->tm_mday == cuser.day && ptime->tm_mon + 1 == cuser.month) { more("etc/Welcome_birth", NA); currutmp->birth = 1; } else { more("etc/Welcome_login", NA); // pressanykey(); // more("etc/CSIE_Week", NA); currutmp->birth = 0; } if(cuser.userlevel) { /* not guest */ move(t_lines - 4, 0); prints(" 歡迎您第 \033[1;33m%d\033[0;37m 度拜訪本站," "上次您是從 \033[1;33m%s\033[0;37m 連往本站,\n" " 我記得那天是 \033[1;33m%s\033[0;37m。\n", ++cuser.numlogins, cuser.lasthost, Cdate(&cuser.lastlogin)); currutmp->mind=rand()%8; /* 初始心情 */ pressanykey(); if(currutmp->birth && tmp->tm_mday != ptime->tm_mday) { more("etc/birth.post", YEA); brc_initial("WhoAmI"); set_board(); do_post(); } setuserfile(genbuf, str_badlogin); if(more(genbuf, NA) != -1) { getdata(b_lines - 1, 0, "您要刪除以上錯誤嘗試的記錄嗎(Y/N)?[Y]", ans, 3, LCECHO); if(*ans != 'n') unlink(genbuf); } check_register(); strncpy(cuser.lasthost, fromhost, 16); cuser.lasthost[15] = '\0'; restore_backup(); } else if(!strcmp(cuser.userid, STR_GUEST)) { char *nick[13] = { "椰子", "貝殼", "內衣", "寶特瓶", "翻車魚", "樹葉", "浮萍", "鞋子", "潛水艇", "魔王", "鐵罐", "考卷", "大美女"}; char *name[13] = { "大王椰子", "鸚鵡螺", "比基尼", "可口可樂", "仰泳的魚", "憶", "高岡屋", "AIR Jordon", "紅色十月號", "批踢踢", "SASAYA椰奶", "鴨蛋", "布魯克鱈魚香絲"}; char *addr[13] = { "天堂樂園", "大海", "綠島小夜曲", "美國", "綠色珊瑚礁", "遠方", "原本海", "NIKE", "蘇聯", "男八618室", "愛之味", "天上", "藍色珊瑚礁"}; i = login_start_time % 13; sprintf(cuser.username, "海邊漂來的%s", nick[(int)i]); sprintf(currutmp->username, cuser.username); sprintf(cuser.realname, name[(int)i]); sprintf(currutmp->realname, cuser.realname); sprintf(cuser.address, addr[(int)i]); cuser.sex = i % 8; currutmp->pager = 2; pressanykey(); } else pressanykey(); if(!PERM_HIDE(currutmp)) cuser.lastlogin = login_start_time; reload_money(); passwd_update(usernum, &cuser); for(i = 0; i < NUMVIEWFILE; i++) if((cuser.loginview >> i) & 1) more(loginview_file[(int)i][0], YEA); }
static void user_login() { char genbuf [200]; struct tm *ptime, *tmp; time_t now = time(0); int a; extern struct FROMCACHE *fcache; extern int fcache_semid; log_usies("ENTER", fromhost); setproctitle("%s: %s", cuser.userid, fromhost); /* ------------------------ */ /* 初始化 uinfo、flag、mode */ /* ------------------------ */ setup_utmp(LOGIN); currmode = MODE_STARTED; enter_uflag = cuser.uflag; /* get local time */ tmp = localtime(&cuser.lastlogin); update_data(); /* wildcat: update user data */ /* Ptt check 同時上線人數 */ resolve_fcache(); resolve_utmp(); if ((a = utmpshm->number) > fcache->max_user) { sem_init(FROMSEM_KEY, &fcache_semid); sem_lock(SEM_ENTER, fcache_semid); fcache->max_user = a; fcache->max_time = now; sem_lock(SEM_LEAVE, fcache_semid); } #ifdef INITIAL_SETUP if (getbnum(DEFAULT_BOARD) == 0) { strcpy(currboard, "尚未選定"); } else #endif { brc_initial(DEFAULT_BOARD); set_board(); } /* ------------ */ /* 畫面處理開始 */ /* ------------ */ if (!(HAS_PERM(PERM_SYSOP) && HAS_PERM(PERM_DENYPOST))) { char buf [256]; time_t now; time(&now); sprintf(buf, "<<上站通知>> -- 我來囉! - %s", Etime(&now)); do_aloha(buf); } time(&now); ptime = localtime(&now); #ifdef CAMERA film_out(FILM_LOGIN, 0); #else more("etc/Welcome_login", NA); #endif #if 0 /* wildcat : 搬家通知用 */ if (belong(BBSHOME "/etc/oldip", fromhost)) { more(BBSHOME "/etc/removal"); abort_bbs(); } #endif if ((cuser.day == ptime->tm_mday) && (cuser.month == (ptime->tm_mon + 1))) currutmp->birth = 1; else currutmp->birth = 0; if (cuser.userlevel) { /* not guest */ move(t_lines - 3, 0); prints(" 歡迎您第 [1;33m%d[0;37m 度拜訪本站,\ 上次您是從 [1;33m%s[0;37m 連往本站,\n\ 我記得那天是 [1;33m%s[0;37m。\n", ++cuser.numlogins, cuser.lasthost, Etime(&cuser.lastlogin)); pressanykey(NULL); /* Ptt */ if (currutmp->birth == 1) { #ifdef CAMERA film_out(FILM_WEL_BIRTH, 0); #else more("etc/Welcome_birth", YEA); #endif brc_initial("Greeting"); set_board(); do_post(); } sethomefile(genbuf, cuser.userid, str_badlogin); if (more(genbuf, NA) != -1) { if (getans2(b_lines, 0, "您要刪除以上錯誤嘗試的記錄嗎?", 0, 2, 'y') != 'n') unlink(genbuf); } check_register(); strncpy(cuser.lasthost, fromhost, 24); substitute_record(fn_passwd, &cuser, sizeof(cuser), usernum); cuser.lasthost[23] = '\0'; restore_backup(); }
void request_check(int index, char* buf){ char tokens[MAX_MSG_TOKENS][MAX_MSG_LEN+1]; int arg_num = tokenize(buf,tokens); int type,connfd; connfd = p.clientfd[index]; if (!strcmp(tokens[0],"USER")) type = USER_CMD; else if(!strcmp(tokens[0],"NICK")) type = NICK_CMD; else if(!strcmp(tokens[0],"JOIN")) type = JOIN_CMD; else if(!strcmp(tokens[0],"QUIT")) type = QUIT_CMD; else if(!strcmp(tokens[0],"PART")) type = PART_CMD; else if(!strcmp(tokens[0],"LIST")) type = LIST_CMD; else if(!strcmp(tokens[0],"WHO")) type = WHO_CMD; else if(!strcmp(tokens[0],"PRIVMSG")) type = PRIVMSG_CMD; else type = UNKONWN_CMD; //DEBUG int i; printf(" # CMD:%s\t ARG_NUM:%d\t",tokens[0],arg_num); for(i=0;i<4;i++) printf(" ARG%d:%s\t",i,tokens[i+1]); printf("\n"); if(type == UNKONWN_CMD) unknown_command(connfd,tokens[0]); else if(arg_num < ARG_NUM[type]){ char msg[MAX_MSG_LEN]; if(type == NICK_CMD) /* NICK ERRRO TYPE: ERR_NOERR_NONICKNAMEGIVEN */ snprintf(msg,MAX_MSG_LEN,":No nickname given\n"); else if(type == PRIVMSG_CMD){ /* PRIVMSG ERRRO TYPE: ERR_NORECIPIENT */ if(!arg_num) snprintf(msg,MAX_MSG_LEN,":No recipient given PRIVMSG\n"); /* PRIVMSG ERRRO TYPE: ERR_NOTEXTTOSEND */ else snprintf(msg,MAX_MSG_LEN,":No text to send\n"); }else snprintf(msg,MAX_MSG_LEN,"%s:Not enough parameters\n", tokens[0]); send_msg_back(connfd,msg); } else switch(type){ case QUIT_CMD: quit_command(index); break; case USER_CMD: user_command(connfd,tokens[1],tokens[4]); break; case NICK_CMD: nick_command(connfd,tokens[1]); break; default: if(check_register(connfd)){ switch(type){ case JOIN_CMD: join_command(connfd,tokens[1]); break; case PART_CMD: part_command(connfd,tokens[1],1); break; case LIST_CMD: list_command(connfd); break; case WHO_CMD: who_command(connfd,tokens[1]); break; case PRIVMSG_CMD: privmsg_command(connfd,tokens[1],tokens[2]); } }else send_msg_back(connfd,":You have not registered\n"); } }
/** * CDR LOG FILE parsing and write to file.. **/ int parse_write_proc(char *read_file, FILE *write_fd, int file_format, int min_flag, char *search_min, int ip_flag, char *ip, int port1_flag, int port1, int port2_flag, int port2) { int i; int year_int, time_int; long long temp_long; char temp_file[256]; char year_data[4], time_data[10]; char *date_str; char acct_sess_id[16]; char buffer[2048]; char src_ip[16], dest_ip[16]; char create_time[64], end_time[64]; time_t temp_cvt_crt_time, temp_cvt_last_time; time_t cvt_crt_time, cvt_last_time; FILE *fd; struct tm *crt_time, *last_time; st_CDRSessLog cdrlog_info; st_CDRDumpInfo cdrlog_head; int reg_cnt; /** initialize variables **/ reg_cnt = 0; memset(&cdrlog_head, 0x00, sizeof(st_CDRDumpInfo)); memset(temp_file, 0x00, sizeof(temp_file)); memset(year_data, 0x00, sizeof(year_data)); memset(time_data, 0x00, sizeof(time_data)); if (file_format == COMPRESS_FILE) memcpy(temp_file, read_file, (strlen(read_file)-3)); else memcpy(temp_file, read_file, strlen(read_file)); date_str = strstr(temp_file, "2"); //date_str = strstr(date_str, "2"); /** get year info **/ for(i=0; i<4; i++) { year_data[i] = *(date_str+i); } /** get date string **/ for(i=0; i<10; i++) { time_data[i] = *(date_str+23+i); } year_int = atoi(year_data); time_int = atoi(time_data); fd = fopen(temp_file, "r"); if (!fd) { printf("FILE OPEN ERROR : %s [FILE : %s]\n", strerror(errno), temp_file); return (-1); } printf("FILE OPEN SUCCESS : %s\n", temp_file); /** read file head info **/ if ((fread(&cdrlog_head, sizeof(st_CDRDumpInfo), 1, fd)) <= 0) { fprintf(stderr, "FILE READ ERROR : %s [FILE : %s]\n", strerror(errno), temp_file); } /** print head info **/ print_flag = 0; /** read CDR Sess Log data **/ while(1) { memset(&cdrlog_info, 0x00, sizeof(st_CDRSessLog)); if ((fread(&cdrlog_info, sizeof(st_CDRSessLog), 1, fd)) <= 0) { //fprintf(stderr, "END READ FILE : %s\n", strerror(errno)); break; } print_flag++; memset(acct_sess_id, 0x00, sizeof(acct_sess_id)); CVT_INT64_CP(&temp_long, cdrlog_info.llAcctSessID); //sprintf(acct_sess_id, "%lld", temp_long); conv_id(temp_long, acct_sess_id); /** print sample **/ /* if (print_flag == 1) { printf("############ PRINT CDR LOG DATA ###############\n\n"); printf("IMSI : %s\n", cdrlog_info.szIMSI); printf("Acct Session ID : %s\n", acct_sess_id); printf("Source-IP-Address : %s\n", cvt_ipaddr(CVT_INT_CP(cdrlog_info.uiSrcIP))); printf("Service-Option : %d\n", CVT_INT_CP(cdrlog_info.dSvcOpt)); printf("Create-Time : %d\n", CVT_INT_CP(cdrlog_info.tCreateTime)); printf("Last-Time : %d\n", CVT_INT_CP(cdrlog_info.tLastTime)); printf("Source-Port : %d\n", cdrlog_info.usSecPort); printf("Destination-IP-Address : %s\n", cvt_ipaddr(CVT_INT_CP(cdrlog_info.uiDestIP))); printf("Destination-Port : %d\n", cdrlog_info.usDestPort); printf("Service-Type : %d\n", CVT_INT_CP(cdrlog_info.dSvcType)); printf("IP-Up-Frame : %d\n", CVT_INT_CP(cdrlog_info.uiUPIPFrames)); printf("IP-Down-Frame : %d\n", CVT_INT_CP(cdrlog_info.uiDownIPFrames)); printf("IP-Up-Byte : %d\n", CVT_INT_CP(cdrlog_info.uiUPIPBytes)); printf("IP-Down-Byte : %d\n", CVT_INT_CP(cdrlog_info.uiDownIPBytes)); printf("ReTx-Up-Frame : %d\n", CVT_INT_CP(cdrlog_info.uiUPTCPREFrames)); printf("ReTx-Down-Frame : %d\n", CVT_INT_CP(cdrlog_info.uiDownTCPREFrames)); printf("ReTx-Up-Byte : %d\n", CVT_INT_CP(cdrlog_info.uiUPTCPREBytes)); printf("ReTx-Down-Byte : %d\n", CVT_INT_CP(cdrlog_info.uiDownTCPREBytes)); printf("################################################\n\n"); } */ memset(src_ip, 0x00, sizeof(src_ip)); memset(dest_ip, 0x00, sizeof(dest_ip)); memset(create_time, 0x00, sizeof(create_time)); memset(end_time, 0x00, sizeof(end_time)); strcpy(src_ip, (char *)cvt_ipaddr(CVT_INT_CP(cdrlog_info.uiSrcIP))); strcpy(dest_ip, (char *)cvt_ipaddr(CVT_INT_CP(cdrlog_info.uiDestIP))); CVT_INT_CP_CDR(cdrlog_info.tCreateTime, (int *)&cvt_crt_time); CVT_INT_CP_CDR(cdrlog_info.tLastTime, (int *)&cvt_last_time); /* printf("=======> cvt_crt_time : %d, %p\n", cvt_crt_time, &cvt_crt_time); printf("=======> cvt_last_time : %d, %p\n", cvt_last_time, &cvt_last_time); */ crt_time = localtime(&cvt_crt_time); sprintf(create_time, "%d-%02d-%02d %02d:%02d:%02d", crt_time->tm_year+1900, crt_time->tm_mon+1, crt_time->tm_mday, crt_time->tm_hour, crt_time->tm_min, crt_time->tm_sec); last_time = localtime(&cvt_last_time); sprintf(end_time, "%d-%02d-%02d %02d:%02d:%02d", last_time->tm_year+1900, last_time->tm_mon+1, last_time->tm_mday, last_time->tm_hour, last_time->tm_min, last_time->tm_sec); memset(buffer, 0x00, sizeof(buffer)); if (check_register(dest_ip, cdrlog_info.usDestPort) < 0) { reg_cnt++; continue; } if (min_flag == 1) { if (!strcmp(search_min, cdrlog_info.szIMSI)) { sprintf(buffer, "%s,0x%s,%s,%d,%s,%s,%u,%s,%u,%d,%d,%d,%d,%d,%d,%d,%d,%d\n", // 070913,poopee, ushort for port cdrlog_info.szIMSI, acct_sess_id, src_ip, CVT_INT_CP(cdrlog_info.dSvcOpt), create_time, end_time, CVT_SHORT_CP(cdrlog_info.usSecPort) & 0x0000FFFF, // 070913,poopee dest_ip, CVT_SHORT_CP(cdrlog_info.usDestPort) & 0x0000FFFF, // 070913,poopee CVT_INT_CP(cdrlog_info.dSvcType), CVT_INT_CP(cdrlog_info.uiUPIPFrames), CVT_INT_CP(cdrlog_info.uiDownIPFrames), CVT_INT_CP(cdrlog_info.uiUPIPBytes), CVT_INT_CP(cdrlog_info.uiDownIPBytes), CVT_INT_CP(cdrlog_info.uiUPTCPREFrames), CVT_INT_CP(cdrlog_info.uiDownTCPREFrames), CVT_INT_CP(cdrlog_info.uiUPTCPREBytes), CVT_INT_CP(cdrlog_info.uiDownTCPREBytes)); fputs(buffer, write_fd); cdrlog_cnt++; } } else if (min_flag == 2) { sprintf(buffer, "%s,0x%s,%s,%d,%s,%s,%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n", cdrlog_info.szIMSI, acct_sess_id, src_ip, CVT_INT_CP(cdrlog_info.dSvcOpt), create_time, end_time, CVT_SHORT_CP(cdrlog_info.usSecPort) & 0x0000FFFF, // 070913,poopee dest_ip, CVT_SHORT_CP(cdrlog_info.usDestPort) & 0x0000FFFF, // 070913,poopee CVT_INT_CP(cdrlog_info.dSvcType), CVT_INT_CP(cdrlog_info.uiUPIPFrames), CVT_INT_CP(cdrlog_info.uiDownIPFrames), CVT_INT_CP(cdrlog_info.uiUPIPBytes), CVT_INT_CP(cdrlog_info.uiDownIPBytes), CVT_INT_CP(cdrlog_info.uiUPTCPREFrames), CVT_INT_CP(cdrlog_info.uiDownTCPREFrames), CVT_INT_CP(cdrlog_info.uiUPTCPREBytes), CVT_INT_CP(cdrlog_info.uiDownTCPREBytes)); fputs(buffer, write_fd); cdrlog_cnt++; } else if (min_flag == 3) { int ret_code; ret_code = check_dup_value( cdrlog_info.dSvcOpt, cdrlog_info.uiDestIP, cdrlog_info.usDestPort); if(ret_code < 0) { dup_cnt++; continue; } else if (ret_code == 2) { add_dest_port(cdrlog_info.usDestPort); } else if (ret_code == 3) { add_dest_port(cdrlog_info.usDestPort); add_dest_ip(cdrlog_info.uiDestIP); } else if (ret_code == 4) { add_dest_port(cdrlog_info.usDestPort); add_dest_ip(cdrlog_info.uiDestIP); add_service_opt(cdrlog_info.dSvcOpt); } sprintf(buffer, "%s,0x%s,%s,%d,%s,%s,%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n", cdrlog_info.szIMSI, acct_sess_id, src_ip, CVT_INT_CP(cdrlog_info.dSvcOpt), create_time, end_time, CVT_SHORT_CP(cdrlog_info.usSecPort) & 0x0000FFFF, // 070913,poopee dest_ip, CVT_SHORT_CP(cdrlog_info.usDestPort) & 0x0000FFFF, // 070913,poopee CVT_INT_CP(cdrlog_info.dSvcType), CVT_INT_CP(cdrlog_info.uiUPIPFrames), CVT_INT_CP(cdrlog_info.uiDownIPFrames), CVT_INT_CP(cdrlog_info.uiUPIPBytes), CVT_INT_CP(cdrlog_info.uiDownIPBytes), CVT_INT_CP(cdrlog_info.uiUPTCPREFrames), CVT_INT_CP(cdrlog_info.uiDownTCPREFrames), CVT_INT_CP(cdrlog_info.uiUPTCPREBytes), CVT_INT_CP(cdrlog_info.uiDownTCPREBytes)); fputs(buffer, write_fd); cdrlog_cnt++; } else { if (ip_flag == 1) { if (!strcmp(ip, src_ip) || !strcmp (ip, dest_ip)) { sprintf(buffer, "%s,0x%s,%s,%d,%s,%s,%u,%s,%u,%d,%d,%d,%d,%d,%d,%d,%d,%d\n", // 070913,poopee, ushort for port cdrlog_info.szIMSI, acct_sess_id, src_ip, CVT_INT_CP(cdrlog_info.dSvcOpt), create_time, end_time, CVT_SHORT_CP(cdrlog_info.usSecPort) & 0x0000FFFF, // 070913,poopee dest_ip, CVT_SHORT_CP(cdrlog_info.usDestPort) & 0x0000FFFF, // 070913,poopee CVT_INT_CP(cdrlog_info.dSvcType), CVT_INT_CP(cdrlog_info.uiUPIPFrames), CVT_INT_CP(cdrlog_info.uiDownIPFrames), CVT_INT_CP(cdrlog_info.uiUPIPBytes), CVT_INT_CP(cdrlog_info.uiDownIPBytes), CVT_INT_CP(cdrlog_info.uiUPTCPREFrames), CVT_INT_CP(cdrlog_info.uiDownTCPREFrames), CVT_INT_CP(cdrlog_info.uiUPTCPREBytes), CVT_INT_CP(cdrlog_info.uiDownTCPREBytes)); fputs(buffer, write_fd); cdrlog_cnt++; } } if (port1_flag == 1) { if (port1 == CVT_SHORT_CP(cdrlog_info.usSecPort) & 0x0000FFFF || port1 == CVT_SHORT_CP(cdrlog_info.usDestPort) & 0x0000FFFF) { sprintf(buffer, "%s,0x%s,%s,%d,%s,%s,%u,%s,%u,%d,%d,%d,%d,%d,%d,%d,%d,%d\n", // 070913,poopee, ushort for port cdrlog_info.szIMSI, acct_sess_id, src_ip, CVT_INT_CP(cdrlog_info.dSvcOpt), create_time, end_time, CVT_SHORT_CP(cdrlog_info.usSecPort) & 0x0000FFFF, // 070913,poopee dest_ip, CVT_SHORT_CP(cdrlog_info.usDestPort) & 0x0000FFFF, // 070913,poopee CVT_INT_CP(cdrlog_info.dSvcType), CVT_INT_CP(cdrlog_info.uiUPIPFrames), CVT_INT_CP(cdrlog_info.uiDownIPFrames), CVT_INT_CP(cdrlog_info.uiUPIPBytes), CVT_INT_CP(cdrlog_info.uiDownIPBytes), CVT_INT_CP(cdrlog_info.uiUPTCPREFrames), CVT_INT_CP(cdrlog_info.uiDownTCPREFrames), CVT_INT_CP(cdrlog_info.uiUPTCPREBytes), CVT_INT_CP(cdrlog_info.uiDownTCPREBytes)); fputs(buffer, write_fd); cdrlog_cnt++; } } if (port2_flag == 1) { if (port2 == CVT_SHORT_CP(cdrlog_info.usSecPort) & 0x0000FFFF || port2 == CVT_SHORT_CP(cdrlog_info.usDestPort) & 0x0000FFFF) { sprintf(buffer, "%s,0x%s,%s,%d,%s,%s,%u,%s,%u,%d,%d,%d,%d,%d,%d,%d,%d,%d\n", // 070913,poopee, ushort for port cdrlog_info.szIMSI, acct_sess_id, src_ip, CVT_INT_CP(cdrlog_info.dSvcOpt), create_time, end_time, CVT_SHORT_CP(cdrlog_info.usSecPort) & 0x0000FFFF, // 070913,poopee dest_ip, CVT_SHORT_CP(cdrlog_info.usDestPort) & 0x0000FFFF, // 070913,poopee CVT_INT_CP(cdrlog_info.dSvcType), CVT_INT_CP(cdrlog_info.uiUPIPFrames), CVT_INT_CP(cdrlog_info.uiDownIPFrames), CVT_INT_CP(cdrlog_info.uiUPIPBytes), CVT_INT_CP(cdrlog_info.uiDownIPBytes), CVT_INT_CP(cdrlog_info.uiUPTCPREFrames), CVT_INT_CP(cdrlog_info.uiDownTCPREFrames), CVT_INT_CP(cdrlog_info.uiUPTCPREBytes), CVT_INT_CP(cdrlog_info.uiDownTCPREBytes)); fputs(buffer, write_fd); cdrlog_cnt++; } } } } /** end of while **/ total_cdr_cnt += cdrlog_cnt; printf("=======> CDR LOG COUNT : %d\n", cdrlog_cnt); printf("=======> check register cnt : %d\n", reg_cnt); cdrlog_cnt = 0; fclose(fd); return (1); }