Re: [squid-users] External C program

From: John Doe <jdmls_at_yahoo.com>
Date: Tue, 28 Apr 2009 01:59:04 -0700 (PDT)

From: Julien Philibin <julien_at_philibin.fr>
> Hi, I've been trying to find a typical external ACL C program skeleton
> for a while, but I wasn't able to find anything very interesting ...
> What I would like to do, is to read to different strings and process
> them in order to allow/disallow access to a website.
> The thing is, after a while I get two processes that use around 10 Mb
> of memory and 15% of my CPU ....
> Also, if I restart squid, I'll get two more processes running and so
> on, everytime I restart squid ...

Personaly, I use fgets/fflush and I did not see any problem (memory leak, etc) so far...
Something like:

  #define INPUTSIZE 4096
  char input[INPUTSIZE];
  while (fgets(input, sizeof(input), stdin)) {
    if ((cp=strchr(input, '\n')) == NULL) {
      fprintf(stderr, "filter: input too big: %s\n", input);
    } else {
      *cp = '\0';
    }
    ...
    fflush(stderr);
    fflush(stdout);
  }

Do you use any malloc or functions that malloc... and that would need a free?

JD

      
Received on Tue Apr 28 2009 - 08:59:12 MDT

This archive was generated by hypermail 2.2.0 : Tue Apr 28 2009 - 12:00:02 MDT