Added reset command for downloads.
authorfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Sun, 29 Apr 2007 18:11:29 +0000 (18:11 +0000)
committerfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Sun, 29 Apr 2007 18:11:29 +0000 (18:11 +0000)
git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/doldaconnect@979 959494ce-11ee-0310-bf91-de5d638817bd

daemon/ui.c

index 467970e..bdff17b 100644 (file)
@@ -361,7 +361,7 @@ static void cmd_connect(struct socket *sk, struct uidata *data, int argc, wchar_
            return;
        }
     }
-    sq(sk, 0, L"201", L"1", L"1", L"Dolda Connect daemon v" VERSION, NULL);
+    sq(sk, 0, L"201", L"1", L"2", L"Dolda Connect daemon v" VERSION, NULL);
 }
 
 static void cmd_notfound(struct socket *sk, struct uidata *data, int argc, wchar_t **argv)
@@ -839,6 +839,26 @@ static void cmd_cancel(struct socket *sk, struct uidata *data, int argc, wchar_t
     sq(sk, 0, L"200", L"Transfer cancelled", NULL);
 }
 
+static void cmd_reset(struct socket *sk, struct uidata *data, int argc, wchar_t **argv)
+{
+    struct transfer *transfer;
+    
+    haveargs(2);
+    havepriv(PERM_TRANS);
+    if((transfer = findtransfer(wcstol(argv[1], NULL, 0))) == NULL)
+    {
+       sq(sk, 0, L"512", L"No such transfer", NULL);
+       return;
+    }
+    if(transfer->dir == TRNSD_UP)
+    {
+       sq(sk, 0, L"512", L"Only applicable to downloads", NULL);
+       return;
+    }
+    resettransfer(transfer);
+    sq(sk, 0, L"200", L"Transfer reset", NULL);
+}
+
 static void cmd_notify(struct socket *sk, struct uidata *data, int argc, wchar_t **argv)
 {
     int i, val;
@@ -1344,6 +1364,7 @@ static struct command commands[] =
     {L"download", cmd_download},
     {L"lstrans", cmd_lstrans},
     {L"cancel", cmd_cancel},
+    {L"reset", cmd_reset},
     {L"notify", cmd_notify},
     {L"sendchat", cmd_sendchat},
     {L"search", cmd_search},