diff --git a/config.make b/config.make new file mode 100644 index 0000000000000000000000000000000000000000..37d163efb942c3b1cc53bde65832f92c2bcadf90 --- /dev/null +++ b/config.make @@ -0,0 +1,2 @@ +echo "objs/addon/src/ngx_http_voms_module.o: CFLAGS += --std=c++1y -Werror" >> $NGX_MAKEFILE + diff --git a/src/ngx_http_voms_module.cpp b/src/ngx_http_voms_module.cpp index bee998fc68e5edb6f9d41bd7a342798ac53fc3e5..c76a9f709c3039b1bae161ac6f2972708d9b56c4 100644 --- a/src/ngx_http_voms_module.cpp +++ b/src/ngx_http_voms_module.cpp @@ -328,7 +328,7 @@ static void cache_voms_ac(ngx_http_request_t* r, auto c = r->connection; auto cln = ngx_pool_cleanup_add(c->pool, 0); if (cln) { - auto r = ac_cache.insert({c, std::move(acp)}); + auto r = ac_cache.insert(std::make_pair(c, std::move(acp))); // we insert into the cache exactly once per connection assert(r.second); cln->handler = clean_voms_ac; @@ -353,7 +353,7 @@ static MaybeVomsAc const& get_voms_ac(ngx_http_request_t* r) MaybeVomsAc* acp = get_voms_ac_from_cache(r); if (!acp) { - auto p = std::make_unique<MaybeVomsAc>(retrieve_voms_ac_from_proxy(r)); + std::unique_ptr<MaybeVomsAc> p{new MaybeVomsAc(retrieve_voms_ac_from_proxy(r))}; acp = p.get(); cache_voms_ac(r, std::move(p)); } @@ -624,7 +624,7 @@ static ngx_int_t get_ssl_client_ee_cert_raw(ngx_http_request_t* r, { ngx_log_error(NGX_LOG_DEBUG, r->connection->log, 0, "%s", __func__); - *result = {}; + *result = {0, nullptr}; auto ee_cert = get_ee_cert(r); @@ -661,6 +661,15 @@ static ngx_int_t get_ssl_client_ee_cert_raw(ngx_http_request_t* r, return NGX_OK; } +namespace boost { +template <typename IteratorT, typename IntegerT> +inline iterator_range<IteratorT> make_iterator_range_n(IteratorT first, + IntegerT n) +{ + return iterator_range<IteratorT>(first, boost::next(first, n)); +} +} // namespace boost + static ngx_int_t get_ssl_client_ee_cert(ngx_http_request_t* r, ngx_http_variable_value_t* v, uintptr_t data) @@ -670,7 +679,7 @@ static ngx_int_t get_ssl_client_ee_cert(ngx_http_request_t* r, v->not_found = 1; v->valid = 0; - ngx_str_t cert{}; + ngx_str_t cert{0, nullptr}; if (get_ssl_client_ee_cert_raw(r, &cert) != NGX_OK) { return NGX_ERROR;