Search squid archive

Re: Receiving blank input in External ACL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey Alberto,

PHP as a squid helper turned to be a bad choice.
I know that Ruby,Python,Perl,Golang and many others do work fine with squid.

All The Bests,
Eliezer

On 11/02/2015 17:43, Alberto Perez wrote:
# Set up the normal session helper.
external_acl_type session_active_def concurrency=1 children-max=15
children-startup=12  ipv4 ttl=3 negative_ttl=1 %SRC
/etc/squid3/captive/sessionHelper.php

And here the code

#!/usr/bin/php
<?php
error_reporting(0);
$meminstance = new Memcache();
$meminstance->pconnect('127.0.0.1', 11211);
ini_set("memory_limit",($memoryLimit=512)."M");
while (!@feof(STDIN)) {
try{

	$line = trim(fgets(STDIN));
	if (!$line) { shell_exec("echo \"SESSION - No client ip error: \"
".$line." - "." - $(date) >> /var/log/squid3/session.log");
fwrite(STDOUT, "ERR\n"); continue;}

	$line = explode(" ", $line);

	$clientip = count($line > 1)?$line[1]:false; //1738

	if (!$clientip) { shell_exec("echo \"SESSION - No client ip error: \"
".$line." - "." - $(date) >> /var/log/squid3/session.log");
fwrite(STDOUT, "ERR\n"); continue;}

	 $username = $meminstance->get($clientip);
	$hasInternet = $username?$meminstance->get("has_internet_$username"):false;
	if ($username && $hasInternet){
			// extend session
  			$meminstance->set($clientip, $username, 0,3600); // extend 10 min
			$meminstance->set("ip_".$username, $clientip, 0, 3600); // 10 min
			$meminstance->set("has_internet_".$username, true, 0, 3600); // 10 min
	                fwrite(STDOUT, "OK user=$username\n");
	}else{
         	fwrite(STDOUT, "ERR\n");
	}
}catch(Exception $e){
         	fwrite(STDOUT, "BH\n");
}
}
exit;
?>



Thanks to all


_______________________________________________
squid-users mailing list
squid-users@xxxxxxxxxxxxxxxxxxxxx
http://lists.squid-cache.org/listinfo/squid-users





[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux