Last modified: Thursday, July 02, 2026

youbin-3.5 youbindパッチ

youbin3, File Descriptor Table

Youbinプロトコルはメールの着信をクライアントがポーリングするのではなく, サーバからプッシュ通知することを目的としたプロトコルです. youbindサーバはメールスプールの変化を検出し,クライアントへ通知する役割を担います.

youbin-3.5に含まれるサーバyoubindには,クライアントとしてxyoubin(Youbinプロトコル対応xbiff)を使っているとファイルディスクリプタテーブルが溢れるバグがあります. syslogには"open: Too many open files"のように出力されます. クライアントにxpbiffを使った場合は問題ありません. この問題を修正するパッチです.

youbin-3.5-server_c.patch (2008/08/08)



--- Youbin-Unix/server.c	2003-05-08 12:34:45.000000000 +0900
+++ Youbin-Unix-new/server.c	2008-08-08 13:19:19.837394950 +0900
@@ -49,6 +49,7 @@
 #include <pwd.h>                /* For getpwuid(). */
 #include <signal.h>
 #include <stdio.h>
+#include <stdlib.h>
 
 #include "youbin.h"
 #include "server.h"
@@ -358,8 +359,9 @@
     }
 #endif  
     if( !(sp->mode.head_list) ) {
+      fclose(fi);
       send_packet(buff, sp);        /* Send header and so on. */
-      retrun;
+      return;
     } 
 
     line = buff + strlen(buff);


布目 淳@京都工芸繊維大学コンピュータシステム研究室 (nunome@kit.ac.jp)