Changeset 41f9bcb in mod_gnutls for src/gnutls_cache.c


Ignore:
Timestamp:
Apr 25, 2018, 5:28:35 AM (3 years ago)
Author:
Fiona Klute <fiona.klute@…>
Branches:
debian/master, master, proxy-ticket
Children:
adf36c3
Parents:
ded2291
Message:

Use cache parameter in mgs_cache_store() and mgs_cache_fetch()

The mgs_cache_store() and mgs_cache_fetch() functions now use the
provided mgs_cache_t cache to access the underlying socache.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/gnutls_cache.c

    rded2291 r41f9bcb  
    112112
    113113
    114 int mgs_cache_store(mgs_cache_t cache __attribute__((unused)),
    115                     server_rec *server, gnutls_datum_t key,
    116                     gnutls_datum_t data, apr_time_t expiry)
     114int mgs_cache_store(mgs_cache_t cache, server_rec *server,
     115                    gnutls_datum_t key, gnutls_datum_t data,
     116                    apr_time_t expiry)
    117117{
    118118    mgs_srvconf_rec *sc = (mgs_srvconf_rec *)
     
    122122    apr_pool_create(&spool, NULL);
    123123
    124     if (sc->cache->prov->flags & AP_SOCACHE_FLAG_NOTMPSAFE)
    125         apr_global_mutex_lock(sc->cache->mutex);
    126     apr_status_t rv = sc->cache->prov->store(sc->cache->socache, server,
    127                                              key.data, key.size,
    128                                              expiry,
    129                                              data.data, data.size,
    130                                              spool);
    131     if (sc->cache->prov->flags & AP_SOCACHE_FLAG_NOTMPSAFE)
    132         apr_global_mutex_unlock(sc->cache->mutex);
     124    if (cache->prov->flags & AP_SOCACHE_FLAG_NOTMPSAFE)
     125        apr_global_mutex_lock(cache->mutex);
     126    apr_status_t rv = cache->prov->store(cache->socache, server,
     127                                         key.data, key.size,
     128                                         expiry,
     129                                         data.data, data.size,
     130                                         spool);
     131    if (cache->prov->flags & AP_SOCACHE_FLAG_NOTMPSAFE)
     132        apr_global_mutex_unlock(cache->mutex);
    133133
    134134    if (rv != APR_SUCCESS)
    135135    {
     136        // TODO: clean up sc->cache_config reference
    136137        ap_log_error(APLOG_MARK, APLOG_DEBUG, rv, server,
    137138                     "error storing in cache '%s:%s'",
    138                      sc->cache->prov->name, sc->cache_config);
     139                     cache->prov->name, sc->cache_config);
    139140        apr_pool_destroy(spool);
    140141        return -1;
    141142    }
    142143
     144    // TODO: clean up sc->cache_config reference
    143145    ap_log_error(APLOG_MARK, APLOG_TRACE1, rv, server,
    144146                 "stored %u bytes of data (%u byte key) in cache '%s:%s'",
    145147                 data.size, key.size,
    146                  sc->cache->prov->name, sc->cache_config);
     148                 cache->prov->name, sc->cache_config);
    147149    apr_pool_destroy(spool);
    148150    return 0;
     
    186188    apr_pool_create(&spool, pool);
    187189
    188     if (sc->cache->prov->flags & AP_SOCACHE_FLAG_NOTMPSAFE)
    189         apr_global_mutex_lock(sc->cache->mutex);
    190     apr_status_t rv = sc->cache->prov->retrieve(sc->cache->socache, server,
    191                                                 key.data, key.size,
    192                                                 data.data, &data.size,
    193                                                 spool);
    194     if (sc->cache->prov->flags & AP_SOCACHE_FLAG_NOTMPSAFE)
    195         apr_global_mutex_unlock(sc->cache->mutex);
     190    if (cache->prov->flags & AP_SOCACHE_FLAG_NOTMPSAFE)
     191        apr_global_mutex_lock(cache->mutex);
     192    apr_status_t rv = cache->prov->retrieve(cache->socache, server,
     193                                            key.data, key.size,
     194                                            data.data, &data.size,
     195                                            spool);
     196    if (cache->prov->flags & AP_SOCACHE_FLAG_NOTMPSAFE)
     197        apr_global_mutex_unlock(cache->mutex);
    196198
    197199    if (rv != APR_SUCCESS)
    198200    {
     201        // TODO: clean up sc->cache_config references
    199202        /* APR_NOTFOUND means there's no such object. */
    200203        if (rv == APR_NOTFOUND)
    201204            ap_log_error(APLOG_MARK, APLOG_TRACE1, rv, server,
    202205                         "requested entry not found in cache '%s:%s'.",
    203                          sc->cache->prov->name, sc->cache_config);
     206                         cache->prov->name, sc->cache_config);
    204207        else
    205208            ap_log_error(APLOG_MARK, APLOG_WARNING, rv, server,
    206209                         "error fetching from cache '%s:%s'",
    207                          sc->cache->prov->name, sc->cache_config);
     210                         cache->prov->name, sc->cache_config);
    208211        /* free unused buffer */
    209212        gnutls_free(data.data);
     
    213216    else
    214217    {
     218        // TODO: clean up sc->cache_config reference
    215219        ap_log_error(APLOG_MARK, APLOG_TRACE1, rv, server,
    216220                     "fetched %u bytes from cache '%s:%s'",
    217                      data.size, sc->cache->prov->name, sc->cache_config);
     221                     data.size, cache->prov->name, sc->cache_config);
    218222    }
    219223    apr_pool_destroy(spool);
Note: See TracChangeset for help on using the changeset viewer.