- char *p;
- struct command *cmd;
-
- p = peer->inbuf;
- while((peer->inbufdata > 0) && (p = memchr(peer->inbuf, '|', peer->inbufdata)) != NULL)
- {
- *(p++) = 0;
- newqcmd(&peer->queue, peer->inbuf);
- for(cmd = peercmds; cmd->handler != NULL; cmd++)
- {
- if(!memcmp(peer->inbuf, cmd->name, strlen(cmd->name)) && ((peer->inbuf[strlen(cmd->name)] == ' ') || (peer->inbuf[strlen(cmd->name)] == '|')))
- break;
- }
- memmove(peer->inbuf, p, peer->inbufdata -= p - peer->inbuf);
- if(cmd->stop)
- {
- peer->state = PEER_STOP;
- break;
- }
- }
-}
-
-static int peerread(struct socket *sk, struct dcpeer *peer)
-{
- char *newbuf;