diff options
author | anupamasingh10 <anupamasingh31@gmail.com> | 2023-02-23 11:11:06 +0100 |
---|---|---|
committer | anupamasingh10 <anupamasingh31@gmail.com> | 2023-02-23 11:22:48 +0100 |
commit | a537e48be916d5225b16e020da0def71ed928d89 (patch) | |
tree | 299d479ba3211428314a617d3db2a54ee4b685b8 /lib/eldap/src/eldap.erl | |
parent | aaa66149df33da3e417aaafb28be799147e9a414 (diff) | |
download | erlang-a537e48be916d5225b16e020da0def71ed928d89.tar.gz |
Add new api conn_info for SSL connections to LDAP server
Diffstat (limited to 'lib/eldap/src/eldap.erl')
-rw-r--r-- | lib/eldap/src/eldap.erl | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/lib/eldap/src/eldap.erl b/lib/eldap/src/eldap.erl index 22d816c8c8..cc27a31966 100644 --- a/lib/eldap/src/eldap.erl +++ b/lib/eldap/src/eldap.erl @@ -30,7 +30,9 @@ parse_ldap_url/1, paged_result_control/1, paged_result_control/2, - paged_result_cookie/1]). + paged_result_cookie/1, + conn_info/1, + conn_info/2]). -export([neverDerefAliases/0, derefInSearching/0, derefFindingBaseObj/0, derefAlways/0]). @@ -155,6 +157,16 @@ controlling_process(Handle, Pid) when is_pid(Handle), is_pid(Pid) -> recv(Handle). %%% -------------------------------------------------------------------- +%%% Return LDAP connection information +%%% -------------------------------------------------------------------- +conn_info(Handle) when is_pid(Handle) -> + conn_info(Handle, []). + +conn_info(Handle, Items) when is_pid(Handle) -> + send(Handle, {conn_info, Items}), + recv(Handle). + +%%% -------------------------------------------------------------------- %%% Authenticate ourselves to the Directory %%% using simple authentication. %%% @@ -608,6 +620,17 @@ loop(Cpid, Data) -> send(From, Result), ?MODULE:loop(Cpid, Data); + {From, {conn_info, Items}} -> + Res = + case Data#eldap.ldaps of + true -> + get_ssl_conn_info(Data#eldap.fd, Items); + false -> + {error, "Not an SSL connection"} + end, + send(From, Res), + ?MODULE:loop(Cpid, Data); + {Cpid, 'EXIT', Reason} -> ?PRINT("Got EXIT from Cpid, reason=~p~n",[Reason]), exit(Reason); @@ -618,6 +641,10 @@ loop(Cpid, Data) -> end. +get_ssl_conn_info(SockFd, []) -> + ssl:connection_information(SockFd); +get_ssl_conn_info(SockFd, Items) -> + ssl:connection_information(SockFd, Items). %%% -------------------------------------------------------------------- %%% startTLS Request |