From 481dfb85bbb39ccd7cdf1c28edbf6a0744582378 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=A3=8E?= Date: Tue, 11 Sep 2012 12:59:02 +0800 Subject: [PATCH] skynet.forward --- lualib-src/lua-skynet.c | 10 ++++++++++ lualib/skynet.lua | 1 + 2 files changed, 11 insertions(+) diff --git a/lualib-src/lua-skynet.c b/lualib-src/lua-skynet.c index e92f8a9a..61e3b5c6 100644 --- a/lualib-src/lua-skynet.c +++ b/lualib-src/lua-skynet.c @@ -229,6 +229,15 @@ _redirect(lua_State *L) { return 0; } +static int +_forward(lua_State *L) { + struct skynet_context * context = lua_touserdata(L, lua_upvalueindex(1)); + uint32_t dest = luaL_checkunsigned(L,1); + skynet_forward(context, dest); + + return 0; +} + static int _error(lua_State *L) { struct skynet_context * context = lua_touserdata(L, lua_upvalueindex(1)); @@ -276,6 +285,7 @@ luaopen_skynet_c(lua_State *L) { { "send" , _send }, { "genid", _genid }, { "redirect", _redirect }, + { "forward", _forward }, { "command" , _command }, { "callback" , _callback }, { "error", _error }, diff --git a/lualib/skynet.lua b/lualib/skynet.lua index a0a8a930..d18006bb 100644 --- a/lualib/skynet.lua +++ b/lualib/skynet.lua @@ -159,6 +159,7 @@ function skynet.send(addr, typename, ...) end skynet.genid = assert(c.genid) +skynet.forward = assert(c.forward) skynet.redirect = function(dest,source,typename,...) return c.redirect(dest, source, proto[typename].id, ...)