[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"


http://www.freewnn.org/ FreeWnn Project