Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Nov 1997 22:12:48 +0000
From:      Brian Somers <brian@awfulhak.org>
To:        Feiyi Wang <fwang2@eos.ncsu.edu>
Cc:        questions@FreeBSD.ORG
Subject:   Re: divert socket problem 
Message-ID:  <199711122212.WAA06756@awfulhak.demon.co.uk>
In-Reply-To: Your message of "Wed, 12 Nov 1997 15:05:50 EST." <346A0C1E.687@eos.ncsu.edu> 

next in thread | previous in thread | raw e-mail | index | archive | help
> Hi, there
> 
> I am playing with DIVERT socket. Basically, I want to divert a
> particular protocol stream to another port, and read it from my program.
> The firewall rules I am using is pretty simple. 89 is the protocol
> number.
> 
> /sbin/ipfw -f flush
> /sbin/ipfw divert 50000 89 from any to any

Do you mean

  /sbin/ipfw add divert 50000 all from any 89 to any

> /sbin/ipfw pass all from any to any
> 
> >From /sbin/ipfw show, I can see there ARE packets which match the rule 2
> and diverted. But I can't read anything, recvfrom() blocks.  Am I
> missing something here? Anybody can help me out?
> 
> 
> sockfd = socket(AF_INET,SOCK_RAW, IPPROTO_DIVERT)
> 
> addr.sin_family = AF_INET
> addr.sin_addr.s_addr=INADDR_ANY
> addr.sin_port=50000 
> 
> bind(sockfd, (struct sockaddr *)&addr, sizeof addr)
> 
> readfrom(sockfd, ....)

Do you mean recvfrom() ?  If so, this looks ok except for the above 
ipfw command.

> 
> Thanks
> 
> /Feiyi

-- 
Brian <brian@Awfulhak.org>, <brian@FreeBSD.org>, <bri@OpenBSD.org>
      <http://www.Awfulhak.org>;
Don't _EVER_ lose your sense of humour....





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199711122212.WAA06756>