From: Mike F. <mf...@su...> - 2002-02-13 01:46:03
|
Araki Ken <j00...@ip...> writes: > 荒木です:-) > > Subject: Re: [Mlterm-dev-ja] commit log [2002/02/09] (utmp) > From: Mike Fabian <mf...@su...> > Message-ID: <s3t...@gr...> > Date: Tue, 12 Feb 2002 21:14:06 +0100 > >> SYSV の事分かりませんが、utempter を使用するシステムのために >> パッチを作成しました: > > ありがとうございます:) > > ところで、utmpter のソースってどこにあるのでしょうか? > google で、utmpter や addFromUtmp などで検索しても、みあたらないので... 荒木さんがダウンロードできるために、ここに保存して置きました: http://www.suse.de/~mfabian//misc/utempter-0.5.2-15.src.rpm http://www.suse.de/~mfabian//misc/utempter-0.5.2.tar.bz2 > 実は、一点疑問がありまして、 > >> --- mlterm.orig/src/Makefile.in Sun Feb 10 10:41:21 2002 >> +++ mlterm/src/Makefile.in Tue Feb 12 13:37:12 2002 > ... >> + if (pid) >> + addToUtmp(slave, disp, pty->fd); > > これはいいとしまして、 > >> + removeFromUtmp(); > > この API なんですが、どの utmp を削除するのかを示す引数がないですよ > ね。 どの utmp を削除することは、utempter の utmpintf.c にあるstatic 変数に記憶する: static char * ptyName = NULL; static int masterFd; > これ、単一プロセス中から、複数の pty を開いている場合にも使えるので > しょうか? 私のパッチはその場合に良く効きません。すみません、複数の pty のことが 忘れました。 > たとえば、最初に /dev/pty/0 を開いて、addToUtmp( "/dev/pty/0") し、 > さらに、/dev/pty/1 を開いて、addToUtmp( "/dev/pty/1") するとし > ます。 > このあと、/dev/pty/1 を閉じて、removeFromUtmp() し、それから > /dev/pty/0 を閉じて removeFromUtmp() した場合、それぞれの > removeFromUtmp() は、ただしい pty の utmp を削除してくれるのでし > ょうか? 正しい utmp を削除しないです。 void removeLineFromUtmp(const char * pty, int fd) を使用してパッチをし直して、それを修正できるでしょう。明日やってみます。 [...] > 上記の問題について理解でき次第、早速とりこませていただきたいと思 > います。 > >> もう一つconfigure のオプションはどうですか。--with-utempter かもしれま >> せん。 > > --enable-utmp していた場合に、システムに utmpter が見つかれば、そ > ちらを使用するというのでいいんじゃないかと思います。 これもいいでしょう。 それでは、 マイク -- Mike Fabian <mf...@su...> http://www.suse.de/~mfabian 睡眠不足はいい仕事の敵だ。 |