Commit 0d39781c authored by jan.koester's avatar jan.koester
Browse files

test

parent 34ca8a8e
Loading
Loading
Loading
Loading
Loading
+12 −4
Changes for client/client.cpp: 12 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -184,7 +184,7 @@ void ClientConnection::setUrl(const libhttppp::HttpUrl& url) {
    if (path == "/") path = "/settings/admin/api";
    _RequestPath = path;
    if (_Client) {
        _Client = std::make_unique<libhttppp::HttpClient>(_Url, _Vers);
        _Client = std::make_unique<libhttppp::HttpClient>(_Url, _Vers, 60, _TrustPolicy);
        _Client->setTimeout(_Timeout);
    }
}
@@ -200,7 +200,7 @@ void ClientConnection::setUrl(const std::string& url) {
    if (path == "/") path = "/settings/admin/api";
    _RequestPath = path;
    if (_Client) {
        _Client = std::make_unique<libhttppp::HttpClient>(_Url, _Vers);
        _Client = std::make_unique<libhttppp::HttpClient>(_Url, _Vers, 60, _TrustPolicy);
        _Client->setTimeout(_Timeout);
    }
}
@@ -230,9 +230,17 @@ void ClientConnection::setMaxTries(int maxtries) { _MaxTries = maxtries; }

void ClientConnection::setTimeout(int timeout_sec) { _Timeout = timeout_sec; }

void ClientConnection::setTlsVerify(bool verify) {
    _TrustPolicy.verifyPeer = verify;
    if (_Client) {
        _Client = std::make_unique<libhttppp::HttpClient>(_Url, _Vers, 60, _TrustPolicy);
        _Client->setTimeout(_Timeout);
    }
}

libhttppp::HttpClient& ClientConnection::httpClient() {
    if (!_Client) {
        _Client = std::make_unique<libhttppp::HttpClient>(_Url, _Vers);
        _Client = std::make_unique<libhttppp::HttpClient>(_Url, _Vers, 60, _TrustPolicy);
        _Client->setTimeout(_Timeout);
    }
    return *_Client;
@@ -246,7 +254,7 @@ bool ClientConnection::downgrade() {
    } else {
        return false;
    }
    _Client = std::make_unique<libhttppp::HttpClient>(_Url, _Vers);
    _Client = std::make_unique<libhttppp::HttpClient>(_Url, _Vers, 60, _TrustPolicy);
    _Client->setTimeout(_Timeout);
    return true;
}
+9 −0
Changes for client/client.h: 9 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@
#include "exception.h"

#include <httppp/http.h>
#include <netplus/crypto/cert_verify.h>

#pragma once

@@ -77,6 +78,13 @@ namespace authdb {
            void setMaxTries(int maxtries);
            void setTimeout(int timeout_sec);

            // Peer verification for the underlying HttpClient's TLS connection. Defaults to
            // netplus::TlsTrustPolicy's own default (verify hostname + CA chain). Turn off for
            // an authdb endpoint reached by bare IP whose certificate SAN doesn't cover that IP
            // -- with verification on, HttpClient's ctor throws "hostname mismatch" instead of
            // connecting.
            void setTlsVerify(bool verify);

            const uuid::uuid &getClientId();
            const uuid::uuid &getSessionID();

@@ -103,6 +111,7 @@ namespace authdb {
            std::string _RequestPath;

            std::unique_ptr<libhttppp::HttpClient> _Client;
            netplus::TlsTrustPolicy _TrustPolicy;
            uuid::uuid             _SessionID;
            uuid::uuid             _ClientId;
            int                    _MaxTries = 3;