diff options
author | Rickard Green <[email protected]> | 2018-10-12 17:59:18 +0200 |
---|---|---|
committer | Rickard Green <[email protected]> | 2018-10-12 17:59:18 +0200 |
commit | 8e65d31faab67b9844bbbaaa6245b2da2dd97b76 (patch) | |
tree | fec253c9db3c1d24b77f3f4933b8361ef740266b /lib/eldap/src/eldap.erl | |
parent | e620c8c507c33ebca6216d71a8de73bce2722ac2 (diff) | |
parent | 13baa4384c4c9c49e6d540bc8ae6b8946f2454ed (diff) | |
download | otp-8e65d31faab67b9844bbbaaa6245b2da2dd97b76.tar.gz otp-8e65d31faab67b9844bbbaaa6245b2da2dd97b76.tar.bz2 otp-8e65d31faab67b9844bbbaaa6245b2da2dd97b76.zip |
Merge branch 'maint'
* maint:
Updated OTP version
Prepare release
erts: Fix UNC path handling on Windows
erts: Fix a compiler warning
eldap: Fix race at socket close
Fix bug for sockopt pktoptions on BSD
erts: Fix memory leak on file read errors
Diffstat (limited to 'lib/eldap/src/eldap.erl')
-rw-r--r-- | lib/eldap/src/eldap.erl | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/eldap/src/eldap.erl b/lib/eldap/src/eldap.erl index 2b84872b92..6497922852 100644 --- a/lib/eldap/src/eldap.erl +++ b/lib/eldap/src/eldap.erl @@ -957,10 +957,19 @@ do_modify_dn_0(Data, Entry, NewRDN, DelOldRDN, NewSup, Controls) -> do_unbind(Data) -> Req = "", log2(Data, "unbind request = ~p (has no reply)~n", [Req]), - send_request(Data#eldap.fd, Data, Data#eldap.id, {unbindRequest, Req}), case Data#eldap.using_tls of - true -> ssl:close(Data#eldap.fd); - false -> gen_tcp:close(Data#eldap.fd) + true -> + send_request(Data#eldap.fd, Data, Data#eldap.id, {unbindRequest, Req}), + ssl:close(Data#eldap.fd); + false -> + OldTrapExit = process_flag(trap_exit, true), + catch send_request(Data#eldap.fd, Data, Data#eldap.id, {unbindRequest, Req}), + catch gen_tcp:close(Data#eldap.fd), + receive + {'EXIT', _From, _Reason} -> ok + after 0 -> ok + end, + process_flag(trap_exit, OldTrapExit) end, {no_reply, Data#eldap{binddn = (#eldap{})#eldap.binddn, passwd = (#eldap{})#eldap.passwd, |