summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/client/smbspool.c14
-rw-r--r--source3/nsswitch/winbindd_ads.c4
2 files changed, 16 insertions, 2 deletions
diff --git a/source3/client/smbspool.c b/source3/client/smbspool.c
index d7a02b76f9..92e0bb4b67 100644
--- a/source3/client/smbspool.c
+++ b/source3/client/smbspool.c
@@ -299,15 +299,21 @@ list_devices(void)
static
char * get_ticket_cache( uid_t uid )
{
+ char *ticket_file = NULL;
+
+#ifdef WITH_KCM
+ snprintf(ticket_file, CC_MAX_FILE_LEN, "KCM:%d", uid );
+ goto done;
+#else
+ {
SMB_STRUCT_DIR *tcdir; /* directory where ticket caches are stored */
SMB_STRUCT_DIRENT *dirent; /* directory entry */
char *filename = NULL; /* holds file names on the tmp directory */
SMB_STRUCT_STAT buf;
char user_cache_prefix[CC_MAX_FILE_LEN];
char file_path[CC_MAX_FILE_PATH_LEN];
- char *ticket_file = NULL;
time_t t = 0;
-
+
snprintf(user_cache_prefix, CC_MAX_FILE_LEN, "%s%d", CC_PREFIX, uid );
tcdir = sys_opendir( TICKET_CC_DIR );
if ( tcdir == NULL )
@@ -343,6 +349,10 @@ char * get_ticket_cache( uid_t uid )
}
sys_closedir(tcdir);
+ }
+#endif
+
+done:
if ( ticket_file == NULL )
{
diff --git a/source3/nsswitch/winbindd_ads.c b/source3/nsswitch/winbindd_ads.c
index 179659f86f..721c345aa5 100644
--- a/source3/nsswitch/winbindd_ads.c
+++ b/source3/nsswitch/winbindd_ads.c
@@ -59,7 +59,11 @@ static ADS_STRUCT *ads_cached_connection(struct winbindd_domain *domain)
}
/* we don't want this to affect the users ccache */
+#ifdef WITH_KCM
+ setenv("KRB5CCNAME", "KCM:SYSTEM", 1);
+#else
setenv("KRB5CCNAME", "MEMORY:winbind_ccache", 1);
+#endif
ads = ads_init(domain->alt_name, domain->name, NULL);
if (!ads) {