X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fui.c;h=9c630712fa04d9e86582b080b2b009d1b9d8bc8d;hb=0e238ce61a9f8ca240e0081ca1121616d3373030;hp=dd3d931bdd505202974af0b73f11075ef26af22e;hpb=dcf7a1a214150f84d51159c9c679b7697cb05298;p=doldaconnect.git diff --git a/daemon/ui.c b/daemon/ui.c index dd3d931..9c63071 100644 --- a/daemon/ui.c +++ b/daemon/ui.c @@ -694,7 +694,7 @@ static void cmd_lspeers(struct socket *sk, struct uidata *data, int argc, wchar_ { int i; struct fnetnode *fn; - struct fnetpeer *peer; + struct fnetpeer *peer, *npeer; haveargs(2); if((fn = findfnetnode(wcstol(argv[1], NULL, 0))) == NULL) @@ -706,9 +706,10 @@ static void cmd_lspeers(struct socket *sk, struct uidata *data, int argc, wchar_ { sq(sk, 0, L"201", L"No peers avaiable", NULL); } else { - for(peer = fn->peers; peer != NULL; peer = peer->next) + for(peer = btreeiter(fn->peers); peer != NULL; peer = npeer) { - sq(sk, 2 | ((peer->next != NULL)?1:0), L"200", L"%ls", peer->id, L"%ls", peer->nick, NULL); + npeer = btreeiter(NULL); + sq(sk, 2 | ((npeer != 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) @@ -1559,6 +1560,7 @@ static void freeuidata(struct uidata *data) actives = data->next; data->sk->readcb = NULL; data->sk->errcb = NULL; + closesock(data->sk); putsock(data->sk); while((qcmd = unlinkqcmd(data)) != NULL) freequeuecmd(qcmd);