[zorp-hu] Idle timeout
Nemeth Gyorgy
friczy at censor.khb.hu
2007. Nov. 5., H, 11:06:31 CET
On Mon, 5 Nov 2007 09:51:43 +0100
Hegedüs Ervin <airween at freemail.hu> wrote:
> Hello,
>
> Zorp 3.0.8 GPL csomagbol, Debian Etch.
>
> A kliens elindit egy hosszabb kerest, ami egy dokumentumot
> general. Sajnos a fejlesztok ugy keszitettek el az alkalmazast,
> hogy teljesen szinkron modon fut minden, tehat ha az alkalmazas
> 90 percig kesziti a kimenetet, akkor az "termeszetes".
>
> Hogy tudom lebeszelni a Zorp-ot arrol, hogy kozben lebontsa a
> kapcsolatot? Most 10mp utan bont, a modulban talaltam egy
> timeout_request-et, ami 10mp, de van egy timeout attributum is.
>
> Tudnatok segiteni, melyik pontosan mire vonatkozik, ill. mit
> allitsak be?
>
Nem tudom, GPL-es Zorpban megy-e, nekem hasonló timeoutos problémát
kellett leküzdeni kereskedelmi Zorppal (mindezt a Balabit
segítségével, tehát a megoldásért őket illeti a köszönet). Ehhez én a
Zorp által alapból nem használt tcp keepalive-ot használtam fel,
mégpedig egy új proxyosztállyal, amely az alábbi módon néz ki:
import socket
from socket import *
def config(self):
s = socket.fromfd(self.session.client_stream.fd, socket.AF_INET,
socket.SOCK_STREAM) <<<< ez itt egy sor!
s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
Ez a kliens oldal felé úgy nyitja meg a socketet, hogy a keepalive
értéket (azaz hogy kell-e keepalive-okat küldeni) beállítja, nekem ez
kellett, gondolom a tofd a server oldali descriptor, tehát
értelemszerűen módosítható.
Ezek után a /proc/sys/net/ipv4/tcp_keepalive_time értéket célszerű
átállítani valami neked megfelelőre a defaultról, és utána a fenti
proxy timeoutját akár végtelenre is állíthatod.
--
Friczy
'Death is not a bug, it's a feature'
További információk a(z) zorp-hu levelezőlistáról