simplest_web_server.c 924 Bytes
Newer Older
1 2 3 4 5 6 7 8 9
// Copyright (c) 2015 Cesanta Software Limited
// All rights reserved

#include "mongoose.h"

static const char *s_http_port = "8000";
static struct mg_serve_http_opts s_http_server_opts;

static void ev_handler(struct mg_connection *nc, int ev, void *p) {
10
  if (ev == MG_EV_HTTP_REQUEST) {
11
    mg_serve_http(nc, (struct http_message *) p, s_http_server_opts);
12 13 14 15 16 17 18 19 20 21 22 23 24
  }
}

int main(void) {
  struct mg_mgr mgr;
  struct mg_connection *nc;

  mg_mgr_init(&mgr, NULL);
  nc = mg_bind(&mgr, s_http_port, ev_handler);

  // Set up HTTP server parameters
  mg_set_protocol_http_websocket(nc);
  s_http_server_opts.document_root = ".";  // Serve current directory
Alexander Alashkin's avatar
Alexander Alashkin committed
25
  s_http_server_opts.dav_document_root = ".";  // Allow access via WebDav
26 27 28 29 30 31 32 33 34 35
  s_http_server_opts.enable_directory_listing = "yes";

  printf("Starting web server on port %s\n", s_http_port);
  for (;;) {
    mg_mgr_poll(&mgr, 1000);
  }
  mg_mgr_free(&mgr);

  return 0;
}