+ Conn_Close( Idx, "Compression error!", NULL, false );
+ return false;
+ }
+
+ if (out->avail_out <= 0) {
+ /* Not all data was compressed, because data became
+ * bigger while compressing it. */
+ Log(LOG_ALERT, "Compression error: buffer overflow!?");
+ Conn_Close(Idx, "Compression error!", NULL, false);
+ return false;
+ }
+
+ assert(out->avail_out <= WRITEBUFFER_SLINK_LEN);
+
+ zipbuf_used = WRITEBUFFER_SLINK_LEN - out->avail_out;
+#if DEBUG_ZIP
+ Log(LOG_DEBUG, "zipbuf_used: %d", zipbuf_used);
+#endif
+ if (!array_catb(&My_Connections[Idx].wbuf,
+ (char *)zipbuf, (size_t) zipbuf_used)) {
+ Log (LOG_ALERT, "Compression error: can't copy data!?");
+ Conn_Close(Idx, "Compression error!", NULL, false);
+ return false;