Beispiel #1
0
static int
test_service(rtems_bsd_rc_conf* rc_conf)
{
  rtems_bsd_rc_conf_argc_argv* aa;
  int                          r;

  test_service_last_num = 1;

  assert((aa = rtems_bsd_rc_conf_argc_argv_create()) != NULL);
  r = rtems_bsd_rc_conf_find(rc_conf, "test_regex_.*", aa);
  assert(r == 0 || (r < 0 && errno == ENOENT));
  if (r < 0 && errno == ENOENT)
    return -1;

  while (r == 0) {
    int num;
    int arg;
    rtems_bsd_rc_conf_print_cmd(rc_conf, "test_service", aa->argc, aa->argv);
    assert(strncasecmp(aa->argv[0], "test_regex_", strlen("test_regex_")) == 0);
    num = atoi(aa->argv[0] + strlen("test_regex_"));
    assert(num == (test_regex_last_num + 1));
    assert((num - 1) < NUM_OF_TEST_REGEX_);
    for (arg = 0; arg < aa->argc; ++arg) {
      const char* a = aa->argv[arg];
      size_t      l = strlen(a);
      if (l > 0) {
        assert(!isspace(a[0]));
        assert(!isspace(a[l - 1]));
        assert(a[0] != '"');
        assert(a[l - 1] != '"');
      }
    }
    test_regex_results[num - 1] = true;
    ++test_regex_last_num;
    r = rtems_bsd_rc_conf_find_next(rc_conf, aa);
    assert(r == 0 || (r < 0 && errno == ENOENT));
  }
  rtems_bsd_rc_conf_argc_argv_destroy(aa);
  puts("test_service done");
  return 0;
}
Beispiel #2
0
static void
rc_conf_syslog(rtems_bsd_rc_conf* rc_conf)
{
  rtems_bsd_rc_conf_argc_argv* aa;
  int                          r = 0;
  aa = rtems_bsd_rc_conf_argc_argv_create();
  if (aa != NULL) {
    r = rtems_bsd_rc_conf_find(rc_conf, "syslog_priority", aa);
    if (r == 0) {
      if (aa->argc == 2) {
        r = rtems_bsd_setlogpriority(aa->argv[1]);
        if (r < 0)
          fprintf(stderr,
                  "error: syslog: invalid priority: %s\n", aa->argv[1]);
      }
      else {
        fprintf(stderr, "error: syslog: invalid priority\n");
      }
    }
    rtems_bsd_rc_conf_argc_argv_destroy(aa);
  }
}