123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #ifndef CPR_TEST_HTTPS_SERVER_H
- #define CPR_TEST_HTTPS_SERVER_H
- #include <memory>
- #include <string>
- #include "abstractServer.hpp"
- #include "cpr/cpr.h"
- #include "mongoose.h"
- #include <cpr/filesystem.h>
- namespace cpr {
- class HttpsServer : public AbstractServer {
- private:
- // We don't use fs::path here, as this leads to problems using windows
- const std::string baseDirPath;
- const std::string sslCertFileName;
- const std::string sslKeyFileName;
- struct mg_tls_opts tlsOpts;
- public:
- explicit HttpsServer(fs::path&& baseDirPath, fs::path&& sslCertFileName, fs::path&& sslKeyFileName);
- ~HttpsServer() override = default;
- std::string GetBaseUrl() override;
- uint16_t GetPort() override;
- void OnRequest(mg_connection* conn, mg_http_message* msg) override;
- static void OnRequestHello(mg_connection* conn, mg_http_message* msg);
- static void OnRequestNotFound(mg_connection* conn, mg_http_message* msg);
- const std::string& getBaseDirPath() const;
- const std::string& getSslCertFileName() const;
- const std::string& getSslKeyFileName() const;
- protected:
- mg_connection* initServer(mg_mgr* mgr, mg_event_handler_t event_handler) override;
- void acceptConnection(mg_connection* conn) override;
- };
- } // namespace cpr
- #endif
|