Apparently when using reference, LuaWrapper pass the object by copy
and not by reference, so for now we pass `dq` as a pointer, not a
reference.
dq.udpCallback.clear();
dq.rcode = ret;
- bool handled=func(dq);
+ bool handled=func(&dq);
if(handled) {
loop:;
theL()<<Logger::Error<<"Attempted callback for Lua UDP Query/Response which could not be found"<<endl;
return false;
}
- bool result=func(dq);
+ bool result=func(&dq);
if(!result) {
return false;
}
gettag_t d_gettag; // public so you can query if we have this hooked
private:
- typedef std::function<bool(DNSQuestion&)> luacall_t;
+ typedef std::function<bool(DNSQuestion*)> luacall_t;
luacall_t d_prerpz, d_preresolve, d_nxdomain, d_nodata, d_postresolve, d_preoutquery, d_postoutquery;
bool genhook(luacall_t& func, DNSQuestion& dq, int& ret);
typedef std::function<bool(ComboAddress,ComboAddress, struct dnsheader)> ipfilter_t;