Hello,
thanks for hints. I got it working and I’m successfully counting what I need.
function count_chrome_doh()
return function (state, query)
if query.request.qsource.flags.http then
for i = 1, tonumber(query.request.qsource.headers.len) do
local k = ffi.string(query.request.qsource.headers.at[i - 1].name)
local v = ffi.string(query.request.qsource.headers.at[i - 1].value)
if k == 'user-agent' and v == 'Chrome' then
stats['request.agent.chrome'] =
stats.get('request.agent.chrome') + 1
return nil
end
end
end
return nil
end
end
stats['request.agent.chrome'] = 0
net.doh_headers({'user-agent'})
policy.add(count_chrome_doh())
Dňa 15. 9. 2023 o 13:23, Vladimír Čunát
<vladimir.cunat(a)nic.cz> napísal:
On 15/09/2023 13.04, Vladimír Čunát wrote:
(I don't recall if all http headers get
always pulled into this structure, but you should see that practically soon.)
After
remembering a bit more and looking into source, you need to configure in advance the
header names that would get pulled into that place. In your case that should be simply
adding one line into your config (outside the callbacks)
net.doh_headers({ 'user-agent' })
--