Skip to content

Instantly share code, notes, and snippets.

@mattn
Created April 20, 2016 04:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattn/77ba8726c2d0abacf44e8707540085b2 to your computer and use it in GitHub Desktop.
Save mattn/77ba8726c2d0abacf44e8707540085b2 to your computer and use it in GitHub Desktop.
#define WBY_IMPLEMENTATION
#include <stdio.h>
#include <stdlib.h>
#include "mm_json.h"
#include "mm_web.h"
#if defined(_WIN32)
#define socket_startup() \
WORD wsa_version = MAKEWORD(2,2); \
WSADATA wsa_data; \
if (WSAStartup(wsa_version, &wsa_data)) { \
fprintf(stderr, "WSAStartup failed\n"); \
return 1; \
}
#define socket_cleanup() \
WSACleanup();
#else
#define socket_startup()
#define socket_cleanup()
#endif
static void
logger(const char* text) {
printf("[debug] %s\n", text);
}
static int
dispatch(struct wby_con *connection, void *userdata) {
struct server_state *state = (struct server_state*)userdata;
if (!strcmp("/", connection->request.uri)) {
wby_response_begin(connection, 200, 14, NULL, 0);
wby_write(connection, "Hello, world!\n", 14);
wby_response_end(connection);
return 0;
}
return 1;
}
int
main(void)
{
void *memory = NULL;
wby_size needed_memory = 0;
struct wby_server server;
struct wby_config config;
memset(&config, 0, sizeof config);
config.address = "127.0.0.1";
config.port = 8888;
config.connection_max = 40;
config.request_buffer_size = 2048;
config.io_buffer_size = 8192;
config.log = logger;
config.dispatch = dispatch;
socket_startup();
wby_init(&server, &config, &needed_memory);
memory = calloc(needed_memory, 1);
wby_start(&server, memory);
while (TRUE) {
wby_update(&server);
}
wby_stop(&server);
free(memory);
socket_cleanup();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment