Skip to content

Commit 0d89b21

Browse files
frozencemeterysimo5
authored andcommitted
Fix build without cred store extensions
Refactor mag_set_ccname_envvar() logic slightly to hide contents. Add conditional logic to mag_create_dir_config(). Cleanup definition of HAVE_CRED_STORE in mod_auth_gssapi.h. Signed-off-by: Robbie Harwood <rharwood@redhat.com> Reviewed-by: Simo Sorce <simo@redhat.com> Closes #149
1 parent 9005c8d commit 0d89b21

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

src/environ.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -399,12 +399,16 @@ static void mag_set_name_attributes(request_rec *req, struct mag_conn *mc)
399399
static void mag_set_ccname_envvar(request_rec *req, struct mag_config *cfg,
400400
struct mag_conn *mc)
401401
{
402+
#ifdef HAVE_CRED_STORE
402403
apr_status_t status;
403404
apr_int32_t wanted = APR_FINFO_MIN | APR_FINFO_OWNER | APR_FINFO_PROT;
404405
apr_finfo_t finfo = { 0 };
405406
char *path;
406407
char *value;
407408

409+
if (!cfg->deleg_ccache_dir || !mc->delegated || !mc->ccname)
410+
return;
411+
408412
path = apr_psprintf(req->pool, "%s/%s", cfg->deleg_ccache_dir, mc->ccname);
409413

410414
status = apr_stat(&finfo, path, wanted, req->pool);
@@ -441,6 +445,7 @@ static void mag_set_ccname_envvar(request_rec *req, struct mag_config *cfg,
441445

442446
value = apr_psprintf(req->pool, "FILE:%s", path);
443447
apr_table_set(mc->env, cfg->ccname_envvar, value);
448+
#endif
444449
}
445450

446451
void mag_export_req_env(request_rec *req, apr_table_t *env)
@@ -467,11 +472,7 @@ void mag_set_req_data(request_rec *req,
467472
mag_set_name_attributes(req, mc);
468473
}
469474

470-
#ifdef HAVE_CRED_STORE
471-
if (cfg->deleg_ccache_dir && mc->delegated && mc->ccname) {
472-
mag_set_ccname_envvar(req, cfg, mc);
473-
}
474-
#endif
475+
mag_set_ccname_envvar(req, cfg, mc);
475476

476477
ap_set_module_config(req->request_config, &auth_gssapi_module, mc->env);
477478
mag_export_req_env(req, mc->env);

src/mod_auth_gssapi.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1286,7 +1286,9 @@ static void *mag_create_dir_config(apr_pool_t *p, char *dir)
12861286

12871287
cfg = (struct mag_config *)apr_pcalloc(p, sizeof(struct mag_config));
12881288
cfg->pool = p;
1289+
#ifdef HAVE_CRED_STORE
12891290
cfg->ccname_envvar = "KRB5CCNAME";
1291+
#endif
12901292

12911293
return cfg;
12921294
}

src/mod_auth_gssapi.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,8 @@
4646

4747
#define MIN_SESS_EXP_TIME 300 /* 5 minutes validity minimum */
4848

49-
#ifdef HAVE_GSS_ACQUIRE_CRED_FROM
50-
# ifdef HAVE_GSS_STORE_CRED_INTO
51-
#define HAVE_CRED_STORE 1
52-
# endif
49+
#if defined(HAVE_GSS_ACQUIRE_CRED_FROM) && defined(HAVE_GSS_STORE_CRED_INTO)
50+
# define HAVE_CRED_STORE 1
5351
#endif
5452

5553
extern module AP_MODULE_DECLARE_DATA auth_gssapi_module;

0 commit comments

Comments
 (0)