--- squid-2.5.STABLE7/src/client_side.c.original 2004-12-13 19:09:38.000000000 +0200 +++ squid-2.5.STABLE7/src/client_side.c 2004-12-13 19:09:58.000000000 +0200 @@ -1965,6 +1965,30 @@ return; } if (http->out.offset == 0) { + /* Zero Penalty Patch (ZPH) begins here ----> */ + char my_options [] = { 0x88, 0x04, 0xAB, 0xCD }; + switch ( http->log_type ) + { + /* Match cache hits */ + case LOG_TCP_HIT: + case LOG_TCP_REFRESH_HIT: + case LOG_TCP_REFRESH_FAIL_HIT: + case LOG_TCP_IMS_HIT: + case LOG_TCP_MEM_HIT: + case LOG_TCP_OFFLINE_HIT: + enter_suid(); + if (setsockopt(fd, IPPROTO_IP, IP_OPTIONS, my_options, 4 ) < 0) + { + debug(50, 1) ("setsockopt(IP_OPTIONS) on FD %d: %s\n", fd, xstrerror()); + } + + leave_suid(); + break; + default: + break; + } + /* <----- End of ZPH */ + rep = clientBuildReply(http, buf, size); if (rep) { aclCheck_t *ch;