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