Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 squid bugfix about offline mode   Ramazan Ja-Far   27 Sep 2002 18:08:24 
Архивное /ru.linux/34843c94479c7.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional