1 Patch for compatibility with new(>=3.4) Squid helper protocol
3 Bugreport: http://bugs.squid-cache.org/show_bug.cgi?id=3978
5 diff -ur squidGuard-1.5-beta.orig/src/main.c squidGuard-1.5-beta/src/main.c
6 --- squidGuard-1.5-beta.orig/src/main.c 2013-12-12 11:47:31.000000000 +1300
7 +++ squidGuard-1.5-beta/src/main.c 2013-12-12 11:50:38.000000000 +1300
13 + puts("ERR message=\"squidGuard failsafe mode\"");
19 if(parseLine(buf,&squidInfo) != 1){
20 sgLogError("ERROR: Error parsing squid line: %s",buf);
22 + puts("BH message=\"squidGuard error parsing squid line\"");
27 acl = sgAclCheckSource(src);
28 if((redirect = sgAclAccess(src,acl,&squidInfo)) == NULL){
29 if(src == NULL || src->cont_search == 0){
34 if(src->next != NULL){
44 fprintf(stdout,"%s %s/%s %s %s\n",redirect,squidInfo.src,
45 squidInfo.srcDomain,squidInfo.ident,
47 + if (isdigit(redirect[0]) && isdigit(redirect[1]) && isdigit(redirect[2]) && redirect[3]==':') {
48 + fprintf(stdout,"OK status=%c%c%c url=\"%s\"\n", redirect[0], redirect[1], redirect[2], &redirect[4]);
50 + fprintf(stdout,"OK rewrite-url=\"%s\"\n",redirect);
51 /* sgLogDebug("DEBUG: %s %s/%s %s %s\n",redirect,squidInfo.src,squidInfo.srcDomain,squidInfo.ident,squidInfo.method); */
54 diff -ur squidGuard-1.5-beta.orig/src/main.c.in squidGuard-1.5-beta/src/main.c.in
55 --- squidGuard-1.5-beta.orig/src/main.c.in 2013-12-12 11:47:31.000000000 +1300
56 +++ squidGuard-1.5-beta/src/main.c.in 2013-12-12 11:53:18.000000000 +1300
62 + puts("ERR message=\"squidGuard failsafe mode\"");
68 if(parseLine(buf,&squidInfo) != 1){
69 sgLogError("ERROR: Error parsing squid line: %s",buf);
71 + puts("BH message=\"squidGuard error parsing squid line\"");
76 acl = sgAclCheckSource(src);
77 if((redirect = sgAclAccess(src,acl,&squidInfo)) == NULL){
78 if(src == NULL || src->cont_search == 0){
83 if(src->next != NULL){
93 squidInfo.ident[0] = '-';
94 squidInfo.ident[1] = '\0';
96 - fprintf(stdout,"%s %s/%s %s %s\n",redirect,squidInfo.src,
97 - squidInfo.srcDomain,squidInfo.ident,
99 + if (isdigit(redirect[0]) && isdigit(redirect[1]) && isdigit(redirect[2]) && redirect[3]==':') {
100 + fprintf(stdout,"OK status=%c%c%c url=\"%s\"\n", redirect[0], redirect[1], redirect[2], &redirect[4]);
102 + fprintf(stdout,"OK rewrite-url=\"%s\"\n",redirect);
104 /* sgLogDebug("DEBUG: %s %s/%s %s %s\n",redirect,squidInfo.src,squidInfo.srcDomain,squidInfo.ident,squidInfo.method); */
107 diff -ur squidGuard-1.5-beta.orig/src/sgDiv.c squidGuard-1.5-beta/src/sgDiv.c
108 --- squidGuard-1.5-beta.orig/src/sgDiv.c 2013-12-12 11:47:31.000000000 +1300
109 +++ squidGuard-1.5-beta/src/sgDiv.c 2013-12-12 11:48:36.000000000 +1300
112 sgLogError("ERROR: Going into emergency mode");
113 while(fgets(buf, MAX_BUF, stdin) != NULL){
118 sgLogError("ERROR: Ending emergency mode, stdin empty");
119 diff -ur squidGuard-1.5-beta.orig/src/sgDiv.c.in squidGuard-1.5-beta/src/sgDiv.c.in
120 --- squidGuard-1.5-beta.orig/src/sgDiv.c.in 2013-12-12 11:47:31.000000000 +1300
121 +++ squidGuard-1.5-beta/src/sgDiv.c.in 2013-12-12 11:48:36.000000000 +1300
124 sgLogError("ERROR: Going into emergency mode");
125 while(fgets(buf, MAX_BUF, stdin) != NULL){
130 sgLogError("ERROR: Ending emergency mode, stdin empty");