| 118 | vhost_alias_set_cgi_root_name; |
| 119 | |
| 120 | static const char *vhost_alias_set(cmd_parms *cmd, void *dummy, const char *map) |
| 121 | { |
| 122 | mva_sconf_t *conf; |
| 123 | mva_mode_e mode, *pmode; |
| 124 | const char **pmap; |
| 125 | const char *p; |
| 126 | |
| 127 | conf = (mva_sconf_t *) ap_get_module_config(cmd->server->module_config, |
| 128 | &vhost_alias_module); |
| 129 | /* there ought to be a better way of doing this */ |
| 130 | if (&vhost_alias_set_doc_root_ip == cmd->info) { |
| 131 | mode = VHOST_ALIAS_IP; |
| 132 | pmap = &conf->doc_root; |
| 133 | pmode = &conf->doc_root_mode; |
| 134 | } |
| 135 | else if (&vhost_alias_set_cgi_root_ip == cmd->info) { |
| 136 | mode = VHOST_ALIAS_IP; |
| 137 | pmap = &conf->cgi_root; |
| 138 | pmode = &conf->cgi_root_mode; |
| 139 | } |
| 140 | else if (&vhost_alias_set_doc_root_name == cmd->info) { |
| 141 | mode = VHOST_ALIAS_NAME; |
| 142 | pmap = &conf->doc_root; |
| 143 | pmode = &conf->doc_root_mode; |
| 144 | } |
| 145 | else if (&vhost_alias_set_cgi_root_name == cmd->info) { |
| 146 | mode = VHOST_ALIAS_NAME; |
| 147 | pmap = &conf->cgi_root; |
| 148 | pmode = &conf->cgi_root_mode; |
| 149 | } |
| 150 | else { |
| 151 | return "INTERNAL ERROR: unknown command info"; |
| 152 | } |
| 153 | |
| 154 | if (!ap_os_is_path_absolute(cmd->pool, map)) { |
| 155 | if (ap_cstr_casecmp(map, "none")) { |
| 156 | return "format string must be an absolute path, or 'none'"; |
| 157 | } |
| 158 | *pmap = NULL; |
| 159 | *pmode = VHOST_ALIAS_NONE; |
| 160 | return NULL; |
| 161 | } |
| 162 | |
| 163 | /* sanity check */ |
| 164 | p = map; |
| 165 | while (*p != '\0') { |
| 166 | if (*p++ != '%') { |
| 167 | continue; |
| 168 | } |
| 169 | /* we just found a '%' */ |
| 170 | if (*p == 'p' || *p == '%') { |
| 171 | ++p; |
| 172 | continue; |
| 173 | } |
| 174 | /* optional dash */ |
| 175 | if (*p == '-') { |
| 176 | ++p; |
| 177 | } |
nothing calls this directly
no test coverage detected