PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- *) Easy proposals:
- - mod_authnz_ldap: Log a warning when the LDAP authn provider is configured
- but an AuthLDAPURL isn't
- - mod_auth_digest: Follow up to r1772919: update APLOGNO()
- - mod_cache_socache: Save a few cycles
- - mod_cache_socache: Improve indentation
- - mod_cache_socache: Group bit field values in order to save some memory
- - mod_authnz_ldap: Add an explicit NULL to initialise a field in an authn_provider
- structure
- trunk patch: http://svn.apache.org/r1551611
- http://svn.apache.org/r1783765
- http://svn.apache.org/r1788996
- http://svn.apache.org/r1788998
- http://svn.apache.org/r1789000
- http://svn.apache.org/r1795651
- 2.4.x patch: svn merge -c 1551611,1783765,1788996,1788998,1789000,1795651 ^/httpd/httpd/trunk .
- +1: jailletc36, jim, ylavic
-
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
[ New proposals should be added at the end of the list ]
cache_socache_info_t socache_info; /* Header information. */
apr_size_t body_offset; /* offset to the start of the body */
apr_off_t body_length; /* length of the cached entity body */
- unsigned int newbody :1; /* whether a new body is present */
apr_time_t expire; /* when to expire the entry */
const char *name; /* Requested URI without vary bits - suitable for mortals. */
const char *key; /* On-disk prefix; URI with Vary bits (if present) */
apr_off_t offset; /* Max size to set aside */
apr_time_t timeout; /* Max time to set aside */
+ unsigned int newbody :1; /* whether a new body is present */
unsigned int done :1; /* Is the attempt to cache complete? */
} cache_socache_object_t;
}
static const char* regen_key(apr_pool_t *p, apr_table_t *headers,
- apr_array_header_t *varray, const char *oldkey)
+ apr_array_header_t *varray, const char *oldkey,
+ apr_size_t *newkeylen)
{
struct iovec *iov;
int i, k;
iov[k].iov_len = strlen(oldkey);
k++;
- return apr_pstrcatv(p, iov, k, NULL);
+ return apr_pstrcatv(p, iov, k, newkeylen);
}
static int array_alphasort(const void *fn1, const void *fn2)
return DECLINED;
}
- nkey = regen_key(r->pool, r->headers_in, varray, key);
+ nkey = regen_key(r->pool, r->headers_in, varray, key, &len);
/* attempt to retrieve the cached entry */
if (socache_mutex) {
buffer_len = sobj->buffer_len;
rc = conf->provider->socache_provider->retrieve(
conf->provider->socache_instance, r->server,
- (unsigned char *) nkey, strlen(nkey), sobj->buffer,
+ (unsigned char *) nkey, len, sobj->buffer,
&buffer_len, r->pool);
if (socache_mutex) {
apr_status_t status = apr_global_mutex_unlock(socache_mutex);
}
obj->key = sobj->key = regen_key(r->pool, sobj->headers_in, varray,
- sobj->name);
+ sobj->name, NULL);
}
}
name, AP_SOCACHE_PROVIDER_VERSION);
if (provider->socache_provider == NULL) {
err = apr_psprintf(cmd->pool,
- "Unknown socache provider '%s'. Maybe you need "
+ "Unknown socache provider '%s'. Maybe you need "
"to load the appropriate socache module "
"(mod_socache_%s?)", name, name);
}
APR_LOCK_DEFAULT, 0);
if (rv != APR_SUCCESS) {
ap_log_perror(APLOG_MARK, APLOG_CRIT, rv, plog, APLOGNO(02390)
- "failed to register %s mutex", cache_socache_id);
+ "failed to register %s mutex", cache_socache_id);
return 500; /* An HTTP status would be a misnomer! */
}
NULL, s, pconf, 0);
if (rv != APR_SUCCESS) {
ap_log_perror(APLOG_MARK, APLOG_CRIT, rv, plog, APLOGNO(02391)
- "failed to create %s mutex", cache_socache_id);
+ "failed to create %s mutex", cache_socache_id);
return 500; /* An HTTP status would be a misnomer! */
}
apr_pool_cleanup_register(pconf, NULL, remove_lock,
&socache_hints, s, pconf);
if (rv != APR_SUCCESS) {
ap_log_perror(APLOG_MARK, APLOG_CRIT, rv, plog, APLOGNO(02393)
- "failed to initialise %s cache", cache_socache_id);
+ "failed to initialise %s cache", cache_socache_id);
return 500; /* An HTTP status would be a misnomer! */
}
apr_pool_cleanup_register(pconf, (void *) s, destroy_cache,