| 1358 | } |
| 1359 | |
| 1360 | AP_DECLARE(const char *) ap_walk_config(ap_directive_t *current, |
| 1361 | cmd_parms *parms, |
| 1362 | ap_conf_vector_t *section_vector) |
| 1363 | { |
| 1364 | ap_conf_vector_t *oldconfig = parms->context; |
| 1365 | |
| 1366 | parms->context = section_vector; |
| 1367 | |
| 1368 | /* scan through all directives, executing each one */ |
| 1369 | for (; current != NULL; current = current->next) { |
| 1370 | const char *errmsg; |
| 1371 | |
| 1372 | parms->directive = current; |
| 1373 | |
| 1374 | /* actually parse the command and execute the correct function */ |
| 1375 | errmsg = ap_walk_config_sub(current, parms, section_vector); |
| 1376 | if (errmsg != NULL) { |
| 1377 | /* restore the context (just in case) */ |
| 1378 | parms->context = oldconfig; |
| 1379 | return errmsg; |
| 1380 | } |
| 1381 | } |
| 1382 | |
| 1383 | parms->context = oldconfig; |
| 1384 | return NULL; |
| 1385 | } |
| 1386 | |
| 1387 | AP_DECLARE(const char *) ap_build_config(cmd_parms *parms, |
| 1388 | apr_pool_t *p, apr_pool_t *temp_pool, |
no test coverage detected