Skip to content

Commit

Permalink
defining CROW_ENABLE_SSL disables non SSL code
Browse files Browse the repository at this point in the history
  • Loading branch information
The-EDev committed Aug 21, 2021
1 parent a3ef00f commit 10f3238
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 23 deletions.
41 changes: 24 additions & 17 deletions include/crow/app.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,10 @@ namespace crow
public:
///This crow application
using self_t = Crow;
#ifndef CROW_ENABLE_SSL
///The HTTP server
using server_t = Server<Crow, SocketAdaptor, Middlewares...>;
#ifdef CROW_ENABLE_SSL
#else
///An HTTP server that runs on SSL with an SSLAdaptor
using ssl_server_t = Server<Crow, SSLAdaptor, Middlewares...>;
#endif
Expand Down Expand Up @@ -254,18 +255,22 @@ namespace crow
ssl_server_->run();
}
else
#endif
{
server_ = std::move(std::unique_ptr<server_t>(new server_t(this, bindaddr_, port_, server_name_, &middlewares_, concurrency_, nullptr)));
server_->set_tick_function(tick_interval_, tick_function_);
server_->signal_clear();
for (auto snum : signals_)
{
server_->signal_add(snum);
}
notify_server_start();
server_->run();
CROW_LOG_CRITICAL << "SSL context not defined, please define a certificate or SSL context.";
}
#else

server_ = std::move(std::unique_ptr<server_t>(new server_t(this, bindaddr_, port_, server_name_, &middlewares_, concurrency_, nullptr)));
server_->set_tick_function(tick_interval_, tick_function_);
server_->signal_clear();
for (auto snum : signals_)
{
server_->signal_add(snum);
}
notify_server_start();
server_->run();

#endif
}

///Stop the server
Expand All @@ -279,14 +284,16 @@ namespace crow
}
}
else
#endif
{
CROW_LOG_CRITICAL << "SSL context not defined, please define a certificate or SSL context.";
}
#else

if (server_) {
server_->stop();
}
}
}

#endif
}
void debug_print()
{
CROW_LOG_DEBUG << "Routing:";
Expand Down Expand Up @@ -406,9 +413,9 @@ namespace crow

#ifdef CROW_ENABLE_SSL
std::unique_ptr<ssl_server_t> ssl_server_;
#endif
#else
std::unique_ptr<server_t> server_;

#endif
std::vector<int> signals_{SIGINT, SIGTERM};

bool server_started_{false};
Expand Down
2 changes: 1 addition & 1 deletion include/crow/http_server.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ namespace crow
using namespace boost;
using tcp = asio::ip::tcp;

template <typename Handler, typename Adaptor = SocketAdaptor, typename ... Middlewares>
template <typename Handler, typename Adaptor, typename ... Middlewares>
class Server
{
public:
Expand Down
7 changes: 4 additions & 3 deletions include/crow/routing.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,13 @@ namespace crow
}

virtual void handle(const request&, response&, const routing_params&) = 0;
#ifndef CROW_ENABLE_SSL
virtual void handle_upgrade(const request&, response& res, SocketAdaptor&&)
{
res = response(404);
res.end();
}
#ifdef CROW_ENABLE_SSL
#else
virtual void handle_upgrade(const request&, response& res, SSLAdaptor&&)
{
res = response(404);
Expand Down Expand Up @@ -399,12 +400,12 @@ namespace crow
res = response(404);
res.end();
}

#ifndef CROW_ENABLE_SSL
void handle_upgrade(const request& req, response&, SocketAdaptor&& adaptor) override
{
new crow::websocket::Connection<SocketAdaptor>(req, std::move(adaptor), open_handler_, message_handler_, close_handler_, error_handler_, accept_handler_);
}
#ifdef CROW_ENABLE_SSL
#else
void handle_upgrade(const request& req, response&, SSLAdaptor&& adaptor) override
{
new crow::websocket::Connection<SSLAdaptor>(req, std::move(adaptor), open_handler_, message_handler_, close_handler_, error_handler_, accept_handler_);
Expand Down
4 changes: 2 additions & 2 deletions include/crow/socket_adaptors.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ namespace crow
{
using namespace boost;
using tcp = asio::ip::tcp;

#ifndef CROW_ENABLE_SSL
///A wrapper for the asio::ip::tcp::socket and asio::ssl::stream
struct SocketAdaptor
{
Expand Down Expand Up @@ -83,7 +83,7 @@ namespace crow
tcp::socket socket_;
};

#ifdef CROW_ENABLE_SSL
#else
struct SSLAdaptor
{
using context = boost::asio::ssl::context;
Expand Down

0 comments on commit 10f3238

Please sign in to comment.