Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Feb 1997 07:40:03 -0800 (PST)
From:      Jean-Luc Richier <Jean-Luc.Richier@imag.fr>
To:        freebsd-bugs
Subject:   Re: bin/2668: modification suggested for rarpd
Message-ID:  <199702051540.HAA02144@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/2668; it has been noted by GNATS.

From: Jean-Luc Richier <Jean-Luc.Richier@imag.fr>
To: FreeBSD-gnats@freefall.freebsd.org, freebsd-bugs@freefall.freebsd.org
Cc:  Subject: Re: bin/2668: modification suggested for rarpd
Date: Wed, 5 Feb 1997 15:28:57 +0100 (MET)

 In your mail dated 5 Feb  5:40 you write :
 >Thank you very much for your problem report.
 >It has the internal identification `bin/2668'.
 >The individual assigned to look at your
 >bug is: freebsd-bugs. 
 >
 >>Category:       bin
 >>Responsible:    freebsd-bugs
 >>Synopsis:       modification suggested for rarpd
 >>Arrival-Date:   Wed Feb  5 05:40:02 PST 1997
 
 First an apology : The previous message was about NetBSD and not FreeBSD.
 This one is the correct.
 
 Following a remark of Theo de Raadt <deraadt@theos.com> about a memory leak
 in my suggested patch, here is a updated version for FreeBSD
 
 I hope this will help you
 
 *** rarpd.c.DIST	Wed Jun  5 04:57:54 1996
 --- rarpd.c	Wed Feb  5 15:15:55 1997
 ***************
 *** 114,119 ****
 --- 114,122 ----
   void lookup_eaddr();
   void lookup_ipaddr();
   
 + int aflag = 0;		/* listen on "all" interfaces  */
 + int fflag = 0;		/* don't fork */
 + 
   void
   main(argc, argv)
   	int argc;
 ***************
 *** 122,130 ****
   	int op, pid;
   	char *ifname, *hostname, *name;
   
 - 	int aflag = 0;		/* listen on "all" interfaces  */
 - 	int fflag = 0;		/* don't fork */
 - 
   	extern char *optarg;
   	extern int optind, opterr;
   
 --- 125,130 ----
 ***************
 *** 183,195 ****
   	char *ifname;
   {
   	struct if_info *p;
   
   
   	p = (struct if_info *)malloc(sizeof(*p));
   	p->ii_next = iflist;
   	iflist = p;
   
 ! 	p->ii_fd = rarp_open(ifname);
   	lookup_eaddr(p->ii_fd, p->ii_eaddr);
   	lookup_ipaddr(ifname, &p->ii_ipaddr, &p->ii_netmask);
   }
 --- 183,199 ----
   	char *ifname;
   {
   	struct if_info *p;
 + 	int fd;
   
 + 	fd = rarp_open(ifname);
 + 	if (fd < 0)
 + 		return;
   
   	p = (struct if_info *)malloc(sizeof(*p));
   	p->ii_next = iflist;
   	iflist = p;
   
 ! 	p->ii_next = fd;
   	lookup_eaddr(p->ii_fd, p->ii_eaddr);
   	lookup_ipaddr(ifname, &p->ii_ipaddr, &p->ii_netmask);
   }
 ***************
 *** 305,310 ****
 --- 309,318 ----
   	}
   	(void)strncpy(ifr.ifr_name, device, sizeof ifr.ifr_name);
   	if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) < 0) {
 + 		if (aflag) {	/* for -a skip not ethernet interfaces */
 + 			close(fd);
 + 			return -1;
 + 		}
   		syslog(LOG_ERR, "BIOCSETIF: %m");
   		exit(1);
   	}
 ***************
 *** 317,322 ****
 --- 325,334 ----
   		exit(1);
   	}
   	if (link_type != DLT_EN10MB) {
 + 		if (aflag) {	/* for -a skip not ethernet interfaces */
 + 			close(fd);
 + 			return -1;
 + 		}
   		syslog(LOG_ERR, "%s not on ethernet", device);
   		exit(1);
   	}
 
 -- 
 Jean-Luc RICHIER (Jean-Luc.Richier@Imag.Fr  richier@imag.fr)
 Laboratoire Logiciels, Systemes et Reseaux (LSR-IMAG)
 IMAG-CAMPUS, BP 53, F-38041 GRENOBLE Cedex 9
 Tel : (33) 4 76 82 72 32 Fax : (33) 4 76 82 72 87
 



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