about summary refs log tree commit diff
path: root/cli/add.c
diff options
context:
space:
mode:
Diffstat (limited to 'cli/add.c')
-rw-r--r--cli/add.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/cli/add.c b/cli/add.c
index 53b4ac2..83af7df 100644
--- a/cli/add.c
+++ b/cli/add.c
@@ -40,10 +40,10 @@ void
 cmd_add(int argc, char **argv)
 {
     int ch, topdir = 0, start = 1, nfile, nloaded = 0;
-    size_t dirlen = 0;
-    char *dir = NULL, *name = NULL;
+    size_t dirlen = 0, labellen = 0;
+    char *dir = NULL, *name = NULL, *glabel = NULL, *label;
 
-    while ((ch = getopt_long(argc, argv, "NTd:n:", add_opts, NULL)) != -1) {
+    while ((ch = getopt_long(argc, argv, "NTd:l:n:", add_opts, NULL)) != -1) {
         switch (ch) {
         case 'N':
             start = 0;
@@ -56,6 +56,11 @@ cmd_add(int argc, char **argv)
             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;
@@ -96,7 +101,11 @@ cmd_add(int argc, char **argv)
            iobuf_free(&iob);
            continue;
        }
-       code = btpd_add(ipc, mi, mi_size, dpath, name);
+       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;