我已经在Debian 9上成功设置了带有MySQL后端的PowerDNS(4.0.4-1 + deb9u4),并且系统正在正确解析主机。我试图将脚本添加到递归中,并使用了示例Lua script examples。我已经在我的lua脚本中正确地指向了pdns-resolver的conf,并且看到我的日志语句可以正确打印,但是对于所有示例lua函数,DNSQuestion实例都是空的,我一直收到错误。
例如:
function preresolve(dq)
pdnslog("Got question for "..dq.qname:toString().." from "..dq.remoteaddr:toString().." to "..dq.localaddr:toString())
return true;
end
结果:
STL error (a.root-servers.net/A from 127.0.0.1): Trying to cast a lua variable from "nil" to "b"
(表示DNSQuestion实例为空)。
很显然,lua脚本正在运行,但是由于某些原因,所有dq实例都是空的。
是否存在我可能会误解或遗漏的任何导致参数为nil的信息?
答案 0 :(得分:1)
让函数返回true
或false
,以便默认情况下它不会返回nil
。