Make the transstatus command more easily read.
[doldaconnect.git] / daemon / ui.c
index 96c1eb7..b089117 100644 (file)
@@ -641,6 +641,11 @@ static void cmd_disconnect(struct socket *sk, struct uidata *data, int argc, wch
            sq(sk, 0, L"510", L"No such node", NULL);
            return;
        }
+       if(wpfind(fn->args, L"locked") && !((data->userinfo->perms & PERM_ADMIN) || !wcscmp(data->userinfo->name, fn->owner)))
+       {
+           sq(sk, 0, L"502", L"This node is locked and you are neither administrator nor its owner", NULL);
+           return;
+       }
        killfnetnode(fn);
        unlinkfnetnode(fn);
     }
@@ -686,7 +691,7 @@ static void cmd_lspeers(struct socket *sk, struct uidata *data, int argc, wchar_
     } else {
        for(peer = fn->peers; peer != NULL; peer = peer->next)
        {
-           sq(sk, 2 | ((peer->next != NULL)?1:0), L"200", peer->id, peer->nick, NULL);
+           sq(sk, 2 | ((peer->next != NULL)?1:0), L"200", L"%%ls", peer->id, L"%%ls", peer->nick, NULL);
            for(i = 0; i < peer->dinum; i++)
            {
                if(peer->peerdi[i].datum->datatype == FNPD_INT)
@@ -699,7 +704,7 @@ static void cmd_lspeers(struct socket *sk, struct uidata *data, int argc, wchar_
                    sq(sk, 2, peer->peerdi[i].datum->id, buf, NULL);
                }
                if((peer->peerdi[i].datum->datatype == FNPD_STR) && (peer->peerdi[i].data.str != NULL))
-                   sq(sk, 2, peer->peerdi[i].datum->id, peer->peerdi[i].data.str, NULL);
+                   sq(sk, 2, peer->peerdi[i].datum->id, L"%%ls", peer->peerdi[i].data.str, NULL);
            }
            sq(sk, 0, NULL);
        }
@@ -1233,7 +1238,7 @@ static void cmd_transstatus(struct socket *sk, struct uidata *data, int argc, wc
     havepriv(PERM_TRANS);
     buf1 = swprintf2(L"%lli", bytesdownload);
     buf2 = swprintf2(L"%lli", bytesupload);
-    sq(sk, 0, L"200", L"%%ls", buf1, L"%%ls", buf2, NULL);
+    sq(sk, 0, L"200", L"down", L"%%ls", buf1, L"up", L"%%ls", buf2, NULL);
     free(buf1);
     free(buf2);
 }