mirror of
https://github.com/oven-sh/bun
synced 2026-02-14 12:51:54 +00:00
* Move uWebSockets and uSockets forks into Bun's repository * Update Makefile * Update settings.json * Update libuwsockets.cpp * Remove backends we won't be using * Update bindings.cpp --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
59 lines
1.7 KiB
C
59 lines
1.7 KiB
C
#include "../libuwebsockets.h"
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#define SSL 1
|
|
|
|
|
|
struct us_listen_socket_t *globalListenSocket;
|
|
uws_app_t *app;
|
|
void get_handler(uws_res_t *res, uws_req_t *req, void* user_data)
|
|
{
|
|
|
|
uws_res_end(SSL, res, "Hello CAPI!", 11, false);
|
|
}
|
|
|
|
void exit_handler(uws_res_t *res, uws_req_t *req, void* user_data)
|
|
{
|
|
uws_res_end(SSL, res, "Shutting down!",14, false);
|
|
/* We use this to check graceful closedown */
|
|
us_listen_socket_close(false, globalListenSocket);
|
|
}
|
|
|
|
void missing_server_name_handler(const char *hostname, void* user_data){
|
|
printf("We are missing server name: <%s>\n", hostname);
|
|
|
|
/* Assume it is localhost, so add it */
|
|
uws_add_server_name(SSL, app, "localhost");
|
|
}
|
|
|
|
void listen_handler(struct us_listen_socket_t *listen_socket, uws_app_listen_config_t config, void* user_data)
|
|
{
|
|
if (listen_socket){
|
|
printf("Listening on port https://localhost:%d\n", config.port);
|
|
globalListenSocket = listen_socket;
|
|
}else{
|
|
printf("Failed to listen on port https://localhost:%d\n", config.port);
|
|
}
|
|
|
|
}
|
|
|
|
int main()
|
|
{
|
|
/* Overly simple hello world app (SNI)*/
|
|
|
|
app = uws_create_app(SSL, (struct us_socket_context_options_t){
|
|
/* There are example certificates in uWebSockets.js repo */
|
|
.key_file_name = "../misc/key.pem",
|
|
.cert_file_name = "../misc/cert.pem",
|
|
.passphrase = "1234"
|
|
});
|
|
uws_missing_server_name(SSL, app, missing_server_name_handler, NULL);
|
|
uws_app_get(SSL, app, "/*", get_handler, NULL);
|
|
uws_app_get(SSL, app, "/exit", exit_handler, NULL);
|
|
uws_app_listen(SSL, app, 3000, listen_handler, NULL);
|
|
|
|
/* Let's add a wildcard SNI to begin with */
|
|
uws_add_server_name(SSL, app, "*.google.*");
|
|
|
|
uws_app_run(SSL, app);
|
|
} |