X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Ffnet-dc.c;h=593dc92fb9a4b08d049089c271b80c76239f6cd9;hb=f1f55c751377d5974469a1ee8d68f656d72a2d4d;hp=a8faf289b828dc5f06bf741f09630f249fdf12b7;hpb=c319fb93b59bf09b5d20cc654af6ffb43d247a71;p=doldaconnect.git diff --git a/daemon/fnet-dc.c b/daemon/fnet-dc.c index a8faf28..593dc92 100644 --- a/daemon/fnet-dc.c +++ b/daemon/fnet-dc.c @@ -3014,7 +3014,7 @@ static void hubread(struct socket *sk, struct fnetnode *fn) free(newbuf); p = hub->inbuf; hub->inbufdata += datalen; - while((datalen > 0) && ((p2 = memchr(p, '|', datalen)) != NULL)) + while((p - hub->inbuf < hub->inbufdata) && ((p2 = memchr(p, '|', hub->inbufdata - (p - hub->inbuf))) != NULL)) { *(p2++) = 0; for(cmd = hubcmds; cmd->handler != NULL; cmd++) @@ -3025,7 +3025,6 @@ static void hubread(struct socket *sk, struct fnetnode *fn) } if((cmd->limit == 0) || (hub->queue.size < cmd->limit)) newqcmd(&hub->queue, p); - datalen -= p2 - p; p = p2; } memmove(hub->inbuf, p, hub->inbufdata -= p - hub->inbuf); @@ -3140,7 +3139,6 @@ static void freedcpeer(struct dcpeer *peer) peer->transfer->close = 1; if(peer->transfer->dir == TRNSD_DOWN) resettransfer(peer->transfer); - transferdetach(peer->transfer); } if(peer->timeout != NULL) canceltimer(peer->timeout); @@ -3222,15 +3220,6 @@ static void hubkill(struct fnetnode *fn) hub->sk->close = 1; } -static wchar_t *dcbasename(wchar_t *filename) -{ - wchar_t *ret; - - if((ret = wcsrchr(filename, L'/')) != NULL) - return(ret + 1); - return(filename); -} - static struct transferiface dctransfer = { .detach = (void (*)(struct transfer *, void *))dctransdetach, @@ -3249,7 +3238,6 @@ static struct fnet dcnet = .reqconn = hubreqconn, .sendchat = hubsendchat, .search = hubsearch, - .filebasename = dcbasename }; static void peerread(struct socket *sk, struct dcpeer *peer)