namespace rgw {
namespace curl {
-std::once_flag curl_init_flag;
static void check_curl()
{
::openssl::init_ssl();
}
-bool fe_inits_ssl(const fe_map_t& m, long& curl_global_flags){
- for (const auto& kv: m){
- if (kv.first == "civetweb" || kv.first == "beast"){
- std::string cert;
- kv.second->get_val("ssl_certificate","", &cert);
- if (!cert.empty()){
- /* TODO this flag is no op for curl > 7.57 */
- curl_global_flags &= ~CURL_GLOBAL_SSL;
- return true;
+bool fe_inits_ssl(boost::optional <const fe_map_t&> m, long& curl_global_flags){
+ if (m) {
+ for (const auto& kv: *m){
+ if (kv.first == "civetweb" || kv.first == "beast"){
+ std::string cert;
+ kv.second->get_val("ssl_certificate","", &cert);
+ if (!cert.empty()){
+ /* TODO this flag is no op for curl > 7.57 */
+ curl_global_flags &= ~CURL_GLOBAL_SSL;
+ return true;
+ }
}
}
}
}
#endif // WITH_CURL_OPENSSL
-void setup_curl(const fe_map_t& m) {
+std::once_flag curl_init_flag;
+
+void setup_curl(boost::optional<const fe_map_t&> m) {
check_curl();
long curl_global_flags = CURL_GLOBAL_ALL;
#define RGW_HTTP_CLIENT_CURL_H
#include <map>
+#include <boost/optional.hpp>
#include "rgw_frontend.h"
namespace rgw {
namespace curl {
using fe_map_t = std::multimap <std::string, RGWFrontendConfig *>;
-void setup_curl(const fe_map_t& m);
+void setup_curl(boost::optional<const fe_map_t&> m);
void cleanup_curl();
}
}