[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

no-cache



Wanderust で shimbun を読んでいるのですが、sb-cnet や 
sb-asahi 等普通のものは毎日更新されてるのに、sb-hns が最近全
く更新されないという状況になってました。

で、調べていくと http://.../title.cgi にアクセスしても更新さ
れていなかったためでした。

w3m -dump_head してみると、

  Age: 8
  X-Cache: MISS from squid-host.upper-site.domain

のように、上位のPROXY(Squid) で chache の hit miss があった
ようなヘッダがありました。

ローカルの Squid の設定が悪いのか、上位の Squid が悪いのか、
はたまたこのようなポリシーで運用しているのかよくわからないの
ですが、とりあえず reload すれば更新できるので、

  (1) w3m に -no-cache を追加する(reloadと同じ動作)
  (2) sb-hns で title.cgi を GET する時に -no-cache を付ける

という風にして回避しようと考えました。

で、(1) の w3m の -no-cache オプションのほうは、最後に付けた 
diff のようなちょっとした変更で一応使えるようになったのです
が、(2) のほうをどう改造すればいいのかがちょっと分かりません
でした。

luna 自体、ほとんど理解していないのですが、shimbun クラスに 
no-cached-index プロパティ(slot?)を追加して shimbun-headers 
メソッドあたりで no-cached-index が t なら 
w3m-*-command-arguments に "-no-cache" を append すればいけ
そうな気がしたのですが、ここまでの理解はあっていますか?

でも、これでできたとしても、な〜んかとっても汚いような気がし
て、まだ試してもいないです。

(2) を実装するには、どう改造するのが美しいのでしょう?

正しい作法を教えてください。

# できればお手本など...。(自粛)

本末転倒とは重々承知しておりますが、お知恵を拝借させてくださ
い。(_ _)
---
6/7 20:56頃
NECソフトウェア新潟 水戸

--- fm.h	2001-06-07 14:32:50+09	1.1
+++ fm.h	2001-06-07 17:25:20+09	1.2
@@ -638,6 +638,7 @@
 #endif				/* INET6 */
 global TextList *NO_proxy_domains;
 global int Do_not_use_proxy init(FALSE);
+global int Do_not_use_cache init(FALSE);
 global int Do_not_use_ti_te init(FALSE);
 
 global char *document_root init(NULL);
--- main.c	2001-06-07 14:29:18+09	1.1
+++ main.c	2001-06-07 17:25:30+09	1.2
@@ -112,6 +112,7 @@
     fprintf(f, "    +<num>           goto <num> line\n");
     fprintf(f, "    -num             show line number\n");
     fprintf(f, "    -no-proxy        don't use proxy\n");
+    fprintf(f, "    -no-cache        don't use cache\n");
 #ifdef MOUSE
     fprintf(f, "    -no-mouse        don't use mouse\n");
 #endif				/* MOUSE */
@@ -451,6 +452,8 @@
 		showLineNum = TRUE;
 	    else if (!strcmp("-no-proxy", argv[i]))
 		Do_not_use_proxy = TRUE;
+	    else if (!strcmp("-no-cache", argv[i]))
+		Do_not_use_cache = TRUE;
 #ifdef MOUSE
 	    else if (!strcmp("-no-mouse", argv[i])) {
 		mouse_end();
--- url.c	2001-06-07 15:03:35+09	1.1
+++ url.c	2001-06-07 17:25:35+09	1.2
@@ -1225,7 +1225,7 @@
     }
 
     uf.scheme = pu->scheme;
-    pu->is_nocache = (option->flag & RG_NOCACHE);
+    pu->is_nocache = ((option->flag|(Do_not_use_cache?~0:0)) & RG_NOCACHE);
     uf.ext = filename_extension(pu->file, 1);
 
     hr.command = HR_COMMAND_GET;