Hi Philip,

On 14/03/2017 15:45, Philip Homburg wrote:
> Hi John,
> 
> On 2017/03/14 14:49 , John wrote:
>> feature request, when preforming DNS queries over TCP would it be
>> possible for the probe to differentiate between a timeout and a TCP
>> Reset.  Currently the result just records the following when it gets a
>> reset[1].
>>
>> `error.timeout: 5000`
> 
> I'll create a ticket for that. I have no idea about the ETA at the moment.
Awesome thanks, no need for ETA just wanted to get it on the radar

>> A similar feature to record ICMP prohibited for udp queries would also
>> be useful but likely much harder.
> 
> I wonder if the retry option would help here. The second send should get
> an error from the kernel if the previous one resulted in an error ICMP.
> 
> Actually getting the ICMP is possibly too hard, but a send error may
> help a bit. But it requires some experimenting to see if this approach
> would work.
a bit to low level, kernel, socket programing for me but a quick google
produces this if it helps

"""
Normally, UDP pretty much ignores ICMP errors, so if you want to see
them, you need to open a raw socket to receive all ICMP packets and look
for ones relevant to your socket.

On Linux, at least, an alternative is to set the IP_RECVERR socket
option. If you do that, you can do a recvmsg with the MSG_ERRQUEUE flag
set to get any ICMP (or other) errors associated with your socket. This
has the advantage of not requiring elevated privileges or a second socket.
"""

http://stackoverflow.com/questions/23118113/c-sockets-send-udp-and-process-icmp-reply-from-router

Thanks

Reply via email to