Add --disable-zlib configure option
This commit is contained in:
parent
eeb505af36
commit
ddb8cb0779
2 changed files with 46 additions and 28 deletions
53
m4/zlib.m4
53
m4/zlib.m4
|
@ -2,32 +2,37 @@ dnl Check to find the zlib headers/libraries
|
||||||
|
|
||||||
AC_DEFUN([tinc_ZLIB],
|
AC_DEFUN([tinc_ZLIB],
|
||||||
[
|
[
|
||||||
AC_ARG_WITH(zlib,
|
AC_ARG_ENABLE([zlib],
|
||||||
AS_HELP_STRING([--with-zlib=DIR], [zlib base directory, or:]),
|
AS_HELP_STRING([--disable-zlib], [disable zlib compression support]))
|
||||||
[zlib="$withval"
|
AS_IF([test "x$enable_zlib" != "xno"], [
|
||||||
CPPFLAGS="$CPPFLAGS -I$withval/include"
|
AC_DEFINE(HAVE_ZLIB, 1, [have zlib compression support])
|
||||||
LDFLAGS="$LDFLAGS -L$withval/lib"]
|
AC_ARG_WITH(zlib,
|
||||||
)
|
AS_HELP_STRING([--with-zlib=DIR], [zlib base directory, or:]),
|
||||||
|
[zlib="$withval"
|
||||||
|
CPPFLAGS="$CPPFLAGS -I$withval/include"
|
||||||
|
LDFLAGS="$LDFLAGS -L$withval/lib"]
|
||||||
|
)
|
||||||
|
|
||||||
AC_ARG_WITH(zlib-include,
|
AC_ARG_WITH(zlib-include,
|
||||||
AS_HELP_STRING([--with-zlib-include=DIR], [zlib headers directory]),
|
AS_HELP_STRING([--with-zlib-include=DIR], [zlib headers directory]),
|
||||||
[zlib_include="$withval"
|
[zlib_include="$withval"
|
||||||
CPPFLAGS="$CPPFLAGS -I$withval"]
|
CPPFLAGS="$CPPFLAGS -I$withval"]
|
||||||
)
|
)
|
||||||
|
|
||||||
AC_ARG_WITH(zlib-lib,
|
AC_ARG_WITH(zlib-lib,
|
||||||
AS_HELP_STRING([--with-zlib-lib=DIR], [zlib library directory]),
|
AS_HELP_STRING([--with-zlib-lib=DIR], [zlib library directory]),
|
||||||
[zlib_lib="$withval"
|
[zlib_lib="$withval"
|
||||||
LDFLAGS="$LDFLAGS -L$withval"]
|
LDFLAGS="$LDFLAGS -L$withval"]
|
||||||
)
|
)
|
||||||
|
|
||||||
AC_CHECK_HEADERS(zlib.h,
|
AC_CHECK_HEADERS(zlib.h,
|
||||||
[],
|
[],
|
||||||
[AC_MSG_ERROR("zlib header files not found."); break]
|
[AC_MSG_ERROR("zlib header files not found."); break]
|
||||||
)
|
)
|
||||||
|
|
||||||
AC_CHECK_LIB(z, compress2,
|
AC_CHECK_LIB(z, compress2,
|
||||||
[LIBS="$LIBS -lz"],
|
[LIBS="$LIBS -lz"],
|
||||||
[AC_MSG_ERROR("zlib libraries not found.")]
|
[AC_MSG_ERROR("zlib libraries not found.")]
|
||||||
)
|
)
|
||||||
|
])
|
||||||
])
|
])
|
||||||
|
|
|
@ -26,7 +26,9 @@
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
#include <openssl/hmac.h>
|
#include <openssl/hmac.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_ZLIB
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_LZO
|
#ifdef HAVE_LZO
|
||||||
#include LZO1X_H
|
#include LZO1X_H
|
||||||
|
@ -152,7 +154,10 @@ void mtu_probe_h(node_t *n, vpn_packet_t *packet, length_t len) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static length_t compress_packet(uint8_t *dest, const uint8_t *source, length_t len, int level) {
|
static length_t compress_packet(uint8_t *dest, const uint8_t *source, length_t len, int level) {
|
||||||
if(level == 10) {
|
if(level == 0) {
|
||||||
|
memcpy(dest, source, len);
|
||||||
|
return len;
|
||||||
|
} else if(level == 10) {
|
||||||
#ifdef HAVE_LZO
|
#ifdef HAVE_LZO
|
||||||
lzo_uint lzolen = MAXSIZE;
|
lzo_uint lzolen = MAXSIZE;
|
||||||
lzo1x_1_compress(source, len, dest, &lzolen, lzo_wrkmem);
|
lzo1x_1_compress(source, len, dest, &lzolen, lzo_wrkmem);
|
||||||
|
@ -161,10 +166,12 @@ static length_t compress_packet(uint8_t *dest, const uint8_t *source, length_t l
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
} else if(level < 10) {
|
} else if(level < 10) {
|
||||||
|
#ifdef HAVE_ZLIB
|
||||||
unsigned long destlen = MAXSIZE;
|
unsigned long destlen = MAXSIZE;
|
||||||
if(compress2(dest, &destlen, source, len, level) == Z_OK)
|
if(compress2(dest, &destlen, source, len, level) == Z_OK)
|
||||||
return destlen;
|
return destlen;
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
return -1;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
#ifdef HAVE_LZO
|
#ifdef HAVE_LZO
|
||||||
|
@ -180,7 +187,10 @@ static length_t compress_packet(uint8_t *dest, const uint8_t *source, length_t l
|
||||||
}
|
}
|
||||||
|
|
||||||
static length_t uncompress_packet(uint8_t *dest, const uint8_t *source, length_t len, int level) {
|
static length_t uncompress_packet(uint8_t *dest, const uint8_t *source, length_t len, int level) {
|
||||||
if(level > 9) {
|
if(level == 0) {
|
||||||
|
memcpy(dest, source, len);
|
||||||
|
return len;
|
||||||
|
} else if(level > 9) {
|
||||||
#ifdef HAVE_LZO
|
#ifdef HAVE_LZO
|
||||||
lzo_uint lzolen = MAXSIZE;
|
lzo_uint lzolen = MAXSIZE;
|
||||||
if(lzo1x_decompress_safe(source, len, dest, &lzolen, NULL) == LZO_E_OK)
|
if(lzo1x_decompress_safe(source, len, dest, &lzolen, NULL) == LZO_E_OK)
|
||||||
|
@ -188,14 +198,17 @@ static length_t uncompress_packet(uint8_t *dest, const uint8_t *source, length_t
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
return -1;
|
return -1;
|
||||||
} else {
|
}
|
||||||
|
#ifdef HAVE_ZLIB
|
||||||
|
else {
|
||||||
unsigned long destlen = MAXSIZE;
|
unsigned long destlen = MAXSIZE;
|
||||||
if(uncompress(dest, &destlen, source, len) == Z_OK)
|
if(uncompress(dest, &destlen, source, len) == Z_OK)
|
||||||
return destlen;
|
return destlen;
|
||||||
else
|
else
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue