WOCGIGetAppllicationName
2007/03/30 (Fri) 22:07:46 JST
qs = getenv("QUERY_STRING"); if (qs) { qs_len = strlen(qs); } else { qs_len = 0; } if (qs_len > 0) { /* クエリ文字列と "?" のためにメモリを確保 */ url = WOMALLOC(strlen(path_info) + strlen(script_name) + 1 + qs_len + 2); } else { url = WOMALLOC(strlen(path_info) + strlen(script_name) + 1); } strcpy(url, script_name); strcat(url, path_info); WOLog(WO_INFO," new request: %s",url); urlerr = WOParseApplicationName(&wc, url); if (urlerr != WOURLOK) { const char *_urlerr; _urlerr = WOURLstrerror(urlerr); WOLog(WO_INFO,"URL Parsing Error: %s", _urlerr); if (urlerr == WOURLInvalidApplicationName) { if (ac_authorizeAppListing(&wc)) { resp = WOAdaptorInfo(NULL, &wc); die_resp(resp); } else { die(_urlerr, HTTP_NOT_FOUND); } } die(_urlerr, HTTP_BAD_REQUEST); }
この個所の目的は ?WOParseApplicationName() です。 SCRIPT_NAMEとPATH_INFOとクエリをつなげて構成したURLを渡しています。
例えば
http://www.xxxxx.com/cgi-bin/WebObjects/Application.woa/sessionID/contextID?key=value=
にアクセスすると、渡されるURLは
/cgi-bin/WebObjects/Application.woa/sessionID/contextID?key=value
となります。
Inverse Pages: WOCGIAdaptor