modify function to set path according to virtualhost
This commit is contained in:
parent
b18f3a3c7b
commit
e2567fcf01
2
main.c
2
main.c
|
@ -58,7 +58,7 @@ main(int argc, char **argv)
|
||||||
read_request(request);
|
read_request(request);
|
||||||
split_request(request, hostname, path, query);
|
split_request(request, hostname, path, query);
|
||||||
//get_hostname(request, hostname, sizeof(hostname));
|
//get_hostname(request, hostname, sizeof(hostname));
|
||||||
//get_path(request, path, sizeof(path), virtualhost, hostname);
|
set_path(request, path, sizeof(path), virtualhost, hostname);
|
||||||
//get_query(path, query, sizeof(query));
|
//get_query(path, query, sizeof(query));
|
||||||
|
|
||||||
/* percent decode */
|
/* percent decode */
|
||||||
|
|
18
vger.c
18
vger.c
|
@ -399,24 +399,18 @@ get_hostname(const char *request, char *hstnm, size_t hstnmsiz)
|
||||||
}
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
get_path(const char *request, char *path, size_t pathsiz, int virtualhost, const char *hostname)
|
set_path(const char *request, char *path, size_t pathsiz, int virtualhost, const char *hostname)
|
||||||
{
|
{
|
||||||
char *pos = NULL;
|
char tmp[GEMINI_REQUEST_MAX] = {'\0'};
|
||||||
|
|
||||||
/* path must be relative to chroot */
|
|
||||||
estrlcpy(path, "./", pathsiz);
|
|
||||||
|
|
||||||
/* path is in a subdir named hostname */
|
/* path is in a subdir named hostname */
|
||||||
if (virtualhost) {
|
if (virtualhost) {
|
||||||
estrlcat(path, hostname, pathsiz);
|
estrlcpy(tmp, hostname, sizeof(tmp));
|
||||||
estrlcat(path, "/", pathsiz);
|
estrlcat(tmp, "/", sizeof(tmp));
|
||||||
|
estrlcat(tmp, path, sizeof(tmp));
|
||||||
|
estrlcpy(path, tmp, pathsiz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* path is after hostname/ */
|
|
||||||
pos = strchr(request, '/');
|
|
||||||
if (pos != NULL) /* append the path. pos +1 to remove leading '/' */
|
|
||||||
estrlcat(path, pos+1, pathsiz);
|
|
||||||
|
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
2
vger.h
2
vger.h
|
@ -48,7 +48,7 @@ int do_cgi(const char *, const char *, const char *, const char *, const char *
|
||||||
void drop_privileges(const char *, const char *, const char *);
|
void drop_privileges(const char *, const char *, const char *);
|
||||||
void split_dir_file(char *, char *, size_t, char *, size_t);
|
void split_dir_file(char *, char *, size_t, char *, size_t);
|
||||||
char * get_hostname(const char *, char *, size_t);
|
char * get_hostname(const char *, char *, size_t);
|
||||||
char * get_path(const char *, char *, size_t, int, const char *);
|
char * set_path(const char *, char *, size_t, int, const char *);
|
||||||
char * get_query(char *, char *, size_t);
|
char * get_query(char *, char *, size_t);
|
||||||
void status(const int, const char *, ...);
|
void status(const int, const char *, ...);
|
||||||
void strip_trailing_slash(char *);
|
void strip_trailing_slash(char *);
|
||||||
|
|
Loading…
Reference in New Issue