I am almost certainly missing something very basic, but I haven't found out
what after searching here and elsewhere, so any help will be greatly
appreciated.
I'm using squid 3.1 on Fedora 12 (64-bit).
I want to write an external acl helper (for fun!) and started with a toy
example written in C which is only going to allow the URL
"http://www.google.com". It works as I expect when I run it at the command
line (lines are read one-by-one from standard input and a reply of "OK" or
"ERR" appears on standard output), but the output I get from squid says:
2010/04/14 08:40:23.731| helperOpenServers: Starting 5/5 'toy_helper'
processes
...
2010/04/14 08:40:31.197| WARNING: toy_helper #1 (FD 7) exited
2010/04/14 08:40:31.197| WARNING: toy_helper #3 (FD 11) exited
2010/04/14 08:40:31.198| WARNING: toy_helper #2 (FD 9) exited
2010/04/14 08:40:31.198| WARNING: toy_helper #4 (FD 13) exited
2010/04/14 08:40:31.198| Too few toy_helper processes are running
...
FATAL: The toy_helper helpers are crashing too rapidly, need help!
In the squid.conf file I've put:
external_acl_type toy_helper %PATH /tmp/squid-tests/toy_helper
acl toy external toy_helper
This squid.conf and the toy_helper executable are both in /tmp/squid-tests,
and everything there is world-readable.
Lastly, here is the source for toy_helper:
1 #include <stdio.h>
2 #include <string.h>
3 #define BUFSIZE 8192
4
5 int
6 main(int argc, char *argv[])
7 {
8
9 char buf[BUFSIZE];
10
11 /* make standard output and input unbuffered */
12 setvbuf(stdout, NULL, _IONBF, 0);
13 setvbuf(stdin, NULL, _IONBF, 0);
14
15 /* main loop: read lines from stdin */
16 while ( fgets(buf, sizeof(buf), stdin) )
17 {
18 if ( strcmp("http://www.google.com/\n", buf) == 0 )
19 printf("OK\n");
20 else
21 printf("ERR\n");
22 }
23
24 return 0;
25 }
Thanks in advance for any clues,
John.
-- View this message in context: http://n4.nabble.com/Trouble-writing-external-acl-helper-tp1839464p1839464.html Sent from the Squid - Users mailing list archive at Nabble.com.Received on Wed Apr 14 2010 - 08:38:12 MDT
This archive was generated by hypermail 2.2.0 : Wed Apr 14 2010 - 12:00:04 MDT