[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00773] Re: [RFC] error.c rewrite



小野寛生です。
あけましておめでとうございます。

At Tue, 1 Jan 2002 01:35:31 JST,
Tomoki AONO wrote:
> もしかすると小野さんが手を付けられているのかも知れないので
前回この話を出して少ししてから、HDD がこけたり、せっかく再イ
ンストールした file system を間違えて newfs してしまったりと
いろいろあって、FreeWnn 関連は何もしていませんでした。

> 変更点:
ざっと見ただけですが、これで良いのではないかと思います。
細かいところはきちんと見ないといけないと思いますが、大筋は全
く文句ありません。
(私が考えていた変更はもっとちゃちなものだったので、書いていた
だけて嬉しいです)。

ついでに、error.c の使われていない部分は消してしまいませんか?

また、青野さんの patch の中身に直接は関係しないところで、
・cmd_name を path 名にしてしまったが、やっぱり
  cmd_name は [jckt]server にして、
  argv[0] は起動された時 (かつ noisy の時?) に表示する
・debug 用 (& tcpserver 向け?) に端末を切り離す処理を今のよ
  うに compile 時に決定しないで、option で切替える
ようにしたいと思っています。
ほかにもありますが、それは別途。

また、私が突っ込んだ strncpy() とか snprintf() は、buffer の長さを間違
えて考えていて、それでおかしな場合がある (buffer overflow している?) 
のではないかと思うので、見直しが必要です。
幸い、error.c の部分は青野さんの patch でキャンセルされますが、他にも
いれたかは覚えていません…。

> 問題点:
> 
> - 元々error1()の文字列には改行記号("\n")が含まれているので一行に収まら
> ない。

これは、error1() を呼ぶ側で付けているからですよね?
呼出側で改行をとるか、
vwrite_log() 末尾の
#ifdef SYSVR2                   /* I don't know it's useful ... (aono) */
  fprintf(fplog, " ,errno=%d", saved_errno);
#endif
  fputc('\n', fplog);
を削除するか
どちらの仕様にするかだと思います。
原則的にエラー出力は1行ということなら、前者がよいと私は思います。

> - error1()を介さずにstderrに出力している部分の変更が必要。

これは…直すしかないですね。


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