Squid (Lusca) + Thunder5 + TOS
Pessoal, to usando o thunder5 como parent do squid. Hoje pesquisando no fórum deles descobri que o squid retira a marcação HIT-TOS que vem do thunder.
Teria alguma maneira de fazer com que o squid não retire essa marcação, que vem do parent?
Desde já obrigado.
Re: Squid (Lusca) + Thunder5 + TOS
Citação:
Postado originalmente por
lrmurad
Pessoal, to usando o thunder5 como parent do squid. Hoje pesquisando no fórum deles descobri que o squid retira a marcação HIT-TOS que vem do thunder.
Teria alguma maneira de fazer com que o squid não retire essa marcação, que vem do parent?
Desde já obrigado.
No próprio forum tem a solução, era um patch no squid. Mas, não vai funcionar pelo TOS do thunder, e sim pelo header. Eu que não achei, senão postava.
(creio que não é ele que tira, e sim o próprio kernel)
Re: Squid (Lusca) + Thunder5 + TOS
o patch seria esse?
Código :
--- squid-ori/src/client_side.c 2008-10-06 18:27:44.000000000 -0300
+++ squid-2.7.STABLE6/src/client_side.c 2009-12-09 18:50:17.000000000 -0200
@@ -2782,14 +2782,21 @@
if (Config.zph_mode != ZPH_OFF) {
int tos = 0;
-
- if (!isTcpHit(http->log_type))
+ HttpHeader *hdr = &rep->header;
+ HttpHeaderEntry *h = httpHeaderFindEntry(hdr,HDR_X_CACHE);
+ if (h) {
+ if ((strncmp(strBuf(h->value),"HIT ",4 ) == 0) && Config.zph_parent) {
+ debug(33, 1) ("ZPH MANGA! (%s)\n",strBuf(h->value));
+ tos = Config.zph_parent;
+ }
+ }
+ else if (!isTcpHit(http->log_type))
tos = 0;
else if (Config.zph_local)
tos = Config.zph_local;
else if (Config.zph_sibling && http->request->hier.code == SIBLING_HIT)/* sibling hit */
tos = Config.zph_sibling;
- else if (Config.zph_parent && http->request->hier.code == PARENT_HIT) /* parent hit */
+ else if (Config.zph_parent && http->request->hier.code == PARENT_HIT) /* parent hit */
tos = Config.zph_parent;
if (conn->tos_priority != tos) {
conn->tos_priority = tos;
Então, coloquei num arquivo .patch, tentei aplicar mas retornou o seguinte:
patching file src/client_side.c
patch: **** malformed patch at line 5: if (Config.zph_mode != ZPH_OFF) }
tentei aplicar no Lusca. será que é por isso que dá erro? por ele ser para o squid 2.7
Re: Squid (Lusca) + Thunder5 + TOS
Citação:
Postado originalmente por
lrmurad
o patch seria esse?
Código :
--- squid-ori/src/client_side.c 2008-10-06 18:27:44.000000000 -0300
+++ squid-2.7.STABLE6/src/client_side.c 2009-12-09 18:50:17.000000000 -0200
@@ -2782,14 +2782,21 @@
if (Config.zph_mode != ZPH_OFF) {
int tos = 0;
-
- if (!isTcpHit(http->log_type))
+ HttpHeader *hdr = &rep->header;
+ HttpHeaderEntry *h = httpHeaderFindEntry(hdr,HDR_X_CACHE);
+ if (h) {
+ if ((strncmp(strBuf(h->value),"HIT ",4 ) == 0) && Config.zph_parent) {
+ debug(33, 1) ("ZPH MANGA! (%s)\n",strBuf(h->value));
+ tos = Config.zph_parent;
+ }
+ }
+ else if (!isTcpHit(http->log_type))
tos = 0;
else if (Config.zph_local)
tos = Config.zph_local;
else if (Config.zph_sibling && http->request->hier.code == SIBLING_HIT)/* sibling hit */
tos = Config.zph_sibling;
- else if (Config.zph_parent && http->request->hier.code == PARENT_HIT) /* parent hit */
+ else if (Config.zph_parent && http->request->hier.code == PARENT_HIT) /* parent hit */
tos = Config.zph_parent;
if (conn->tos_priority != tos) {
conn->tos_priority = tos;
Então, coloquei num arquivo .patch, tentei aplicar mas retornou o seguinte:
patching file src/client_side.c
patch: **** malformed patch at line 5: if (Config.zph_mode != ZPH_OFF) }
tentei aplicar no Lusca. será que é por isso que dá erro? por ele ser para o squid 2.7
Seria esse sim, teria que ver se o Lusca não mudou a implementação (deve ter mudado)
(Lusca tem muito bug, eles ficam só na performance, e esquecem do squid 2.HEAD, o povo que tem que ficar abrindo bug report...)
Re: Squid (Lusca) + Thunder5 + TOS
vou tentar falar com eles.
Muito obrigado pela sua ajuda.