Issue 167: Accept connections in subfolders

o According to the poster, the desired feature it supporting arbitrary
  paths in the request URL s.t. proxying doesn't break SIAB.
o Rewrote poster's patch to void pointer arithmetic.  Use of rindex()
  may prove hazardous to portability.
This commit is contained in:
Marc Singer 2012-03-31 16:17:09 -07:00
parent 38fcacd6c7
commit 1139b09b62

View file

@ -613,17 +613,15 @@ static int shellInABoxHttpHandler(HttpConnection *http, void *arg,
const HashMap *headers = httpGetHeaders(http); const HashMap *headers = httpGetHeaders(http);
const char *contentType = getFromHashMap(headers, "content-type"); const char *contentType = getFromHashMap(headers, "content-type");
// Normalize the path info // Normalize the path info, present the final path element
const char *pathInfo = urlGetPathInfo(url); const char *pathInfo = urlGetPathInfo(url);
while (*pathInfo == '/') { int pathInfoLength = 0;
pathInfo++; pathInfo = rindex (pathInfo, '/');
} if (pathInfo)
const char *endPathInfo; ++pathInfo;
for (endPathInfo = pathInfo; else
*endPathInfo && *endPathInfo != '/'; pathInfo = ""; /* Cheap way to get an empty string */
endPathInfo++) { pathInfoLength = strlen (pathInfo);
}
int pathInfoLength = endPathInfo - pathInfo;
if (!pathInfoLength || if (!pathInfoLength ||
(pathInfoLength == 5 && !memcmp(pathInfo, "plain", 5)) || (pathInfoLength == 5 && !memcmp(pathInfo, "plain", 5)) ||