Example #1
0
File: mysql.c Project: nicboul/xia
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;
}
Example #2
0
File: mysql.c Project: nicboul/xia
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;
}
Example #3
0
File: mysql.c Project: nicboul/xia
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;
}
Example #4
0
File: mysql.c Project: nicboul/xia
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);
}
Example #5
0
File: mysql.c Project: nicboul/xia
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;
}
Example #6
0
File: mysql.c Project: nicboul/xia
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);
}
Example #7
0
File: mysql.c Project: nicboul/xia
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);
}
Example #8
0
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;
	}
	


}
Example #9
0
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...");
}