version 1.11, 2014/08/15 19:35:28 |
version 1.12, 2015/07/04 22:39:23 |
Line 311 bozo_process_lua(bozo_httpreq_t *request |
|
Line 311 bozo_process_lua(bozo_httpreq_t *request |
|
if (!httpd->process_lua) |
if (!httpd->process_lua) |
return 0; |
return 0; |
|
|
|
info = NULL; |
|
query = NULL; |
|
prefix = NULL; |
uri = request->hr_oldfile ? request->hr_oldfile : request->hr_file; |
uri = request->hr_oldfile ? request->hr_oldfile : request->hr_file; |
|
|
if (*uri == '/') { |
if (*uri == '/') { |
file = bozostrdup(httpd, uri); |
file = bozostrdup(httpd, uri); |
|
if (file == NULL) |
|
goto out; |
prefix = bozostrdup(httpd, &uri[1]); |
prefix = bozostrdup(httpd, &uri[1]); |
} else { |
} else { |
|
if (asprintf(&file, "/%s", uri) < 0) |
|
goto out; |
prefix = bozostrdup(httpd, uri); |
prefix = bozostrdup(httpd, uri); |
asprintf(&file, "/%s", uri); |
|
} |
|
if (file == NULL) { |
|
free(prefix); |
|
return 0; |
|
} |
} |
|
if (prefix == NULL) |
|
goto out; |
|
|
if (request->hr_query && strlen(request->hr_query)) |
if (request->hr_query && request->hr_query[0]) |
query = bozostrdup(httpd, request->hr_query); |
query = bozostrdup(httpd, request->hr_query); |
else |
|
query = NULL; |
|
|
|
p = strchr(prefix, '/'); |
p = strchr(prefix, '/'); |
if (p == NULL){ |
if (p == NULL) |
free(prefix); |
goto out; |
return 0; |
|
} |
|
*p++ = '\0'; |
*p++ = '\0'; |
handler = p; |
handler = p; |
if (!*handler) { |
if (!*handler) |
free(prefix); |
goto out; |
return 0; |
|
} |
|
p = strchr(handler, '/'); |
p = strchr(handler, '/'); |
if (p != NULL) |
if (p != NULL) |
*p++ = '\0'; |
*p++ = '\0'; |
|
|
info = NULL; |
|
command = file + 1; |
command = file + 1; |
if ((s = strchr(command, '/')) != NULL) { |
if ((s = strchr(command, '/')) != NULL) { |
info = bozostrdup(httpd, s); |
info = bozostrdup(httpd, s); |