Estoy tratando de crear un acl helper externo para squid3 para (con suerte) cortar algunas líneas de configuración de mi servidor squid3 y escribí un simple script de python para ello:
#!/usr/bin/python
import sys
import logging
import time
logger = logging.getLogger( 'squid_auth' )
logger.setLevel( logging.DEBUG )
fh = logging.FileHandler( 'spam.log' )
fh.setLevel( logging.DEBUG )
formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' )
fh.setFormatter( formatter )
logger.addHandler( fh )
def grant ():
sys.stdout.write( 'OK\n' )
sys.stdout.flush()
def deny ():
sys.stdout.write( 'ERR\n' )
sys.stdout.flush()
while True:
line = sys.stdin.readline().strip()
if line:
logger.info( line )
grant()
else:
time.sleep( 1 )
y lo agregué a mi squid.conf:
external_acl_type custom_acl %SRC %LOGIN %DST /etc/changemyip/squid/config/acl.py
acl CustomAcl external custom_acl
http_access allow CustomAcl
La ruta al script es correcta (puedo ejecutarlo en shell), el programa tiene derechos de ejecución y todo, pero, cuando vuelvo a cargar el calamar, aparece este error unas 5-6 veces y luego el calamar se bloquea:
Aug 17 14:08:52 server7 (squid): The custom_acl helpers are crashing too rapidly, need help!
Aug 17 14:08:52 server7 squid[28233]: Squid Parent: child process 28290 exited with status 1
Aug 17 14:08:52 server7 squid[28233]: Exiting due to repeated, frequent failures
Como puede ver, el script solo se imprime OK\n
en el stdout para otorgar a todos. Ni siquiera he comenzado a implementar ninguna lógica.
Probado con la versión de calamar: 3.1.19