MCPcopy Create free account
hub / github.com/apache/httpd / vhost_alias_set

Function vhost_alias_set

modules/mappers/mod_vhost_alias.c:120–213  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

118 vhost_alias_set_cgi_root_name;
119
120static 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 }

Callers

nothing calls this directly

Calls 3

ap_get_module_configFunction · 0.85
ap_os_is_path_absoluteFunction · 0.85
ap_cstr_casecmpFunction · 0.85

Tested by

no test coverage detected