[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:01003] wnnstat for AF_UNIX
- To: freewnn@XXXX
- Subject: [freewnn:01003] wnnstat for AF_UNIX
- From: 亀井 信義 <zic-fw@XXXX>
- Date: 24 Aug 2003 21:40:29 -0000
- Reply-to: freewnn@XXXX
- User-agent: SEMI/1.14.4 (Hosorogi) FLIM/1.14.4 (Kashiharajingū-mae) APEL/10.4 Emacs/21.2 (i386-redhat-linux-gnu) MULE/5.0 (SAKAKI)
RedHat で頑張って使っているので、
この手の問題とのつき合いはは1年以上になるのですが、
RH9 標準の FreeWnn-1.11-34 では AF_UNIX 経由でのみ、jserverが使えるようです。
余談として、今だかつて私は FreeWnn-1.11-34 を使っての変換に成功したことがないのですが、それが何故かを時間が少しとれる度に調べようとしています。
調べる手段の1つである wnnstat は、接続先 jserver を次のように判別しますね。
これは man ページと、ソースの双方で確認しました。
1. 引数に jserver 指定があれば、それを使う。
2. 環境変数(JSERVER)に指定があれば、それを使う。
3. serverdefs ファイルの指定言語レコードに jserver ホスト名があれば、それを使う。
FreeWnn-1.11-34 では、 /etc/FreeWnn/serverdefs に、
ja jserver /tmp/jd_sockV4 wnn4 22273
japanese jserver /tmp/jd_sockV4 wnn4 22273
nihongo jserver /tmp/jd_sockV4 wnn4 22273
という指定があります。
そのため、
引数に jserver を指定せず、かつ、環境変数 JSERVER も指定しない
という形で AF_UNIX を参照させようとしても、
ルール 3. によって、jserver という名前のホストを探しにいってしまいます。
なので、AF_UNIXでしか立ち上がらないように build されている FreeWnn-1.11-34 では、 wnnstat は使えません。
これは、どう直すのが良いのでしょうね?
wnnstat を改変するのは、例えば以下のようなパッチで AF_UNIX を強制するオプションを増やす、という方法がありますね?
--- /usr/src/redhat/BUILD/FreeWnn-1.1.1-a017/Xsi/Wnn/jutil/wnnstat.c.org 2003-08-25 05:14:44.000000000 +0900
+++ /usr/src/redhat/BUILD/FreeWnn-1.1.1-a017/Xsi/Wnn/jutil/wnnstat.c 2003-08-25 05:14:15.000000000 +0900
@@ -85,7 +85,7 @@ main (argc, argv)
int argc;
char **argv;
{
- char *serv;
+ char *serv = "";
int c, i, j;
WNN_ENV_INFO *w;
static char lang[64] = { 0 };
@@ -114,13 +114,13 @@ main (argc, argv)
#ifdef JAPANESE
-# define OPTSTRING "weEdDfFUSJVL:"
+# define OPTSTRING "zweEdDfFUSJVL:"
#endif
#ifdef CHINESE
-# define OPTSTRING "weEdDfFUBCVL:"
+# define OPTSTRING "zweEdDfFUBCVL:"
#endif
# ifdef KOREAN
-# define OPTSTRING "weEdDfFUKVL:"
+# define OPTSTRING "zweEdDfFUKVL:"
#endif
@@ -128,6 +128,9 @@ main (argc, argv)
{
switch (c)
{
+ case 'z':
+ serv = NULL; /* force AF_UNIX */
+ break;
case 'w':
com = W_WHO;
break;
@@ -204,6 +207,9 @@ main (argc, argv)
{
server_env = WNN_DEF_SERVER_ENV;
}
+
+ if (serv) /* check option -z */
+ {
if (argc > 1)
{
serv = argv[1];
@@ -223,6 +229,10 @@ main (argc, argv)
}
}
}
+ }
+ else
+ serv = ""; /* force AF_UNIX */
+
if (js == NULL && (js = js_open_lang (serv, lang, WNN_TIMEOUT)) == NULL)
{
out ("%s:", prog);
--
亀井 信義