Enable passing of args to fnetnodes.
[doldaconnect.git] / daemon / ui.c
index 09a6dcf..94241e7 100644 (file)
@@ -558,6 +558,7 @@ static void cmd_fnetconnect(struct socket *sk, struct uidata *data, int argc, wc
     char *buf;
     int err;
     struct fnetnode *fn;
+    struct wcspair *args;
     
     haveargs(3);
     havepriv(PERM_FNETCTL);
@@ -566,7 +567,10 @@ static void cmd_fnetconnect(struct socket *sk, struct uidata *data, int argc, wc
        sq(sk, 0, L"504", L"Could not convert data to locale charset", NULL);
        return;
     }
-    fn = fnetinitconnect(argv[1], buf);
+    args = NULL;
+    for(i = 3; i < argc - 1; i += 2)
+       newwcspair(argv[i], argv[i + 1], &args);
+    fn = fnetinitconnect(argv[1], buf, args);
     err = errno;
     free(buf);
     if(fn == NULL)
@@ -577,11 +581,6 @@ static void cmd_fnetconnect(struct socket *sk, struct uidata *data, int argc, wc
            sq(sk, 0, L"509", L"Could not parse the address", L"%%s", strerror(err), NULL);
        return;
     }
-    for(i = 3; i < argc - 1; i += 2)
-    {
-       if(!wcscmp(argv[i], L"nick"))
-           fnetsetnick(fn, argv[i + 1]);
-    }
     linkfnetnode(fn);
     fnetsetname(fn, argv[2]);
     putfnetnode(fn);
@@ -745,7 +744,7 @@ static void cmd_download(struct socket *sk, struct uidata *data, int argc, wchar
            {
                transfersethash(transfer, parsehash(argv[i + 1]));
            } else {
-               transferaddarg(transfer, argv[i], argv[i + 1]);
+               newwcspair(argv[i], argv[i + 1], &transfer->args);
            }
        }
     }
@@ -1164,7 +1163,7 @@ static void cmd_filtercmd(struct socket *sk, struct uidata *data, int argc, wcha
 static void cmd_lstrarg(struct socket *sk, struct uidata *data, int argc, wchar_t **argv)
 {
     struct transfer *transfer;
-    struct transarg *ta;
+    struct wcspair *ta;
     
     haveargs(2);
     havepriv(PERM_TRANS);
@@ -1183,7 +1182,7 @@ static void cmd_lstrarg(struct socket *sk, struct uidata *data, int argc, wchar_
        sq(sk, 0, L"201", L"Transfer has no arguments", NULL);
     } else {
        for(ta = transfer->args; ta != NULL; ta = ta->next)
-           sq(sk, ta->next != NULL, L"200", L"%%ls", ta->rec, L"%%ls", ta->val, NULL);
+           sq(sk, ta->next != NULL, L"200", L"%%ls", ta->key, L"%%ls", ta->val, NULL);
     }
 }