Hi, On sze, nov 12, 2008 at 11:40:30 +0000, Andrey Luzgin wrote:
Hello,
While I can see example of using udp on tproxy2 onto the redirect-udp-recv.c file, I can't find equivalent on tproxy4.
For getting the original destination IP, I just use setsockopt IP_PKTINFO: setsockopt(sd, SOL_IP, IP_PKTINFO , &flags, sizeof(flags));
But I don't know how to get the original destination port:
a) I manually defined IP_RECVORIGADDRS to be 11273 as I find on tproxy2: setsockopt(sd, SOL_IP, IP_RECVORIGADDRS , &flags, sizeof(flags)); but the setsockopt failed.
b) the getsockname give me the server listening port.
Since tproxy 4 (unlike tproxy 2) doesn't modify the incoming packets in any way you should be able to get the correct destination address by simply calling recvfrom() and using the source address returned by the kernel. -- KOVACS Krisztian