/*
* ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2007 Alexander Barton (alex@barton.de)
+ * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* Please read the file COPYING, README and AUTHORS for more information.
*/
+#define CONN_MODULE
+
#include "portab.h"
/**
* Connection compression using ZLIB
*/
-#define CONN_MODULE
+/* Additionan debug messages related to ZIP compression: 0=off / 1=on */
+#define DEBUG_ZIP 0
#ifdef ZLIB
-/* enable more zlib related debug messages: */
-/* #define DEBUG_ZLIB */
-
-#include "imp.h"
#include <assert.h>
#include <string.h>
#include <zlib.h>
#include "conn.h"
#include "conn-func.h"
#include "log.h"
-
#include "array.h"
-#include "exp.h"
+
#include "conn-zip.h"
* otherwise the zip wbuf would grow too large */
buflen = array_bytes(&My_Connections[Idx].zip.wbuf);
if (buflen + Len >= WRITEBUFFER_SLINK_LEN) {
- Log(LOG_ALERT, "Zip Write Buffer overflow: %lu bytes\n", buflen + Len);
- Conn_Close(Idx, "Zip Write buffer overflow", NULL, false);
+ Log(LOG_ALERT, "Zip Write buffer space exhausted: %lu bytes", buflen + Len);
+ Conn_Close(Idx, "Zip Write buffer space exhausted", NULL, false);
return false;
}
return array_catb(&My_Connections[Idx].zip.wbuf, Data, Len);
out->next_out = zipbuf;
out->avail_out = (uInt)sizeof zipbuf;
-#ifdef DEBUG_ZIP
+#if DEBUG_ZIP
Log(LOG_DEBUG, "out->avail_in %d, out->avail_out %d",
out->avail_in, out->avail_out);
#endif
if (out->avail_out <= 0) {
/* Not all data was compressed, because data became
* bigger while compressing it. */
- Log (LOG_ALERT, "Compression error: buffer overvlow!?");
+ 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;
-#ifdef DEBUG_ZIP
+#if DEBUG_ZIP
Log(LOG_DEBUG, "zipbuf_used: %d", zipbuf_used);
#endif
if (!array_catb(&My_Connections[Idx].wbuf,
in->next_out = unzipbuf;
in->avail_out = (uInt)sizeof unzipbuf;
-#ifdef DEBUG_ZIP
+#if DEBUG_ZIP
Log(LOG_DEBUG, "in->avail_in %d, in->avail_out %d",
in->avail_in, in->avail_out);
#endif
assert(z_rdatalen >= in->avail_in);
in_len = z_rdatalen - in->avail_in;
unzipbuf_used = READBUFFER_LEN - in->avail_out;
-#ifdef DEBUG_ZIP
+#if DEBUG_ZIP
Log(LOG_DEBUG, "unzipbuf_used: %d - %d = %d", READBUFFER_LEN,
in->avail_out, unzipbuf_used);
#endif