Example #1
0
File: bud.c Project: Acconut/bud
int main(int argc, char** argv) {
  bud_config_t* config;
  bud_error_t err;

#ifndef _WIN32
  /* Ignore SIGPIPE */
  signal(SIGPIPE, SIG_IGN);
#endif  /* !_WIN32 */

  bud_init_openssl();

  config = bud_config_cli_load(argc, argv, &err);

  /* NOTE: bud_config_load will print everything itself */
  if (config == NULL)
    goto fatal;

  if (config->is_worker)
    err = bud_worker(config);
  else
    err = bud_master(config);

  if (bud_is_ok(err))
    uv_run(config->loop, UV_RUN_DEFAULT);

  /* Finalize server */
  if (config->server != NULL) {
    if (config->is_worker)
      err = bud_worker_finalize(config);
    else
      err = bud_master_finalize(config);
  }

  uv_run(config->loop, UV_RUN_NOWAIT);

fatal:
  if (config != NULL)
    bud_config_free(config);

  if (!bud_is_ok(err)) {
    bud_error_print(stderr, err);
    return -1;
  }
  return 0;
}
Example #2
0
File: bud.c Project: aranhoide/bud
int main(int argc, char** argv) {
  bud_config_t* config;
  bud_error_t err;

  bud_init_openssl();

  config = bud_config_cli_load(uv_default_loop(), argc, argv, &err);

  /* NOTE: bud_config_load will print everything itself */
  if (config == NULL)
    goto fatal;

  if (config->is_worker)
    err = bud_worker(config);
  else
    err = bud_master(config);

  if (bud_is_ok(err))
    uv_run(config->loop, UV_RUN_DEFAULT);

  /* Finalize server */
  if (config->server != NULL) {
    if (!config->is_worker)
      err = bud_master_finalize(config);
    bud_server_free(config);
  }

  uv_run(config->loop, UV_RUN_ONCE);

fatal:
  if (config != NULL)
    bud_config_free(config);

  if (!bud_is_ok(err)) {
    bud_error_print(stderr, err);
    return -1;
  }
  return 0;
}