Test serving over SSL

This commit is contained in:
Alex Hultman
2018-09-12 02:25:00 +02:00
parent 80e64b59fb
commit 20d01a433f
3 changed files with 21 additions and 5 deletions
+6 -1
View File
@@ -56,7 +56,12 @@ int main(int argc, char **argv) {
uWS::Loop loop;
uWS::HttpContext<false> *httpContext = uWS::HttpContext<false>::create(loop.loop);
us_ssl_socket_context_options ssl_options;
ssl_options.key_file_name = "/home/alexhultman/uWebSockets/misc/ssl/key.pem";
ssl_options.cert_file_name = "/home/alexhultman/uWebSockets/misc/ssl/cert.pem";
ssl_options.passphrase = "1234";
uWS::HttpContext<true> *httpContext = uWS::HttpContext<true>::create(loop.loop, &ssl_options);
// req, res?
httpContext->onGet("/:folder/:file", [](auto *res, auto *req) {
+5 -1
View File
@@ -37,7 +37,11 @@ protected:
}
LoopData *getLoopData() {
return (LoopData *) us_loop_ext(us_socket_context_loop(us_socket_get_context((SOCKET_TYPE *) this)));
if constexpr(SSL) {
return (LoopData *) us_loop_ext(us_ssl_socket_context_loop(us_ssl_socket_get_context((SOCKET_TYPE *) this)));
} else {
return (LoopData *) us_loop_ext(us_socket_context_loop(us_socket_get_context((SOCKET_TYPE *) this)));
}
}
public:
+10 -3
View File
@@ -31,7 +31,7 @@ private:
}
static SOCKET_CONTEXT_TYPE *getSocketContext(SOCKET_TYPE *s) {
return (SOCKET_CONTEXT_TYPE *) us_socket_get_context(s);
return (SOCKET_CONTEXT_TYPE *) static_dispatch(us_ssl_socket_get_context, us_socket_get_context)(s);
}
HttpContextData<SSL> *getSocketContextData() {
@@ -164,8 +164,15 @@ private:
public:
/* Construct a new HttpContext using specified loop */
static HttpContext *create(us_loop *loop) {
HttpContext *httpContext = (HttpContext *) us_create_socket_context(loop, sizeof(HttpContextData<SSL>));
static HttpContext *create(us_loop *loop, us_ssl_socket_context_options *ssl_options = nullptr) {
HttpContext *httpContext;
if constexpr(SSL) {
httpContext = (HttpContext *) us_create_ssl_socket_context(loop, sizeof(HttpContextData<SSL>), *ssl_options);
} else {
httpContext = (HttpContext *) us_create_socket_context(loop, sizeof(HttpContextData<SSL>));
}
new ((HttpContextData<SSL> *) static_dispatch(us_ssl_socket_context_ext, us_socket_context_ext)((SOCKET_CONTEXT_TYPE *) httpContext)) HttpContextData<SSL>();
return httpContext->init();