| 701 | } |
| 702 | |
| 703 | AP_DECLARE(const char *) ap_add_loaded_module(module *mod, apr_pool_t *p, |
| 704 | const char *short_name) |
| 705 | { |
| 706 | module **m; |
| 707 | const char *error; |
| 708 | |
| 709 | /* |
| 710 | * Add module pointer to top of chained module list |
| 711 | */ |
| 712 | error = ap_add_module(mod, p, short_name); |
| 713 | if (error) { |
| 714 | return error; |
| 715 | } |
| 716 | |
| 717 | /* |
| 718 | * And module pointer to list of loaded modules |
| 719 | * |
| 720 | * Notes: 1. ap_add_module() would already complain if no more space |
| 721 | * exists for adding a dynamically loaded module |
| 722 | * 2. ap_add_module() accepts double inclusion, so we have |
| 723 | * to accept this, too. |
| 724 | */ |
| 725 | for (m = ap_loaded_modules; *m != NULL; m++) |
| 726 | ; |
| 727 | *m++ = mod; |
| 728 | *m = NULL; |
| 729 | |
| 730 | return NULL; |
| 731 | } |
| 732 | |
| 733 | AP_DECLARE(void) ap_remove_loaded_module(module *mod) |
| 734 | { |
no test coverage detected