[Mew-dist 04458] PopTimeout patch

Shigechika AIKAWA shige at example.com
1998年 4月 22日 (水) 11:05:05 JST


 こんにちは、相川と申します。

 とっても細い線でPOPを使っていると、imgetが20秒のタイムアウトに引っ掛か 
り、処理を中断してしまいます。そこで、タイムアウト値をConfigファイルで設
定できるパッチをつくりました。

 たとえば、~/.im/Configにて、PopTimeout=200と追加すれば、200秒がんばるよ
うになります。

 とりあえず、自分の環境で動くことは確認していますが、なにぶんQuickHackで
すので、無保証ということをお断りしておきます。
 以下、IM-90用のパッチを添付します。

-------------- next part --------------
--- Config.pm.~1~	Mon Apr 13 19:29:09 1998
+++ Config.pm	Wed Apr 22 09:45:55 1998
@@ -46,7 +46,7 @@
     nntpservers nntphistoryfile
     popaccount pophistoryfile imapaccount httpproxy noproxy
     usepwagent pwagentport usepwfiles pwfiles
-    expand_path);
+    expand_path poptimeout);
 
 ##
 ## Constant
@@ -116,6 +116,7 @@
     'pwagentport;i;;PwAgentPort'	=> 'Port to connect agent with TCP/IP',
     'usepwfiles;b;;UsePwFiles'		=> 'Use password files',
     'pwfiles;s;;PwFiles'		=> 'Password files',
+    'poptimeout;i;;POPtimeout'		=> 'Timeout for POP access',
     );
 
     # these vars should be in current package?
@@ -780,6 +781,10 @@
     return &expand_path($POPhistory);
 }
 
+sub poptimeout () {
+    return $POPtimeout;
+}
+
 sub imapaccount () {
     return $IMAPaccount;
 }
@@ -902,4 +907,5 @@
 Imget.Src=local			# default source of imget (local mailbox)
 PopHistory=pophist		# to save last state (relative to ~/.im/)
 NntpHistory=newshist		# to save last state (relative to ~/.im/)
+PopTimeout=20			# default timeout for POP
 __END__
--- Pop.pm.~2~	Mon Apr 13 19:29:10 1998
+++ Pop.pm	Wed Apr 22 09:45:54 1998
@@ -153,7 +153,7 @@
 	im_warn("RETR command failed.\n");
 	return -1;
     }
-    alarm(20) unless win95p();
+    alarm(poptimeout()) unless win95p();
     $! = 0;
     while (<POPd>) {
 	unless (win95p()) {
@@ -189,7 +189,7 @@
     local ($_);
     my (%head);
     undef %head;
-    alarm(20) unless win95p();
+    alarm(poptimeout()) unless win95p();
     $! = 0;
     while (<POPd>) {
 	unless (win95p()) {
@@ -243,7 +243,7 @@
 	im_warn("UIDL command failed.\n");
 	return -1;
     }
-    alarm(20) unless win95p();
+    alarm(poptimeout()) unless win95p();
     $! = 0;
     while (<POPd>) {
 	unless (win95p()) {
-------------- next part --------------
---
相川成周(あいかわしげちか) shige at example.com
日本大学総合学術情報センターシステム管理課


Mew-dist メーリングリストの案内