Non-existent webroot bugfix
This commit is contained in:
@ -25,7 +25,7 @@ char *get_webroot(const char *http_host) {
|
||||
while (webroot_base[len - 1] == '/') len--;
|
||||
long pos = strchr(http_host, ':') - http_host;
|
||||
sprintf(webroot, "%.*s/%.*s", (int) len, webroot_base, (int) (pos < 0 ? strlen(http_host) : pos), http_host);
|
||||
return webroot;
|
||||
return path_is_directory(webroot) ? webroot : NULL;
|
||||
}
|
||||
|
||||
void client_terminate() {
|
||||
@ -114,8 +114,8 @@ int client_request_handler(sock *client, unsigned long client_num, unsigned int
|
||||
webroot = get_webroot(host);
|
||||
if (webroot == NULL) {
|
||||
res.status = http_get_status(307);
|
||||
sprintf(buf0, "https://%s%s", NECRONDA_DEFAULT, req.uri);
|
||||
http_add_header_field(&req.hdr, "Location", buf0);
|
||||
sprintf(buf0, "https://%s%s", DEFAULT_HOST, req.uri);
|
||||
http_add_header_field(&res.hdr, "Location", buf0);
|
||||
goto respond;
|
||||
}
|
||||
|
||||
|
@ -53,9 +53,11 @@
|
||||
|
||||
#define NECRONDA_VERSION "4.0"
|
||||
#define SERVER_STR "Necronda/" NECRONDA_VERSION
|
||||
#define NECRONDA_DEFAULT "www.necronda.net"
|
||||
#define NECRONDA_ZLIB_LEVEL 9
|
||||
|
||||
#ifndef DEFAULT_HOST
|
||||
#define DEFAULT_HOST "www.necronda.net"
|
||||
#endif
|
||||
#ifndef MAGIC_FILE
|
||||
#define MAGIC_FILE "/usr/share/file/misc/magic.mgc"
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user