From 92fc697f221b9332fdd791213442ce2241ff9be3 Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Fri, 31 Jan 2003 16:25:02 +0000 Subject: [w3m-dev 03721] PATH_INFO support of local CGI * local.c (CGIFN_DROOT): deleted (CGIFN_LIBDIR): added (CGIFN_MODE): deleted (CGIFN_CONTAIN_SLASH): deleted (check_local_cgi): rewrite (cgi_filename): rewrite (localcgi_post): support PATH_INFO * url.c (openURL): rewrite * Bonus/smb.cgi: use PATH_INFO From: Hironori SAKAMOTO --- url.c | 46 +++++++++------------------------------------- 1 file changed, 9 insertions(+), 37 deletions(-) (limited to 'url.c') diff --git a/url.c b/url.c index 60db426..5ba157d 100644 --- a/url.c +++ b/url.c @@ -1,4 +1,4 @@ -/* $Id: url.c,v 1.71 2003/01/29 17:33:28 ukai Exp $ */ +/* $Id: url.c,v 1.72 2003/01/31 16:25:10 ukai Exp $ */ #include "fm.h" #include #include @@ -1463,14 +1463,13 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, URLFile *ouf, HRequest *hr, unsigned char *status) { Str tmp; - int i, sock, scheme; + int sock, scheme; char *p, *q, *u; URLFile uf; HRequest hr0; #ifdef USE_SSL SSL *sslh = NULL; #endif /* USE_SSL */ - int extlen = strlen(CGI_EXTENSION); if (hr == NULL) hr = &hr0; @@ -1521,49 +1520,22 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, switch (pu->scheme) { case SCM_LOCAL: case SCM_LOCAL_CGI: - if (request && request->body) { + if (request && request->body) /* local CGI: POST */ - if ((q = strchr(pu->file, '?')) != NULL) { - p = Strnew_charp_n(pu->file, (int)(q - pu->file))->ptr; - pu->real_file = cleanupName(file_unquote(p)); - q++; - } - uf.stream = newFileStream(localcgi_post(pu->real_file, - pu->query, - request, - option->referer), + uf.stream = newFileStream(localcgi_post(pu->real_file, pu->query, + request, option->referer), (void (*)())pclose); - if (uf.stream == NULL) - goto ordinary_local_file; - uf.is_cgi = TRUE; - uf.scheme = pu->scheme = SCM_LOCAL_CGI; - } - else if (pu->query != NULL) { + else /* lodal CGI: GET */ uf.stream = newFileStream(localcgi_get(pu->real_file, pu->query, option->referer), (void (*)())pclose); - if (uf.stream == NULL) { - goto ordinary_local_file; - } + if (uf.stream) { uf.is_cgi = TRUE; uf.scheme = pu->scheme = SCM_LOCAL_CGI; + return uf; } - else if ((i = strlen(pu->file)) > extlen && - !strncmp(pu->file + i - extlen, CGI_EXTENSION, extlen)) { - /* lodal CGI: GET */ - uf.stream = newFileStream(localcgi_get(pu->real_file, NULL, - option->referer), - (void (*)())pclose); - if (uf.stream == NULL) - goto ordinary_local_file; - uf.is_cgi = TRUE; - uf.scheme = pu->scheme = SCM_LOCAL_CGI; - } - else { - ordinary_local_file: - examineFile(pu->real_file, &uf); - } + examineFile(pu->real_file, &uf); if (uf.stream == NULL) { if (dir_exist(pu->real_file)) { add_index_file(pu, &uf); -- cgit v1.2.3