From 299c4a710315b2517ce4bf31fad9f012fcf8b51a Mon Sep 17 00:00:00 2001 From: Waqas Hussain Date: Wed, 2 Mar 2011 05:11:42 +0500 Subject: net.connlisteners: Log traceback on errors in listener loading. --- net/connlisteners.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/net/connlisteners.lua b/net/connlisteners.lua index e13f85de..7da25c62 100644 --- a/net/connlisteners.lua +++ b/net/connlisteners.lua @@ -13,8 +13,10 @@ local server = require "net.server"; local log = require "util.logger".init("connlisteners"); local tostring = tostring; -local dofile, pcall, error = - dofile, pcall, error +local dofile, xpcall, error = + dofile, xpcall, error + +local debug_traceback = debug.traceback; module "connlisteners" @@ -37,7 +39,7 @@ end function get(name) local h = listeners[name]; if not h then - local ok, ret = pcall(dofile, listeners_dir..name:gsub("[^%w%-]", "_").."_listener.lua"); + local ok, ret = xpcall(function() dofile(listeners_dir..name:gsub("[^%w%-]", "_").."_listener.lua") end, debug_traceback); if not ok then log("error", "Error while loading listener '%s': %s", tostring(name), tostring(ret)); return nil, ret; -- cgit v1.2.3