From 5ffb67b645cf29160fec50fb722568b048f1df2f Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Thu, 8 Aug 2002 08:45:27 +0000 Subject: [PATCH] Added option to enable virtual hosts (disabled by default). --- src/sbbs3/sbbs_ini.c | 1 + src/sbbs3/websrvr.c | 10 +++++++--- src/sbbs3/websrvr.h | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/sbbs3/sbbs_ini.c b/src/sbbs3/sbbs_ini.c index c7b4bb49ea..7f47b9546b 100644 --- a/src/sbbs3/sbbs_ini.c +++ b/src/sbbs3/sbbs_ini.c @@ -47,6 +47,7 @@ static ini_bitdesc_t ftp_options[] = { static ini_bitdesc_t web_options[] = { { WEB_OPT_DEBUG_TX ,"DEBUG_TX" }, + { WEB_OPT_VIRTUAL_HOSTS ,"VIRTUAL_HOSTS" }, /* shared bits */ { BBS_OPT_NO_HOST_LOOKUP ,"NO_HOST_LOOKUP" }, diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c index 171b6a5153..7542745436 100644 --- a/src/sbbs3/websrvr.c +++ b/src/sbbs3/websrvr.c @@ -910,9 +910,13 @@ static BOOL check_request(http_session_t * session) FILE* file; lprintf("Validating request: %s",session->req.request); - if(session->host[0]) - sprintf(path,"%s%s%s",root_dir,session->host,session->req.request); - else + if(!(startup->options&WEB_OPT_VIRTUAL_HOSTS)) + session->host[0]=0; + if(session->host[0]) { + sprintf(path,"%s%s",root_dir,session->host); + if(isdir(path)) + sprintf(path,"%s%s%s",root_dir,session->host,session->req.request); + } else sprintf(path,"%s%s",root_dir,session->req.request); if(FULLPATH(session->req.request,path,sizeof(session->req.request))==NULL) { diff --git a/src/sbbs3/websrvr.h b/src/sbbs3/websrvr.h index e6f77ffb09..76893a0332 100644 --- a/src/sbbs3/websrvr.h +++ b/src/sbbs3/websrvr.h @@ -90,6 +90,7 @@ typedef struct { } web_startup_t; #define WEB_OPT_DEBUG_TX (1<<0) /* Log all transmitted responses */ +#define WEB_OPT_VIRTUAL_HOSTS (1<<1) /* Use virutal host html subdirs */ #ifdef DLLEXPORT #undef DLLEXPORT -- GitLab