Sziasztok! Visszajelzesek alapjan van nehany olyan url, ami nem jon le zorpon keresztul. Egy konkret cim alapjan (http://www.skyport.net) megtalaltuk, hogy a szerver hibas fejlecet ad vissza, ezt pedig a Zorp visszautasitja (Invalid response hibauzenettel). Mivel elkepzelheto, hogy viszonylag sok problema szarmazik abbol, hogy a szerver hibas (egy specialis apache verziorol van szo), ezert implementaltunk egy opciot strict_header_checking neven, ami alapbol be van kapcsolva, de kikapcsolhato, ilyen modon RFC inkomplians valaszokat is elfogadtathatunk. A patchet backportoltam a 0.8-as agra is, ehhez a patchet itt kuldom, a 0.9-es ag uj verzioja nyilvan tartalmazni fogja. Index: http.c =================================================================== RCS file: /var/cvs/zorp-module-http/http.c,v retrieving revision 1.41.2.5 diff -u -r1.41.2.5 http.c --- http.c 2001/04/27 14:04:37 1.41.2.5 +++ http.c 2001/07/30 09:40:59 @@ -64,6 +64,7 @@ self->transparent_mode = TRUE; self->transparent_server_requests = TRUE; self->transparent_proxy_requests = FALSE; + self->strict_header_checking = TRUE; self->max_line_length = 4096; self->max_header_lines = 50; @@ -155,6 +156,11 @@ Z_VAR_TYPE_INT | Z_VAR_GET | Z_VAR_SET | Z_VAR_SET_CONFIG, &self->rewrite_host_header); + /* strict header checking */ + z_proxy_var_new(&self->super, "strict_header_checking", + Z_VAR_TYPE_INT | Z_VAR_GET | Z_VAR_SET | Z_VAR_SET_CONFIG, + &self->strict_header_checking); + /* integer */ z_proxy_var_new(&self->super, "max_line_length", Z_VAR_TYPE_INT | Z_VAR_GET | Z_VAR_SET | Z_VAR_SET_CONFIG, @@ -941,8 +947,13 @@ ; if (*colon != ':') { - z_func_leave(self, HTTP_DEBUG); - return FALSE; + if (self->strict_header_checking) + { + z_func_leave(self, HTTP_DEBUG); + return FALSE; + } + else + continue; } /* strip trailing white space */ Index: http.h =================================================================== RCS file: /var/cvs/zorp-module-http/http.h,v retrieving revision 1.21.2.1 diff -u -r1.21.2.1 http.h --- http.h 2001/04/27 14:04:38 1.21.2.1 +++ http.h 2001/07/30 09:40:59 @@ -107,6 +107,7 @@ guint parent_proxy_port; gboolean rewrite_host_header; /* rewrite host header when redirection is done */ + gboolean strict_header_checking; guint proto_version; /* version (updated by request and response) : 0x major minor (0x0009 0x0100 0x0101) */ -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1
On Mon, Jul 30, 2001 at 11:48:25AM +0200, Balazs Scheidler wrote:
Visszajelzesek alapjan van nehany olyan url, ami nem jon le zorpon keresztul. Egy konkret cim alapjan (http://www.skyport.net) megtalaltuk,
Mar korabban is jeleztem hasonlo problemat az ebay.com site-tal kapcsolatban :)
implementaltunk egy opciot strict_header_checking neven, ami alapbol be van kapcsolva, de kikapcsolhato, ilyen modon RFC inkomplians valaszokat is
Ez milyen modon mukodik? Talan igy? class BIHttp(HttpProxy): def config(self): HttpProxy.config(self) self.transparent_mode = 1 self.strict_header_checking = 0 -- Udvozlettel Zsiga
szia.
Ez milyen modon mukodik? Talan igy?
class BIHttp(HttpProxy): def config(self): HttpProxy.config(self) self.transparent_mode = 1 self.strict_header_checking = 0
így van. próbáld ki a skyport.net-en. Ha a külső interface tcpdumpban benne van még a hibás header, de belül a kliens már nem kapja meg, akkor működik :) Üdv -- Györkő Zoltán BalaBit IT Biztonságtechnikai Kft. tel/fax:(36-1)-217-14-98 1092 Bp. Köztelek u. 4/b http://www.balabit.hu
participants (3)
-
Balazs Scheidler
-
Gyorko Zoltan
-
Kosa Attila