Ejemplo n.º 1
0
void redis_command_cb(redisconn_t conn,struct redisReply* reply,void *pridata)
{
	luaRef_t *cbObj = (luaRef_t*)pridata;
	const char * error;
	//callback,self,error,result
	if(!reply){
		if((error = push_obj_callback(cbObj->L,"srsp","__callback",*cbObj,"unknow error",NULL))){
			SYS_LOG(LOG_ERROR,"error on redis_command_cb:%s\n",error);	
		}
	}
	else if(reply->type == REDIS_REPLY_NIL){
		if((error = push_obj_callback(cbObj->L,"srpp","__callback",*cbObj,NULL,NULL))){
			SYS_LOG(LOG_ERROR,"error on redis_command_cb:%s\n",error);	
		}					
	}else if(reply->type == REDIS_REPLY_ERROR){
		if((error = push_obj_callback(cbObj->L,"srsp","__callback",*cbObj,reply->str,NULL))){
			SYS_LOG(LOG_ERROR,"error on redis_command_cb:%s\n",error);	
		}						
	}else{
		stPushResultSet st;
		st.reply = reply;
		st.base.Push = PushResultSet;
		if((error = push_obj_callback(cbObj->L,"srsf","__callback",*cbObj,NULL,&st))){
			SYS_LOG(LOG_ERROR,"error on redis_command_cb:%s\n",error);	
		}			
	} 	
	release_luaRef(cbObj);
	free(cbObj);
}
Ejemplo n.º 2
0
static void send_complete_callback(connection_t c){
	luasocket_t luasock = (luasocket_t)connection_getud(c);
	luaRef_t  *obj = &luasock->luaObj;
	const char *error = push_obj_callback(obj->L,"sr","__send_complete",*obj);
	if(error){
		SYS_LOG(LOG_ERROR,"error on __send_complete:%s\n",error);	
	}
} 
Ejemplo n.º 3
0
static void on_disconnected(connection_t c,int err){
	//printf("on_disconnected\n");
	luasocket_t luasock = (luasocket_t)connection_getud(c);
	luaRef_t  *obj = &luasock->luaObj;
	const char *error = push_obj_callback(obj->L,"sri","__on_disconnected",*obj,err);
	if(error){
		SYS_LOG(LOG_ERROR,"error on __on_disconnected:%s\n",error);	
	}	
}
Ejemplo n.º 4
0
static void cb_disconnected(redisconn_t conn,void *ud){
	luaRef_t   *cbObj = (luaRef_t*)ud;
	const char *error = push_obj_callback(cbObj->L,"sr","__on_disconnected",*cbObj);
	if(error){
		SYS_LOG(LOG_ERROR,"error on __on_disconnected:%s\n",error);	
	}		
	release_luaRef(cbObj);
	free(cbObj);	
}
Ejemplo n.º 5
0
static void cb_connect(handle_t s,void *remoteaddr,int _ ,int err)
{
	((void)_);
	luasocket_t luasock = kn_sock_getud(s);
	luaRef_t  *obj = &luasock->luaObj;
	const char *error = push_obj_callback(obj->L,"sri","___cb_connect",*obj,err);
	if(error){
		SYS_LOG(LOG_ERROR,"error on ___cb_connect:%s\n",error);	
	}
}
Ejemplo n.º 6
0
static void  on_packet(connection_t c,packet_t p){
	luasocket_t luasock = (luasocket_t)connection_getud(c);
	luaRef_t  *obj = &luasock->luaObj;
	stPushPacket st;
	st.p = clone_packet(p);
	st.base.Push = PushPacket;
	const char *error = push_obj_callback(obj->L,"srf","__on_packet",*obj,&st);
	if(error){
		SYS_LOG(LOG_ERROR,"error on __on_packet:%s\n",error);	
	}	
}
Ejemplo n.º 7
0
static void cb_connect(redisconn_t conn,int err,void *ud){
	luaRef_t   *cbObj = (luaRef_t*)ud;
	const char *e = errmsg[err == 0 ? 0:1];
	const char *error = push_obj_callback(cbObj->L,"srps","__cb_connect",*cbObj,conn,e);
	if(error) 
		SYS_LOG(LOG_ERROR,"error on lua redis __cb_connect:%s\n",error);
	if(error || e){	
		release_luaRef(cbObj);
		free(cbObj);
	}			
}
Ejemplo n.º 8
0
static void on_mail(kn_thread_mailbox_t *from,void *mail){
	li_msg_t _msg = (li_msg_t)mail;
	if(_msg->_msg_type == MSG_CLOSED){
		luasocket_t luasock = (luasocket_t)_msg->luasock;
		destroy_luasocket(luasock);
	}else if(_msg->_msg_type == MSG_CONNECTION){
		luasocket_t luasock = (luasocket_t)_msg->luasock;
		luaRef_t  *obj = &luasock->luaObj;
		const char *error = push_obj_callback(obj->L,"srp","__on_new_connection",*obj,_msg->ud);
		if(error){
			SYS_LOG(LOG_ERROR,"error on __on_new_connection:%s\n",error);			
		}				
	}
}
Ejemplo n.º 9
0
static void on_datagram(struct datagram *d,packet_t p,kn_sockaddr *from){
	luasocket_t luasock = (luasocket_t)datagram_getud(d);
	luaRef_t  *obj = &luasock->luaObj;
	stPushPacket st1;
	st1.p = clone_packet(p);
	st1.base.Push = PushPacket;

	stPushAddr st2;
	st2.addr = from;
	st2.base.Push = PushAddr;

	const char *error = push_obj_callback(obj->L,"srff","__on_packet",*obj,&st1,&st2);
	if(error){
		SYS_LOG(LOG_ERROR,"error on __on_packet:%s\n",error);	
	}	
}