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)