X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fnet.c;h=ed7ad9bd061f2754c7b02b482c53a25079a62524;hb=1ff9e8ea002024dee061378ae5871619d6b979dd;hp=6f83266470e3ad027cc2da62518dcbe36836697e;hpb=1ce5968e27a19937a0e54f118d91e1a22438a0eb;p=doldaconnect.git diff --git a/daemon/net.c b/daemon/net.c index 6f83266..ed7ad9b 100644 --- a/daemon/net.c +++ b/daemon/net.c @@ -390,6 +390,14 @@ void putsock(struct socket *sk) } } +void quitsock(struct socket *sk) +{ + sk->readcb = NULL; + sk->writecb = NULL; + sk->errcb = NULL; + putsock(sk); +} + static void linksock(struct scons **list, struct socket *sk) { struct scons *sc; @@ -771,6 +779,18 @@ size_t sockgetdatalen(struct socket *sk) /* return(sockgetdatalen(sk->back)); */ /* } */ +size_t socktqueuesize(struct socket *sk) +{ + size_t ret; + + ret = 0; + while(1) { + ret += sockgetdatalen(sk->back); + if((sk = sk->back->pnext) == NULL) + return(ret); + } +} + ssize_t sockqueueleft(struct socket *sk) { return(sk->back->maxbuf - sockgetdatalen(sk->back));