summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2018-03-12 16:53:49 +0100
committerKarolin Seeger <kseeger@samba.org>2018-05-07 09:57:26 +0200
commitb0a14aec00e61569e1808f6c736c9e6a69e4554f (patch)
tree749fb0889d8030ed65c8be3a89fc7d09f8fa2266 /source3
parent1b7c16af660a9c2a25e400ae2143d50c23140774 (diff)
downloadsamba-b0a14aec00e61569e1808f6c736c9e6a69e4554f.tar.gz
winbindd: use reset_cm_connection_on_error() instead of dcerpc_binding_handle_is_connected()
This catches more errors and triggers retry as appropriate. Bug: https://bugzilla.samba.org/show_bug.cgi?id=13332 Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org> (cherry picked from commit 6244a2beb184de8d050389e304f087ef153d61dd)
Diffstat (limited to 'source3')
-rw-r--r--source3/winbindd/winbindd_dual_srv.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/source3/winbindd/winbindd_dual_srv.c b/source3/winbindd/winbindd_dual_srv.c
index 510eb8ba0ca..29a91040898 100644
--- a/source3/winbindd/winbindd_dual_srv.c
+++ b/source3/winbindd/winbindd_dual_srv.c
@@ -813,15 +813,11 @@ reconnect:
logon_server, NETLOGON_CONTROL_QUERY,
2, &info, &werr);
- if (!dcerpc_binding_handle_is_connected(b) && !retry) {
- DEBUG(10, ("Session might have expired. "
- "Reconnect and retry once.\n"));
- invalidate_cm_connection(domain);
+ if (!retry && reset_cm_connection_on_error(domain, b, status)) {
retry = true;
goto reconnect;
}
- reset_cm_connection_on_error(domain, NULL, status);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(2, ("dcerpc_netr_LogonControl failed: %s\n",
nt_errstr(status)));
@@ -1221,8 +1217,9 @@ reconnect:
status = NT_STATUS_OK;
}
if (!NT_STATUS_IS_OK(status)) {
- if (!retry && !dcerpc_binding_handle_is_connected(b)) {
- invalidate_cm_connection(domain);
+ if (!retry &&
+ reset_cm_connection_on_error(domain, b, status))
+ {
retry = true;
goto reconnect;
}
@@ -1287,8 +1284,7 @@ reconnect:
goto verify_return;
}
if (!NT_STATUS_IS_OK(status)) {
- if (!retry && !dcerpc_binding_handle_is_connected(b)) {
- invalidate_cm_connection(domain);
+ if (!retry && reset_cm_connection_on_error(domain, b, status)) {
retry = true;
goto reconnect;
}
@@ -1438,8 +1434,7 @@ reconnect:
domain->dcname,
true); /* force */
if (!NT_STATUS_IS_OK(status)) {
- if (!retry && !dcerpc_binding_handle_is_connected(b)) {
- invalidate_cm_connection(domain);
+ if (!retry && reset_cm_connection_on_error(domain, b, status)) {
retry = true;
goto reconnect;
}
@@ -1632,8 +1627,7 @@ reconnect:
b, p->mem_ctx,
&new_fti);
if (!NT_STATUS_IS_OK(status)) {
- if (!retry && !dcerpc_binding_handle_is_connected(b)) {
- invalidate_cm_connection(domain);
+ if (!retry && reset_cm_connection_on_error(domain, b, status)) {
retry = true;
goto reconnect;
}