Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
5803-Add-new-api-eldap-info-1.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 5803-Add-new-api-eldap-info-1.patch of Package erlang
From b72877ff5ffe61c39d9fa804ffb32b3864f0c132 Mon Sep 17 00:00:00 2001 From: anupamasingh10 <anupamasingh31@gmail.com> Date: Thu, 9 Mar 2023 12:17:27 +0100 Subject: [PATCH 3/8] Add new api eldap:info/1 --- lib/eldap/doc/src/eldap.xml | 25 ++++-------------- lib/eldap/src/eldap.erl | 23 +++++----------- lib/eldap/test/eldap_basic_SUITE.erl | 39 ++++++++-------------------- lib/ssl/src/ssl.erl | 4 +-- 4 files changed, 24 insertions(+), 67 deletions(-) diff --git a/lib/eldap/doc/src/eldap.xml b/lib/eldap/doc/src/eldap.xml index 5efcbd4c86..edc308ba52 100644 --- a/lib/eldap/doc/src/eldap.xml +++ b/lib/eldap/doc/src/eldap.xml @@ -549,29 +549,14 @@ Control2 = eldap:paged_result_control(PageSize, Cookie1), </desc> </func> <func> - <name since="OTP 26.0">conn_info(Handle) -> {ok, Data} | {error, Reason}</name> - <fsummary>When LDAP is run over TLS, returns information about the TLS connection. + <name since="OTP 26.0">info(Handle) -> #{socket := Socket, socket_type := tcp | ssl}</name> + <fsummary>Returns the SSL or TCP socket for LDAP connection. </fsummary> <type> - <v>Handle = handle()</v> - <v>Data = ssl:connection_info()</v> - </type> - <desc><p>Returns the most relevant information for SSL connection to an LDAP server. - See also ssl:connection_information/1.</p> - </desc> - </func> - <func> - <name since="OTP 26.0">conn_info(Handle, Items) -> {ok, Data} | {error, Reason}</name> - <fsummary>When LDAP is run over TLS, returns requested information items about the TLS - connection. - </fsummary> - <type> - <v>Handle = handle()</v> - <v>Items = ssl:connection_info_items()</v> - <v>Data = ssl:connection_info()</v> + <v>Socket = ssl:sslsocket() | gen_tcp:socket()</v> </type> - <desc><p>Returns the requested information items about the SSL connection to LDAP server, - if they are defined. See also ssl:connection_information/2.</p> + <desc><p>Returns the socket type and socket for a TCP/SSL connection + to an LDAP server</p> </desc> </func> diff --git a/lib/eldap/src/eldap.erl b/lib/eldap/src/eldap.erl index cc27a31966..ab6363a28b 100644 --- a/lib/eldap/src/eldap.erl +++ b/lib/eldap/src/eldap.erl @@ -31,8 +31,7 @@ paged_result_control/1, paged_result_control/2, paged_result_cookie/1, - conn_info/1, - conn_info/2]). + info/1]). -export([neverDerefAliases/0, derefInSearching/0, derefFindingBaseObj/0, derefAlways/0]). @@ -157,13 +156,10 @@ controlling_process(Handle, Pid) when is_pid(Handle), is_pid(Pid) -> recv(Handle). %%% -------------------------------------------------------------------- -%%% Return LDAP connection information +%%% Return LDAP socket information %%% -------------------------------------------------------------------- -conn_info(Handle) when is_pid(Handle) -> - conn_info(Handle, []). - -conn_info(Handle, Items) when is_pid(Handle) -> - send(Handle, {conn_info, Items}), +info(Handle) when is_pid(Handle) -> + send(Handle, info), recv(Handle). %%% -------------------------------------------------------------------- @@ -620,13 +616,13 @@ loop(Cpid, Data) -> send(From, Result), ?MODULE:loop(Cpid, Data); - {From, {conn_info, Items}} -> + {From, info} -> Res = case Data#eldap.ldaps of true -> - get_ssl_conn_info(Data#eldap.fd, Items); + #{socket => Data#eldap.fd, socket_type => ssl}; false -> - {error, "Not an SSL connection"} + #{socket => Data#eldap.fd, socket_type => tcp} end, send(From, Res), ?MODULE:loop(Cpid, Data); @@ -641,11 +637,6 @@ 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 %%% -------------------------------------------------------------------- diff --git a/lib/eldap/test/eldap_basic_SUITE.erl b/lib/eldap/test/eldap_basic_SUITE.erl index 1c283a1f82..2b26ed52bd 100644 --- a/lib/eldap/test/eldap_basic_SUITE.erl +++ b/lib/eldap/test/eldap_basic_SUITE.erl @@ -46,7 +46,7 @@ more_add/1, open_ret_val_error/1, open_ret_val_success/1, - plain_ldap_conn_info_error/1, + plain_ldap_socket_info/1, search_filter_and/1, search_filter_and_not/1, search_filter_equalityMatch/1, @@ -64,8 +64,7 @@ search_extensible_match_without_dn/1, search_paged_results/1, ssl_connection/1, - ssl_conn_info/1, - ssl_conn_info_items/1, + ssl_conn_socket_info/1, start_tls_on_ssl_should_fail/1, start_tls_twice_should_fail/1, tcp_connection/1, @@ -163,9 +162,8 @@ connection_tests() -> client_side_add_timeout, client_side_search_timeout, close_after_tcp_error, - ssl_conn_info, - ssl_conn_info_items, - plain_ldap_conn_info_error + ssl_conn_socket_info, + plain_ldap_socket_info ]. @@ -265,7 +263,7 @@ end_per_group(start_tls_api, Config) -> clear_db(Config); end_per_group(_Group, Config) -> Config. -init_per_testcase(TC, Config) when TC == ssl_connection; TC == ssl_conn_info; TC == ssl_conn_info_items -> +init_per_testcase(TC, Config) when TC == ssl_connection; TC == ssl_conn_socket_info -> case proplists:get_value(ssl_available,Config) of true -> SSL_Port = 9999, @@ -429,7 +427,7 @@ ssl_connection(Config) -> end. %%%---------------------------------------------------------------- -ssl_conn_info(Config) -> +ssl_conn_socket_info(Config) -> Host = proplists:get_value(listen_host, Config), Port = proplists:get_value(ssl_listen_port, Config), Opts = proplists:get_value(tcp_connect_opts, Config), @@ -439,36 +437,21 @@ ssl_conn_info(Config) -> {timeout,5000}, {sslopts,SSLOpts}|Opts]) of {ok,H} -> - ?assertMatch({ok, _Data}, eldap:conn_info(H)); + #{socket := Socket, socket_type := ssl} = eldap:info(H), + ?assertMatch({ok, _Data}, ssl:connection_information(Socket)); Other -> ct:fail("eldap:open failed: ~p",[Other]) end. %%%---------------------------------------------------------------- -ssl_conn_info_items(Config) -> - Host = proplists:get_value(listen_host, Config), - Port = proplists:get_value(ssl_listen_port, Config), - Opts = proplists:get_value(tcp_connect_opts, Config), - SSLOpts = proplists:get_value(ssl_connect_opts, Config), - case eldap:open([Host], [{port,Port}, - {ssl,true}, - {timeout,5000}, - {sslopts,SSLOpts}|Opts]) of - {ok,H} -> - ?assertEqual({ok, [{protocol, 'tlsv1.3'}, {session_resumption, false}]}, - eldap:conn_info(H, [protocol, session_resumption])); - Other -> ct:fail("eldap:open failed: ~p",[Other]) - end. - -%%%---------------------------------------------------------------- -plain_ldap_conn_info_error(Config) -> +plain_ldap_socket_info(Config) -> Host = proplists:get_value(listen_host, Config), Port = proplists:get_value(listen_port, Config), Opts = proplists:get_value(tcp_connect_opts, Config), T = 1000, case eldap:open([Host], [{timeout,T},{port,Port}|Opts]) of {ok,H} -> - ?assertMatch({error, "Not an SSL connection"}, - eldap:conn_info(H)); + ?assertMatch(#{socket := _, socket_type := tcp}, + eldap:info(H)); Other -> ct:fail("eldap:open failed: ~p",[Other]) end. diff --git a/lib/ssl/src/ssl.erl b/lib/ssl/src/ssl.erl index d46b09cff7..8050b354bd 100644 --- a/lib/ssl/src/ssl.erl +++ b/lib/ssl/src/ssl.erl @@ -141,8 +141,7 @@ named_curve/0, sign_scheme/0, group/0, - connection_info/0, - connection_info_items/0 + connection_info/0 ]). %% ------------------------------------------------------------------------------------------------------- -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor