Lines Matching refs:ctx

73 static void socache_dbm_expire(ap_socache_instance_t *ctx, server_rec *s);
75 static apr_status_t socache_dbm_remove(ap_socache_instance_t *ctx,
83 ap_socache_instance_t *ctx;
85 *context = ctx = apr_pcalloc(p, sizeof *ctx);
88 ctx->data_file = ap_runtime_dir_relative(p, arg);
89 if (!ctx->data_file) {
94 apr_pool_create(&ctx->pool, p);
118 static apr_status_t socache_dbm_init(ap_socache_instance_t *ctx,
127 if (ctx->data_file == NULL) {
131 ctx->data_file = ap_runtime_dir_relative(p, path);
133 if (ctx->data_file == NULL) {
142 apr_pool_clear(ctx->pool);
144 if ((rv = apr_dbm_open(&dbm, ctx->data_file,
145 APR_DBM_RWCREATE, DBM_FILE_MODE, ctx->pool)) != APR_SUCCESS) {
148 ctx->data_file);
153 ctx->expiry_interval = (hints && hints->expiry_interval
163 try_chown(p, s, ctx->data_file, NULL);
164 if (try_chown(p, s, ctx->data_file, DBM_FILE_SUFFIX_DIR))
165 if (try_chown(p, s, ctx->data_file, ".db"))
166 try_chown(p, s, ctx->data_file, ".dir");
167 if (try_chown(p, s, ctx->data_file, DBM_FILE_SUFFIX_PAG))
168 if (try_chown(p, s, ctx->data_file, ".db"))
169 try_chown(p, s, ctx->data_file, ".pag");
172 socache_dbm_expire(ctx, s);
177 static void socache_dbm_destroy(ap_socache_instance_t *ctx, server_rec *s)
180 unlink(apr_pstrcat(ctx->pool, ctx->data_file, DBM_FILE_SUFFIX_DIR, NULL));
181 unlink(apr_pstrcat(ctx->pool, ctx->data_file, DBM_FILE_SUFFIX_PAG, NULL));
183 unlink(apr_pstrcat(ctx->pool, ctx->data_file, ".dir", NULL));
184 unlink(apr_pstrcat(ctx->pool, ctx->data_file, ".pag", NULL));
185 unlink(apr_pstrcat(ctx->pool, ctx->data_file, ".db", NULL));
186 unlink(ctx->data_file);
191 static apr_status_t socache_dbm_store(ap_socache_instance_t *ctx,
230 apr_pool_clear(ctx->pool);
232 if ((rv = apr_dbm_open(&dbm, ctx->data_file,
233 APR_DBM_RWCREATE, DBM_FILE_MODE, ctx->pool)) != APR_SUCCESS) {
237 ctx->data_file);
244 ctx->data_file);
255 socache_dbm_expire(ctx, s);
260 static apr_status_t socache_dbm_retrieve(ap_socache_instance_t *ctx, server_rec *s,
274 socache_dbm_expire(ctx, s);
284 apr_pool_clear(ctx->pool);
285 if ((rc = apr_dbm_open(&dbm, ctx->data_file, APR_DBM_RWCREATE,
286 DBM_FILE_MODE, ctx->pool)) != APR_SUCCESS) {
290 ctx->data_file);
319 socache_dbm_remove(ctx, s, id, idlen, p);
326 static apr_status_t socache_dbm_remove(ap_socache_instance_t *ctx,
339 apr_pool_clear(ctx->pool);
341 if ((rv = apr_dbm_open(&dbm, ctx->data_file, APR_DBM_RWCREATE,
342 DBM_FILE_MODE, ctx->pool)) != APR_SUCCESS) {
346 ctx->data_file);
355 static void socache_dbm_expire(ap_socache_instance_t *ctx, server_rec *s)
376 if (now < ctx->last_expiry + ctx->expiry_interval) {
380 ctx->last_expiry = now;
397 apr_pool_clear(ctx->pool);
399 if ((keylist = apr_palloc(ctx->pool, sizeof(dbmkey)*KEYMAX)) == NULL) {
405 if ((rv = apr_dbm_open(&dbm, ctx->data_file, APR_DBM_RWCREATE,
406 DBM_FILE_MODE, ctx->pool)) != APR_SUCCESS) {
410 ctx->data_file);
426 if ((keylist[keyidx].dptr = apr_pmemdup(ctx->pool, dbmkey.dptr, dbmkey.dsize)) != NULL) {
438 if (apr_dbm_open(&dbm, ctx->data_file, APR_DBM_RWCREATE,
439 DBM_FILE_MODE, ctx->pool) != APR_SUCCESS) {
443 ctx->data_file);
462 static void socache_dbm_status(ap_socache_instance_t *ctx, request_rec *r,
476 apr_pool_clear(ctx->pool);
477 if ((rv = apr_dbm_open(&dbm, ctx->data_file, APR_DBM_RWCREATE,
478 DBM_FILE_MODE, ctx->pool)) != APR_SUCCESS) {
482 ctx->data_file);
516 static apr_status_t socache_dbm_iterate(ap_socache_instance_t *ctx,
533 if ((rv = apr_dbm_open(&dbm, ctx->data_file, APR_DBM_RWCREATE,
534 DBM_FILE_MODE, ctx->pool)) != APR_SUCCESS) {
537 "iterating", ctx->data_file);
552 rv = iterator(ctx, s, userctx,
557 "dbm `%s' entry iterated", ctx->data_file);
568 ctx->data_file);