From: Aki Tuomi Date: Wed, 29 Jul 2020 09:50:40 +0000 (+0300) Subject: dnsdist: Use __tostring instead of toString X-Git-Tag: dnsdist-1.6.0-alpha2~15^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=90a8f0fa0cdb4be711a883dc59d2a3ed78d1fc54;p=thirdparty%2Fpdns.git dnsdist: Use __tostring instead of toString LuaWrapper supports __tostring for objects to make str() work. --- diff --git a/pdns/dnsdist-lua-bindings.cc b/pdns/dnsdist-lua-bindings.cc index 5f04fd5e8c..1a1ace93d7 100644 --- a/pdns/dnsdist-lua-bindings.cc +++ b/pdns/dnsdist-lua-bindings.cc @@ -65,6 +65,7 @@ void setupLuaBindings(LuaContext& luaCtx, bool client) luaCtx.registerMember("isFFI", &ServerPolicy::d_isFFI); luaCtx.registerMember("isPerThread", &ServerPolicy::d_isPerThread); luaCtx.registerFunction("toString", &ServerPolicy::toString); + luaCtx.registerFunction("__tostring", &ServerPolicy::toString); luaCtx.writeVariable("firstAvailable", ServerPolicy{"firstAvailable", firstAvailable, false}); luaCtx.writeVariable("roundrobin", ServerPolicy{"roundrobin", roundrobin, false}); @@ -202,6 +203,7 @@ void setupLuaBindings(LuaContext& luaCtx, bool client) }); luaCtx.registerFunction("tostring", [](const ComboAddress& ca) { return ca.toString(); }); luaCtx.registerFunction("tostringWithPort", [](const ComboAddress& ca) { return ca.toStringWithPort(); }); + luaCtx.registerFunction("__tostring", [](const ComboAddress& ca) { return ca.toString(); }); luaCtx.registerFunction("toString", [](const ComboAddress& ca) { return ca.toString(); }); luaCtx.registerFunction("toStringWithPort", [](const ComboAddress& ca) { return ca.toStringWithPort(); }); luaCtx.registerFunction("getPort", [](const ComboAddress& ca) { return ntohs(ca.sin4.sin_port); } ); @@ -220,6 +222,7 @@ void setupLuaBindings(LuaContext& luaCtx, bool client) luaCtx.registerFunction("wirelength", [](const DNSName& name) { return name.wirelength(); }); luaCtx.registerFunction("tostring", [](const DNSName&dn ) { return dn.toString(); }); luaCtx.registerFunction("toString", [](const DNSName&dn ) { return dn.toString(); }); + luaCtx.registerFunction("__tostring", [](const DNSName&dn ) { return dn.toString(); }); luaCtx.registerFunction("toDNSString", [](const DNSName&dn ) { return dn.toDNSString(); }); luaCtx.writeFunction("newDNSName", [](const std::string& name) { return DNSName(name); }); luaCtx.writeFunction("newDNSNameFromRaw", [](const std::string& name) { return DNSName(name.c_str(), name.size(), 0, false); }); @@ -228,6 +231,7 @@ void setupLuaBindings(LuaContext& luaCtx, bool client) /* DNSNameSet */ luaCtx.registerFunction("toString", [](const DNSNameSet&dns ) { return dns.toString(); }); + luaCtx.registerFunction("__tostring", [](const DNSNameSet&dns ) { return dns.toString(); }); luaCtx.registerFunction("add", [](DNSNameSet& dns, DNSName& dn) { dns.insert(dn); }); luaCtx.registerFunction("check", [](DNSNameSet& dns, DNSName& dn) { return dns.find(dn) != dns.end(); }); luaCtx.registerFunction("delete",(size_t (DNSNameSet::*)(const DNSName&)) &DNSNameSet::erase); @@ -318,6 +322,7 @@ void setupLuaBindings(LuaContext& luaCtx, bool client) luaCtx.registerFunction("isIPv6", &Netmask::isIPv6); luaCtx.registerFunction("match", (bool (Netmask::*)(const string&) const)&Netmask::match); luaCtx.registerFunction("toString", &Netmask::toString); + luaCtx.registerFunction("__tostring", &Netmask::toString); luaCtx.registerEqFunction(&Netmask::operator==); luaCtx.registerToStringFunction(&Netmask::toString); @@ -338,6 +343,7 @@ void setupLuaBindings(LuaContext& luaCtx, bool client) luaCtx.registerFunction("size", &NetmaskGroup::size); luaCtx.registerFunction("clear", &NetmaskGroup::clear); luaCtx.registerFunction("toString", [](const NetmaskGroup& nmg ) { return "NetmaskGroup " + nmg.toString(); }); + luaCtx.registerFunction("__tostring", [](const NetmaskGroup& nmg ) { return "NetmaskGroup " + nmg.toString(); }); /* QPSLimiter */ luaCtx.writeFunction("newQPSLimiter", [](int rate, int burst) { return QPSLimiter(rate, burst); }); @@ -348,6 +354,10 @@ void setupLuaBindings(LuaContext& luaCtx, bool client) setLuaNoSideEffect(); return fe.local.toStringWithPort(); }); + luaCtx.registerFunction("__tostring", [](const ClientState& fe) { + setLuaNoSideEffect(); + return fe.local.toStringWithPort(); + }); luaCtx.registerMember("muted", &ClientState::muted); #ifdef HAVE_EBPF luaCtx.registerFunction)>("attachFilter", [](ClientState& frontend, std::shared_ptr bpf) {