寺西です。 (2013/03/12 16:28), NOKUBI Takatsugu wrote: > このSERVER_SOFTWAREを見る処理はどういう経緯でついたんでしたっけ。 > ChangeLog, CVSのログには記述が見当たらないのでちょっとわからないでいます。
私が開発に参加する前のことなので、詳しいことは分かりませんが、 cgi を cgi として起動した場合か否かのチェックだと思います。 通常、QUERY_STRING が NULL になるはずですが、 一部の(とは言えなくなっているかもしれませんが)Webサーバだと /cgi-bin/namazu.cgi と呼び出すと、QUERY_STRING が NULL に なるものがあります。 (/cgi-bin/namazu.cgi? だと QUERY_STRING が "" になる) そのため、QUERY_STRING が NULL だから cgi として起動していない とは判断できないため、SERVER_SOFTWARE でそういう Web サーバ かどうかを補助的にチェックしているということかと思います。 (SERVER_SOFTWARE に何か設定されていればという判定でも よさそうですが、ま、そこは念のため動作が確認されているもの だけ許可しているという感じなのだと思います。) > とりあえず、assertで終了するだけでなく、SERVER_SOFTWAREが定義されてい > たらその中身も出力するようにした方がいいかな、と思いました。 char *server = getenv("SERVER_SOFTWARE"); if (!server) { nmz_warn_printf("unknown SERVER_SOFTWARE : %s\n", server); } assert(0); って感じですかね。 -- ===================================================================== 寺西 忠勝(TADAMASA TERANISHI) yw3t-t...@asahi-net.or.jp http://www.asahi-net.or.jp/~yw3t-trns/index.htm Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E _______________________________________________ Namazu-users-ja mailing list Namazu-users-ja@namazu.org http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-users-ja