} server_signature_e;
typedef struct {
- /* path of the directory/regex/etc. see also d_is_fnmatch below */
+ /* path of the directory/regex/etc. see also d_is_fnmatch/absolute below */
char *d;
/* the number of slashes in d */
unsigned d_components;
*/
unsigned d_is_fnmatch : 1;
+ /* since is_absolute(conf->d) was being called so frequently in
+ * directory_walk() and its relatives, this field was created and
+ * is set to the result of that call.
+ */
+ unsigned d_is_absolute : 1;
+
/* should we force a charset on any outgoing parameterless content-type?
* if so, which charset?
*/
conf->d = apr_pstrcat(a, dir, "/", NULL);
}
conf->d_is_fnmatch = conf->d ? (apr_is_fnmatch(conf->d) != 0) : 0;
+ conf->d_is_absolute = conf->d ? (ap_os_is_path_absolute(conf->d) != 0) : 0;
conf->d_components = conf->d ? ap_count_dirs(conf->d) : 0;
conf->opts = dir ? OPT_UNSET : OPT_UNSET|OPT_ALL;
conf->d = new->d;
conf->d_is_fnmatch = new->d_is_fnmatch;
+ conf->d_is_absolute = new->d_is_absolute;
conf->d_components = new->d_components;
conf->r = new->r;
conf->d = apr_pstrdup(cmd->pool, cmd->path); /* No mangling, please */
conf->d_is_fnmatch = apr_is_fnmatch(conf->d) != 0;
+ conf->d_is_absolute = ap_os_is_path_absolute(conf->d) != 0;
conf->r = r;
ap_add_per_url_conf(cmd->server, new_url_conf);
conf->d = cmd->path;
conf->d_is_fnmatch = apr_is_fnmatch(conf->d) != 0;
+ conf->d_is_absolute = ap_os_is_path_absolute(conf->d) != 0;
conf->r = r;
ap_add_file_conf(c, new_file_conf);