Hugo Domibay - 2020-01-31

I found the Function TBlockSocket.RecvBuffer(Buffer: TMemory; Length: Integer): Integer; accomplishes exactly what I was missing.
It reads forcefully on the Socket and processes the Empty Packet.
It reports a String of "0" Bytes read but
1) Senders IP Address is obtained
2) Socket is cleared

11926 write(1, "listen: next go ...\n", 20) = 20
11926 ioctl(3, FIONREAD, [0])           = 0
11926 select(4, [3], NULL, NULL, {2, 0}) = 1 (in [3], left {0, 801644})
11926 ioctl(3, FIONREAD, [0])           = 0
11926 write(1, "rcv pkt: ''\n", 12)     = 12
11926 recvfrom(3, "", 1, MSG_NOSIGNAL, {sa_family=AF_INET, sin_port=htons(51984), sin_addr=inet_addr("nmap_scanner_ip")}, [16]) = 0
11926 write(1, "Message from (<nmap_scanner_ip> : 51"..., 58) = 58
11926 write(1, "sck empty message.\n", 19) = 19

So the Service can recover and continue with normal operations.

 

Last edit: Hugo Domibay 2020-01-31