libads: Give krb5_errs.c its own header
[nivanova/samba-autobuild/.git] / source3 / winbindd / winbindd_cred_cache.c
index 293a821a23a5d3ddec80faba6a0b777d861bedf9..85ad426446ae820beea9e3ecf7c419a4c387ad59 100644 (file)
@@ -26,6 +26,7 @@
 #include "../libcli/auth/libcli_auth.h"
 #include "smb_krb5.h"
 #include "libads/kerberos_proto.h"
+#include "libads/krb5_errs.h"
 
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_WINBIND
@@ -118,9 +119,8 @@ static void krb5_ticket_refresh_handler(struct tevent_context *event_ctx,
        struct WINBINDD_MEMORY_CREDS *cred_ptr = entry->cred_ptr;
 #endif
 
-       DEBUG(10,("krb5_ticket_refresh_handler called\n"));
-       DEBUGADD(10,("event called for: %s, %s\n",
-               entry->ccname, entry->username));
+       DBG_DEBUG("event called for: %s, %s\n",
+                 entry->ccname, entry->username);
 
        TALLOC_FREE(entry->event);
 
@@ -285,7 +285,7 @@ done:
        if (entry->refresh_time == 0) {
                entry->refresh_time = new_start;
        }
-       entry->event = event_add_timed(winbind_event_context(), entry,
+       entry->event = tevent_add_timer(global_event_context(), entry,
                                       timeval_set(new_start, 0),
                                       krb5_ticket_refresh_handler,
                                       entry);
@@ -311,9 +311,8 @@ static void krb5_ticket_gain_handler(struct tevent_context *event_ctx,
        struct winbindd_domain *domain = NULL;
 #endif
 
-       DEBUG(10,("krb5_ticket_gain_handler called\n"));
-       DEBUGADD(10,("event called for: %s, %s\n",
-               entry->ccname, entry->username));
+       DBG_DEBUG("event called for: %s, %s\n",
+                 entry->ccname, entry->username);
 
        TALLOC_FREE(entry->event);
 
@@ -385,7 +384,7 @@ static void krb5_ticket_gain_handler(struct tevent_context *event_ctx,
        if (entry->refresh_time == 0) {
                entry->refresh_time = t.tv_sec;
        }
-       entry->event = event_add_timed(winbind_event_context(),
+       entry->event = tevent_add_timer(global_event_context(),
                                       entry,
                                       t,
                                       krb5_ticket_refresh_handler,
@@ -404,7 +403,7 @@ static void add_krb5_ticket_gain_handler_event(struct WINBINDD_CCACHE_ENTRY *ent
                                     struct timeval t)
 {
        entry->refresh_time = 0;
-       entry->event = event_add_timed(winbind_event_context(),
+       entry->event = tevent_add_timer(global_event_context(),
                                       entry,
                                       t,
                                       krb5_ticket_gain_handler,
@@ -424,13 +423,13 @@ void ccache_regain_all_now(void)
                 * the event has the krb5_ticket_gain_handler
                 */
                if (cur->refresh_time == 0) {
-                       new_event = event_add_timed(winbind_event_context(),
+                       new_event = tevent_add_timer(global_event_context(),
                                                    cur,
                                                    t,
                                                    krb5_ticket_gain_handler,
                                                    cur);
                } else {
-                       new_event = event_add_timed(winbind_event_context(),
+                       new_event = tevent_add_timer(global_event_context(),
                                                    cur,
                                                    t,
                                                    krb5_ticket_refresh_handler,
@@ -501,12 +500,9 @@ NTSTATUS add_ccache_to_list(const char *princ_name,
        struct WINBINDD_CCACHE_ENTRY *entry = NULL;
        struct timeval t;
        NTSTATUS ntret;
-#ifdef HAVE_KRB5
-       int ret;
-#endif
 
        if ((username == NULL && princ_name == NULL) ||
-           ccname == NULL || uid < 0) {
+           ccname == NULL || uid == (uid_t)-1) {
                return NT_STATUS_INVALID_PARAMETER;
        }
 
@@ -516,27 +512,6 @@ NTSTATUS add_ccache_to_list(const char *princ_name,
                return NT_STATUS_NO_MORE_ENTRIES;
        }
 
-       /* If it is cached login, destroy krb5 ticket
-        * to avoid surprise. */
-#ifdef HAVE_KRB5
-       if (postponed_request) {
-               /* ignore KRB5_FCC_NOFILE error here */
-               ret = ads_kdestroy(ccname);
-               if (ret == KRB5_FCC_NOFILE) {
-                       ret = 0;
-               }
-               if (ret) {
-                       DEBUG(0, ("add_ccache_to_list: failed to destroy "
-                                  "user krb5 ccache %s with %s\n", ccname,
-                                  error_message(ret)));
-                       return krb5_to_nt_status(ret);
-               }
-               DEBUG(10, ("add_ccache_to_list: successfully destroyed "
-                          "krb5 ccache %s for user %s\n", ccname,
-                          username));
-       }
-#endif
-
        /* Reference count old entries */
        entry = get_ccache_by_username(username);
        if (entry) {
@@ -571,7 +546,7 @@ NTSTATUS add_ccache_to_list(const char *princ_name,
                                if (!entry->refresh_time) {
                                        entry->refresh_time = t.tv_sec;
                                }
-                               entry->event = event_add_timed(winbind_event_context(),
+                               entry->event = tevent_add_timer(global_event_context(),
                                                               entry,
                                                               t,
                                                               krb5_ticket_refresh_handler,
@@ -669,7 +644,7 @@ NTSTATUS add_ccache_to_list(const char *princ_name,
                if (entry->refresh_time == 0) {
                        entry->refresh_time = t.tv_sec;
                }
-               entry->event = event_add_timed(winbind_event_context(),
+               entry->event = tevent_add_timer(global_event_context(),
                                               entry,
                                               t,
                                               krb5_ticket_refresh_handler,