uhttpd: - fix a compile warning - support custom index file names - support custom error pages (or cgi handler) - add option to disable directory listings - add REDIRECT_STATUS for CGI requests, fixes php-cgi

SVN-Revision: 22366
This commit is contained in:
Jo-Philipp Wich
2010-07-23 13:15:22 +00:00
parent c28ab82e04
commit b688fcaa5c
7 changed files with 139 additions and 18 deletions

View File

@@ -464,6 +464,9 @@ struct path_info * uh_path_lookup(struct client *cl, const char *url)
int i = 0;
struct stat s;
/* back out early if url is undefined */
if ( url == NULL )
return NULL;
memset(path_phys, 0, sizeof(path_phys));
memset(path_info, 0, sizeof(path_info));
@@ -550,18 +553,31 @@ struct path_info * uh_path_lookup(struct client *cl, const char *url)
memcpy(buffer, path_phys, sizeof(buffer));
pathptr = &buffer[strlen(buffer)];
for( i = 0; i < array_size(uh_index_files); i++ )
if( cl->server->conf->index_file )
{
strncat(buffer, uh_index_files[i], sizeof(buffer));
strncat(buffer, cl->server->conf->index_file, sizeof(buffer));
if( !stat(buffer, &s) && (s.st_mode & S_IFREG) )
{
memcpy(path_phys, buffer, sizeof(path_phys));
memcpy(&p.stat, &s, sizeof(p.stat));
break;
}
}
else
{
for( i = 0; i < array_size(uh_index_files); i++ )
{
strncat(buffer, uh_index_files[i], sizeof(buffer));
*pathptr = 0;
if( !stat(buffer, &s) && (s.st_mode & S_IFREG) )
{
memcpy(path_phys, buffer, sizeof(path_phys));
memcpy(&p.stat, &s, sizeof(p.stat));
break;
}
*pathptr = 0;
}
}
p.root = docroot;