Exemplo n.º 1
0
void test_all() {
  printf("test_all()\n");

  char** argv = malloc(6 * sizeof(char*));
  char** args;

  argv[0] = "--option";
  argv[1] = "first";
  argv[2] = "--option";
  argv[3] = "second";
  argv[4] = "-o";
  argv[5] = "third";

  saneopt_t* opt = saneopt_init(6, argv);
  assert(saneopt_alias(opt, "option", "o") == 0);
  args = saneopt_get_all(opt, "option");
  assert(strcmp(args[0], "first") == 0);
  assert(strcmp(args[1], "second") == 0);
  assert(strcmp(args[2], "third") == 0);
  assert(args[3] == NULL);

  free(argv);
  free(opt);
  free(args);
}
Exemplo n.º 2
0
int main(int argc, char *argv[]) {
  char** hosts;
  char* hostname;
  char* user;
  char* name;
  int i, c = 0;
  uv_interface_address_t* addresses;
  uv_err_t err;

  srand(time(NULL));

  atexit(forza__kill);
  signal(SIGTERM, forza__on_sigterm);

  loop = uv_default_loop();

#ifdef FORZA_VERSION_HASH
  printf("forza "FORZA_VERSION_HASH"\n");
#else
  printf("forza\n");
#endif

  opt = saneopt_init(argc - 1, argv + 1);
  saneopt_alias(opt, "host", "h");
  hosts = saneopt_get_all(opt, "host");
  hostname = saneopt_get(opt, "hostname");
  user = saneopt_get(opt, "app-user");
  name = saneopt_get(opt, "app-name");
  arguments = saneopt_arguments(opt);

  if (hostname == NULL) {
    hostname = malloc(256 * sizeof(*hostname));
    err = uv_interface_addresses(&addresses, &c);
    if (err.code != UV_OK) {
      fprintf(stderr, "uv_interface_addresses: %s\n", uv_err_name(uv_last_error(loop)));
      return 1;
    }
    for (i = 0; i < c; i++) {
      /* For now, only grab the first non-internal, non 0.0.0.0 interface.
       * TODO: Make this smarter.
       */
      if (addresses[i].is_internal) continue;
      uv_ip4_name(&addresses[i].address.address4, hostname, 255 * sizeof(*hostname));
      if (strcmp(hostname, "0.0.0.0") != 0) break;
    }
    uv_free_interface_addresses(addresses, c);
  }

  forza_connect(hosts, hostname, user, name, on_connect);

  uv_run(loop, UV_RUN_DEFAULT);

  free(hosts);

  return 0;
}
Exemplo n.º 3
0
void test_short_alias() {
  printf("test_short_alias()\n");

  char** argv = malloc(2 * sizeof(char*));

  argv[0] = "-o";
  argv[1] = "value";

  saneopt_t* opt = saneopt_init(2, argv);
  assert(saneopt_alias(opt, "option", "o") == 0);
  assert(strcmp(saneopt_get(opt, "option"), "value") == 0);

  free(argv);
  free(opt);
}
Exemplo n.º 4
0
void test_long_alias() {
  printf("test_long_alias()\n");

  char** argv = malloc(3 * sizeof(char*));

  argv[0] = "--some-opt";
  argv[1] = "--alias";
  argv[2] = "value";

  saneopt_t* opt = saneopt_init(3, argv);
  assert(saneopt_alias(opt, "option", "alias") == 0);
  assert(strcmp(saneopt_get(opt, "option"), "value") == 0);

  free(argv);
  free(opt);
}
Exemplo n.º 5
0
int main(int argc, char *argv[]) {
  char* host;
  char* hostname;
  char* app;
  char* port_str;
  int port;
  int i, c, v = 0;
  uv_interface_address_t* addresses;
  uv_err_t err;

  srand(time(NULL));

  atexit(forza__kill);
  signal(SIGTERM, forza__on_sigterm);

  loop = uv_default_loop();

#ifdef FORZA_VERSION_HASH
  printf("forza %s\n", FORZA_VERSION_HASH);
  // saneopt doesn't allow options without input
  for (v = 0; v < argc; v++) {
    if (strcmp(argv[v], "-v") == 0 || strcmp(argv[v], "--version") == 0) {
      return 0;
    }
  }
#else
  printf("forza\n");
#endif

  opt = saneopt_init(argc - 1, argv + 1);

  saneopt_alias(opt, "host", "h");
  saneopt_alias(opt, "port", "p");

  host = saneopt_get(opt, "host");
  port_str = saneopt_get(opt, "port");
  hostname = saneopt_get(opt, "hostname");
  app = saneopt_get(opt, "app");
  arguments = saneopt_arguments(opt);

  if (host == NULL || port_str == NULL) {
    fprintf(stderr, "Host and port required\n");
    return 2;
  }

  sscanf(port_str, "%d", &port);
  if (port <= 0 || port > 65535) {
    fprintf(stderr, "Port has to be <= 0 and > 65535\n");
    return 3;
  }

  if (hostname == NULL) {
    hostname = malloc(256 * sizeof(*hostname));
    err = uv_interface_addresses(&addresses, &c);
    if (err.code != UV_OK) {
      fprintf(stderr, "uv_interface_addresses: %s\n", uv_err_name(uv_last_error(loop)));
      return 1;
    }
    for (i = 0; i < c; i++) {
      /* For now, only grab the first non-internal, non 0.0.0.0 interface.
       * TODO: Make this smarter.
       */
      if (addresses[i].is_internal) continue;
      uv_ip4_name(&addresses[i].address.address4, hostname, 255 * sizeof(*hostname));
      if (strcmp(hostname, "0.0.0.0") != 0) break;
    }
    uv_free_interface_addresses(addresses, c);
  }

  forza_connect(host, port, hostname, app, on_connect);

  uv_run(loop, UV_RUN_DEFAULT);

  free(hostname);
  free(opt);

  return 0;
}