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