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-04-20 11:56:22 +0200
commit6e1018e5887031a011d34cb2817c6818fbd7036c (patch)
tree8a646a60ddafd8408c2b04a2ed916304cae76bc0 /source3
parent5bf61b01164afec5678818cdfd5e1980ddc37acc (diff)
downloadsamba-6e1018e5887031a011d34cb2817c6818fbd7036c.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 e80f3dd8d45..f7f01431c91 100644
--- a/source3/winbindd/winbindd_dual_srv.c
+++ b/source3/winbindd/winbindd_dual_srv.c
@@ -822,15 +822,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)));
@@ -1327,8 +1323,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;
}
@@ -1393,8 +1390,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;
}
@@ -1547,8 +1543,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;
}
@@ -1744,8 +1739,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;
}