|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Ramazan Ja-Far 2:5020/400 27 Sep 2002 18:08:24 To : All Subject : squid bugfix about offline mode --------------------------------------------------------------------------------
Good afternoon, everyone.
Я уже писал в эту группу про глюк squid-а в offline режиме
при выдаче страниц без LM и EX хэдеров.
Повторю ещё раз:
squid кэширует страницы, не имеющие "Last-Modified:" и
"Expires:" заголовков, но после перехода в offline режим,
squid считает их stale и не выдаёт из кэша. В то же самое
время страницы, имеющие заголовок "Expires:", и так же
устаревшие (stale), разве что по другой причине (expired),
возвращаются из кэша (TCP_OFFLINE_HIT).
В результате в offline режиме я не вижу большинства (!!!)
посещённых страниц. К примеру, весь сайт www.inpro.us.com.
Замечу, что я использую следующие параметры конфигурации:
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern ^http://[^/]+redhat 7 100% 4320 \
override-expire override-lastmod
refresh_pattern . 7 20% 4320
// Override-expire/lastmod осталось от моих попыток заставить
// кэшироваться страницы сайтов *.redhat.com
Месяца три назад я отправил описание этого глюка через
squid-овую bugzill-у. Hикого там это не заинтересовало и
вчера я написал bugfix:
----------------------- patch start ----------------------
diff -u -r squid-2.4.STABLE6/src/client_side.c \
squid-2.4.STABLE6-rjf/src/client_side.c
- --- squid-2.4.STABLE6/src/client_side.c Thu Sep 26 22:02:16 2002
+++ squid-2.4.STABLE6-rjf/src/client_side.c Thu Sep 26 22:01:43 2002
@@ -1401,6 +1401,9 @@
if (e->mem_status == IN_MEMORY)
http->log_type = LOG_TCP_MEM_HIT;
clientSendMoreData(data, buf, size);
+ } else if (Config.onoff.offline) {
+ http->log_type = LOG_TCP_OFFLINE_HIT;
+ clientSendMoreData(data, buf, size);
} else if (refreshCheckHTTP(e, r) && !http->flags.internal) {
debug(33, 5) ("clientCacheHit: in refreshCheck() block\n");
/*
------------------------ patch end -----------------------
Заработало.
Прошу отметить, что мой патч не затрагивает обработку
страниц с "Cache-Control: no-cache", к примеру,
http://rhn.redhat.com/errata/rh71-errata.html
squid как не кэшировал такие страницы, так и не будет.
P.S. я пользуюсь squid-2.4.STABLE6-6.7.1
Естественно, был исправлен squid.spec и все патчи сложены
в squid-2.4.STABLE6-6.7.1rjf2.src.rpm
// Для желающих воспользоваться патчем я думаю, не составит
// проблем исправить squid.spec и собрать свой src.rpm
Мне удобнее было собрать squid из src.rpm, чем закачивать
squid-2.5.STABLE1 в tar.bz2 и руками ковырять под RedHat
layout.
Однако я подозреваю, что в новом сквиде этот глюк всё
равно не исправлен, at least bugzilla не показывает ни
одного глюка имеющего отношение к offline, кроме моего.
А интернет и своё личное время я найду на что потратить
помимо перекачки пустого squid заместь порожнего...
BTW, найденный мной глюко я лично пометил как исправленный
и приложил патч. Правильнее было _предложить_ патч и
дождаться, пока его утвердит maitainer or other responsible
person, но там просто не было варианта "submit/propose patch".
Как теперь внедрить мой патч в новую/стабильную ветку, я
не знаю. Кроме того, я зол, что мне пришлось разбираться
в чужом, довольно сложном коде, чтобы сделать тривиальное
исправление. Человек, разбирающийся в коде (один из
сквидописателей), нашёл бы причину глюка намного быстрее.
--
Bye!
Ramazan
--- ifmail v.2.15dev5
* Origin: Svit Online (post does not reflect views of Golden Tele (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/34843c94479c7.html, оценка из 5, голосов 10
|