cmake: fix enabling LDAPS on Windows

Before this patch, enabling LDAPS required a manual C flag:
c1cfc31cfc/curl-cmake.sh (L105)

Fix this and enable LDAPS automatically when using `wldap32` (and
when not explicitly disabled). This matches autotools and `Makefile.mk`
behavior. Also remove issue from KNOWN_BUGS.

Add workaround for MSVS 2010 warning triggered by LDAPS now enabled
in more CI tests:
`ldap.c(360): warning C4306: 'type cast' : conversion from 'int' to 'void *' of greater size`
Ref: https://ci.appveyor.com/project/curlorg/curl/builds/46408284/job/v8mwl9yfbmoeqwlr#L312

Reported-by: JackBoosY on github
Reviewed-by: Jay Satiro
Reviewed-by: Marcel Raad
Fixes #6284
Closes #10674
This commit is contained in:
Viktor Szakats 2023-03-05 19:55:14 +00:00
parent 8d0fa3a70d
commit 8cfc936f5c
No known key found for this signature in database
GPG Key ID: B5ABD165E2AEF201
3 changed files with 10 additions and 5 deletions

View File

@ -571,6 +571,8 @@ if(NOT CURL_DISABLE_LDAP)
check_library_exists_concat("wldap32" cldap_open HAVE_WLDAP32) check_library_exists_concat("wldap32" cldap_open HAVE_WLDAP32)
if(NOT HAVE_WLDAP32) if(NOT HAVE_WLDAP32)
set(USE_WIN32_LDAP OFF) set(USE_WIN32_LDAP OFF)
elseif(NOT CURL_DISABLE_LDAPS)
set(HAVE_LDAP_SSL ON)
endif() endif()
endif() endif()
endif() endif()

View File

@ -109,7 +109,6 @@ problems may have been fixed or changed somewhat since this was written.
15.8 libcurl.pc uses absolute library paths 15.8 libcurl.pc uses absolute library paths
15.10 libpsl is not supported 15.10 libpsl is not supported
15.11 ExternalProject_Add does not set CURL_CA_PATH 15.11 ExternalProject_Add does not set CURL_CA_PATH
15.12 cannot enable LDAPS on Windows
15.13 CMake build with MIT Kerberos does not work 15.13 CMake build with MIT Kerberos does not work
16. Applications 16. Applications
@ -694,10 +693,6 @@ problems may have been fixed or changed somewhat since this was written.
See https://github.com/curl/curl/issues/6313 See https://github.com/curl/curl/issues/6313
15.12 cannot enable LDAPS on Windows
See https://github.com/curl/curl/issues/6284
15.13 CMake build with MIT Kerberos does not work 15.13 CMake build with MIT Kerberos does not work
Minimum CMake version was bumped in curl 7.71.0 (#5358) Since CMake 3.2 Minimum CMake version was bumped in curl 7.71.0 (#5358) Since CMake 3.2

View File

@ -140,6 +140,14 @@ static void _ldap_free_urldesc(LDAPURLDesc *ludp);
#define ldap_err2string ldap_err2stringA #define ldap_err2string ldap_err2stringA
#endif #endif
#if defined(USE_WIN32_LDAP) && defined(_MSC_VER) && (_MSC_VER <= 1600)
/* Workaround for warning:
'type cast' : conversion from 'int' to 'void *' of greater size */
#undef LDAP_OPT_ON
#undef LDAP_OPT_OFF
#define LDAP_OPT_ON ((void *)(size_t)1)
#define LDAP_OPT_OFF ((void *)(size_t)0)
#endif
static CURLcode ldap_do(struct Curl_easy *data, bool *done); static CURLcode ldap_do(struct Curl_easy *data, bool *done);