[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00633] Re: patches after FreeWnn-1.1.1-a017
小野寛生です。
私:
> > これは、[freewnn:00595] (矢吹さん) によれば、jserver -v option の部分
> > だけ取り込めば (とりあえずは) OK?
矢吹さん:
> で指摘した cmd_name の問題については,既に
> freewnn:00032 で本木さんが,
> o WNN_DAEMON_NAME を勝手に定義しました。(de_header.h)
> o cmd_name がどこかでなにかを突っ込まれている気配がないの
> で WNN_DAEMON_NAME で初期化するように変更。(de.c)
> というパッチを提示されてました.
すみません。[freewnn:00032] の patch は見もせずに、取り込み済みかと思っ
ていました… libwrap patch だったんですね。
というわけで、現在の cmd_name は "空" です。
上記 patch から頂いてきて、cmd_name に WNN_DAEMON_NAME を突っ込むよう
にした patch を作りました。
TAIWANESE のときも、Chinese Multiclient server と表示される (はず) で
すが、"Taiwanese" と出た方が良いのでしょうか…。
あわせて、version 表示を矢吹さんの -v option patch で加えられたものの
方に統一しました。
ただし、まだ compile すらしていません。
% 前回書き忘れたのですが、将来の ISO C prototype 対応のために、
% Wnn/include/wnn_os.h で、__P macro を定義してしまってあります。
From: KATAYAMA Yoshio <kate@pfu.co.jp>
Subject: [freewnn:00033] Re: libwrap patch
Date: Sat, 07 Aug 1999 12:04:43 +0900
> > o jserver を -m 0755 でインストールするように変更。(Makefile.in)
> > # きっとやりすぎです
> > o -u で root な時に real/effective user を変えられるように
> > 変更 (de.c)
> > o -g で root な時に real/effective group を変えられるよう
> > に変更 (de.c)
>
> この3つはセットですね。「wnn アカウントを作らなければならないの
> が問題」という声を耳にしますので、これはよい方法だと思います。
>
> しかし、このパッチでは、デフォールトは root のままになってしまい
> ますので、
>
> configure のオプションでデフォールトのユーザー名を指定できる
> ようにする
>
> configure のオプションを指定しない時は、従来との互換のために
> デフォールトのユーザー名を wnn にする
>
> とした方がよいと思います。
という話もあって、きちんと見ないといけないと思いますので、こちらはちょっ
と後回し。
*** de.c.orig Sat Jun 23 08:20:38 2001
--- de.c Sat Jun 23 08:29:30 2001
***************
*** 183,188 ****
--- 183,189 ----
static int get_client (), rcv_1_client (), socket_accept (), socket_accept_in ();
int get2_cur ();
static void usage __P((void));
+ static void print_version __P((void));
char cmd_name[80];
***************
*** 200,205 ****
--- 201,207 ----
char nlspath[64];
+ strcpy (cmd_name, WNN_DAEMON_NAME);
strcpy (lang_dir, LANG_NAME);
strcpy (nlspath, LIBDIR);
strcat (nlspath, "/%L/%N");
***************
*** 217,231 ****
setuid (geteuid ());
/* check whether another jserver already exists. */
get_options (argc, argv);
! #ifdef CHINESE
! printf ("\nChinese Multi Client Server (%s)\n", SER_VERSION);
! #else
! # if KOREAN
! printf ("\nKorean Multi Client Server (%s)\n", SER_VERSION);
! # else
! printf ("\nNihongo Multi Client Server (%s)\n", SER_VERSION);
! #endif /* KOREAN */
! #endif /* CHINESE */
#ifndef NOTFORK
if (fork ())
{
--- 219,225 ----
setuid (geteuid ());
/* check whether another jserver already exists. */
get_options (argc, argv);
! print_version();
#ifndef NOTFORK
if (fork ())
{
***************
*** 1082,1096 ****
port = atoi (optarg);
break;
case 'v':
! #ifdef CHINESE
! printf ("%s %s (Chinese Multi Client Server)\n", cmd_name, SER_VERSION);
! #else
! # ifdef KOREAN
! printf ("%s %s (Korean Multi Client Server)\n", cmd_name, SER_VERSION);
! # else
! printf ("%s %s (Nihongo Multi Client Server)\n", cmd_name, SER_VERSION);
! # endif /* KOREAN */
! #endif /* CHINESE */
exit (0);
default:
usage();
--- 1076,1082 ----
port = atoi (optarg);
break;
case 'v':
! print_version();
exit (0);
default:
usage();
***************
*** 1138,1144 ****
}
}
! void
usage ()
{
fprintf(stderr,
--- 1124,1130 ----
}
}
! static void
usage ()
{
fprintf(stderr,
***************
*** 1148,1151 ****
--- 1134,1151 ----
" %s -v\n",
cmd_name);
exit (1);
+ }
+
+ static void
+ print_version ()
+ {
+ #ifdef CHINESE
+ printf ("%s %s (Chinese Multi Client Server)\n", cmd_name, SER_VERSION);
+ #else
+ # ifdef KOREAN
+ printf ("%s %s (Korean Multi Client Server)\n", cmd_name, SER_VERSION);
+ # else
+ printf ("%s %s (Nihongo Multi Client Server)\n", cmd_name, SER_VERSION);
+ # endif /* KOREAN */
+ #endif /* CHINESE */
}
*** de_header.h.orig Fri Jun 15 03:28:53 2001
--- de_header.h Sat Jun 23 08:34:13 2001
***************
*** 31,36 ****
--- 31,50 ----
#define DEMON
+ #if defined(CHINESE)
+ # if defined(TAIWANESE)
+ # define WNN_DAEMON_NAME "tserver"
+ # else /* !TAIWANESE */
+ # define WNN_DAEMON_NAME "cserver"
+ # endif
+ #else /* !CHINESE */
+ # if defined(KOREAN)
+ # define WNN_DAEMON_NAME "kserver"
+ # else
+ # define WNN_DAEMON_NAME "jserver"
+ # endif /* KOREAN */
+ #endif /* CHINESE */
+
#include "jslib.h"
#include "ddefine.h"
#include "wnn_os.h"