To install the squid package:
# pkgadd -d `pwd`/squid.pkgTo start squid, use the /usr/sbin/squid script:
# squid startTo stop squid:
# squid stopOptions accepted by /usr/sbin/squid include start, stop, enable, disable, query, restart, and rotate. See squid(1M) for details.
This squid package installs into /usr/internet/squid, rather than squid's usual directory /usr/local/squid. It uses the industry standard port of 8080, rather than the historical squid standard of 3128.
# custom -i -p SCO:Squid -z `pwd`The squid start/stop script behaves the same on OpenServer as it does on Unixware.
# /usr/internet/squid/bin/squid -z # squid start
This patch works around a bug in the UnixWare 7.0.1 sockets library.*** ftp.c.default Tue Sep 28 14:11:21 1999 --- ftp.c Tue Sep 28 14:13:33 1999 *************** *** 867,872 **** --- 867,876 ---- memset(ftpState->data.buf + ftpState->data.offset, '\0', read_sz); Counter.syscalls.sock.reads++; len = read(fd, ftpState->data.buf + ftpState->data.offset, read_sz); + if (len == 0) { + Counter.syscalls.sock.reads++; + len = read(fd, ftpState->data.buf + ftpState->data.offset, read_sz); + } if (len > 0) { fd_bytes(fd, len, FD_READ); #if DELAY_POOLS
After applying the patch, Squid for SCO is built with the following options:
SCO is built using the following options:*** pinger.c.original Tue Oct 19 13:23:47 1999 --- pinger.c Tue Oct 19 13:26:35 1999 *************** *** 111,116 **** "Out of Range Type" }; static int in_cksum(unsigned short *ptr, int size); static void pingerRecv(void); static void pingerLog(struct icmphdr *, struct in_addr, int, int); --- 111,117 ---- "Out of Range Type" }; + #ifndef _SCO_DS static int in_cksum(unsigned short *ptr, int size); #endif static void pingerRecv(void); *************** *** 112,117 **** }; static int in_cksum(unsigned short *ptr, int size); static void pingerRecv(void); static void pingerLog(struct icmphdr *, struct in_addr, int, int); static int ipHops(int ttl); --- 113,119 ---- #ifndef _SCO_DS static int in_cksum(unsigned short *ptr, int size); + #endif static void pingerRecv(void); static void pingerLog(struct icmphdr *, struct in_addr, int, int); static int ipHops(int ttl); *************** *** 242,248 **** pingerLog(icmp, from.sin_addr, preply.rtt, preply.hops); } ! static int in_cksum(unsigned short *ptr, int size) { --- 244,250 ---- pingerLog(icmp, from.sin_addr, preply.rtt, preply.hops); } ! #ifndef _SCO_DS static int in_cksum(unsigned short *ptr, int size) { *************** *** 264,269 **** answer = ~sum; return (answer); } static void pingerLog(struct icmphdr *icmp, struct in_addr addr, int rtt, int hops) --- 266,272 ---- answer = ~sum; return (answer); } + #endif static void pingerLog(struct icmphdr *icmp, struct in_addr addr, int rtt, int hops)
--prefix=/usr/internet/squid --enable-icmp --enable-snmp --enable-time-hack --enable-useragent-log --enable-htcp --enable-carp --enable-gnuregex --enable-delay-pools --enable-cache-digests