From 908b10ef88c4ab245d41c9bca6c1d7bc8ab3a109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=A3=8E?= Date: Fri, 7 Sep 2012 15:24:47 +0800 Subject: [PATCH] check agent --- gate/main.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gate/main.c b/gate/main.c index 4f690f3a..35cb5b49 100644 --- a/gate/main.c +++ b/gate/main.c @@ -59,8 +59,10 @@ _parm(char *msg, int sz, int command_sz) { static void _forward_agent(struct gate * g, int id, uint32_t agentaddr, uint32_t clientaddr) { struct connection * agent = _id_to_agent(g,id); - agent->agent = agentaddr; - agent->client = clientaddr; + if (agent) { + agent->agent = agentaddr; + agent->client = clientaddr; + } } static void @@ -137,6 +139,8 @@ _forward(struct skynet_context * ctx,struct gate *g, int uid, void * data, size_ return; } struct connection * agent = _id_to_agent(g,uid); + if (agent == NULL) + return; if (agent->agent) { skynet_send(ctx, agent->client, agent->agent, g->client_tag, 0 , data, len); } else if (g->watchdog) {