summaryrefslogtreecommitdiff
path: root/lib/eldap/src/eldap.erl
diff options
context:
space:
mode:
authoranupamasingh10 <anupamasingh31@gmail.com>2023-02-23 11:11:06 +0100
committeranupamasingh10 <anupamasingh31@gmail.com>2023-02-23 11:22:48 +0100
commita537e48be916d5225b16e020da0def71ed928d89 (patch)
tree299d479ba3211428314a617d3db2a54ee4b685b8 /lib/eldap/src/eldap.erl
parentaaa66149df33da3e417aaafb28be799147e9a414 (diff)
downloaderlang-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.erl29
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