Beispiel #1
0
/**
 * start mongoose thread
 */
int start_proxy(void)
{
    init_server_name();

    start_mongoose();

    hls_info("%s started on port(s) %s with web root [%s]\n",
             server_name, mg_get_option(ctx, "listening_ports"),
             mg_get_option(ctx, "document_root"));

#ifndef __ANDROID_
    while (exit_flag == 0) {
        sleep(1);
    }
    hls_info("\nExiting on signal %d, waiting for all threads to finish...\n",
             exit_flag);
#else
    /* wait here for destroy signal */
    sem_wait(&hls_live_sem);
    hls_info("\nExiting on signal sem_post, waiting for all threads to finish...\n");
#endif

    fflush(stdout);
    mg_stop(ctx);
    hls_info("%s", " done.\n");

    hls_info(">>>>>>>>>>>>>>>>>>>[mongoose proxy thread] exit...\n");

    return EXIT_SUCCESS;
}
Beispiel #2
0
int main(int argc, char **argv)
{
    printf("rtvd %s\n", RTVD_VERSION);

    char *port = "8080";

    if (argc > 1)
        port = argv[1];

    char *webPath   = malloc(128);
    strcpy(webPath,"./"); 
    //if (get_conf_string("System", "WebServerPath", webPath) != RETURN_SUCCESS) {
    //    mg_set_option(ctx, "root", "./www");
   // } else {
    mg_set_option(ctx, "root", webPath);
   // }
    mg_set_option(ctx, "ports", port);
    //Test_InPutTs();
    mg_bind_to_uri(ctx, "/test", &show_post, "7");
    mg_bind_to_uri(ctx, "/stati", &stati_handler, "8");
    mg_bind_to_uri(ctx, "/s", &stream_page_handler, "9");
    mg_bind_to_uri(ctx, "/si", &stream_info_handler, "10");
    mg_bind_to_uri(ctx, "/ss", &stream_static_handler, "11");
    mg_bind_to_uri(ctx, "/pcr", &stream_pcr_handler, "12");
    mg_bind_to_uri(ctx, "/ajax/start_flow", &stream_start_flow_handler, "13");
    mg_bind_to_uri(ctx, "/ajax/stop_flow", &stream_stop_flow_handler, "14");

    mg_bind_to_error_code(ctx, 404, &test_error, NULL);
    ctx = mg_start();
    printf("Mongoose %s started on port(s) [%s], serving directory [%s]\n",
            mg_version(),
            mg_get_option(ctx, "listening_ports"),
            mg_get_option(ctx, "root"));
    while (1) {sleep(1);}
}
Beispiel #3
0
int
main_ztv_webui_init(int argc, char *argv[])
{
	if (argc > 1 && argv[1][0] == '-' && argv[1][1] == 'A') {
		if (argc != 6)
			show_usage_and_exit();
		exit(mg_edit_passwords(argv[2], argv[3], argv[4],argv[5]));
	}

	if (argc == 2 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")))
		show_usage_and_exit();

#ifndef _WIN32
	(void) signal(SIGCHLD, signal_handler);
#endif /* _WIN32 */
	(void) signal(SIGTERM, signal_handler);
	(void) signal(SIGINT, signal_handler);

	if ((ctx = mg_start()) == NULL) {
		(void) printf("%s\n", "Cannot initialize Mongoose context");
		exit(EXIT_FAILURE);
	}

	process_command_line_arguments(ctx, argv);
	if (mg_get_option(ctx, "ports") == NULL &&
	    mg_set_option(ctx, "ports", "8080") != 1)
		exit(EXIT_FAILURE);

	printf("Mongoose %s started on port(s) [%s], serving directory [%s]\n",
	    mg_version(),
	    mg_get_option(ctx, "ports"),
	    mg_get_option(ctx, "root"));

    mg_set_uri_callback(ctx, "/login", &login_page, NULL);
    mg_set_uri_callback(ctx, "/ztv", &ztv_page, NULL);
    mg_set_uri_callback(ctx, "/share.apk", &share_pkg,NULL);
    mg_set_uri_callback(ctx, "/shs", &shs_page, NULL);
    mg_set_uri_callback(ctx, "/about", &shs_page, NULL);
    mg_set_uri_callback(ctx, "/uploadfile", &upload_page, NULL);
    mg_set_uri_callback(ctx, "/upload.html", &upload_input_page, NULL);
    mg_set_uri_callback(ctx, "/upload.htm", &upload_input_page, NULL);    
    mg_set_uri_callback(ctx, "/r.html", &rili_page, NULL);
    mg_set_uri_callback(ctx, "/r.manifest", &r_manifest_page, NULL);        
    mg_set_uri_callback(ctx, "/http302Jobs.mp4", &http302Jobs_mp4_page, NULL);  
    mg_set_uri_callback(ctx, "/bbs.html", &bbs_input_page, NULL);  
    mg_set_uri_callback(ctx, "/bbs", &bbs_page, NULL);

	fflush(stdout);
/*	while (exit_flag == 0)
		sleep(1);

	(void) printf("Exiting on signal %d, "
	    "waiting for all threads to finish...", exit_flag);
	fflush(stdout);
	mg_stop(ctx);
	(void) printf("%s", " done.\n");   */

	return (EXIT_SUCCESS);
}
Beispiel #4
0
static const char *get_url_to_first_open_port(const struct mg_server *server) {
  static char url[100];
  const char *s = mg_get_option(server, "listening_port");
  const char *cert = mg_get_option(server, "ssl_certificate");

  snprintf(url, sizeof(url), "%s://%s%s",
           cert == NULL ? "http" : "https",
           s == NULL || strchr(s, ':') == NULL ? "127.0.0.1:" : "", s);

  return url;
}
Beispiel #5
0
int
mongoosed_main(int argc, char *argv[])
{
   char dflt_port[5] = "80";
#if !defined(NO_AUTH)
   if (argc > 1 && argv[1][0] == '-' && argv[1][1] == 'A') {
      if (argc != 6)
         show_usage_and_exit(argv[0]);
      exit(mg_edit_passwords(argv[2], argv[3], argv[4],argv[5]));
   }
#endif /* NO_AUTH */

   if (argc == 2 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")))
      show_usage_and_exit(argv[0]);

#if defined(_WIN32)
   (void) sprintf(service_name, "Mongoose %s", mg_version());
   try_to_run_as_nt_service();
#endif /* _WIN32 */

#ifndef _WIN32
   (void) signal(SIGCHLD, signal_handler);
#endif /* _WIN32 */

   (void) signal(SIGTERM, signal_handler);
   (void) signal(SIGINT, signal_handler);

   if ((ctx = mg_start()) == NULL) {
      (void) printf("%s\n", "Cannot initialize Mongoose context");
      exit(EXIT_FAILURE);
   }

   process_command_line_arguments(ctx, argv);
   if (mg_get_option(ctx, "ports") == NULL &&
       mg_set_option(ctx, "ports", dflt_port /*"8080"*/) != 1)
      exit(EXIT_FAILURE);

   printf("Mongoose %s started on port(s) [%s], serving directory [%s]\n",
          mg_version(),
          mg_get_option(ctx, "ports"),
          mg_get_option(ctx, "root"));
   fflush(stdout);
   while (exit_flag == 0)
      sleep(1);

   (void) printf("Exiting on signal %d, "
                 "waiting for all threads to finish...", exit_flag);
   fflush(stdout);
   mg_stop(ctx);
   (void) printf("%s", " done.\n");

   return (EXIT_SUCCESS);
}
Beispiel #6
0
int main(int argc, char *argv[]) {
  init_server_name();
  start_mongoose(argc, argv);
  printf("%s serving [%s] on port %s\n",
         server_name, mg_get_option(server, "document_root"),
         mg_get_option(server, "listening_port"));
  fflush(stdout);  // Needed, Windows terminals might not be line-buffered
  serving_thread_func(server);
  printf("Exiting on signal %d ...", exit_flag);
  fflush(stdout);
  mg_destroy_server(&server);
  printf("%s\n", " done.");

  return EXIT_SUCCESS;
}
void SocketHandler::run( LPVOID lpStatus )
{
    const callbackFn fPtr = reinterpret_cast<callbackFn>( lpStatus );
    struct mg_server *server = mg_create_server( NULL );


    const int buflen = 32;
    char buf[buflen];
    const char *result;

    int currentPort = DEFAULT_PORT;
    _snprintf( buf, buflen, "127.0.0.1:%i", currentPort );

    while ( result = mg_set_option( server, "listening_port", buf ) )
    {
        USE_DEBUG( "Error \"%s\" opening http listen socket %s\n", result, buf );
        Sleep( 100 );
        currentPort = rand() % ( MAX_PORT - MIN_PORT ) + MIN_PORT;
        _snprintf( buf, buflen, "127.0.0.1:%i", currentPort );
    }
    listenPort = currentPort;

    mg_set_option( server, "document_root", documentRoot.c_str() );
    mg_set_option( server, "extra_mime_types", ".mp4=video/mp4" );

    USE_DEBUG( "Started on %s with root at %s\n",
               mg_get_option( server, "listening_port" ),
               mg_get_option( server, "document_root" ) );
    canLoop = true;

    time_t lastTime = time( NULL );
    while ( canLoop )
    {
        mg_poll_server( server, 100 );

        const time_t current_time = time( NULL );
        if ( fPtr && lastTime < current_time  )
        {
            lastTime = current_time;
            fPtr();
        }
//      Sleep( 20 );
//      USE_DEBUG( "." );
    }
    USE_DEBUG( "Webserver shuts down...\n" );
    mg_destroy_server( &server );
    USE_DEBUG( "Webserver is shut down.\n" );
}
Beispiel #8
0
int main(void) {
  struct mg_callbacks callbacks;
  struct mg_context *ctx;

  // Initialize random number generator. It will be used later on for
  // the session identifier creation.
  srand((unsigned) time(0));

  // Setup and start Civetweb
  memset(&callbacks, 0, sizeof(callbacks));
  callbacks.begin_request = begin_request_handler;
  if ((ctx = mg_start(&callbacks, NULL, options)) == NULL) {
    printf("%s\n", "Cannot start chat server, fatal exit");
    exit(EXIT_FAILURE);
  }

  // Wait until enter is pressed, then exit
  printf("Chat server started on ports %s, press enter to quit.\n",
         mg_get_option(ctx, "listening_ports"));
  getchar();
  mg_stop(ctx);
  printf("%s\n", "Chat server stopped.");

  return EXIT_SUCCESS;
}
Beispiel #9
0
int main(void) {
    struct mg_server *server;

    //Start network configurations
    //setup_ap();
    //setup_dhcp();
    //setup_iptables();

    // Create and configure the server
    server = mg_create_server(NULL, ev_handler);
    mg_set_option(server, "document_root", ".");
    mg_set_option(server, "listening_port", "8080");

    limparRotas();
    init_resources_table();

    criar_tabela();

    //registra a rota do log do cliente
    add_route("/login", handle_post_request);

    // Serve request. Hit Ctrl-C to terminate the program
    printf("Starting on port %s\n", mg_get_option(server, "listening_port"));
    for (;;) {
        mg_poll_server(server, 1000);
    }

    // Cleanup, and free server instance
    mg_destroy_server(&server);
    return 0;
}
Beispiel #10
0
static const char *test_mg_set_option(void) {
  struct mg_server *server = mg_create_server(NULL, NULL);
  ASSERT(mg_set_option(server, "listening_port", "0") == NULL);
  ASSERT(mg_get_option(server, "listening_port")[0] != '\0');
  mg_destroy_server(&server);
  return NULL;
}
Beispiel #11
0
static void edit_config_file(void) {
  const char **names, *value;
  FILE *fp;
  int i;
  char cmd[200];

  // Create config file if it is not present yet
  if ((fp = fopen(config_file, "r")) != NULL) {
    fclose(fp);
  } else if ((fp = fopen(config_file, "a+")) != NULL) {
    fprintf(fp,
            "# Mongoose web server configuration file.\n"
            "# Lines starting with '#' and empty lines are ignored.\n"
            "# For detailed description of every option, visit\n"
            "# http://code.google.com/p/mongoose/wiki/MongooseManual\n\n");
    names = mg_get_valid_option_names();
    for (i = 0; names[i] != NULL; i += 3) {
      value = mg_get_option(ctx, names[i]);
      fprintf(fp, "# %s %s\n", names[i + 1], *value ? value : "<value>");
    }
    fclose(fp);
  }

  snprintf(cmd, sizeof(cmd), "notepad.exe %s", config_file);
  WinExec(cmd, SW_SHOW);
}
Beispiel #12
0
int main(void){
	struct mg_server *server;

    // Start network configurations
    setup_ap();
    setup_dhcp();
    setup_iptables();

	// Create and configure the server
	server = mg_create_server(NULL, ev_handler);
	mg_set_option(server, "document_root", ".");
	mg_set_option(server, "listening_port", "8080");

	init_routes_table();
	init_resources_table();

	set_path_404("/404.html");
	set_path_index("/index.html");

	// Serve request. Hit Ctrl-C to terminate the program
	printf("Starting on port %s\n", mg_get_option(server, "listening_port"));
	for (;;) {
		mg_poll_server(server, 1000);
	}

	// Cleanup, and free server instance
	mg_destroy_server(&server);

    return 0;
}
Beispiel #13
0
  void Start()
  {
    Internal("Http::Start","()");

    if (enabled && !ctx)
    {
      // Try listening on the configured port number (8080 by default)
      // and advance foward until one is available

      for (int i = 0; i<100; ++i)
      {
        string j = print_string(port+i);
        const char *options[3] = { "listening_ports", j.c_str(), NULL};
        ctx = mg_start(&callback, NULL, options);
        if (ctx)
          break;
      }

      const char *option = NULL;
      if (ctx)
        option = mg_get_option(ctx,"listening_ports");

      if (option)
      {
        Info("Listening for HTTP connections on port ",option);
      }
      else
      {
        Info("Not listening for HTTP connections.");
      }
    }
  }
Beispiel #14
0
static void
bbs_page(struct mg_connection *conn,
		const struct mg_request_info *ri, void *data)
{
	append_msg_data_to_bbs_file(conn, mg_get_option(ctx, "root"));

	return ;
}
Beispiel #15
0
static void
upload_page(struct mg_connection *conn,
		const struct mg_request_info *ri, void *data)
{
	save_post_file_data_to_dir(conn, mg_get_option(ctx, "root"));

	return ;
}
Beispiel #16
0
int main(int argc, char** argv)
{
  core_loop_initialize(&_core);

  init_server_name();
  start_monguvse(argc, argv);
  fprintf(stderr, "%s started on port(s) %s with web root [%s]\n",
          _server_name, mg_get_option(_ctx, "listening_ports"),
          mg_get_option(_ctx, "document_root"));

  fprintf(stderr, "Starts the core loop\n");
  uv_run(_core.loop);

  core_loop_destroy(&_core);

  return 0;
}
void Server::start() {
	//initializes Mongoose
	ctx = mg_start(&event_handler, NULL, options);
	if (ctx == NULL)
		throw 42;
	
	_log.log(LOG_STATUS,"PerVERT Server started on port %s.\n", mg_get_option(ctx, "listening_ports"));
}	
Beispiel #18
0
int main(int argc, char *argv[]) {
  init_server_name();
  start_mongoose(argc, argv);
  printf("%s started on port(s) %s with web root [%s]\n",
         server_name, mg_get_option(ctx, "listening_ports"),
         mg_get_option(ctx, "document_root"));
  while (exit_flag == 0) {
    sleep(1);
  }
  printf("Exiting on signal %d, waiting for all threads to finish...",
         exit_flag);
  fflush(stdout);
  mg_stop(ctx);
  printf("%s", " done.\n");

  return EXIT_SUCCESS;
}
Beispiel #19
0
static void *serve_thread_func(void *param) {
  struct mg_server *server = (struct mg_server *) param;
  printf("Listening on port %s\n", mg_get_option(server, "listening_port"));
  while (s_received_signal == 0) {
    mg_poll_server(server, 1000);
  }
  mg_destroy_server(&server);
  return NULL;
}
Beispiel #20
0
int main (int argc, const char * argv[])
{
	helper_num = 0;
    helper1 = 0;
    helper2 = 0;
    helper3 = 0;
    SN1_par = 100;
    SN2_par = 100;
    SN3_par = 100;
    
	struct mg_context	*ctx; 
		
	(void) signal(SIGTERM, signal_handler);
	(void) signal(SIGINT, signal_handler);
	
	if ((ctx = mg_start()) == NULL) {
		(void) printf("%s\n", "Cannot initialize Mongoose context");
		exit(EXIT_FAILURE);
	}
	
	mg_set_option(ctx, "ports", "9909");	
	mg_set_option(ctx, "max_threads", "10");
	mg_set_option(ctx, "dir_list", "no");   // Disable directory listing
	
	mg_set_uri_callback(ctx, "/*", get, NULL);  // Setting callback handler.
	
	printf("Mongoose %s started on port(s) [%s], serving directory [%s]\n",
		   mg_version(),
		   mg_get_option(ctx, "ports"),
		   mg_get_option(ctx, "root"));
	
	fflush(stdout); 
	getchar();
	exit_flag = 9;
	
	(void) printf("Exiting on signal %d, "
				  "waiting for all threads to finish...", exit_flag);
	fflush(stdout);
	mg_stop(ctx);
	
	(void) printf("%s", " done.\n");
	
	return (EXIT_SUCCESS);	
}
/**
 * Incia el servidor en el puerto especificado.
 * @param puerto El puerto a ser utilizado.
 */
void Servidor::iniciar(char *puerto){
	webServer = mg_create_server(NULL, ev_handler);
	mg_set_option(webServer, "listening_port", puerto);

	printf("Starting on port %s\n", mg_get_option(webServer, "listening_port"));

	for (;;) {
	  mg_poll_server(webServer, 1000);
	}

}
Beispiel #22
0
void ofxWebServer::start(const char** options)
{	
	ctx = mg_start(NULL,options);     // Start Mongoose serving thread
	
	if (ctx == NULL) {
		(void) printf("%s\n", "Cannot initialize Mongoose context");
		exit(EXIT_FAILURE);
	}
	
	printf("Mongoose %s web server started on port(s) %s with web root [%s]\n",
		   mg_version(), mg_get_option(ctx, "listening_ports"),
		   mg_get_option(ctx, "document_root"));
	
	/*#ifdef MACOSX
		mg_set_option(ctx, "cgi_interp", ofToDataPath("php/php-cgi").c_str());
	#endif*/
	
//	TODOmg_set_error_callback(ctx, 404, ccwServer::show404, NULL);
//	TODOmg_set_error_callback(ctx, 403, ccwServer::show403, NULL);
}
Beispiel #23
0
int main(void) {
  struct mg_server *server = mg_create_server(NULL);
  mg_set_option(server, "listening_port", "8080");
  mg_add_uri_handler(server, "/", handler);
  printf("Starting on port %s\n", mg_get_option(server, "listening_port"));
  for (;;) {
    mg_poll_server(server, 1000);
  }
  mg_destroy_server(&server);
  return 0;
}
Beispiel #24
0
int main(int argc, char *argv[]) {
  signal(SIGCHLD, SIG_IGN);
  signal(SIGHUP, SIG_IGN);
  pid_t pid = 0;
  pid = fork();
  if (pid < 0) {
    fprintf(stderr, "fork failed!\n");
    exit(1);
  }
  if (pid > 0) {
    sleep(1);
    exit(0);
  }
  umask(0);
  setsid();
  chdir("/");

  init_server_name();
  start_server(argc, argv);
  pid = getpid();
  printf("%s started on port(s) %s with document root [%s], pid [%d]\n",
         server_name, mg_get_option(ctx, "listening_ports"),
         mg_get_option(ctx, "document_root"), pid);

  char *pidfile = (char *)mg_get_option(ctx, "pidfile");
  if (*pidfile) {
    FILE *fp = fopen(pidfile, "w+");
    fprintf(fp, "%d", pid);
    fclose(fp);
  }

  while (exit_flag == 0) {
    sleep(1);
  }
  printf("Exiting on signal %d, waiting for all threads to finish...",
         exit_flag);
  printf("%s", " done.\n");
  fflush(stdout);
  mg_stop(ctx);
  return EXIT_SUCCESS;
}
Beispiel #25
0
void web_server_init(ws_init_t type)
{
	user_iface_t *ui = user_iface;
	
	if (type == WS_INIT_START) {
		// send private/public ip addrs to registry
		FILE *pf = popen("hostname -i", "r");
		char ip_pvt[64];
		fscanf(pf, "%16s", ip_pvt);
		pclose(pf);
		
		char ip_pub[64];
		pf = popen("curl -s ident.me", "r");
		fscanf(pf, "%16s", ip_pub);
		pclose(pf);
	
		char *bp;
		asprintf(&bp, "curl -s -o /dev/null http://%s/php/register.php?reg=%d.%s.%d.%s",
			LOGGING_HOST, SERIAL_NUMBER, ip_pvt, ui->port, ip_pub);
		lprintf("private ip: %s public ip: %s\n", ip_pvt, ip_pub);
		system(bp);
		free(bp);
	}

	if (type == WS_INIT_CREATE) {
		// if specified, override the port number of the first UI
		if (port_override) {
			lprintf("overriding port from %d -> %d for \"%s\"\n",
				user_iface[0].port, port_override, user_iface[0].name);
			user_iface[0].port = port_override;
		}
	}

	// create webserver port(s)
	while (ui->port) {
		if (type == WS_INIT_CREATE) {
			ui->server = mg_create_server(NULL, ev_handler);
			char *s_port;
			asprintf(&s_port, "%d", ui->port);
			if (mg_set_option(ui->server, "listening_port", s_port) != NULL) {
				lprintf("network port %d for \"%s\" in use\n", ui->port, ui->name);
				lprintf("app already running in background?\ntry \"make stop\" (or \"m stop\") first\n");
				xit(-1);
			}
			lprintf("webserver for \"%s\" on port %s\n", ui->name, mg_get_option(ui->server, "listening_port"));
			free(s_port);

		} else {	// WS_INIT_START
			CreateTaskP(&web_server, LOW_PRIORITY, ui);
		}
		ui++;
	}
}
Beispiel #26
0
int main(void) {
  struct mg_server *server = mg_create_server(NULL, NULL);
  mg_set_option(server, "listening_port", "127.0.0.1:3255");
  mg_set_option(server, "document_root", ".");
  mg_set_option(server, "index_files", "bank.cgi");

  printf("Starting on port %s\n", mg_get_option(server, "listening_port"));
  for (;;) mg_poll_server(server, 1000);
  mg_destroy_server(&server);

  return 0;
}
Beispiel #27
0
int main(void) {
	struct mg_context *ctx;
	struct mg_callbacks callbacks;
	struct WSAData wsaData;
	char *localIp;
	char passwdBuff[52];

	const char *options[] = {
		"listening_ports", "8080",
		"num_threads", "1",
		"authentication_domain", realm,
		"document_root", "resources/",
		NULL
	};

	memset(&callbacks, 0, sizeof(callbacks));
	callbacks.begin_request = begin_request_handler;

	// Attempt to deduce the local IP
	if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
		return -1;
	localIp = deduce_ip();
	WSACleanup();

	if(localIp != NULL) {
		printf("Starting remote control server on IP\n"
          "+------------------+\n"
          "| %-16s |\n"
          "+------------------+\n", localIp);
	}

	// Generate the htpasswd file
	printf("Please enter password (%i characters max., leave blank for none): ",
        (sizeof passwdBuff)-2); // 2 for \n\0
	my_gets(passwdBuff, sizeof passwdBuff);
	generate_htpasswd(passwdBuff);

	// Start Mongoose
	ctx = mg_start(&callbacks, NULL, options);
	printf("Listening ports: \t%s\n\n", mg_get_option(ctx, "listening_ports"));

	printf("Press <ENTER> to terminate.\n");

	getchar();

	printf("Exiting...\n");
	mg_stop(ctx);

	return EXIT_SUCCESS;
}
Beispiel #28
0
int main(void) {
  s_server = mg_create_server(NULL, ev_handler);
  mg_set_option(s_server, "listening_port", "8080");

  signal(SIGTERM, signal_handler);
  signal(SIGINT, signal_handler);

  printf("Started on port %s\n", mg_get_option(s_server, "listening_port"));
  while (s_signal_received == 0) {
    mg_poll_server(s_server, 100);
  }
  mg_destroy_server(&s_server);
  return 0;
}
Beispiel #29
0
int start_mongoose(int ether)
{
	struct mg_context* ctx;

	// Initialize random number generator. It will be used later on for
	// the session identifier creation.
	srand((unsigned)time(0));

	// Setup and start Mongoose
	const char* options[] =
	{
		"document_root", ODI_HOME,
		"listening_ports", WEB_SERVER_PORT,
		//"access_log_file", "/odi/log/mongoose_access",
		"error_log_file", "/odi/log/mongoose_error",
		"enable_directory_listing", "no",
		"ssl_certificate", SSL_KEY_FILE,
		"request_timeout_ms", REQUESTED_TIME_OUT,
		NULL
	};

	if ((ctx = mg_start(options, event_handler, NULL)) == NULL)
	{
		logger_error("%s\n", "Cannot start REMOTEM, fatal exit");
		exit(EXIT_FAILURE);
	}
	logger_remotem("Web server root directory is %s, started on ports %s",
		mg_get_option(ctx, "document_root"), mg_get_option(ctx, "listening_ports"));

	strcpy(downloading_status, "Idle");
	get_config_info();
	if (ether) configure_network();
	DVR_ID = getSerial();

	return EXIT_SUCCESS;
}
Beispiel #30
0
int main(int argc, char *argv[]) {
  struct mg_server *server = mg_create_server(NULL);

  mg_set_option(server, "listening_port", "8080");
  mg_set_option(server, "document_root", argc > 1 ? argv[1] : ".");
  mg_add_uri_handler(server, "/ws", handler);
  mg_start_thread(timer_thread, server);

  printf("Started on port %s\n", mg_get_option(server, "listening_port"));
  for (;;) {
    mg_poll_server(server, 3000);
  }

  mg_destroy_server(&server);
  return 0;
}