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); }
int main(int argc, char *argv[]) { struct shttpd_ctx *ctx; #if !defined(NO_AUTH) if (argc > 1 && argv[1][0] == '-' && argv[1][1] == 'A') { if (argc != 6) _shttpd_usage(argv[0]); exit(_shttpd_edit_passwords(argv[2],argv[3],argv[4],argv[5])); } #endif /* NO_AUTH */ if (argc == 2 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))) _shttpd_usage(argv[0]); #if defined(_WIN32) try_to_run_as_nt_service(); #endif /* _WIN32 */ #ifndef _WIN32 (void) signal(SIGCHLD, signal_handler); (void) signal(SIGPIPE, SIG_IGN); #endif /* _WIN32 */ (void) signal(SIGTERM, signal_handler); (void) signal(SIGINT, signal_handler); if ((ctx = shttpd_init(argc, argv)) == NULL) _shttpd_elog(E_FATAL, NULL, "%s", "Cannot initialize SHTTPD context"); _shttpd_elog(E_LOG, NULL, "shttpd %s started on port(s) %s, serving %s", VERSION, ctx->options[OPT_PORTS], ctx->options[OPT_ROOT]); while (exit_flag == 0) shttpd_poll(ctx, 10 * 1000); _shttpd_elog(E_LOG, NULL, "Exit on signal %d", exit_flag); shttpd_fini(ctx); return (EXIT_SUCCESS); }