summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2010-11-18 13:28:47 +0100
committerVolker Lendecke <vlendec@samba.org>2010-11-18 14:48:18 +0000
commite25ee6af8f783c82af6e5b0f12ec19467deabb8a (patch)
tree3b6e0e3f8b84575506e8964b54c63038f55bf236
parent92d87e1f677207f9cd8d279168227d216d58ab46 (diff)
downloadsamba-e25ee6af8f783c82af6e5b0f12ec19467deabb8a.tar.gz
samba-e25ee6af8f783c82af6e5b0f12ec19467deabb8a.tar.bz2
samba-e25ee6af8f783c82af6e5b0f12ec19467deabb8a.zip
s3: Make winbind recover from a signing error
When winbind sees a signing error on the smb connection to a DC (for whatever reason, our bug, network glitch, etc) it should recover properly. The "old" code in clientgen.c just closed the socket in this case. This is the right thing to do, this connection is spoiled anyway. The new, async code did not do this so far, which led to the code in winbindd_cm.c not detect that we need to reconnect.
-rw-r--r--source3/libsmb/async_smb.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c
index 0aaeea2827..b04c274b9d 100644
--- a/source3/libsmb/async_smb.c
+++ b/source3/libsmb/async_smb.c
@@ -702,6 +702,8 @@ static void cli_smb_received(struct tevent_req *subreq)
DEBUG(10, ("cli_check_sign_mac failed\n"));
TALLOC_FREE(inbuf);
status = NT_STATUS_ACCESS_DENIED;
+ close(cli->fd);
+ cli->fd = -1;
goto fail;
}