Sziasztok,
beleszaladtam egy kis Apache modulhegesztesbe. Sajnos nem ertek hozza annyira, amennyire szeretnek, ezert problema a kovetkezo:
Adott egy Apache MPM, amit szeretnek dinamikusan konfiguralni. Ebbe beleirtam azt a tudomanyt, hogy hookbol tudjon mukodni. mympm.h-ba:
typedef struct
{
...
} mympm_server_conf;
AP_DECLARE_HOOK(int,mympm_configure,(request_rec *r));
mympm.c-be:
APR_HOOK_STRUCT(
APR_HOOK_LINK(mympm_configure)
)
AP_IMPLEMENT_HOOK_RUN_FIRST(int,mympm_configure,(request_rec *r),(r),DECLINED);
A megfelelo helyre pedig:
mympm_server_conf *sconf = (mympm_server_conf *) ap_run_mympm_configure(r);
A betoltendo konfiguralo modul register_hooks fuggvenyebe:
#include "mympm.h"
ap_hook_mympm_configure(mymodule_mympm_configure, NULL, NULL, APR_HOOK_MIDDLE);
Illetve a fuggveny:
static int
mymodule_mympm_configure(request_rec *r)
{
...
}
Leforgatom az egesz kocerajt es megnezem a symbolokat, akkor azt latom, hogy a mympm.o exportalja az ap_hook_mympm_configure-t:
000009b0 T ap_hook_mympm_configure
Viszont amikor elindul az Apache, panaszkodik ra:
apache2: Syntax error ...: Cannot load /usr/lib/apache2/modules/mod_mymodule.so into server: /usr/lib/apache2/modules/mod_mymodule.so: undefined symbol: ap_hook_mympm_configure
Probaltam betenni az mpm_common.c-be is az APR_HOOK_LINK-et, de ettol az mpm_common.o-ban nem latszott, hogy exportalja. Mit kell ahhoz tenni, hogy az illeto hookot elerjem?