#define CONN_MODULE
-#ifdef USE_ZLIB
+#ifdef ZLIB
-static char UNUSED id[] = "$Id: conn-zip.c,v 1.2 2002/12/30 17:15:06 alex Exp $";
+static char UNUSED id[] = "$Id: conn-zip.c,v 1.7 2005/04/25 18:37:16 fw Exp $";
#include "imp.h"
#include <assert.h>
#include "conn-zip.h"
-GLOBAL BOOLEAN
+GLOBAL bool
Zip_InitConn( CONN_ID Idx )
{
/* Kompression fuer Link initialisieren */
{
/* Fehler! */
Log( LOG_ALERT, "Can't initialize compression on connection %d (zlib inflate)!", Idx );
- return FALSE;
+ return false;
}
My_Connections[Idx].zip.out.total_in = 0;
{
/* Fehler! */
Log( LOG_ALERT, "Can't initialize compression on connection %d (zlib deflate)!", Idx );
- return FALSE;
+ return false;
}
My_Connections[Idx].zip.bytes_in = My_Connections[Idx].bytes_in;
My_Connections[Idx].zip.bytes_out = My_Connections[Idx].bytes_out;
Log( LOG_INFO, "Enabled link compression (zlib) on connection %d.", Idx );
- Conn_SetOption( Idx, CONN_ZIP );
+ Conn_OPTION_ADD( &My_Connections[Idx], CONN_ZIP );
- return TRUE;
+ return true;
} /* Zip_InitConn */
-GLOBAL BOOLEAN
-Zip_Buffer( CONN_ID Idx, CHAR *Data, INT Len )
+GLOBAL bool
+Zip_Buffer( CONN_ID Idx, char *Data, int Len )
{
/* Daten zum Komprimieren im "Kompressions-Puffer" sammeln.
- * Es wird TRUE bei Erfolg, sonst FALSE geliefert. */
+ * Es wird true bei Erfolg, sonst false geliefert. */
assert( Idx > NONE );
assert( Data != NULL );
if( ZWRITEBUFFER_LEN - My_Connections[Idx].zip.wdatalen < Len + 50 )
{
/* Nein! Puffer zunaechst leeren ...*/
- if( ! Zip_Flush( Idx )) return FALSE;
+ if( ! Zip_Flush( Idx )) return false;
}
/* Daten kopieren */
memmove( My_Connections[Idx].zip.wbuf + My_Connections[Idx].zip.wdatalen, Data, Len );
My_Connections[Idx].zip.wdatalen += Len;
- return TRUE;
+ return true;
} /* Zip_Buffer */
-GLOBAL BOOLEAN
+GLOBAL bool
Zip_Flush( CONN_ID Idx )
{
/* Daten komprimieren und in Schreibpuffer kopieren.
- * Es wird TRUE bei Erfolg, sonst FALSE geliefert. */
+ * Es wird true bei Erfolg, sonst false geliefert. */
- INT result, out_len;
+ int result, out_len;
z_stream *out;
out = &My_Connections[Idx].zip.out;
- out->next_in = My_Connections[Idx].zip.wbuf;
+ out->next_in = (void *)My_Connections[Idx].zip.wbuf;
out->avail_in = My_Connections[Idx].zip.wdatalen;
- out->next_out = My_Connections[Idx].wbuf + My_Connections[Idx].wdatalen;
+ out->next_out = (void *)(My_Connections[Idx].wbuf + My_Connections[Idx].wdatalen);
out->avail_out = WRITEBUFFER_LEN - My_Connections[Idx].wdatalen;
result = deflate( out, Z_SYNC_FLUSH );
if(( result != Z_OK ) || ( out->avail_in > 0 ))
{
Log( LOG_ALERT, "Compression error: code %d!?", result );
- Conn_Close( Idx, "Compression error!", NULL, FALSE );
- return FALSE;
+ Conn_Close( Idx, "Compression error!", NULL, false );
+ return false;
}
out_len = WRITEBUFFER_LEN - My_Connections[Idx].wdatalen - out->avail_out;
My_Connections[Idx].zip.bytes_out += My_Connections[Idx].zip.wdatalen;
My_Connections[Idx].zip.wdatalen = 0;
- return TRUE;
+ return true;
} /* Zip_Flush */
-GLOBAL BOOLEAN
+GLOBAL bool
Unzip_Buffer( CONN_ID Idx )
{
/* Daten entpacken und in Lesepuffer kopieren. Bei Fehlern
- * wird FALSE geliefert, ansonsten TRUE. Der Fall, dass keine
+ * wird false geliefert, ansonsten true. Der Fall, dass keine
* Daten mehr zu entpacken sind, ist _kein_ Fehler! */
- INT result, in_len, out_len;
+ int result, in_len, out_len;
z_stream *in;
assert( Idx > NONE );
- if( My_Connections[Idx].zip.rdatalen <= 0 ) return TRUE;
+ if( My_Connections[Idx].zip.rdatalen <= 0 ) return true;
in = &My_Connections[Idx].zip.in;
- in->next_in = My_Connections[Idx].zip.rbuf;
+ in->next_in = (void *)My_Connections[Idx].zip.rbuf;
in->avail_in = My_Connections[Idx].zip.rdatalen;
- in->next_out = My_Connections[Idx].rbuf + My_Connections[Idx].rdatalen;
+ in->next_out = (void *)(My_Connections[Idx].rbuf + My_Connections[Idx].rdatalen);
in->avail_out = READBUFFER_LEN - My_Connections[Idx].rdatalen - 1;
result = inflate( in, Z_SYNC_FLUSH );
if( result != Z_OK )
{
- Log( LOG_ALERT, "Decompression error: code %d (ni=%d, ai=%d, no=%d, ao=%d)!?", result, in->next_in, in->avail_in, in->next_out, in->avail_out );
- Conn_Close( Idx, "Decompression error!", NULL, FALSE );
- return FALSE;
+ Log( LOG_ALERT, "Decompression error: %s (code=%d, ni=%d, ai=%d, no=%d, ao=%d)!?", in->msg, result, in->next_in, in->avail_in, in->next_out, in->avail_out );
+ Conn_Close( Idx, "Decompression error!", NULL, false );
+ return false;
}
in_len = My_Connections[Idx].zip.rdatalen - in->avail_in;
else My_Connections[Idx].zip.rdatalen = 0;
My_Connections[Idx].zip.bytes_in += out_len;
- return TRUE;
+ return true;
} /* Unzip_Buffer */
-GLOBAL LONG
+GLOBAL long
Zip_SendBytes( CONN_ID Idx )
{
/* Anzahl gesendeter Bytes (komprimiert!) liefern */
} /* Zip_SendBytes */
-GLOBAL LONG
+GLOBAL long
Zip_RecvBytes( CONN_ID Idx )
{
/* Anzahl gesendeter Bytes (komprimiert!) liefern */