From 3bc73046090bf9c7a624fc1660896127db81928c Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Sun, 13 Jul 2014 19:37:08 +0800 Subject: [PATCH] skynet.localname return nil when the name not exist --- lualib/skynet.lua | 5 ++++- skynet-src/skynet_server.c | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lualib/skynet.lua b/lualib/skynet.lua index 6ccdaea2..2b984e2a 100644 --- a/lualib/skynet.lua +++ b/lualib/skynet.lua @@ -229,7 +229,10 @@ function skynet.self() end function skynet.localname(name) - return string_to_handle(c.command("QUERY", name)) + local addr = c.command("QUERY", name) + if addr then + return string_to_handle(addr) + end end function skynet.launch(...) diff --git a/skynet-src/skynet_server.c b/skynet-src/skynet_server.c index 8f619ad4..3e902cc9 100644 --- a/skynet-src/skynet_server.c +++ b/skynet-src/skynet_server.c @@ -368,8 +368,10 @@ static const char * cmd_query(struct skynet_context * context, const char * param) { if (param[0] == '.') { uint32_t handle = skynet_handle_findname(param+1); - sprintf(context->result, ":%x", handle); - return context->result; + if (handle) { + sprintf(context->result, ":%x", handle); + return context->result; + } } return NULL; }