diff options
| author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-01-23 10:54:52 +0300 |
|---|---|---|
| committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-01-23 10:54:52 +0300 |
| commit | ba2b650464bd3aae2b6b0f3a3177476360cb6d08 (patch) | |
| tree | 5d55501f76edcdcfe145ba0c3367a54ea0314e5c /src/eldap.erl | |
| parent | Do not try to start ezlib application too frequently (diff) | |
Introduce new gen_mod callback: mod_options/1
The callback is supposed to provide known options and their default
values, as long as the documentation. Passing default values into
get_mod functions is now deprecated: all defaults should be provided
by the Mod:mod_options/1 callback.
Diffstat (limited to 'src/eldap.erl')
| -rw-r--r-- | src/eldap.erl | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/eldap.erl b/src/eldap.erl index 8e6b710b1..03651c508 100644 --- a/src/eldap.erl +++ b/src/eldap.erl @@ -1046,8 +1046,6 @@ polish([], Res, Ref) -> {Res, Ref}. %%----------------------------------------------------------------------- connect_bind(S) -> Host = next_host(S#eldap.host, S#eldap.hosts), - ?INFO_MSG("LDAP connection on ~s:~p", - [Host, S#eldap.port]), Opts = if S#eldap.tls == tls -> [{packet, asn1}, {active, true}, {keepalive, true}, binary @@ -1056,6 +1054,8 @@ connect_bind(S) -> [{packet, asn1}, {active, true}, {keepalive, true}, {send_timeout, ?SEND_TIMEOUT}, binary] end, + ?DEBUG("Connecting to LDAP server at ~s:~p with options ~p", + [Host, S#eldap.port, Opts]), HostS = binary_to_list(Host), SocketData = case S#eldap.tls of tls -> @@ -1080,9 +1080,8 @@ connect_bind(S) -> {ok, connecting, NewS#eldap{host = Host}} end; {error, Reason} -> - ?ERROR_MSG("LDAP connection failed:~n** Server: " - "~s:~p~n** Reason: ~p~n** Socket options: ~p", - [Host, S#eldap.port, Reason, Opts]), + ?ERROR_MSG("LDAP connection to ~s:~b failed: ~s", + [Host, S#eldap.port, format_error(SockMod, Reason)]), NewS = close_and_retry(S), {ok, connecting, NewS#eldap{host = Host}} end. @@ -1121,3 +1120,15 @@ bump_id(#eldap{id = Id}) when Id > (?MAX_TRANSACTION_ID) -> ?MIN_TRANSACTION_ID; bump_id(#eldap{id = Id}) -> Id + 1. + +format_error(SockMod, Reason) -> + Txt = case SockMod of + ssl -> ssl:format_error(Reason); + gen_tcp -> inet:format_error(Reason) + end, + case Txt of + "unknown POSIX error" -> + lists:flatten(io_lib:format("~p", [Reason])); + _ -> + Txt + end. |
