diff --git a/Changes b/Changes index 024b16234..05cdd0b42 100644 --- a/Changes +++ b/Changes @@ -2287,3 +2287,7 @@ - The unreal32docs translations in Greek, Spanish and Dutch are marked as out of date. - CRLF conversion of unreal32docs.gr.html +- Zip links: once a link was zipped, the error message when closing the + connection was never actually sent (due to buffering). Hence, things like + the /SQUIT reason was never seen on the other side (just 'server closed + the connection'). This has now been fixed. diff --git a/src/send.c b/src/send.c index 8529b59e9..a34c5f12f 100644 --- a/src/send.c +++ b/src/send.c @@ -120,11 +120,11 @@ void flush_connections(aClient* cptr) { for (i = LastSlot; i >= 0; i--) if ((acptr = local[i]) && !(acptr->flags & FLAGS_BLOCKED) - && DBufLength(&acptr->sendQ) > 0) + && ((DBufLength(&cptr->sendQ) > 0) || (IsZipped(cptr) && cptr->zip->outcount)) ) send_queued(acptr); } else if (cptr->fd >= 0 && !(cptr->flags & FLAGS_BLOCKED) - && DBufLength(&cptr->sendQ) > 0) + && ((DBufLength(&cptr->sendQ) > 0) || (IsZipped(cptr) && cptr->zip->outcount)) ) send_queued(cptr); }