PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- *) Use ap_array_str_contains to simplify code
- trunk patch: http://svn.apache.org/r1733523
- http://svn.apache.org/r1733691
- 2.4.x patch: trunk patch works
- +1: jailletc36, jim, ylavic
-
*) mod_ssl: Don't lose track of the SSL context if the ssl_run_pre_handshake()
hook returns an error.
trunk patch: http://svn.apache.org/r1734006
authn_cache_dircfg *dcfg;
const char *key;
apr_time_t expiry;
- int i;
- int use_cache = 0;
/* first check whether we're cacheing for this module */
dcfg = ap_get_module_config(r->per_dir_config, &authn_socache_module);
if (!configured || !dcfg->providers) {
return;
}
- for (i = 0; i < dcfg->providers->nelts; ++i) {
- if (!strcmp(module, APR_ARRAY_IDX(dcfg->providers, i, const char*))) {
- use_cache = 1;
- break;
- }
- }
- if (!use_cache) {
+ if (!ap_array_str_contains(dcfg->providers, module)) {
return;
}
ret->redirect = -1;
return ret;
}
+
static void *authz_dbd_merge_cfg(apr_pool_t *pool, void *BASE, void *ADD)
{
authz_dbd_cfg *base = BASE;
ret->redirect = (add->redirect == -1) ? base->redirect : add->redirect;
return ret;
}
+
static const char *authz_dbd_prepare(cmd_parms *cmd, void *cfg,
const char *query)
{
/* save the label here for our own use */
return ap_set_string_slot(cmd, cfg, label);
}
+
static const command_rec authz_dbd_cmds[] = {
AP_INIT_FLAG("AuthzDBDLoginToReferer", ap_set_flag_slot,
(void*)APR_OFFSETOF(authz_dbd_cfg, redirect), ACCESS_CONF,
const char *require_args,
const void *parsed_require_args)
{
- int i, rv;
+ int rv;
const char *w;
- apr_array_header_t *groups = NULL;
+ apr_array_header_t *groups;
const char *err = NULL;
const ap_expr_info_t *expr = parsed_require_args;
return AUTHZ_DENIED_NO_USER;
}
- if (groups == NULL) {
- groups = apr_array_make(r->pool, 4, sizeof(const char*));
- rv = authz_dbd_group_query(r, cfg, groups);
- if (rv != OK) {
- return AUTHZ_GENERAL_ERROR;
- }
+ groups = apr_array_make(r->pool, 4, sizeof(const char*));
+ rv = authz_dbd_group_query(r, cfg, groups);
+ if (rv != OK) {
+ return AUTHZ_GENERAL_ERROR;
}
require = ap_expr_str_exec(r, expr, &err);
t = require;
while (t[0]) {
w = ap_getword_white(r->pool, &t);
- for (i=0; i < groups->nelts; ++i) {
- if (!strcmp(w, ((const char**)groups->elts)[i])) {
- return AUTHZ_GRANTED;
- }
+ if (ap_array_str_contains(groups, w)) {
+ return AUTHZ_GRANTED;
}
}
}
static const char *dbd_parse_config(cmd_parms *cmd, const char *require_line,
- const void **parsed_require_line)
+ const void **parsed_require_line)
{
const char *expr_err = NULL;
ap_expr_info_t *expr;
expr = ap_expr_parse_cmd(cmd, require_line, AP_EXPR_FLAG_STRING_RESULT,
- &expr_err, NULL);
+ &expr_err, NULL);
- if (expr_err)
+ if (expr_err) {
return apr_pstrcat(cmd->temp_pool,
"Cannot parse expression in require line: ",
expr_err, NULL);
+ }
*parsed_require_line = expr;
NULL,
};
-
static const authz_provider authz_dbdlogout_provider =
{
&dbdlogout_check_authorization,
authz_dbd_cmds,
authz_dbd_hooks
};
-