Subject: squid ARP ACLs
To: None <port-i386@netbsd.org>
From: Ray Phillips <r.phillips@jkmrc.uq.edu.au>
List: port-i386
Date: 12/04/2006 19:04:55
squid [1] can use ACLs based on client MAC addresses if the option 
--enable-arp-acl is used with its ./configure command--provided, that 
is, the OS supports it.

squid.conf notes:

   "the arp ACL code is not portable to all operating systems.  It works on
    Linux, Solaris, FreeBSD and some other *BSD variants."

Unfortunately NetBSD doesn't seem to be one of them.

When I ran ./configure for squid-2.6.STABLE5's daily tar file from 
20061120 on a machine running NetBSD/i386 3.1 this was part of the 
output:

ARP ACL lists enabled (ether address)
WARNING: ARP ACL support probably won't work on i386-unknown-netbsdelf3.1.

I tried make anyway; the last part of its output, containing the 
resultant errors is appended to this message.

I wonder if there's a chance NetBSD could be tweaked so this option 
can be used, or if there's already a way to get it to work?


Ray


[1] http://squid-cache.org



/usr/bin/ar cru libbasic.a basic/auth_basic.o
ranlib libbasic.a
gcc -DHAVE_CONFIG_H 
-DDEFAULT_CONFIG_FILE=\"/usr/local/squid/etc/squid.conf\" -I. -I. 
-I../include -I. -I. -I../include -I../include     -Wall -g -O2 
-DUNLINK_DAEMON -c ./unlinkd.c -o unlinkd-daemon.o
gcc  -Wall -g -O2  -g -o unlinkd   unlinkd-daemon.o
if gcc -DHAVE_CONFIG_H 
-DDEFAULT_CONFIG_FILE=\"/usr/local/squid/etc/squid.conf\" -I. -I. 
-I../include -I. -I. -I../include -I../include     -Wall -g -O2 -MT 
access_log.o -MD -MP -MF ".deps/access_log.Tpo" -c -o access_log.o 
access_log.c;  then mv -f ".deps/access_log.Tpo" 
".deps/access_log.Po"; else rm -f ".deps/access_log.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H 
-DDEFAULT_CONFIG_FILE=\"/usr/local/squid/etc/squid.conf\" -I. -I. 
-I../include -I. -I. -I../include -I../include     -Wall -g -O2 -MT 
acl.o -MD -MP -MF ".deps/acl.Tpo" -c -o acl.o acl.c;  then mv -f 
".deps/acl.Tpo" ".deps/acl.Po"; else rm -f ".deps/acl.Tpo"; exit 1; fi
In file included from /usr/include/sys/sysctl.h:47,
                  from acl.c:3089:
