Software / code / prosody
File
core/actions.lua @ 2057:ee2929e620bb
server.lua: Add addsocket(), refactor all code to use it, fixes nasty socket object leak - moral of the story is to not duplicate code, and not prematurely optimise. But you knew that already didn't you?
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Mon, 26 Oct 2009 23:29:04 +0000 |
| parent | 1522:569d58d21612 |
| child | 2923:b7049746bd29 |
line wrap: on
line source
-- Prosody IM -- Copyright (C) 2008-2009 Matthew Wild -- Copyright (C) 2008-2009 Waqas Hussain -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. -- local actions = {}; function register(path, t) local curr = actions; for comp in path:gmatch("([^/]+)/") do if curr[comp] == nil then curr[comp] = {}; end curr = curr[comp]; if type(curr) ~= "table" then return nil, "path-taken"; end end curr[path:match("/([^/]+)$")] = t; return true; end return { actions = actions, register= register };