Changeset b94aee2 in mod_gnutls for src/gnutls_cache.c


Ignore:
Timestamp:
Apr 28, 2018, 5:52:56 PM (3 years ago)
Author:
Fiona Klute <fiona.klute@…>
Branches:
debian/master, master, proxy-ticket
Children:
a314ec9
Parents:
2f949bc
Message:

Remove internal cache type enum

The cache type is now transparently passed to ap_lookup_provider(), so
mod_gnutls does not need to manage available cache types. The new
server variable sc->cache_enable exists to track whether the cache
should be used at all.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/gnutls_cache.c

    r2f949bc rb94aee2  
    313313{
    314314    apr_status_t rv = APR_SUCCESS;
    315     /* if GnuTLSCache was never explicitly set: */
    316     if (sc->cache_type == mgs_cache_unset || sc->cache_type == mgs_cache_none)
    317     {
    318         sc->cache_type = mgs_cache_none;
     315    /* GnuTLSCache was never explicitly set or is disabled: */
     316    if (sc->cache_enable == GNUTLS_ENABLED_UNSET
     317        || sc->cache_enable == GNUTLS_ENABLED_FALSE)
     318    {
     319        sc->cache_enable = GNUTLS_ENABLED_FALSE;
    319320        /* Cache disabled, done. */
    320321        return APR_SUCCESS;
     
    324325        sc->cache_timeout = apr_time_from_sec(MGS_DEFAULT_CACHE_TIMEOUT);
    325326
    326     /* initialize mutex only once */
     327    /* initialize cache structure and mutex if needed */
    327328    if (sc->cache == NULL)
    328329    {
    329         sc->cache = apr_palloc(pconf, sizeof(struct mgs_cache));
     330        sc->cache = apr_pcalloc(pconf, sizeof(struct mgs_cache));
    330331        rv = ap_global_mutex_create(&sc->cache->mutex, NULL,
    331332                                    MGS_CACHE_MUTEX_NAME,
     
    335336    }
    336337
    337     char *pname = NULL;
    338 
    339     if (sc->cache_type == mgs_cache_dbm || sc->cache_type == mgs_cache_gdbm)
    340         pname = "dbm";
    341     else if (sc->cache_type == mgs_cache_memcache)
    342         pname = "memcache";
    343     else if (sc->cache_type == mgs_cache_shmcb)
    344         pname = "shmcb";
    345 
    346338    /* Find the right socache provider */
    347339    sc->cache->prov = ap_lookup_provider(AP_SOCACHE_PROVIDER_GROUP,
    348                                          pname,
     340                                         sc->cache_type,
    349341                                         AP_SOCACHE_PROVIDER_VERSION);
    350342    if (sc->cache->prov)
     
    358350            ap_log_error(APLOG_MARK, APLOG_EMERG, APR_EGENERAL, s,
    359351                         "Creating cache '%s:%s' failed: %s",
    360                          pname, sc->cache_config, err);
     352                         sc->cache_type, sc->cache_config, err);
    361353            return HTTP_INSUFFICIENT_STORAGE;
    362354        }
    363355        ap_log_error(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, s,
    364                      "%s: Socache '%s' created.", __func__, pname);
     356                     "%s: Socache '%s' created.", __func__, sc->cache_type);
    365357
    366358        // TODO: provide hints
     
    371363            ap_log_error(APLOG_MARK, APLOG_EMERG, rv, s,
    372364                         "Initializing cache '%s:%s' failed!",
    373                          pname, sc->cache_config);
     365                         sc->cache_type, sc->cache_config);
    374366            return HTTP_INSUFFICIENT_STORAGE;
    375367        }
    376368        ap_log_error(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, s,
    377369                     "%s: socache '%s:%s' created.", __func__,
    378                      pname, sc->cache_config);
     370                     sc->cache_type, sc->cache_config);
    379371    }
    380372    else
     
    383375                     "Could not find socache provider '%s', please make sure "
    384376                     "that the provider name is valid and the "
    385                      "appropriate mod_socache submodule is loaded.", pname);
     377                     "appropriate mod_socache submodule is loaded.",
     378                     sc->cache_type);
    386379        return HTTP_NOT_FOUND;
    387380    }
     
    409402int mgs_cache_session_init(mgs_handle_t * ctxt)
    410403{
    411     if (ctxt->sc->cache_type != mgs_cache_none)
     404    if (ctxt->sc->cache_enable)
    412405    {
    413406        gnutls_db_set_retrieve_function(ctxt->session,
Note: See TracChangeset for help on using the changeset viewer.