X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Fopen.c;h=419b4277e0cca5b215c193fe9fd04a0d034cfdee;hb=5f53b747a5054cfecd6ade134fea27330062ffb8;hp=50641603c79ee26974d6560ad26f68959978a65c;hpb=1f52f6e43e678c8f77625f5c96105a1bb51cc1ce;p=openldap diff --git a/libraries/libldap/open.c b/libraries/libldap/open.c index 50641603c7..419b4277e0 100644 --- a/libraries/libldap/open.c +++ b/libraries/libldap/open.c @@ -12,7 +12,8 @@ #include "portable.h" #include -#include + +#include #include #include @@ -251,6 +252,20 @@ open_ldap_connection( LDAP *ld, Sockbuf *sb, const char *host, int defport, ber_pvt_sb_set_io( sb, &ber_pvt_sb_io_tcp, NULL ); +#ifdef HAVE_TLS + if ( ld->ld_options.ldo_tls_mode == LDAP_OPT_X_TLS_HARD ) { + /* + * Fortunately, the lib uses blocking io... + */ + if ( ldap_pvt_tls_connect( sb, ld->ld_options.ldo_tls_ctx ) < + 0 ) { + return -1; + } + /* FIXME: hostname of server must be compared with name in + * certificate.... + */ + } +#endif if ( krbinstancep != NULL ) { #ifdef HAVE_KERBEROS char *c;