A http proxy ban tortent valami valtozas amitol a kovetkezo tortenik ha bongeszovel toltok le egy filet akkor szepen lejon ha a file letolteset a getright vegezne akkor nem tolti le
Ezt a patchet kene kiprobalni (a modules/zorp-module-http-*/http.c re kell applyolni):
Index: http.c =================================================================== RCS file: /var/cvs/zorp-module-http/http.c,v retrieving revision 1.39 diff -u -r1.39 http.c --- http.c 2001/01/30 14:18:37 1.39 +++ http.c 2001/01/31 13:22:59 @@ -1065,8 +1065,8 @@ { self->request_type = HTTP_REQTYPE_SERVER; } - else if (strcasecmp(self->request_url->str, "http://") || - strcasecmp(self->request_url->str, "ftp://")) + else if (strncasecmp(self->request_url->str, "http://", 7) || + strncasecmp(self->request_url->str, "ftp://", 6)) { /* neither Connection nor Proxy-Connection header exists */ self->request_type = HTTP_REQTYPE_PROXY;
Ez a patch meg mindig nem teljesen jo, de itt egy jobb: diff -u -r1.39 http.c --- http.c 2001/01/30 14:18:37 1.39 +++ http.c 2001/02/01 09:32:41 @@ -1065,10 +1065,10 @@ { self->request_type = HTTP_REQTYPE_SERVER; } - else if (strcasecmp(self->request_url->str, "http://") || - strcasecmp(self->request_url->str, "ftp://")) + else if (self->request_url->str[0] != '/') { - /* neither Connection nor Proxy-Connection header exists */ + /* neither Connection nor Proxy-Connection header exists, and URI + doesn't seem to be a simple filename */ self->request_type = HTTP_REQTYPE_PROXY; } else Amugy arrol van szo, hogy transzparens modban kulon meg lehet adni azt, szerver keresek (klienstol szerver fele), vagy proxy (proxytol a parent proxyhoz) keresek engedelyezettek (transparent_proxy_requests, transparent_server_requests attributumok), ehhez pedig meg kell hatarozni a keres tipusat. Ez az esetek nagy reszeben (bongeszotol szarmazo keresnel) viszonylag egyszeru, mert van Connection: v. Proxy-Connection: fejlec. Ez getright-nal nincs, ezert a keres URI resze alapjan egy kis heurisztika donti el (ha a filenev '/'-el kezdodik, akkor server kerest feltetelezek, egyebkent proxy kerest). Ez a dontes nem RFC komplians, szimpla szerver keresben is lehet teljes URL (http://<szervernev/filenev), ha ilyen kliens van a Zorp mogott, akkor be kell kapcsolni a transparent_proxy_requests-et, igy: class MyHttp(HttpProxy): def config(self): HttpProxy.config(self) self.transparent_mode = TRUE self.transparent_proxy_requests = TRUE -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1