示例#1
0
static void ssl_scache_shmht_free(void *opt_param, void *ptr)
{
    SSLModConfigRec *mc = myModConfig((server_rec *)opt_param);

    apr_rmm_off_t off = apr_rmm_offset_get(mc->pSessionCacheDataRMM, ptr);
    apr_rmm_free(mc->pSessionCacheDataRMM, off);
    return;
}
void cache_free(ServerConfig *config, const void *ptr)
{
  if (config->cache_rmm) {
    if (ptr)
    /* Free in shared memory */
    apr_rmm_free(config->cache_rmm, apr_rmm_offset_get(config->cache_rmm, (void *)ptr));
  } else {
    if (ptr)
    /* Cache shm is not used */
      free((void *)ptr);
  }
}
upload_progress_cache_t *fetch_cache(ServerConfig *config) {
  return (upload_progress_cache_t *)apr_rmm_addr_get(config->cache_rmm, apr_rmm_offset_get(config->cache_rmm, config->cache));
}
upload_progress_node_t *fetch_node(ServerConfig *config, upload_progress_node_t *node) {
  return (upload_progress_node_t *)apr_rmm_addr_get(config->cache_rmm, apr_rmm_offset_get(config->cache_rmm, node));
}
char *fetch_key(ServerConfig *config, char *key) {
 return (char *)apr_rmm_addr_get(config->cache_rmm, apr_rmm_offset_get(config->cache_rmm, key));
}