[tproxy] [PATCH] [TPROXY] implementedIP_RECVORIGDSTADDRsocketoption
Balazs Scheidler
bazsi at balabit.hu
Tue Nov 18 16:50:11 CET 2008
Hi,
You were right, sendto() wasn't working properly, but not because of my
last patch, it never really worked in IP_TRANSPARENT mode.
I've attached two patches I've just submitted to netdev, which should
solve your problem.
I'm Ccing the tproxy list as well.
On Mon, 2008-11-17 at 21:21 +0200, elyasaf wrote:
> You are right that in my isolate example was a bug
> Now I add transparenty and its continue to be "Invalid argument" (but
> without transparenty it work fine)
> Its some how really work before the patch, and I cant see any reason why,
> the patch seen clean and not related...
>
> int main(int argc, char *argv[]) {
> char buf[5]="aaaa";
> struct sockaddr_in source,destination;
> source.sin_family = AF_INET;
> source.sin_addr.s_addr = inet_addr("10.0.0.26");
> source.sin_port = htons(INADDR_ANY);
>
> destination.sin_family = AF_INET;
> destination.sin_port = htons(1500);
> destination.sin_addr.s_addr = inet_addr("10.0.0.2");
> send_to_transparenty(buf,4,&source,&destination);
> }
>
> int send_to_transparenty(char *buf,int len,struct sockaddr_in *source,struct
> sockaddr_in *destination){
> int fd=socket(AF_INET, SOCK_DGRAM, 0);
> int flags=1;
> if (setsockopt(fd, SOL_IP, IP_TRANSPARENT, &flags, sizeof(int)) ==
> -1){
> perror("destination-setsockopt() IP_TRANSPARENT error!");
> return;
> }else{
> printf("destination-setsockopt IP_TRANSPARENT is OK...\n");
> }
> setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &flags, sizeof(flags));
> setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &flags, sizeof(flags));
> if(bind (fd, (struct sockaddr *) source,sizeof(*source))==-1){
> perror("destination-bind() error!");
> return;
> }
> flags=0;
> if(sendto(fd,buf,len,flags,(struct sockaddr
> *)destination,sizeof(*destination))==-1){
> perror("destination-sendto() error!");
> return;
> }
> close(fd);
> }
>
> execve("./udpserver", ["./udpserver"], [/* 31 vars */]) = 0
> brk(0) = 0x602000
--
Bazsi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-TPROXY-fill-struct-flowi-flags-in-udp_sendmsg.patch
Type: application/mbox
Size: 0 bytes
Desc: not available
Url : http://lists.balabit.hu/pipermail/tproxy/attachments/20081118/96a5fc51/attachment.bin
More information about the tproxy
mailing list