winbind: Retry after SESSION_EXPIRED error in ping-dc
[obnox/samba/samba-obnox.git] / source3 / winbindd / winbindd_dual_srv.c
index 22e709fda90a2b672515e4d083751bb93faf3749..061de7299ad5799877366063d2b0e80de5502257 100644 (file)
@@ -677,6 +677,14 @@ NTSTATUS _wbint_PingDc(struct pipes_struct *p, struct wbint_PingDc *r)
 
 reconnect:
        status = cm_connect_netlogon(domain, &netlogon_pipe);
+       if (NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_SESSION_EXPIRED)) {
+               /*
+                * Retry to open new connection with new kerberos ticket.
+                */
+               invalidate_cm_connection(domain);
+               status = cm_connect_netlogon(domain, &netlogon_pipe);
+       }
+
        reset_cm_connection_on_error(domain, status);
         if (!NT_STATUS_IS_OK(status)) {
                DEBUG(3, ("could not open handle to NETLOGON pipe: %s\n",