aboutsummaryrefslogtreecommitdiff
path: root/nxcompext/Z.c
diff options
context:
space:
mode:
Diffstat (limited to 'nxcompext/Z.c')
-rw-r--r--nxcompext/Z.c309
1 files changed, 0 insertions, 309 deletions
diff --git a/nxcompext/Z.c b/nxcompext/Z.c
deleted file mode 100644
index 9ee453d32..000000000
--- a/nxcompext/Z.c
+++ /dev/null
@@ -1,309 +0,0 @@
-/**************************************************************************/
-/* */
-/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
-/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
-/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */
-/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */
-/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
-/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
-/* */
-/* NXCOMPEXT, NX protocol compression and NX extensions to this software */
-/* are copyright of the aforementioned persons and companies. */
-/* */
-/* Redistribution and use of the present software is allowed according */
-/* to terms specified in the file LICENSE which comes in the source */
-/* distribution. */
-/* */
-/* All rights reserved. */
-/* */
-/* NOTE: This software has received contributions from various other */
-/* contributors, only the core maintainers and supporters are listed as */
-/* copyright holders. Please contact us, if you feel you should be listed */
-/* as copyright holder, as well. */
-/* */
-/**************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <zlib.h>
-
-#include "NXlib.h"
-
-#include "Z.h"
-
-#define PANIC
-#define WARNING
-#undef TEST
-#undef DEBUG
-
-#define Z_COMPRESSION_LEVEL 4
-#define Z_COMPRESSION_THRESHOLD 32
-#define Z_COMPRESSION_STRATEGY Z_DEFAULT_STRATEGY
-
-static int zCompressionLevel = Z_COMPRESSION_LEVEL;
-static int zCompressionStrategy = Z_COMPRESSION_STRATEGY;
-
-static z_stream *zStream;
-
-static int zInitialized;
-
-static int ZConfigure(int level, int strategy);
-
-static int ZDeflate(char *dest, unsigned int *destLen,
- const char *source, unsigned int sourceLen);
-
-char *ZCompressData(const char *plainData, unsigned int plainSize, int threshold,
- int level, int strategy, unsigned int *compressedSize)
-{
- char *compressedData;
-
- /*
- * Determine the size of the source image
- * data and make sure there is enough
- * space in the destination buffer.
- */
-
- *compressedSize = plainSize + (plainSize / 1000) + 12 + 1;
-
- compressedData = Xmalloc(*compressedSize);
-
- if (compressedData == NULL)
- {
- #ifdef PANIC
- fprintf(stderr, "******ZCompressData: PANIC! Failed to allocate [%d] bytes for the destination.\n",
- *compressedSize);
- #endif
-
- *compressedSize = 0;
-
- return NULL;
- }
-
- if (level == Z_NO_COMPRESSION || plainSize < threshold)
- {
- #ifdef TEST
- fprintf(stderr, "******ZCompressData: Not compressing [%d] bytes with level [%d] and "
- "threshold [%d].\n", plainSize, level, threshold);
- #endif
-
- /*
- * Tell in the first byte of the buffer
- * if the remaining data is compressed
- * or not. This same byte can be used
- * in future to store some other flag.
- */
-
- *compressedData = 0;
-
- memcpy(compressedData + 1, plainData, plainSize);
-
- *compressedSize = plainSize + 1;
-
- return compressedData;
- }
- else
- {
- int result;
-
- /*
- * Reconfigure the stream if needed.
- */
-
- if (zCompressionLevel != level ||
- zCompressionStrategy != strategy)
- {
- ZConfigure(level, strategy);
-
- zCompressionLevel = level;
- zCompressionStrategy = strategy;
- }
-
- result = ZDeflate(compressedData + 1, compressedSize, plainData, plainSize);
-
- if (result != Z_OK)
- {
- #ifdef PANIC
- fprintf(stderr, "******ZCompressData: PANIC! Failed to compress [%d] bytes with error [%s].\n",
- plainSize, zError(result));
- #endif
-
- Xfree(compressedData);
-
- *compressedSize = 0;
-
- return NULL;
- }
-
- #ifdef TEST
- fprintf(stderr, "******ZCompressData: Source data of [%d] bytes compressed to [%d].\n",
- plainSize, *compressedSize);
- #endif
-
- *compressedData = 1;
-
- *compressedSize = *compressedSize + 1;
-
- return compressedData;
- }
-}
-
-int ZConfigure(int level, int strategy)
-{
- /*
- * ZLIB wants the avail_out to be
- * non zero, even if the stream was
- * already flushed.
- */
-
- unsigned char dest[1];
-
- zStream -> next_out = dest;
- zStream -> avail_out = 1;
-
- if (deflateParams(zStream, level, strategy) != Z_OK)
- {
- #ifdef PANIC
- fprintf(stderr, "******ZConfigure: PANIC! Failed to set level to [%d] and strategy to [%d].\n",
- level, strategy);
- #endif
-
- return -1;
- }
- #ifdef TEST
- else
- {
- fprintf(stderr, "******ZConfigure: Reconfigured the stream with level [%d] and strategy [%d].\n",
- level, strategy);
- }
- #endif
-
- return 1;
-}
-
-int ZDeflate(char *dest, unsigned int *destLen, const char *source, unsigned int sourceLen)
-{
- int saveOut;
- int result;
-
- /*
- * Deal with the possible overflow.
- */
-
- if (zStream -> total_out & 0x80000000)
- {
- #ifdef TEST
- fprintf(stderr, "******ZDeflate: Reset Z stream counters with total in [%ld] total out [%ld].\n",
- zStream -> total_in, zStream -> total_out);
- #endif
-
- zStream -> total_in = 0;
- zStream -> total_out = 0;
- }
-
- saveOut = zStream -> total_out;
-
- zStream -> next_in = (Bytef *) source;
- zStream -> avail_in = (uInt) sourceLen;
-
- #ifdef MAXSEG_64K
-
- /*
- * Check if the source is greater
- * than 64K on a 16-bit machine.
- */
-
- if ((uLong) zStream -> avail_in != sourceLen) return Z_BUF_ERROR;
-
- #endif
-
- zStream -> next_out = (unsigned char *) dest;
- zStream -> avail_out = (uInt) *destLen;
-
- if ((uLong) zStream -> avail_out != *destLen) return Z_BUF_ERROR;
-
- result = deflate(zStream, Z_FINISH);
-
- if (result != Z_STREAM_END)
- {
- deflateReset(zStream);
-
- return (result == Z_OK ? Z_BUF_ERROR : result);
- }
-
- *destLen = zStream -> total_out - saveOut;
-
- result = deflateReset(zStream);
-
- return result;
-}
-
-int ZInitEncoder()
-{
- if (zInitialized == 0)
- {
- int result;
-
- zStream = Xmalloc(sizeof(z_stream));
-
- if (zStream == NULL)
- {
- #ifdef PANIC
- fprintf(stderr, "******ZInitEncoder: PANIC! Failed to allocate memory for the stream.\n");
- #endif
-
- return -1;
- }
-
- zStream -> zalloc = (alloc_func) 0;
- zStream -> zfree = (free_func) 0;
- zStream -> opaque = (voidpf) 0;
-
- #ifdef TEST
- fprintf(stderr, "******ZInitEncoder: Initializing compressor with level [%d] and startegy [%d].\n",
- zCompressionLevel, zCompressionStrategy);
- #endif
-
- result = deflateInit2(zStream, zCompressionLevel, Z_DEFLATED,
- 15, 9, zCompressionStrategy);
-
- if (result != Z_OK)
- {
- #ifdef PANIC
- fprintf(stderr, "******ZInitEncoder: Failed to initialize the compressor with error [%s].\n",
- zError(result));
- #endif
-
- return -1;
- }
-
- zInitialized = 1;
- }
-
- return zInitialized;
-}
-
-int ZResetEncoder()
-{
- int result;
-
- if (zInitialized == 1)
- {
- result = deflateEnd(zStream);
-
- if (result != Z_OK)
- {
- #ifdef WARNING
- fprintf(stderr, "******ZResetEncoder: WARNING! Failed to deinitialize the compressor with error [%s].\n",
- zError(result));
- #endif
- }
-
- Xfree(zStream);
- }
-
- zInitialized = 0;
-
- return 1;
-}