#include <krb5.h>
#include <stropts.h>
+
+#include <afs/param.h>
+
#include <afs/venus.h>
#include <afs/auth.h>
#include <afs/dirpath.h>
}
+int get_cfg_usertokens(waklog_config *cfg)
+{
+ if (cfg->usertokens==WAKLOG_UNSET)
+ return 0; /* default */
+ return cfg->usertokens;
+}
+
+int get_cfg_protect(waklog_config *cfg)
+{
+ if (cfg->protect==WAKLOG_UNSET)
+ return 0; /* default */
+ return cfg->protect;
+}
+
+int get_cfg_disable_token_cache(waklog_config *cfg)
+{
+ if (cfg->disable_token_cache==WAKLOG_UNSET)
+ return 0; /* default */
+ return cfg->disable_token_cache;
+}
+
static void *
waklog_create_server_config (MK_POOL * p, server_rec * s)
/* mmap the region */
if ( ( sharedspace = (struct sharedspace_s *) mmap ( NULL, sizeof(struct sharedspace_s), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0 ) ) != MAP_FAILED ) {
+ int err = 0;
log_error( APLOG_MARK, APLOG_DEBUG, 0, s, "mod_waklog: shared mmap region ok %d", sharedspace );
- close(fd);
+ err = unlink(cache_file);
+ if (err) {
+ log_error( APLOG_MARK, APLOG_ERR, 0, s, "mod_waklog: unable to delete %s due to %d", cache_file, errno);
+ } else {
+ log_error( APLOG_MARK, APLOG_DEBUG, 0, s, "mod_waklog: shared cache unlinked (will be deleted when Apache quits)");
+ }
} else {
log_error( APLOG_MARK, APLOG_DEBUG, 0, s, "mod_waklog: mmap failed %d", errno );
exit(errno);
cfg = retrieve_config(r);
- if ( cfg->protect && cfg->principal ) {
+ if ( get_cfg_protect(cfg) && cfg->principal ) {
log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "mod_waklog: phase0 using user %s", cfg->principal);
set_auth(r->server, r, 0, cfg->principal, cfg->keytab, 0);
} else if ( cfg->default_principal ) {
cfg = retrieve_config(r);
- if ( cfg->protect && cfg->principal ) {
+ if ( get_cfg_protect(cfg) && cfg->principal ) {
log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "mod_waklog: phase1 using user %s", cfg->principal);
set_auth(r->server, r, 0, cfg->principal, cfg->keytab, 0);
} else if ( cfg->default_principal ) {
cfg = retrieve_config(r);
- if ( cfg->protect && cfg->principal ) {
+ if ( get_cfg_protect(cfg) && cfg->principal ) {
log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "mod_waklog: phase3 using user %s", cfg->principal);
set_auth(r->server, r, 0, cfg->principal, cfg->keytab, 0);
} else if ( cfg->default_principal ) {
cfg = retrieve_config(r);
- if ( cfg->protect && cfg->principal ) {
+ if ( get_cfg_protect(cfg) && cfg->principal ) {
log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "mod_waklog: phase6 using user %s", cfg->principal);
set_auth(r->server, r, 0, cfg->principal, cfg->keytab, 0);
} else if ( cfg->default_principal ) {
cfg = retrieve_config (r);
- if ( cfg->protect && cfg->usertokens ) {
+ if ( get_cfg_protect(cfg) && get_cfg_usertokens(cfg) ) {
log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "mod_waklog: phase7 using usertokens");
rc = set_auth( r->server, r, 1, NULL, NULL, 0);
- } else if ( cfg->protect && cfg->principal ) {
+ } else if ( get_cfg_protect(cfg) && cfg->principal ) {
log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "mod_waklog: phase7 using user %s", cfg->principal);
rc = set_auth( r->server, r, 0, cfg->principal, cfg->keytab, 0);
} else if ( cfg->default_principal ) {