diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/client/smbspool.c | 14 | ||||
-rw-r--r-- | source3/nsswitch/winbindd_ads.c | 4 |
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) { |