[mod_geoip] call from handle_request_env hook
(instead of handle_subrequest_start hook) The handle_request_env hook is called on demand by dynamic handlers and this change makes mod_geoip available for mod_magnet lua code.
This commit is contained in:
parent
d0f17f1e10
commit
f5356302a7
|
@ -211,12 +211,7 @@ static int mod_geoip_patch_connection(server *srv, connection *con, plugin_data
|
|||
}
|
||||
#undef PATCH
|
||||
|
||||
URIHANDLER_FUNC(mod_geoip_subrequest) {
|
||||
plugin_data *p = p_d;
|
||||
|
||||
mod_geoip_patch_connection(srv, con, p);
|
||||
|
||||
if (!buffer_is_empty(p->conf.db_name)) {
|
||||
static handler_t mod_geoip_query (connection *con, plugin_data *p) {
|
||||
const char *remote_ip;
|
||||
data_string *ds;
|
||||
GeoIPRecord *gir;
|
||||
|
@ -391,12 +386,18 @@ URIHANDLER_FUNC(mod_geoip_subrequest) {
|
|||
|
||||
GeoIPRecord_delete(gir);
|
||||
}
|
||||
}
|
||||
|
||||
/* keep walking... (johnnie walker style ;) */
|
||||
return HANDLER_GO_ON;
|
||||
}
|
||||
|
||||
CONNECTION_FUNC(mod_geoip_handle_request_env) {
|
||||
plugin_data *p = p_d;
|
||||
mod_geoip_patch_connection(srv, con, p);
|
||||
if (buffer_is_empty(p->conf.db_name)) return HANDLER_GO_ON;
|
||||
|
||||
return mod_geoip_query(con, p);
|
||||
}
|
||||
|
||||
/* this function is called at dlopen() time and inits the callbacks */
|
||||
|
||||
int mod_geoip_plugin_init(plugin *p);
|
||||
|
@ -405,7 +406,7 @@ int mod_geoip_plugin_init(plugin *p) {
|
|||
p->name = buffer_init_string("geoip");
|
||||
|
||||
p->init = mod_geoip_init;
|
||||
p->handle_subrequest_start = mod_geoip_subrequest;
|
||||
p->handle_request_env = mod_geoip_handle_request_env;
|
||||
p->set_defaults = mod_geoip_set_defaults;
|
||||
p->cleanup = mod_geoip_free;
|
||||
|
||||
|
|
Loading…
Reference in New Issue