|
|
|
@ -196,6 +196,7 @@ static liHandlerResult core_handle_docroot(liVRequest *vr, gpointer param, gpoin
|
|
|
|
|
} else { |
|
|
|
|
i = 0; |
|
|
|
|
} |
|
|
|
|
*context = NULL; |
|
|
|
|
|
|
|
|
|
/* loop over all the patterns until we find an existing path */ |
|
|
|
|
for (; i < arr->len; i++) { |
|
|
|
@ -206,6 +207,8 @@ static liHandlerResult core_handle_docroot(liVRequest *vr, gpointer param, gpoin
|
|
|
|
|
g_string_truncate(vr->physical.doc_root, 0); |
|
|
|
|
li_pattern_eval(vr, vr->physical.doc_root, g_array_index(arr, liPattern*, i), core_docroot_nth_cb, vr->request.uri.host, li_pattern_regex_cb, match_info); |
|
|
|
|
|
|
|
|
|
if (i == arr->len - 1) break; /* don't stat, we'll use the last entry anyway */ |
|
|
|
|
|
|
|
|
|
/* check if path exists */ |
|
|
|
|
switch (li_stat_cache_get(vr, vr->physical.doc_root, &st, &err, NULL)) { |
|
|
|
|
case LI_HANDLER_GO_ON: break; |
|
|
|
@ -222,8 +225,6 @@ static liHandlerResult core_handle_docroot(liVRequest *vr, gpointer param, gpoin
|
|
|
|
|
} |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
*context = NULL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* build physical path: docroot + uri.path */ |
|
|
|
|