Esempio n. 1
0
/**
 * The "nstat" command
 *
 * @v argc		Argument count
 * @v argv		Argument list
 * @ret rc		Return status code
 */
static int nstat_exec ( int argc, char **argv ) {
	struct nstat_options opts;
	int rc;

	/* Parse options */
	if ( ( rc = parse_options ( argc, argv, &nstat_cmd, &opts ) ) != 0)
		return rc;

	nstat();

	return 0;
}
Esempio n. 2
0
void
main(int argc, char *argv[])
{
	int justinterfaces = 0;
	int i, tot, fd;
	Dir *d;
	char buf[128];

	ARGBEGIN{
	case 'i':
		justinterfaces = 1;
		break;
	case 'n':
		notrans = 1;
		break;
	case 'p':
		if(nproto >= nelem(proto))
			sysfatal("too many protos");
		proto[nproto++] = EARGF(usage());
		break;
	default:
		usage();
	}ARGEND;

	netroot = "/net";
	switch(argc){
	case 0:
		break;
	case 1:
		netroot = argv[0];
		break;
	default:
		usage();
	}

	Binit(&out, 1, OWRITE);

	if(justinterfaces){
		pipifc();
		exits(0);
	}

	if(nproto){
		for(i=0; i<nproto; i++)
			nstat(proto[i], pip);
	}else{
		fd = open(netroot, OREAD);
		if(fd < 0)
			sysfatal("open %s: %r", netroot);

		tot = dirreadall(fd, &d);
		for(i=0; i<tot; i++){
			if(strcmp(d[i].name, "ipifc") == 0)
				continue;
			snprint(buf, sizeof buf, "%s/%s/0/local", netroot, d[i].name);
			if(access(buf, 0) >= 0)
				nstat(d[i].name, pip);
		}
	}
	exits(0);
}
Esempio n. 3
0
static void
fsok(GtkWidget *dlg)
{
  struct nGetOpenFileData *data;
  char *file, *file2, **farray;
  const char *filter_name;
  int i, k, len, n;
  GStatBuf buf;
  GSList *top, *list;
  GtkFileFilter *filter;

  data = &FileSelection;

  top = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dlg));
  filter = gtk_file_chooser_get_filter(GTK_FILE_CHOOSER(dlg));

  if (filter) {
    filter_name = gtk_file_filter_get_name(filter);
  } else {
    filter_name = NULL;
  }

  if (filter_name == NULL || strcmp(filter_name, _("All")) == 0) {
    data->ext = NULL;
  }

  n = g_slist_length(top);
  farray = g_malloc(sizeof(*farray) * (n + 1));
  if (farray == NULL) {
    free_str_list(top);
    return;
  }
  data->file = farray;

  k = 0;
  for (list = top; list; list = list->next) {
    char *tmp;

    tmp = (char *) list->data;
    if (tmp == NULL || strlen(tmp) < 1) {
      gdk_beep();
      continue;
    }

    file = get_utf8_filename(tmp);

    for (i = strlen(file) - 1; (i > 0) && (file[i] != '/') && (file[i] != '.'); i--);
    if ((file[i] != '.') && data->ext) {
      len = strlen(data->ext) + 1;
    } else {
      len = 0;
    }

    if (len) {
      file2 = g_strdup_printf("%s.%s", file, data->ext);
      g_free(file);
    } else {
      file2 = file;
    }
    if (file2) {
      if (data->mustexist) {
	if ((nstat(file2, &buf) != 0) || ((buf.st_mode & S_IFMT) != S_IFREG)
	    || (naccess(file2, R_OK) != 0)) {
	  gdk_beep();
	  error22(NULL, 0, "I/O error", file2);
	  g_free(file2);
	  continue;
	}
      } else {
	if ((nstat(file2, &buf) == 0) && ((buf.st_mode & S_IFMT) != S_IFREG)) {
	  gdk_beep();
	  error22(NULL, 0, "I/O error", file2);
	  g_free(file2);
	  continue;
	}
      }
      farray[k] = file2;
      k++;
    }
  }

  if (k == 0)
    return;

  if (data->changedir && k > 0) {
    data->chdir = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->chdir_cb));
    if (data->chdir && data->init_dir) {
      char *dir;

      g_free(*(data->init_dir));
      dir = g_path_get_dirname(farray[0]);
      *(data->init_dir) = dir;
    }
  }
  farray[k] = NULL;
  free_str_list(top);
  data->ret = IDOK;
}