Subject: Re: Controlling source IP address
To: Mailinglist 'NetBSD-help' <netbsd-help@NetBSD.ORG>
From: Holger Kruse <kruse@america.com>
List: netbsd-help
Date: 09/18/1996 15:01:25
In article <199609181727.NAA10895@vex.net>, David Maxwell <david@vex.net> wrote:
 
> {
> char ipr[100] = "205.206.248.72" ;
> u_long adr2;
> int r,z;
> struct sockaddr_in myadr;
> 
> inet_aton(ipr,&myadr.sin_addr);
> 
> r= bind(s,(caddr_t)myadr.sin_addr.s_addr,sizeof(myadr.sin_addr.s_addr));

Here you are passing the IP address as a caddr_t. Not a good idea :-).
Besides bind() needs a full sockaddr_in, not just the IP address. Try

myadr.sin_port=0;
myadr.sin_len=sizeof(myadr);
myadr.sin_family=AF_INET;
r= bind(s,(struct sockaddr *)&myadr,sizeof(myadr));

--
Holger Kruse   kruse@cs.ucf.edu   kruse@america.com
               http://www.america.com/~kruse/home.html