CGIアダプタ:URLの取得
2007/03/30 (Fri) 22:07:46 JST
script_name = getenv(CGI_SCRIPT_NAME);
path_info = getenv(CGI_PATH_INFO);
if (script_name == NULL)
die(INV_SCRIPT, HTTP_NOT_FOUND);
else if (path_info == NULL) {
path_info = "/";
}
環境変数SCRIPT_NAMEとPATH_INFOの設定です。 SCRIPT_NAMEがヘッダに含まれていなければエラーとし、HTTPトランザクションを終了します(die)。 スクリプトファイル名以降に"/"がなければ、PATH_INFOがヘッダに含まれません。 そのときは、PATH_INFOを"/"に設定しておきます。
例えば http://www.xxxxx.com/cgi-bin/WebObjects/Application.woa/sessionID/contextID にアクセスすると、SCRIPT_NAMEは /cgi-bin/WebObjects 、PATH_INFOは /Application.woa/sessionID/contextID に設定されます。
INV_SCRIPTはerrors.hで定義されているエラーメッセージ "Cannot determine script name from CGI" です。 HTTP_NOT_FOUNDはhttperrors.hで定義されている、ご存知404のステータスコードです。
die(), die_resp()
static void die(const char *msg, int status)
{
// エラーメッセージとHTTPステータスからHTTPResponseを生成
HTTPResponse *resp = resp_errorResponse(msg, status);
die_resp(resp);
}
static void die_resp(HTTPResponse *resp)
{
sendResponse(resp);
resp_free(resp); // メモリ解放
exit(0);
}
HTTPエラーを出力します。
Inverse Pages: WOCGIAdaptor