static int bt_partition_add(BT_HANDLE hShell, int argc, char **argv) { if(argc != 3) { usage_add(hShell); return -1; } if(!device_path) { return no_disk(hShell); } if(g_partitions > BT_PARTITION_MAX) { BT_PRSHELL("Cannot add another partition, all primary partition entries are filled.\n"); return -1; } BT_u32 ulStartLBA = atoi(argv[1]); BT_u32 ulSectorCount = atoi(argv[2]); g_partition_info[g_partitions].ulStartLBA = ulStartLBA; g_partition_info[g_partitions].ulSectorCount = ulSectorCount; g_partitions++; BT_PRSHELL("Added a partition: (Starts: %lu, Length: %lu)\n", ulStartLBA, ulSectorCount); return 0; }
int exec_add(int argc, char **argv) { struct pkgdb *db = NULL; struct sbuf *failedpkgs = sbuf_new_auto(); char path[MAXPATHLEN + 1]; char *file; int retcode = EPKG_OK; int i; int failedpkgcount = 0; struct pkg *p = NULL; if (argc < 2) { usage_add(); return (EX_USAGE); } if (geteuid() != 0) { warnx("adding packages can only be done as root"); return (EX_NOPERM); } if (pkgdb_open(&db, PKGDB_DEFAULT) != EPKG_OK) { return (EX_IOERR); } for (i = 1; i < argc; i++) { if (is_url(argv[i]) == EPKG_OK) { snprintf(path, sizeof(path), "./%s", basename(argv[i])); if ((retcode = pkg_fetch_file(argv[i], path)) != EPKG_OK) break; file = path; } else file = argv[i]; pkg_open(&p, file, NULL); if ((retcode = pkg_add(db, file, 0)) != EPKG_OK) { sbuf_cat(failedpkgs, argv[i]); if (i != argc - 1) sbuf_printf(failedpkgs, ", "); failedpkgcount++; } } pkgdb_close(db); if(failedpkgcount > 0) { sbuf_finish(failedpkgs); printf("Failed to install the following %d package(s): %s.\n", failedpkgcount, sbuf_data(failedpkgs)); } sbuf_delete(failedpkgs); return (retcode == EPKG_OK ? EX_OK : EX_SOFTWARE); }
void cmd_add(int argc, char **argv) { int ch, topdir = 0, start = 1, nfile, nloaded = 0; size_t dirlen = 0, labellen = 0; char *dir = NULL, *name = NULL, *glabel = NULL, *label; while ((ch = getopt_long(argc, argv, "NTd:l:n:", add_opts, NULL)) != -1) { switch (ch) { case 'N': start = 0; break; case 'T': topdir = 1; break; case 'd': dir = optarg; if ((dirlen = strlen(dir)) == 0) diemsg("bad option value for -d.\n"); break; case 'l': glabel = optarg; if ((labellen = strlen(dir)) == 0) diemsg("bad option value for -l.\n"); break; case 'n': name = optarg; break; default: usage_add(); } } argc -= optind; argv += optind; if (argc < 1 || dir == NULL) usage_add(); btpd_connect(); char *mi; size_t mi_size; enum ipc_err code; char dpath[PATH_MAX]; struct iobuf iob; for (nfile = 0; nfile < argc; nfile++) { if ((mi = mi_load(argv[nfile], &mi_size)) == NULL) { fprintf(stderr, "error loading '%s' (%s).\n", argv[nfile], strerror(errno)); continue; } iob = iobuf_init(PATH_MAX); iobuf_write(&iob, dir, dirlen); if (topdir && !mi_simple(mi)) { size_t tdlen; const char *td = benc_dget_mem(benc_dget_dct(mi, "info"), "name", &tdlen); iobuf_swrite(&iob, "/"); iobuf_write(&iob, td, tdlen); } iobuf_swrite(&iob, "\0"); if ((errno = make_abs_path(iob.buf, dpath)) != 0) { fprintf(stderr, "make_abs_path '%s' failed (%s).\n", dpath, strerror(errno)); iobuf_free(&iob); continue; } if(NULL == glabel) label = benc_dget_str(mi, "announce", NULL); else label = glabel; code = btpd_add(ipc, mi, mi_size, dpath, name, label); if ((code == IPC_OK) && start) { struct ipc_torrent tspec; tspec.by_hash = 1; mi_info_hash(mi, tspec.u.hash); code = btpd_start(ipc, &tspec); } if (code != IPC_OK) { fprintf(stderr, "command failed for '%s' (%s).\n", argv[nfile], ipc_strerror(code)); } else { nloaded++; } iobuf_free(&iob); } if (nloaded != nfile) { diemsg("error loaded %d of %d files.\n", nloaded, nfile); } }
int exec_add(int argc, char **argv) { struct pkgdb *db = NULL; struct sbuf *failedpkgs = NULL; char path[MAXPATHLEN]; char *file; int retcode; int ch; int i; int failedpkgcount = 0; pkg_flags f = PKG_FLAG_NONE; struct pkg_manifest_key *keys = NULL; const char *location = NULL; /* options descriptor */ struct option longopts[] = { { "no-scripts", no_argument, NULL, 'I' }, { "automatic", no_argument, NULL, 'A' }, { "force", no_argument, NULL, 'f' }, { "accept-missing", no_argument, NULL, 'M' }, { "quiet", no_argument, NULL, 'q' }, { "relocate", required_argument, NULL, 1 }, { NULL, 0, NULL, 0 } }; while ((ch = getopt_long(argc, argv, "IAfqM", longopts, NULL)) != -1) { switch (ch) { case 'I': f |= PKG_ADD_NOSCRIPT; break; case 'A': f |= PKG_ADD_AUTOMATIC; break; case 'f': f |= PKG_ADD_FORCE; force = true; break; case 'M': f |= PKG_ADD_FORCE_MISSING; break; case 'q': quiet = true; break; case 1: location = optarg; break; default: usage_add(); return (EX_USAGE); } } argc -= optind; argv += optind; if (argc < 1) { usage_add(); return (EX_USAGE); } retcode = pkgdb_access(PKGDB_MODE_READ | PKGDB_MODE_WRITE | PKGDB_MODE_CREATE, PKGDB_DB_LOCAL); if (retcode == EPKG_ENOACCESS) { warnx("Insufficient privileges to add packages"); return (EX_NOPERM); } else if (retcode != EPKG_OK) return (EX_IOERR); if (pkgdb_open(&db, PKGDB_DEFAULT) != EPKG_OK) return (EX_IOERR); if (pkgdb_obtain_lock(db, PKGDB_LOCK_EXCLUSIVE) != EPKG_OK) { pkgdb_close(db); warnx("Cannot get an exclusive lock on a database, it is locked by another process"); return (EX_TEMPFAIL); } failedpkgs = sbuf_new_auto(); pkg_manifest_keys_new(&keys); for (i = 0; i < argc; i++) { if (is_url(argv[i]) == EPKG_OK) { snprintf(path, sizeof(path), "%s/%s.XXXXX", getenv("TMPDIR") != NULL ? getenv("TMPDIR") : "/tmp", basename(argv[i])); if ((retcode = pkg_fetch_file(NULL, argv[i], path, 0)) != EPKG_OK) break; file = path; } else { file = argv[i]; /* Special case: treat a filename of "-" as meaning 'read from stdin.' It doesn't make sense to have a filename of "-" more than once per command line, but we aren't testing for that at the moment */ if (strcmp(file, "-") != 0 && access(file, F_OK) != 0) { warn("%s", file); if (errno == ENOENT) warnx("Was 'pkg install %s' meant?", file); sbuf_cat(failedpkgs, argv[i]); if (i != argc - 1) sbuf_printf(failedpkgs, ", "); failedpkgcount++; continue; } } if ((retcode = pkg_add(db, file, f, keys, location)) != EPKG_OK) { sbuf_cat(failedpkgs, argv[i]); if (i != argc - 1) sbuf_printf(failedpkgs, ", "); failedpkgcount++; } if (is_url(argv[i]) == EPKG_OK) unlink(file); } pkg_manifest_keys_free(keys); pkgdb_release_lock(db, PKGDB_LOCK_EXCLUSIVE); pkgdb_close(db); if(failedpkgcount > 0) { sbuf_finish(failedpkgs); printf("\nFailed to install the following %d package(s): %s\n", failedpkgcount, sbuf_data(failedpkgs)); retcode = EPKG_FATAL; } sbuf_delete(failedpkgs); if (messages != NULL) { sbuf_finish(messages); printf("%s", sbuf_data(messages)); } return (retcode == EPKG_OK ? EX_OK : EX_SOFTWARE); }
int cmd_add(int argc, char *argv[]) { char *p; int ch, fd; /* Get the migrate options */ while ((ch = getopt(argc, argv, "b:i:s:t:")) != -1) { switch(ch) { case 'b': if (block > 0) usage_add(); block = strtoll(optarg, &p, 10); if (*p != 0 || block < 1) usage_add(); break; case 'i': if (entry != NOENTRY) usage_add(); entry = strtoul(optarg, &p, 10); if (*p != 0 || entry == NOENTRY) usage_add(); break; case 's': if (size > 0) usage_add(); size = strtoll(optarg, &p, 10); if (*p != 0 || size < 1) usage_add(); break; case 't': if (!uuid_is_nil(&type, NULL)) usage_add(); if (parse_uuid(optarg, &type) != 0) usage_add(); break; default: usage_add(); } } if (argc == optind) usage_add(); /* Create DragonFly 64 bit label partitions by default. */ if (uuid_is_nil(&type, NULL)) { uint32_t status; uuid_name_lookup(&type, "DragonFly Label64", &status); if (status != uuid_s_ok) err(1, "unable to find uuid for 'DragonFly Label64'"); } while (optind < argc) { fd = gpt_open(argv[optind++]); if (fd == -1) { warn("unable to open device '%s'", device_name); continue; } add(fd); gpt_close(fd); } return (0); }
NMCResultCode do_add (NmCli *nmc, int argc, char **argv) { DBusGConnection *bus; DBusGProxy *proxy; GError *err = NULL; int i; char *apn = NULL; char *pin = NULL; char *username = NULL; char *password = NULL; char *number = NULL; char *ntype = NULL; char *auth = NULL; char *comp = NULL; char *aut = NULL; char *netid = NULL; char *enc = NULL; char *echofail = NULL; char *echoint = NULL; char *uuid = NULL; char *sbits = NULL; char *stbits = NULL; char *sparity = NULL; char *sbaud = NULL; if ((*argv == NULL) || strcmp(argv[0],"help") == 0 || strcmp(argv[0],"-help") == 0){ usage_add(); } else{ if (!nmc_is_nm_running (nmc, &err)) { if (err) { g_string_printf (nmc->return_text, _("Error: Can't find out if NetworkManager is running: %s."), err->message); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; g_error_free (err); return nmc->return_value; } else { g_string_printf (nmc->return_text, _("Error: NetworkManager is not running.")); nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING; return nmc->return_value; } } if (matches(argv[0],"id") != 0){ g_string_printf (nmc->return_text, _("Error: id has to be specified.")); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; return nmc->return_value; } else if (matches(argv[0],"id") == 0){ if(argc == 1){ g_string_printf (nmc->return_text, _("Error: argument missing for parameter id.")); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; return nmc->return_value; } else if (argc % 2!=0){ g_string_printf (nmc->return_text, _("Error: Some arguments are missing.")); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; return nmc->return_value; } } for (i=0; i<argc; i=i+2){ (matches(argv[i], "apn") == 0) ? apn = argv[i + 1] : NOT_SET; (matches(argv[i], "pin") == 0) ? pin = argv[i + 1] : NOT_SET; (matches(argv[i], "username") == 0) ? username = argv[i + 1] : NOT_SET; (matches(argv[i], "password") == 0) ? password = argv[i + 1] : NOT_SET; (matches(argv[i], "ntype") == 0) ? ntype = argv[i + 1] : NOT_SET; (matches(argv[i], "number") == 0) ? number = argv[i + 1] : NOT_SET; (matches(argv[i], "auth") == 0) ? auth = argv[i + 1] : NOT_SET; (matches(argv[i], "comp") == 0) ? comp = argv[i + 1] : NOT_SET; (matches(argv[i], "auto") == 0) ? aut = argv[i + 1] : NOT_SET; (matches(argv[i], "netid") == 0) ? netid = argv[i + 1] : NOT_SET; (matches(argv[i], "enc") == 0) ? enc = argv[i + 1] : NOT_SET; (matches(argv[i], "echoint") == 0) ? echoint = argv[i + 1] : NOT_SET; (matches(argv[i], "echofail") == 0) ? echofail = argv[i + 1] : NOT_SET; (matches(argv[i], "uuid") == 0) ? uuid = argv[i + 1] : NOT_SET; (matches(argv[i], "sbits") == 0) ? sbits = argv[i + 1] : NOT_SET; (matches(argv[i], "sparity") == 0) ? sparity = argv[i + 1] : NOT_SET; (matches(argv[i], "stbits") == 0) ? stbits = argv[i + 1] : NOT_SET; (matches(argv[i], "sbaud") == 0) ? sbaud = argv[i + 1] : NOT_SET; } g_type_init (); bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL); proxy = dbus_g_proxy_new_for_name (bus, NM_DBUS_SERVICE, NM_DBUS_PATH_SETTINGS, NM_DBUS_IFACE_SETTINGS); if (add_connection (proxy, argv[1], apn, pin, username, password, ((ntype == NULL) ? -1 : atoi(ntype)), number, ((auth == NULL) ? "fffff" : auth), ((comp == NULL) ? "fff" : comp), aut, netid, ((enc == NULL) ? "ff" : enc), ((echoint == NULL) ? 0 : atoi(echoint)), ((echofail == NULL) ? 0 : atoi(echofail)), uuid, ((sbits == NULL) ? 8 : atoi(sbits)), ((sparity!=NULL) ? sparity[0] : 110), ((stbits == NULL) ? 1 : atoi(stbits)), ((sbaud == NULL) ? 57600 : atoi(sbaud))) != 0){ fprintf (stderr,"Error: unable to add new connection."); nmc->return_value = NMC_RESULT_ERROR_CON_ADD; g_object_unref (proxy); dbus_g_connection_unref (bus); return nmc->return_value; } g_object_unref (proxy); dbus_g_connection_unref (bus); } nmc->return_value = NMC_RESULT_SUCCESS; return nmc->return_value; }
int exec_add(int argc, char **argv) { struct pkgdb *db = NULL; struct sbuf *failedpkgs = NULL; char path[MAXPATHLEN + 1]; char *file; int retcode; int ch; int i; int failedpkgcount = 0; pkg_flags f = PKG_FLAG_NONE; struct pkg_manifest_key *keys = NULL; while ((ch = getopt(argc, argv, "IAfq")) != -1) { switch (ch) { case 'I': f |= PKG_ADD_NOSCRIPT; break; case 'A': f |= PKG_FLAG_AUTOMATIC; break; case 'f': f |= PKG_FLAG_FORCE; break; case 'q': quiet = true; break; default: usage_add(); return (EX_USAGE); } } argc -= optind; argv += optind; if (argc < 1) { usage_add(); return (EX_USAGE); } retcode = pkgdb_access(PKGDB_MODE_READ | PKGDB_MODE_WRITE | PKGDB_MODE_CREATE, PKGDB_DB_LOCAL); if (retcode == EPKG_ENOACCESS) { warnx("Insufficient privilege to add packages"); return (EX_NOPERM); } else if (retcode != EPKG_OK) return (EX_IOERR); if (pkgdb_open(&db, PKGDB_DEFAULT) != EPKG_OK) return (EX_IOERR); failedpkgs = sbuf_new_auto(); pkg_manifest_keys_new(&keys); for (i = 0; i < argc; i++) { if (is_url(argv[i]) == EPKG_OK) { snprintf(path, sizeof(path), "./%s", basename(argv[i])); if ((retcode = pkg_fetch_file(NULL, argv[i], path, 0)) != EPKG_OK) break; file = path; } else { file = argv[i]; if (access(file, F_OK) != 0) { warn("%s",file); if (errno == ENOENT) warnx("Did you mean 'pkg install %s'?", file); sbuf_cat(failedpkgs, argv[i]); if (i != argc - 1) sbuf_printf(failedpkgs, ", "); failedpkgcount++; continue; } } if ((retcode = pkg_add(db, file, f, keys)) != EPKG_OK) { sbuf_cat(failedpkgs, argv[i]); if (i != argc - 1) sbuf_printf(failedpkgs, ", "); failedpkgcount++; } } pkg_manifest_keys_free(keys); pkgdb_close(db); if(failedpkgcount > 0) { sbuf_finish(failedpkgs); printf("\nFailed to install the following %d package(s): %s\n", failedpkgcount, sbuf_data(failedpkgs)); retcode = EPKG_FATAL; } sbuf_delete(failedpkgs); if (messages != NULL) { sbuf_finish(messages); printf("%s", sbuf_data(messages)); } return (retcode == EPKG_OK ? EX_OK : EX_SOFTWARE); }