X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fplaintcp.c;h=7d36a1d537bb2d01fae6f49960d3560512dd6574;hb=8e9ec020b45b2f43b0f44249037da82470a5446f;hp=fb4c6ceb01dbb0de6b1f5de1b477b4d4d6c6b351;hpb=cac13158ac4fdd8b7682f16f879796e9c4e339ff;p=ashd.git diff --git a/src/plaintcp.c b/src/plaintcp.c index fb4c6ce..7d36a1d 100644 --- a/src/plaintcp.c +++ b/src/plaintcp.c @@ -168,7 +168,7 @@ void servetcp(struct muth *muth, va_list args) static void listenloop(struct muth *muth, va_list args) { vavar(struct tcpport *, tcp); - int ns; + int i, ns; struct sockaddr_storage name; socklen_t namelen; @@ -187,6 +187,10 @@ static void listenloop(struct muth *muth, va_list args) out: close(tcp->fd); free(tcp); + for(i = 0; i < listeners.d; i++) { + if(listeners.b[i] == muth) + bufdel(listeners, i); + } } void handleplain(int argc, char **argp, char **argv)