]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Use __tostring instead of toString
authorAki Tuomi <cmouse@cmouse.fi>
Wed, 29 Jul 2020 09:50:40 +0000 (12:50 +0300)
committerAki Tuomi <cmouse@cmouse.fi>
Wed, 24 Feb 2021 11:33:03 +0000 (13:33 +0200)
LuaWrapper supports __tostring for objects to make
str() work.

pdns/dnsdist-lua-bindings.cc

index 5f04fd5e8ce17078aceb5631a278d31cef96cbf7..1a1ace93d7d0a19545bf7e27efa023575e1db778 100644 (file)
@@ -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<string(ComboAddress::*)()const>("tostring", [](const ComboAddress& ca) { return ca.toString(); });
   luaCtx.registerFunction<string(ComboAddress::*)()const>("tostringWithPort", [](const ComboAddress& ca) { return ca.toStringWithPort(); });
+  luaCtx.registerFunction<string(ComboAddress::*)()const>("__tostring", [](const ComboAddress& ca) { return ca.toString(); });
   luaCtx.registerFunction<string(ComboAddress::*)()const>("toString", [](const ComboAddress& ca) { return ca.toString(); });
   luaCtx.registerFunction<string(ComboAddress::*)()const>("toStringWithPort", [](const ComboAddress& ca) { return ca.toStringWithPort(); });
   luaCtx.registerFunction<uint16_t(ComboAddress::*)()const>("getPort", [](const ComboAddress& ca) { return ntohs(ca.sin4.sin_port); } );
@@ -220,6 +222,7 @@ void setupLuaBindings(LuaContext& luaCtx, bool client)
   luaCtx.registerFunction<size_t(DNSName::*)()const>("wirelength", [](const DNSName& name) { return name.wirelength(); });
   luaCtx.registerFunction<string(DNSName::*)()const>("tostring", [](const DNSName&dn ) { return dn.toString(); });
   luaCtx.registerFunction<string(DNSName::*)()const>("toString", [](const DNSName&dn ) { return dn.toString(); });
+  luaCtx.registerFunction<string(DNSName::*)()const>("__tostring", [](const DNSName&dn ) { return dn.toString(); });
   luaCtx.registerFunction<string(DNSName::*)()const>("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<string(DNSNameSet::*)()const>("toString", [](const DNSNameSet&dns ) { return dns.toString(); });
+  luaCtx.registerFunction<string(DNSNameSet::*)()const>("__tostring", [](const DNSNameSet&dns ) { return dns.toString(); });
   luaCtx.registerFunction<void(DNSNameSet::*)(DNSName&)>("add", [](DNSNameSet& dns, DNSName& dn) { dns.insert(dn); });
   luaCtx.registerFunction<bool(DNSNameSet::*)(DNSName&)>("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<string(NetmaskGroup::*)()const>("toString", [](const NetmaskGroup& nmg ) { return "NetmaskGroup " + nmg.toString(); });
+  luaCtx.registerFunction<string(NetmaskGroup::*)()const>("__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<std::string(ClientState::*)()>("__tostring", [](const ClientState& fe) {
+      setLuaNoSideEffect();
+      return fe.local.toStringWithPort();
+    });
   luaCtx.registerMember("muted", &ClientState::muted);
 #ifdef HAVE_EBPF
   luaCtx.registerFunction<void(ClientState::*)(std::shared_ptr<BPFFilter>)>("attachFilter", [](ClientState& frontend, std::shared_ptr<BPFFilter> bpf) {