Инициализация SSL и libcurl и «нехватка памяти»

Я намерен делать запросы https с помощью libcurl и openssl с помощью программы на C ++.

Я инициализировал libcurl сcurl_global_init(CURL_GLOBAL_ALL) как описано в документации. Тогда я используюcurl_easy обработать, что я инициализирую, заполнить заголовками и телом, и отправить все в ´https://example.com:443/foo'. Это работает для не-https соединений.

Оглядываться Я обнаружил, что могут быть другие библиотеки, которые уже получают контекст SSL, из-за чего libcurl не может сделать именно это. Я получаю следующее сообщение об ошибке:

curl_easy_perform failed: Out of memory

В моем случае я используюlibmicrohttpd который я инициализирую

mhdDaemon = MHD_start_daemon(MHD_USE_THREAD_PER_CONNECTION | MHD_USE_SSL,
                               htons(port),
                               NULL,
                               NULL,
                               connectionTreat,                     NULL,
                               MHD_OPTION_HTTPS_MEM_KEY,            httpsKey,
                               MHD_OPTION_HTTPS_MEM_CERT,           httpsCertificate,
                               MHD_OPTION_CONNECTION_MEMORY_LIMIT,  memoryLimit,
                               MHD_OPTION_SOCK_ADDR,                (struct sockaddr*) &sad,
                               MHD_OPTION_NOTIFY_COMPLETED,         requestCompleted, NULL,
                               MHD_OPTION_END);

Так что я действительно использую openSSL где-то еще. Дело в том, если я достануMHD_USE_SSL часть это не решает проблему.

Это список библиотек, которые связаны с приложением (я использую cmake):

-lmicrohttpd
-lmongoclient
-lboost_thread
-lboost_filesystem
-lboost_system
-lpthread

Есть ли другие, которые могут загружать SSL? Microhttpd загружает его в любом случае, даже если я закомментируюMHD_USE_SSL флаг (плюс все другие связанные флаги)? Может ли быть какая-либо другая причина этой ошибки?

Ответы на вопрос(2)

Ваш ответ на вопрос