Lua PowerDNS-DNSQuestion始终为零

Lua PowerDNS-DNSQuestion始终为零,lua,powerdns,Lua,Powerdns,我已经在Debian 9上成功地安装了一个PowerDNS(4.0.4-1+deb9u4)和一个MySQL后端,并且系统正确地解析了主机。我正在尝试将脚本添加到递归程序中,并使用了示例。我已经将pdns解析器的conf正确地指向了我的lua脚本,并且我看到日志语句打印正确,但是我始终收到一个错误,关于所有示例lua函数的实例都为空 例如: function preresolve(dq) pdnslog("Got question for "..dq.qname:toString().."

我已经在Debian 9上成功地安装了一个PowerDNS(4.0.4-1+deb9u4)和一个MySQL后端,并且系统正确地解析了主机。我正在尝试将脚本添加到递归程序中,并使用了示例。我已经将pdns解析器的conf正确地指向了我的lua脚本,并且我看到日志语句打印正确,但是我始终收到一个错误,关于所有示例lua函数的实例都为空

例如:

function preresolve(dq)
    pdnslog("Got question for "..dq.qname:toString().." from "..dq.remoteaddr:toString().." to "..dq.localaddr:toString())
    return true;
end
结果:
STL错误(127.0.0.1中的a.root-servers.net/a):尝试将lua变量从“nil”强制转换为“b”
(表示DNSQuestion实例为null)

很明显,lua脚本正在运行,但由于某些原因,所有dq实例都是空的


是否有任何我可能误解或遗漏的内容会导致参数为零?

让函数返回
true
false
,这样默认情况下它不会返回
nil

不是函数返回了错误的类型,这是因为函数接收的类型不正确。@smittysee哪个函数?如果dq为nil,则在索引nil值时将面临脚本错误。所有预解析示例都返回示例中函数的值。preresolve函数的参数dq为nil。我甚至为nil添加了一个条件检查,它满足该条件。请告诉我是否有意义。@smittysee如果dq为nil,则错误与提供的代码无关。对于
STL错误(127.0.0.1中的a.root-servers.net/a):尝试将lua变量从“nil”强制转换为“b”
,这是由于返回类型无效。我按照从源代码开始构建的指示添加了一些库,现在也不再收到nil。我将此标记为已接受的答案,因为它删除了
STL
错误。