[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00780] Re: [RFC] error.c rewrite
- To: freewnn@tomo.gr.jp
- Subject: [freewnn:00780] Re: [RFC] error.c rewrite
- From: aono@XXXX (Tomoki AONO)
- Date: Wed, 16 Jan 2002 19:00:08 JST
- In-Reply-To: Your message of "Wed, 02 Jan 2002 02:24:44 +0900".<86y9jiyof7.wl@chrysanthe.oikumene.gcd.org>
- Reply-To: freewnn@tomo.gr.jp
再び青野です。こんばんは。
<86y9jiyof7.wl@chrysanthe.oikumene.gcd.org>の記事において
hiroo@oikumene.gcd.orgさんは書きました。
>> > 変更点:
>> ざっと見ただけですが、これで良いのではないかと思います。
>> 細かいところはきちんと見ないといけないと思いますが、大筋は全
>> く文句ありません。
>> (私が考えていた変更はもっとちゃちなものだったので、書いていた
>> だけて嬉しいです)。
インデントなどのコーディングスタイルとログファイルの形式
(日付はCommon Log Formatに似せています)が一番気になってい
るのですが、その他の内容についても何かあればお願いします。
>> ついでに、error.c の使われていない部分は消してしまいませんか?
開発中のソースの入ったマシンがトラブルで使えなくなってます
ので、解決次第(思い切って)消してみます。
>> また、青野さんの patch の中身に直接は関係しないところで、
>> ・cmd_name を path 名にしてしまったが、やっぱり
>> cmd_name は [jckt]server にして、
>> argv[0] は起動された時 (かつ noisy の時?) に表示する
argv[0]は疑問が残りますが、そうしていただいたほうがよいと
思います。
>> ・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行ということなら、前者がよいと私は思います。
私もその方がよいと思いつつ、書き換えはまだ手をつけていません。
ついでに[freewnn:00774]のsignal_handlerについてもいくつか
コメントさせてください。ひとつは、どのシグナルを受けたかを
表示 or ログに記録した方がよいと思います。
もうひとつは、現在signal()によるシグナルハンドラの再定義は
SYSVR2のみとなっているのですが、ANSI C89的には必要となって
いるので#ifdef は取ってもいいのではないかと思います。
#古い環境でシグナルハンドラ再定義による弊害があるのならば
#また考える必要がありますが。
自分も書いてしまっているので大きなことは言えませんが、新し
く書くコードではSYSVR2などの(X由来の) システム固有のマクロ
で分岐するのを排除した方がよいと思います。(極力configureで
調べた結果(HAVE_hogeなど)で対処する方向で…。)移植性が多少
なりともあがると思います。
----
青野智樹 (aono@cc.osaka-kyoiku.ac.jp)