Loading modules/database/mod_dbd.c +42 −0 Changes for modules/database/mod_dbd.c: 42 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -420,6 +420,29 @@ ap_dbd_t *ap_dbd_acquire(request_rec *r) } return req->conn; } ap_dbd_t *ap_dbd_cacquire(conn_rec *c) { svr_cfg *svr; dbd_pool_rec *req = ap_get_module_config(c->conn_config, &dbd_module); if (!req) { req = apr_palloc(c->pool, sizeof(dbd_pool_rec)); req->conn = ap_dbd_open(c->pool, c->base_server); if (req->conn) { svr = ap_get_module_config(c->base_server->module_config, &dbd_module); ap_set_module_config(c->conn_config, &dbd_module, req); if (svr->persist) { req->dbpool = svr->dbpool; apr_pool_cleanup_register(c->pool, req, dbd_release, apr_pool_cleanup_null); } else { apr_pool_cleanup_register(c->pool, req->conn, dbd_close, apr_pool_cleanup_null); } } } return req->conn; } #else ap_dbd_t *ap_dbd_acquire(request_rec *r) { Loading @@ -439,6 +462,24 @@ ap_dbd_t *ap_dbd_acquire(request_rec *r) } return ret; } ap_dbd_t *ap_dbd_cacquire(conn_rec *c) { svr_cfg *svr; ap_dbd_t *ret = ap_get_module_config(c->conn_config, &dbd_module); if (!ret) { svr = ap_get_module_config(c->base_server->module_config, &dbd_module); ret = ap_dbd_open(c->pool, c->base_server); if (ret) { ap_set_module_config(c->conn_config, &dbd_module, ret); if (!svr->persist) { apr_pool_cleanup_register(c->pool, svr->conn, dbd_close, apr_pool_cleanup_null); } /* if persist then dbd_open registered cleanup on proc pool */ } } return ret; } #endif static void dbd_hooks(apr_pool_t *pool) Loading @@ -449,6 +490,7 @@ static void dbd_hooks(apr_pool_t *pool) APR_REGISTER_OPTIONAL_FN(ap_dbd_open); APR_REGISTER_OPTIONAL_FN(ap_dbd_close); APR_REGISTER_OPTIONAL_FN(ap_dbd_acquire); APR_REGISTER_OPTIONAL_FN(ap_dbd_cacquire); APR_REGISTER_OPTIONAL_FN(ap_dbd_prepare); apr_dbd_init(pool); } Loading modules/database/mod_dbd.h +7 −0 Changes for modules/database/mod_dbd.h: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -58,6 +58,12 @@ AP_DECLARE(void) ap_dbd_close(server_rec*, ap_dbd_t*); */ AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*); /* acquire a connection that will have the lifetime of a connection * and MUST NOT be explicitly closed. Return NULL on error. * This is the preferred function for most applications. */ AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*); /* Prepare a statement for use by a client module */ AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*); Loading @@ -65,6 +71,7 @@ AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*); APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*)); APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*)); APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*)); APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*)); APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*)); #endif Loading Loading
modules/database/mod_dbd.c +42 −0 Changes for modules/database/mod_dbd.c: 42 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -420,6 +420,29 @@ ap_dbd_t *ap_dbd_acquire(request_rec *r) } return req->conn; } ap_dbd_t *ap_dbd_cacquire(conn_rec *c) { svr_cfg *svr; dbd_pool_rec *req = ap_get_module_config(c->conn_config, &dbd_module); if (!req) { req = apr_palloc(c->pool, sizeof(dbd_pool_rec)); req->conn = ap_dbd_open(c->pool, c->base_server); if (req->conn) { svr = ap_get_module_config(c->base_server->module_config, &dbd_module); ap_set_module_config(c->conn_config, &dbd_module, req); if (svr->persist) { req->dbpool = svr->dbpool; apr_pool_cleanup_register(c->pool, req, dbd_release, apr_pool_cleanup_null); } else { apr_pool_cleanup_register(c->pool, req->conn, dbd_close, apr_pool_cleanup_null); } } } return req->conn; } #else ap_dbd_t *ap_dbd_acquire(request_rec *r) { Loading @@ -439,6 +462,24 @@ ap_dbd_t *ap_dbd_acquire(request_rec *r) } return ret; } ap_dbd_t *ap_dbd_cacquire(conn_rec *c) { svr_cfg *svr; ap_dbd_t *ret = ap_get_module_config(c->conn_config, &dbd_module); if (!ret) { svr = ap_get_module_config(c->base_server->module_config, &dbd_module); ret = ap_dbd_open(c->pool, c->base_server); if (ret) { ap_set_module_config(c->conn_config, &dbd_module, ret); if (!svr->persist) { apr_pool_cleanup_register(c->pool, svr->conn, dbd_close, apr_pool_cleanup_null); } /* if persist then dbd_open registered cleanup on proc pool */ } } return ret; } #endif static void dbd_hooks(apr_pool_t *pool) Loading @@ -449,6 +490,7 @@ static void dbd_hooks(apr_pool_t *pool) APR_REGISTER_OPTIONAL_FN(ap_dbd_open); APR_REGISTER_OPTIONAL_FN(ap_dbd_close); APR_REGISTER_OPTIONAL_FN(ap_dbd_acquire); APR_REGISTER_OPTIONAL_FN(ap_dbd_cacquire); APR_REGISTER_OPTIONAL_FN(ap_dbd_prepare); apr_dbd_init(pool); } Loading
modules/database/mod_dbd.h +7 −0 Changes for modules/database/mod_dbd.h: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -58,6 +58,12 @@ AP_DECLARE(void) ap_dbd_close(server_rec*, ap_dbd_t*); */ AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*); /* acquire a connection that will have the lifetime of a connection * and MUST NOT be explicitly closed. Return NULL on error. * This is the preferred function for most applications. */ AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*); /* Prepare a statement for use by a client module */ AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*); Loading @@ -65,6 +71,7 @@ AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*); APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*)); APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*)); APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*)); APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*)); APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*)); #endif Loading