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