From 29282b5a7d43e8b5ce12b0ec4b7a7620c19a67b6 Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Mon, 9 Feb 2015 19:44:12 +0200 Subject: proper escaping for back-end addresses --- aconf/model/node.lua | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'aconf/model/node.lua') diff --git a/aconf/model/node.lua b/aconf/model/node.lua index 91f0256..21b3ec2 100644 --- a/aconf/model/node.lua +++ b/aconf/model/node.lua @@ -13,6 +13,7 @@ local isinstance = object.isinstance local super = object.super local pth = require('aconf.path') +local address = require('aconf.path.address') local util = require('aconf.util') local copy = util.copy @@ -20,7 +21,11 @@ local setdefaults = util.setdefaults local update = util.update -function M.null_addr(path, name) return '/null'..pth.join(path, name) end +function M.null_addr(path, name) + local comps = pth.split(path) + table.insert(comps, pth.escape(name)) + return address.join('/null', table.unpack(comps)) +end M.BoundMember = class() @@ -33,7 +38,7 @@ function M.BoundMember:init(parent, name, field) local member = field[k] if type(member) ~= 'function' then return member end - local addr = field.addr or pth.escape(name) + local addr = field.addr or address.escape(name) if type(addr) == 'function' then addr = addr(pmt.path, name) end return function(self, ...) return member( @@ -43,7 +48,7 @@ function M.BoundMember:init(parent, name, field) privileged=pmt.privileged, parent=parent, path=pth.join(pmt.path, name), - addr=pth.to_absolute(addr, pmt.addr) + addr=address.to_absolute(addr, pmt.addr) }, ... ) -- cgit v1.2.3