2012/4/11 Amos Jeffries <squid3@xxxxxxxxxxxxx>: > On 12.04.2012 06:12, Mohamed Amine Kadimi wrote: >> >> 2012/4/10 Amos Jeffries <squid3@xxxxxxxxxxxxx>: >>> >>> On 11.04.2012 03:27, Mohamed Amine Kadimi wrote: >>>> >>>> >>>> Hello, >>>> >>>> I'm trying to make an external helper which will be called by an acl, >>>> so I have created one which is very simple: it takes an IP in stdin >>>> and returns OK if it maches a predefined IP. >>>> >>>> It works when I test it from the CLI, however when I put the relevant >>>> directives in the squid.conf file and restart squid the connection to >>>> internet is no longer possible. >>>> >>>> The message displayed by FF is : "Firefox is configured to use a proxy >>>> server that is refusing connections". >>> >>> >>> >>> It would seem Squid is not listening on the IP:port which Firefox is >>> trying >>> to use, or a firewall is actively rejecting port 3128 TCP connections. >>> >>> 1) check that squid is running okay. It should be fine if your helper >>> runs >>> okay on command line, but read+execute access permission differences >>> between >>> the squids user and your own user account can still cause problems. Run >>> "squid -k parse" or look in cache.log for message if Squid is not >>> starting. >>> >>> 2) check that port 3128 is accessible. telnet etc can be used here. A >>> packet >>> dump may be needed to find which device is rejecting TCP packets to port >>> 3128. >>> >> >> It's not a connectivity issue since Squid is working fine unless I >> uncomment the lines relevant to my external helper. >> >> I noticed some errors I didn't understand in the cache.log: >> >> ####### >> 2012/04/11 17:56:19| Accepting HTTP connections at [::]:3128, FD 24. >> 2012/04/11 17:56:19| HTCP Disabled. >> 2012/04/11 17:56:19| Squid modules loaded: 0 >> 2012/04/11 17:56:19| Adaptation support is off. >> 2012/04/11 17:56:19| Ready to serve requests. >> 2012/04/11 17:56:19| WARNING: src_ip_ext #1 (FD 10) exited >> 2012/04/11 17:56:19| WARNING: src_ip_ext #4 (FD 16) exited >> 2012/04/11 17:56:19| WARNING: src_ip_ext #2 (FD 12) exited >> 2012/04/11 17:56:19| WARNING: src_ip_ext #3 (FD 14) exited > > > These causing .... > > >> 2012/04/11 17:56:19| Too few src_ip_ext processes are running >> 2012/04/11 17:56:19| storeDirWriteCleanLogs: Starting... >> 2012/04/11 17:56:19| Finished. Wrote 0 entries. >> 2012/04/11 17:56:19| Took 0.00 seconds ( 0.00 entries/sec). >> FATAL: The src_ip_ext helpers are crashing too rapidly, need help! > > > ... this ... > > >> >> Squid Cache (Version 3.1.6): Terminated abnormally. > > > ... resulting in the proxy being shutdown. ie (1). > > >> ####### >> >> I think I'll need to review my program. > > > Hmm. The only thing that looks like it might cause issues is fopen() for the > debug log. > I've rewritten the source code excluding fopen() and handling concurrency but I still get the same problem. Here's the new one: #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_INPUT 8192 int main(int argc, char **argv) { char request [MAX_INPUT]; while (fgets(request, MAX_INPUT , stdin) != NULL) { const char *channel_id = strtok(request, " "); char *detail = strtok(NULL, "\n"); if (detail == NULL) { // Only 1 paramater supplied. We are expecting at least 2 (including the channel ID) fprintf(stderr, "FATAL: %s is concurrent and requires the concurrency option to be specified.\n", program_name); exit(1); } if (strcmp(detail,"172.30.30.1")==0) printf ("%s OK\n",channel_id); else printf ("%s ERR\n",channel_id); } return 0; }