int set_res_status(char *name, char *haddr, unsigned int status) { journal_strace("set_res_status"); struct stmt_singleton *stmt; MYSQL_BIND *p; unsigned int i; stmt = set_res_status_init_once(); for (p = stmt->in_buf, i = 0; i < SET_RES_STATUS_MAXBUF; ++p, ++i) { switch (i) { case SET_RES_STATUS_NAME: p->buffer = name; p->buffer_length = strlen(name); break; case SET_RES_STATUS_HADDR: p->buffer = haddr; p->buffer_length = strlen(haddr); break; case SET_RES_STATUS_STATUS: case SET_RES_STATUS_STATUS2: p->buffer = (char *)&status; break; } } return (mysql_exec(stmt)) ? 1 : 0; }
int set_res_hostname_mapping(char *name, char *haddr, char *hostname) { journal_strace("set_res_hostname_mapping"); struct stmt_singleton *stmt; MYSQL_BIND *p; unsigned int i; stmt = set_res_hostname_mapping_init_once(); for (p = stmt->in_buf, i = 0; i < SET_RES_HOSTNAME_MAPPING_MAXBUF; ++p, ++i) { switch (i) { case SET_RES_HOSTNAME_MAPPING_NAME: p->buffer = name; p->buffer_length = strlen(name); break; case SET_RES_HOSTNAME_MAPPING_HADDR: p->buffer = haddr; p->buffer_length = strlen(haddr); break; case SET_RES_HOSTNAME_MAPPING_HOST: case SET_RES_HOSTNAME_MAPPING_HOST2: p->buffer = hostname; p->buffer_length = strlen(hostname); break; } } return (mysql_exec(stmt)) ? 1 : 0; }
int set_token_addr_mapping(char *name, char *addr) { journal_strace("set_token_addr_mapping"); struct stmt_singleton *stmt; unsigned int i; MYSQL_BIND *p; stmt = set_token_addr_mapping_init_once(); for (p = stmt->in_buf, i = 0; i < SET_TOKEN_ADDR_MAPPING_MAXBUF; ++p, ++i) { switch (i) { case SET_TOKEN_ADDR_MAPPING_NAME: p->buffer = name; p->buffer_length = strlen(name); break; case SET_TOKEN_ADDR_MAPPING_ADDR: p->buffer = addr; p->buffer_length = strlen(addr); break; } } return (mysql_exec(stmt)) ? 1 : 0; }
int_vector *get_token_type(char *name) { journal_strace("get_token_type"); struct stmt_singleton *stmt; stmt = get_token_type_init_once(); stmt->in_buf->buffer = name; stmt->in_buf->buffer_length = strlen(name); return mysql_exec(stmt); }
int unset_token_addr_mapping(char *addr) { journal_strace("unset_token_addr_mapping"); struct stmt_singleton *stmt; stmt = unset_token_addr_mapping_init_once(); stmt->in_buf->buffer = addr; stmt->in_buf->buffer_length = strlen(addr); return (mysql_exec(stmt)) ? 1 : 0; }
int_vector *get_bridge_owner_context(char *name) { journal_strace("get_bridge_owner_context"); struct stmt_singleton *stmt; stmt = get_bridge_owner_context_init_once(); stmt->in_buf->buffer = name; stmt->in_buf->buffer_length = strlen(name); return mysql_exec(stmt); }
int_vector *get_usr_membership(char *name) { journal_strace("get_usr_membership"); struct stmt_singleton *stmt; stmt = get_usr_membership_init_once(); stmt->in_buf->buffer = name; stmt->in_buf->buffer_length = strlen(name); return mysql_exec(stmt); }
static int load_pic_info(PIC_INFO* p_pic_info,char *serviceID,char *service_id) { //////load pic info // there are 4 cases here , // 1:there is a record in the db,and the pic exists; deal:normal // 2:there is a record in the db,but the pic doesn't exist deal:only section header // 3:there is no record in the db deal:only section header // 4:there is an empty record after 7 seconds deal:only section header printf("@@@正在从数据库中读取排期信息......\n"); int num; char data_img[10][DATA_MAX_FIELD_NUM][DATA_MAX_REC_LEN]; char pic_dir[256]; read_config("pic_dir", pic_dir); sprintf(sql,"select imgurl,scheduleid,xposition,yposition,width,height,showtime,style,position,length,channelcode,id from xepg_ad where service_id=%s and NOW() >= start_time and NOW() < end_time",serviceID); num=mysql_get_data(&mysql, sql,data_img); if(num) { //set dtbflag=1 sprintf(sql,"update xepg_ad set dtbflag=1 where id='%s' ",data_img[0][11]); mysql_exec(&mysql, sql); //get pic_name strcpy(p_pic_info->name,pic_dir); strcat(p_pic_info->name,data_img[0][0]); //printf("pic:%s\n",pic_info[j].name); //get antifake,x,y,width,height,period.stype p_pic_info->schedule_id=atoi(data_img[0][1]); p_pic_info->x=atoi(data_img[0][2]); p_pic_info->y=atoi(data_img[0][3]); p_pic_info->width=atoi(data_img[0][4]); p_pic_info->height=atoi(data_img[0][5]); p_pic_info->period=atoi(data_img[0][6]); p_pic_info->style=atoi(data_img[0][7]); p_pic_info->m_position=atoi(data_img[0][8]); p_pic_info->m_len=atoi(data_img[0][9]); p_pic_info->file_sub_id=atoi(data_img[0][10]);//channelcode //get file stream if(get_file_stream(p_pic_info)==-1) { return -1; } return 0; } else { printf("@@@没有当前的排期信息!\n"); return -1; } }
static sgip_read() { //proclog("reading data..."); int n=0; void *seq; int len,g; int cmd; int i; unsigned char buffer[PKG_LENGTH]; //read header memset(buffer,0,20); //proclog("reading header..."); if((n=read(readfd,buffer,20))!=20) { proclog("Read Header Error! return [%d]",n); exit(0); } //proclog_HEX(buffer,20); seq=(void*)malloc(12); len=ntohl(*((long *)buffer)); cmd=ntohl(*((unsigned long *)(buffer+4))); *(int*)seq=ntohl(*((unsigned long *)(buffer+8))); *(int*)(seq+4)=ntohl(*((unsigned long *)(buffer+12))); *(int*)(seq+8)=ntohl(*((unsigned long *)(buffer+16))); proclog("header:len:[%d] CMD:[%X] seq:[%d][%d][%d]",len,cmd,*(int*)seq,*(int*)(seq+4),*(int*)(seq+8)); ///read body memset(buffer,0,PKG_LENGTH); //proclog("reading body..."); if((n=read(readfd,buffer,len-20))!=(len-20)) { proclog("Read Body Error! return [%d]",n); exit(0); } ///////////////print binlog //proclog_HEX(buffer,len-20); //////////////////// if(cmd==0x4)//deliver { sgip_resp(0x80000004,seq,29); char UserNumber[22]={0}; char SPNumber[22]={0}; char MessageContent[256]={0}; int MessageLength=0; char MessageContent_utf8[256]={0}; memset(MessageContent_utf8,0,sizeof(MessageContent_utf8)); unsigned char MessageCoding; unsigned char pid,udhi; char linkid[32]; MessageLength=ntohl(*(unsigned int*)(buffer+45)); strncpy(UserNumber,buffer,21); strncpy(SPNumber,buffer+21,21); pid=*(unsigned char *)(buffer+42); udhi=*(unsigned char *)(buffer+43); MessageCoding=*(unsigned char *)(buffer+44); memset(MessageContent,0,sizeof(MessageContent)); memcpy(MessageContent,buffer+49,MessageLength); strcpy(linkid,buffer+49+MessageLength); if (MessageCoding==8) { convt(MessageContent,MessageContent_utf8,"ucs-2be","utf-8"); //ucs2_to_utf8(MessageContent,MessageContent_utf8); } else if(MessageCoding==15) { convt(MessageContent,MessageContent_utf8,"gb2312","utf-8"); } else { strcpy(MessageContent_utf8,MessageContent); } proclog("MO:UserNumber[%s]SPNumber[%s]Messagelen[%d]Content[%s]MessageCoding[%d]linkid[%s]pid[%d]udhi[%d]\n",UserNumber,SPNumber,MessageLength,MessageContent_utf8,MessageCoding,linkid,pid,udhi); char sql[512]; sprintf(sql,"insert into wraith_mo( in_date, phone_number, message, sp_number, linkid, gwid ) values (NOW(),'%s', '%s', '%s', '%s', '%s');", UserNumber, MessageContent_utf8, SPNumber, linkid, gwid ); //proclog(sql); mysql_exec(&mysql,"set names utf8"); mysql_exec(&mysql, sql); /* char cmd[128]; sprintf(cmd,"./fakemt %s hello",UserNumber); proclog("%s\n",cmd); //system(cmd); */ } else if(cmd==0x5)//report { sgip_resp(0x80000005,seq,29); *(time_t*)(buffer+252)=time(0); char UserNumber[22]={0}; strncpy(UserNumber,buffer+13,21); unsigned long seq; seq=ntohl(*((unsigned long *)(buffer+8))); int state,report_code; //state=*(int *)(buffer+34); state=(int)(*(unsigned char *)(buffer+34)); report_code=(int)(*(unsigned char *)(buffer+35)); proclog("REPORT: seq[%d]usernumber[%s]state[%d]errorcode:[%d]\n",seq,UserNumber,state,report_code); // write_to_heapfile(heapstatdbfd,buffer,sizeof(buffer)); } else if(cmd==0x1)//bind { sgip_resp(0x80000001,seq,29); //proclog("MESSAGE:got BIND command\n"); } else if(cmd==0x2)//unbind { sgip_resp(0x80000002,seq,20); //proclog("MESSAGE:got UNBIND command!\n"); exit(0); } else { proclog( "WARNING:Strange CMD:%x\n",cmd); } //proclog("returning..."); }