head 1.6; access; symbols pkgsrc-2013Q2:1.6.0.54 pkgsrc-2013Q2-base:1.6 pkgsrc-2012Q4:1.6.0.52 pkgsrc-2012Q4-base:1.6 pkgsrc-2011Q4:1.6.0.50 pkgsrc-2011Q4-base:1.6 pkgsrc-2011Q2:1.6.0.48 pkgsrc-2011Q2-base:1.6 pkgsrc-2009Q4:1.6.0.46 pkgsrc-2009Q4-base:1.6 pkgsrc-2008Q4:1.6.0.44 pkgsrc-2008Q4-base:1.6 pkgsrc-2008Q3:1.6.0.42 pkgsrc-2008Q3-base:1.6 cube-native-xorg:1.6.0.40 cube-native-xorg-base:1.6 pkgsrc-2008Q2:1.6.0.38 pkgsrc-2008Q2-base:1.6 pkgsrc-2008Q1:1.6.0.36 pkgsrc-2008Q1-base:1.6 pkgsrc-2007Q4:1.6.0.34 pkgsrc-2007Q4-base:1.6 pkgsrc-2007Q3:1.6.0.32 pkgsrc-2007Q3-base:1.6 pkgsrc-2007Q2:1.6.0.30 pkgsrc-2007Q2-base:1.6 pkgsrc-2007Q1:1.6.0.28 pkgsrc-2007Q1-base:1.6 pkgsrc-2006Q4:1.6.0.26 pkgsrc-2006Q4-base:1.6 pkgsrc-2006Q3:1.6.0.24 pkgsrc-2006Q3-base:1.6 pkgsrc-2006Q2:1.6.0.22 pkgsrc-2006Q2-base:1.6 pkgsrc-2006Q1:1.6.0.20 pkgsrc-2006Q1-base:1.6 pkgsrc-2005Q4:1.6.0.18 pkgsrc-2005Q4-base:1.6 pkgsrc-2005Q3:1.6.0.16 pkgsrc-2005Q3-base:1.6 pkgsrc-2005Q2:1.6.0.14 pkgsrc-2005Q2-base:1.6 pkgsrc-2005Q1:1.6.0.12 pkgsrc-2005Q1-base:1.6 pkgsrc-2004Q4:1.6.0.10 pkgsrc-2004Q4-base:1.6 pkgsrc-2004Q3:1.6.0.8 pkgsrc-2004Q3-base:1.6 pkgsrc-2004Q2:1.6.0.6 pkgsrc-2004Q2-base:1.6 pkgsrc-2004Q1:1.6.0.4 pkgsrc-2004Q1-base:1.6 pkgsrc-2003Q4:1.6.0.2 pkgsrc-2003Q4-base:1.6 netbsd-1-6:1.5.0.4 netbsd-1-6-RELEASE-base:1.5 pkgviews:1.4.0.4 pkgviews-base:1.4 buildlink2:1.4.0.2 buildlink2-base:1.4 netbsd-1-5-PATCH003:1.4 netbsd-1-5-PATCH001:1.4 netbsd-1-5-RELEASE:1.4 netbsd-1-4-PATCH003:1.4 netbsd-1-4-PATCH002:1.3 comdex-fall-1999:1.3 FreeBSD-current-1999-09-12:1.1.1.1 FREEBSD:1.1.1; locks; strict; comment @# @; 1.6 date 2002.11.09.02.23.23; author itojun; state dead; branches; next 1.5; 1.5 date 2002.07.30.12.41.26; author wiz; state Exp; branches; next 1.4; 1.4 date 2000.10.03.01.29.19; author hubertf; state Exp; branches; next 1.3; 1.3 date 99.09.12.20.12.19; author dbj; state Exp; branches; next 1.2; 1.2 date 99.09.12.18.54.27; author dbj; state dead; branches; next 1.1; 1.1 date 99.09.12.18.47.50; author dbj; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 99.09.12.18.47.50; author dbj; state Exp; branches; next ; desc @@ 1.6 log @upgrade to 20021107. - moved to sourceforge, maintainer changed - manpage included in main distrib - select(2) code included in main distrib - multiple address range support @ text @$NetBSD: patch-ac,v 1.5 2002/07/30 12:41:26 wiz Exp $ --- choparp.c.orig Tue Oct 7 11:29:46 1997 +++ choparp.c @@@@ -12,6 +12,9 @@@@ #include #include #include +#ifdef __NetBSD__ +# include /* malloc() */ +#endif #include #include #include @@@@ -24,6 +27,7 @@@@ #include #include #include +#include #define BPFFILENAME "/dev/bpf%d" /* bpf file template */ #ifndef NBPFILTER /* number of available bpf */ @@@@ -180,7 +184,7 @@@@ checkarp(char *arpbuf){ fprintf(stderr,"checkarp: WARNING: received unknown type ARP request.\n"); return(0); } - target_ip = ntohl(*(u_long *)(arp->arp_tpa)); + target_ip = ntohl(*(u_int32_t *)(arp->arp_tpa)); if ((target_ip & target_mask) == target_net) return(-1); /* OK */ return(0); @@@@ -217,20 +221,35 @@@@ gen_arpreply(char *arpbuf, size_t *rlen) void loop(int fd, char *buf, size_t buflen){ - size_t rlen; + ssize_t rlen; char *p, *nextp; size_t nextlen; char *rframe; size_t rframe_len; char *sframe; size_t sframe_len; + fd_set fdset; + + FD_ZERO(&fdset); + FD_SET(fd,&fdset); for(;;){ - if ((rlen = read(fd, buf, buflen)) <= 0){ - fprintf(stderr,"loop: read: %s\n", strerror(errno)); - /* XXX: restart itself if daemon mode */ - return; - } + int r; + r = select(fd+1,&fdset, 0, 0, 0); + if ((r < 0) && (errno == EINTR)) continue; + if (r < 0) { + perror("select"); + return; + } + assert(r == 1); + + rlen = read(fd, buf, buflen); + if ((rlen < 0) && (errno = EINTR)) continue; + if (rlen < 0) { + perror("loop: read"); + return; + } + p = buf; while((rframe = getarp(p, rlen, &nextp, &nextlen)) != NULL){ if (checkarp(rframe)){ @ 1.5 log @Update to 971007nb1: Fix for sparc64, from Tomi Nylund in pkg/17759. @ text @d1 1 a1 1 $NetBSD$ @ 1.4 log @Make this go on alpha, by pulling in the right headers (it's interresting to see what's all accepted on some other archs...) @ text @d3 1 a3 1 --- choparp.c.orig Tue Oct 7 05:29:46 1997 d23 10 a32 1 @@@@ -217,20 +221,35 @@@@ @ 1.3 log @ added a select call so read doesn't fail with EWOULDBLOCK assign to result of the read to an ssize_t instead of size_t @ text @d1 1 a1 1 $NetBSD:$ d4 12 a15 2 +++ choparp.c Sun Sep 12 15:58:41 1999 @@@@ -24,6 +24,7 @@@@ d23 1 a23 1 @@@@ -217,20 +218,35 @@@@ @ 1.2 log @ changes to make work on netbsd @ text @d1 5 a5 9 --- choparp.c.orig Sat Nov 29 15:38:49 1997 +++ choparp.c Sat Nov 29 15:45:52 1997 @@@@ -21,6 +21,9 @@@@ #include #include /* #include */ +#if (__FreeBSD__ >= 3) + #include +#endif d9 46 @ 1.1 log @Initial revision @ text @@ 1.1.1.1 log @ Simple proxy arp daemon @ text @@