diff options
author | Ralph Boehme <slow@samba.org> | 2018-03-12 16:53:49 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2018-04-20 11:56:22 +0200 |
commit | 6e1018e5887031a011d34cb2817c6818fbd7036c (patch) | |
tree | 8a646a60ddafd8408c2b04a2ed916304cae76bc0 /source3 | |
parent | 5bf61b01164afec5678818cdfd5e1980ddc37acc (diff) | |
download | samba-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.c | 20 |
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; } |