Edit Diff Annotate History
Upload
List
Recent
Alias
Top
Help
WOCGIGetAppllicationName : Edit
Last updated: Fri Mar 30 22:07:46 +0900 2007
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 となります。