Пример #1
0
static int _write_uint32(lua_State *L){
	lua_packet_t p = lua_getluapacket(L,1);
	if(!p->_packet || p->_packet->type != WPACKET)
		return luaL_error(L,"invaild opration");
	if(lua_type(L,2) != LUA_TNUMBER)
		return luaL_error(L,"invaild arg2");
	uint32_t v = (uint32_t)lua_tointeger(L,2);
	wpacket_t wpk = (wpacket_t)p->_packet;
	wpk_write_uint32(wpk,v);	
	return 0;	
}
Пример #2
0
void wpk_write_wpk(wpacket_t w,wpacket_t value){
	uint32_t hlen = kn_ntoh32(*value->len) + sizeof(*value->len);
	wpk_write_uint32(w,hlen);	
	uint32_t pos = ((packet_t)value)->begin_pos;
	buffer_t buf = ((packet_t)value)->buf;
	uint32_t sizeremain = hlen; 
	while(sizeremain){
		uint32_t size = buf->size - pos;
		size = size > sizeremain ? sizeremain : size;
		wpk_write(w,&buf->buf[pos],size);
		sizeremain -= size;
		pos = 0;
		buf = buf->next;
	}	
}
Пример #3
0
//向gate发送短通告消息
void shortmsg2gate(uint16_t cmd,uint32_t gateident){
	wpacket_t wpk = wpk_create(64,0);
	wpk_write_uint16(wpk,cmd);
	wpk_write_uint32(wpk,gateident);
	send2gate(wpk);		
}