/usr/include/uvm/uvm_extern.h:258: error: parse error before '+' token
/usr/include/uvm/uvm_extern.h:369: error: parse error before '}' token
/usr/include/uvm/uvm_extern.h:381: error: parse error before '+' token
/usr/include/uvm/uvm_extern.h:382: error: conflicting types for `active'
/usr/include/uvm/uvm_extern.h:259: error: previous declaration of `active'
/usr/include/uvm/uvm_extern.h:383: error: conflicting types for `inactive'
/usr/include/uvm/uvm_extern.h:260: error: previous declaration of `inactive'
/usr/include/uvm/uvm_extern.h:384: error: conflicting types for `paging'
/usr/include/uvm/uvm_extern.h:261: error: previous declaration of `paging'
/usr/include/uvm/uvm_extern.h:385: error: conflicting types for `wired'
/usr/include/uvm/uvm_extern.h:262: error: previous declaration of `wired'
/usr/include/uvm/uvm_extern.h:386: error: conflicting types for `zeropages'
/usr/include/uvm/uvm_extern.h:272: error: previous declaration of `zeropages'
/usr/include/uvm/uvm_extern.h:387: error: conflicting types for 
`reserve_pagedaemon'
/usr/include/uvm/uvm_extern.h:273: error: previous declaration of 
`reserve_pagedaemon'
/usr/include/uvm/uvm_extern.h:388: error: conflicting types for 
`reserve_kernel'
/usr/include/uvm/uvm_extern.h:274: error: previous declaration of 
`reserve_kernel'
/usr/include/uvm/uvm_extern.h:389: error: conflicting types for `freemin'
/usr/include/uvm/uvm_extern.h:280: error: previous declaration of `freemin'
/usr/include/uvm/uvm_extern.h:390: error: conflicting types for `freetarg'
/usr/include/uvm/uvm_extern.h:281: error: previous declaration of `freetarg'
/usr/include/uvm/uvm_extern.h:391: error: conflicting types for `inactarg'
/usr/include/uvm/uvm_extern.h:282: error: previous declaration of `inactarg'
/usr/include/uvm/uvm_extern.h:392: error: conflicting types for `wiredmax'
/usr/include/uvm/uvm_extern.h:283: error: previous declaration of `wiredmax'
/usr/include/uvm/uvm_extern.h:393: error: conflicting types for `nswapdev'
/usr/include/uvm/uvm_extern.h:298: error: previous declaration of `nswapdev'
/usr/include/uvm/uvm_extern.h:394: error: conflicting types for `swpages'
/usr/include/uvm/uvm_extern.h:299: error: previous declaration of `swpages'
/usr/include/uvm/uvm_extern.h:395: error: conflicting types for `swpginuse'
/usr/include/uvm/uvm_extern.h:301: error: previous declaration of `swpginuse'
/usr/include/uvm/uvm_extern.h:396: error: conflicting types for `swpgonly'
/usr/include/uvm/uvm_extern.h:302: error: previous declaration of `swpgonly'
/usr/include/uvm/uvm_extern.h:397: error: conflicting types for `nswget'
/usr/include/uvm/uvm_extern.h:303: error: previous declaration of `nswget'
/usr/include/uvm/uvm_extern.h:398: error: conflicting types for `nanon'
/usr/include/uvm/uvm_extern.h:304: error: previous declaration of `nanon'
/usr/include/uvm/uvm_extern.h:399: error: conflicting types for `nanonneeded'
/usr/include/uvm/uvm_extern.h:305: error: previous declaration of `nanonneeded'
/usr/include/uvm/uvm_extern.h:400: error: conflicting types for `nfreeanon'
/usr/include/uvm/uvm_extern.h:306: error: previous declaration of `nfreeanon'
/usr/include/uvm/uvm_extern.h:401: error: conflicting types for `faults'
/usr/include/uvm/uvm_extern.h:309: error: previous declaration of `faults'
/usr/include/uvm/uvm_extern.h:402: error: conflicting types for `traps'
/usr/include/uvm/uvm_extern.h:310: error: previous declaration of `traps'
/usr/include/uvm/uvm_extern.h:403: error: conflicting types for `intrs'
/usr/include/uvm/uvm_extern.h:311: error: previous declaration of `intrs'
/usr/include/uvm/uvm_extern.h:404: error: conflicting types for `swtch'
/usr/include/uvm/uvm_extern.h:312: error: previous declaration of `swtch'
/usr/include/uvm/uvm_extern.h:405: error: conflicting types for `softs'
/usr/include/uvm/uvm_extern.h:313: error: previous declaration of `softs'
/usr/include/uvm/uvm_extern.h:406: error: conflicting types for `syscalls'
/usr/include/uvm/uvm_extern.h:314: error: previous declaration of `syscalls'
/usr/include/uvm/uvm_extern.h:407: error: conflicting types for `pageins'
/usr/include/uvm/uvm_extern.h:315: error: previous declaration of `pageins'
/usr/include/uvm/uvm_extern.h:408: error: conflicting types for `swapins'
/usr/include/uvm/uvm_extern.h:317: error: previous declaration of `swapins'
/usr/include/uvm/uvm_extern.h:409: error: conflicting types for `swapouts'
/usr/include/uvm/uvm_extern.h:318: error: previous declaration of `swapouts'
/usr/include/uvm/uvm_extern.h:410: error: conflicting types for `pgswapin'
/usr/include/uvm/uvm_extern.h:319: error: previous declaration of `pgswapin'
/usr/include/uvm/uvm_extern.h:411: error: conflicting types for `pgswapout'
/usr/include/uvm/uvm_extern.h:320: error: previous declaration of `pgswapout'
/usr/include/uvm/uvm_extern.h:412: error: conflicting types for `forks'
/usr/include/uvm/uvm_extern.h:321: error: previous declaration of `forks'
/usr/include/uvm/uvm_extern.h:413: error: conflicting types for `forks_ppwait'
/usr/include/uvm/uvm_extern.h:322: error: previous declaration of 
`forks_ppwait'
/usr/include/uvm/uvm_extern.h:414: error: conflicting types for `forks_sharevm'
/usr/include/uvm/uvm_extern.h:323: error: previous declaration of 
`forks_sharevm'
/usr/include/uvm/uvm_extern.h:415: error: conflicting types for `pga_zerohit'
/usr/include/uvm/uvm_extern.h:324: error: previous declaration of `pga_zerohit'
/usr/include/uvm/uvm_extern.h:416: error: conflicting types for `pga_zeromiss'
/usr/include/uvm/uvm_extern.h:326: error: previous declaration of 
`pga_zeromiss'
/usr/include/uvm/uvm_extern.h:417: error: conflicting types for `zeroaborts'
/usr/include/uvm/uvm_extern.h:328: error: previous declaration of `zeroaborts'
/usr/include/uvm/uvm_extern.h:418: error: conflicting types for `fltnoram'
/usr/include/uvm/uvm_extern.h:334: error: previous declaration of `fltnoram'
/usr/include/uvm/uvm_extern.h:419: error: conflicting types for `fltnoanon'
/usr/include/uvm/uvm_extern.h:335: error: previous declaration of `fltnoanon'
/usr/include/uvm/uvm_extern.h:420: error: conflicting types for `fltpgwait'
/usr/include/uvm/uvm_extern.h:336: error: previous declaration of `fltpgwait'
/usr/include/uvm/uvm_extern.h:421: error: conflicting types for `fltpgrele'
/usr/include/uvm/uvm_extern.h:337: error: previous declaration of `fltpgrele'
/usr/include/uvm/uvm_extern.h:422: error: conflicting types for `fltrelck'
/usr/include/uvm/uvm_extern.h:338: error: previous declaration of `fltrelck'
/usr/include/uvm/uvm_extern.h:423: error: conflicting types for `fltrelckok'
/usr/include/uvm/uvm_extern.h:339: error: previous declaration of `fltrelckok'
/usr/include/uvm/uvm_extern.h:424: error: conflicting types for `fltanget'
/usr/include/uvm/uvm_extern.h:340: error: previous declaration of `fltanget'
/usr/include/uvm/uvm_extern.h:425: error: conflicting types for `fltanretry'
/usr/include/uvm/uvm_extern.h:341: error: previous declaration of `fltanretry'
/usr/include/uvm/uvm_extern.h:426: error: conflicting types for `fltamcopy'
/usr/include/uvm/uvm_extern.h:342: error: previous declaration of `fltamcopy'
/usr/include/uvm/uvm_extern.h:427: error: conflicting types for `fltnamap'
/usr/include/uvm/uvm_extern.h:343: error: previous declaration of `fltnamap'
/usr/include/uvm/uvm_extern.h:428: error: conflicting types for `fltnomap'
/usr/include/uvm/uvm_extern.h:344: error: previous declaration of `fltnomap'
/usr/include/uvm/uvm_extern.h:429: error: conflicting types for `fltlget'
/usr/include/uvm/uvm_extern.h:345: error: previous declaration of `fltlget'
/usr/include/uvm/uvm_extern.h:430: error: conflicting types for `fltget'
/usr/include/uvm/uvm_extern.h:346: error: previous declaration of `fltget'
/usr/include/uvm/uvm_extern.h:431: error: conflicting types for `flt_anon'
/usr/include/uvm/uvm_extern.h:347: error: previous declaration of `flt_anon'
/usr/include/uvm/uvm_extern.h:432: error: conflicting types for `flt_acow'
/usr/include/uvm/uvm_extern.h:348: error: previous declaration of `flt_acow'
/usr/include/uvm/uvm_extern.h:433: error: conflicting types for `flt_obj'
/usr/include/uvm/uvm_extern.h:349: error: previous declaration of `flt_obj'
/usr/include/uvm/uvm_extern.h:434: error: conflicting types for `flt_prcopy'
/usr/include/uvm/uvm_extern.h:350: error: previous declaration of `flt_prcopy'
/usr/include/uvm/uvm_extern.h:435: error: conflicting types for `flt_przero'
/usr/include/uvm/uvm_extern.h:351: error: previous declaration of `flt_przero'
/usr/include/uvm/uvm_extern.h:436: error: conflicting types for `pdwoke'
/usr/include/uvm/uvm_extern.h:354: error: previous declaration of `pdwoke'
/usr/include/uvm/uvm_extern.h:437: error: conflicting types for `pdrevs'
/usr/include/uvm/uvm_extern.h:355: error: previous declaration of `pdrevs'
/usr/include/uvm/uvm_extern.h:438: error: conflicting types for `pdswout'
/usr/include/uvm/uvm_extern.h:356: error: previous declaration of `pdswout'
/usr/include/uvm/uvm_extern.h:439: error: conflicting types for `pdfreed'
/usr/include/uvm/uvm_extern.h:357: error: previous declaration of `pdfreed'
/usr/include/uvm/uvm_extern.h:440: error: conflicting types for `pdscans'
/usr/include/uvm/uvm_extern.h:358: error: previous declaration of `pdscans'
/usr/include/uvm/uvm_extern.h:441: error: conflicting types for `pdanscan'
/usr/include/uvm/uvm_extern.h:359: error: previous declaration of `pdanscan'
/usr/include/uvm/uvm_extern.h:442: error: conflicting types for `pdobscan'
/usr/include/uvm/uvm_extern.h:360: error: previous declaration of `pdobscan'
/usr/include/uvm/uvm_extern.h:443: error: conflicting types for `pdreact'
/usr/include/uvm/uvm_extern.h:361: error: previous declaration of `pdreact'
/usr/include/uvm/uvm_extern.h:444: error: conflicting types for `pdbusy'
/usr/include/uvm/uvm_extern.h:362: error: previous declaration of `pdbusy'
/usr/include/uvm/uvm_extern.h:445: error: conflicting types for `pdpageouts'
/usr/include/uvm/uvm_extern.h:363: error: previous declaration of `pdpageouts'
/usr/include/uvm/uvm_extern.h:446: error: conflicting types for `pdpending'
/usr/include/uvm/uvm_extern.h:364: error: previous declaration of `pdpending'
/usr/include/uvm/uvm_extern.h:447: error: conflicting types for `pddeact'
/usr/include/uvm/uvm_extern.h:365: error: previous declaration of `pddeact'
/usr/include/uvm/uvm_extern.h:448: error: conflicting types for `anonpages'
/usr/include/uvm/uvm_extern.h:275: error: previous declaration of `anonpages'
/usr/include/uvm/uvm_extern.h:449: error: conflicting types for `filepages'
/usr/include/uvm/uvm_extern.h:276: error: previous declaration of `filepages'
/usr/include/uvm/uvm_extern.h:450: error: conflicting types for `execpages'
/usr/include/uvm/uvm_extern.h:277: error: previous declaration of `execpages'
/usr/include/uvm/uvm_extern.h:451: error: conflicting types for `colorhit'
/usr/include/uvm/uvm_extern.h:330: error: previous declaration of `colorhit'
/usr/include/uvm/uvm_extern.h:452: error: conflicting types for `colormiss'
/usr/include/uvm/uvm_extern.h:331: error: previous declaration of `colormiss'
/usr/include/uvm/uvm_extern.h:453: error: conflicting types for `ncolors'
/usr/include/uvm/uvm_extern.h:269: error: previous declaration of `ncolors'
/usr/include/uvm/uvm_extern.h:454: error: parse error before '}' token
acl.c: In function `aclMatchArp':
acl.c:3442: error: parse error before "ME"
acl.c: In function `aclArpCompare':
acl.c:3509: error: parse error before "ME"
*** Error code 1

Stop.
make: stopped in 
/usr/home/ray/installers/squid/2.6/STABLE5/20061120/squid-2.6.STABLE5-20061120/src
*** Error code 1

Stop.
make: stopped in 
/usr/home/ray/installers/squid/2.6/STABLE5/20061120/squid-2.6.STABLE5-20061120/src
*** Error code 1

Stop.
make: stopped in 
/usr/home/ray/installers/squid/2.6/STABLE5/20061120/squid-2.6.STABLE5-20061120/src
*** Error code 1

Stop.
make: stopped in 
/usr/home/ray/installers/squid/2.6/STABLE5/20061120/squid-2.6.STABLE5-20061120