| 360 | } |
| 361 | |
| 362 | static void dump_loaded_modules(apr_pool_t *p, server_rec *s) |
| 363 | { |
| 364 | ap_module_symbol_t *modie; |
| 365 | ap_module_symbol_t *modi; |
| 366 | so_server_conf *sconf; |
| 367 | int i; |
| 368 | apr_file_t *out = NULL; |
| 369 | |
| 370 | if (!ap_exists_config_define("DUMP_MODULES")) { |
| 371 | return; |
| 372 | } |
| 373 | |
| 374 | apr_file_open_stdout(&out, p); |
| 375 | |
| 376 | apr_file_printf(out, "Loaded Modules:\n"); |
| 377 | |
| 378 | sconf = (so_server_conf *)ap_get_module_config(s->module_config, |
| 379 | &so_module); |
| 380 | for (i = 0; ; i++) { |
| 381 | modi = &ap_prelinked_module_symbols[i]; |
| 382 | if (modi->name != NULL) { |
| 383 | apr_file_printf(out, " %s (static)\n", modi->name); |
| 384 | } |
| 385 | else { |
| 386 | break; |
| 387 | } |
| 388 | } |
| 389 | |
| 390 | modie = (ap_module_symbol_t *)sconf->loaded_modules->elts; |
| 391 | for (i = 0; i < sconf->loaded_modules->nelts; i++) { |
| 392 | modi = &modie[i]; |
| 393 | if (modi->name != NULL) { |
| 394 | apr_file_printf(out, " %s (shared)\n", modi->name); |
| 395 | } |
| 396 | } |
| 397 | } |
| 398 | |
| 399 | #else /* not NO_DLOPEN */ |
| 400 |
nothing calls this directly
no test coverage detected