Add --disable-lzo configure option
This commit is contained in:
parent
f7b2a2ea43
commit
eeb505af36
3 changed files with 57 additions and 33 deletions
71
m4/lzo.m4
71
m4/lzo.m4
|
@ -2,41 +2,46 @@ dnl Check to find the lzo headers/libraries
|
||||||
|
|
||||||
AC_DEFUN([tinc_LZO],
|
AC_DEFUN([tinc_LZO],
|
||||||
[
|
[
|
||||||
AC_ARG_WITH(lzo,
|
AC_ARG_ENABLE([lzo],
|
||||||
AS_HELP_STRING([--with-lzo=DIR], [lzo base directory, or:]),
|
AS_HELP_STRING([--disable-lzo], [disable lzo compression support]))
|
||||||
[lzo="$withval"
|
AS_IF([test "x$enable_lzo" != "xno"], [
|
||||||
CPPFLAGS="$CPPFLAGS -I$withval/include"
|
AC_DEFINE(HAVE_LZO, 1, [enable lzo compression support])
|
||||||
LDFLAGS="$LDFLAGS -L$withval/lib"]
|
AC_ARG_WITH(lzo,
|
||||||
)
|
AS_HELP_STRING([--with-lzo=DIR], [lzo base directory, or:]),
|
||||||
|
[lzo="$withval"
|
||||||
|
CPPFLAGS="$CPPFLAGS -I$withval/include"
|
||||||
|
LDFLAGS="$LDFLAGS -L$withval/lib"]
|
||||||
|
)
|
||||||
|
|
||||||
AC_ARG_WITH(lzo-include,
|
AC_ARG_WITH(lzo-include,
|
||||||
AS_HELP_STRING([--with-lzo-include=DIR], [lzo headers directory]),
|
AS_HELP_STRING([--with-lzo-include=DIR], [lzo headers directory]),
|
||||||
[lzo_include="$withval"
|
[lzo_include="$withval"
|
||||||
CPPFLAGS="$CPPFLAGS -I$withval"]
|
CPPFLAGS="$CPPFLAGS -I$withval"]
|
||||||
)
|
)
|
||||||
|
|
||||||
AC_ARG_WITH(lzo-lib,
|
AC_ARG_WITH(lzo-lib,
|
||||||
AS_HELP_STRING([--with-lzo-lib=DIR], [lzo library directory]),
|
AS_HELP_STRING([--with-lzo-lib=DIR], [lzo library directory]),
|
||||||
[lzo_lib="$withval"
|
[lzo_lib="$withval"
|
||||||
LDFLAGS="$LDFLAGS -L$withval"]
|
LDFLAGS="$LDFLAGS -L$withval"]
|
||||||
)
|
)
|
||||||
|
|
||||||
AC_CHECK_LIB(lzo2, lzo1x_1_compress,
|
AC_CHECK_LIB(lzo2, lzo1x_1_compress,
|
||||||
[LIBS="$LIBS -llzo2"],
|
[LIBS="$LIBS -llzo2"],
|
||||||
[AC_CHECK_LIB(lzo, lzo1x_1_compress,
|
[AC_CHECK_LIB(lzo, lzo1x_1_compress,
|
||||||
[LIBS="$LIBS -llzo"],
|
[LIBS="$LIBS -llzo"],
|
||||||
[AC_MSG_ERROR("lzo libraries not found."); break]
|
[AC_MSG_ERROR("lzo libraries not found."); break]
|
||||||
)]
|
|
||||||
)
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS(lzo/lzo1x.h,
|
|
||||||
[AC_DEFINE(LZO1X_H, [<lzo/lzo1x.h>], [Location of lzo1x.h])],
|
|
||||||
[AC_CHECK_HEADERS(lzo2/lzo1x.h,
|
|
||||||
[AC_DEFINE(LZO1X_H, [<lzo2/lzo1x.h>], [Location of lzo1x.h])],
|
|
||||||
[AC_CHECK_HEADERS(lzo1x.h,
|
|
||||||
[AC_DEFINE(LZO1X_H, [<lzo1x.h>], [Location of lzo1x.h])],
|
|
||||||
[AC_MSG_ERROR("lzo header files not found."); break]
|
|
||||||
)]
|
)]
|
||||||
)]
|
)
|
||||||
)
|
|
||||||
|
AC_CHECK_HEADERS(lzo/lzo1x.h,
|
||||||
|
[AC_DEFINE(LZO1X_H, [<lzo/lzo1x.h>], [Location of lzo1x.h])],
|
||||||
|
[AC_CHECK_HEADERS(lzo2/lzo1x.h,
|
||||||
|
[AC_DEFINE(LZO1X_H, [<lzo2/lzo1x.h>], [Location of lzo1x.h])],
|
||||||
|
[AC_CHECK_HEADERS(lzo1x.h,
|
||||||
|
[AC_DEFINE(LZO1X_H, [<lzo1x.h>], [Location of lzo1x.h])],
|
||||||
|
[AC_MSG_ERROR("lzo header files not found."); break]
|
||||||
|
)]
|
||||||
|
)]
|
||||||
|
)
|
||||||
|
])
|
||||||
])
|
])
|
||||||
|
|
|
@ -27,7 +27,10 @@
|
||||||
#include <openssl/hmac.h>
|
#include <openssl/hmac.h>
|
||||||
|
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_LZO
|
||||||
#include LZO1X_H
|
#include LZO1X_H
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "avl_tree.h"
|
#include "avl_tree.h"
|
||||||
#include "conf.h"
|
#include "conf.h"
|
||||||
|
@ -48,7 +51,9 @@
|
||||||
|
|
||||||
int keylifetime = 0;
|
int keylifetime = 0;
|
||||||
int keyexpires = 0;
|
int keyexpires = 0;
|
||||||
|
#ifdef HAVE_LZO
|
||||||
static char lzo_wrkmem[LZO1X_999_MEM_COMPRESS > LZO1X_1_MEM_COMPRESS ? LZO1X_999_MEM_COMPRESS : LZO1X_1_MEM_COMPRESS];
|
static char lzo_wrkmem[LZO1X_999_MEM_COMPRESS > LZO1X_1_MEM_COMPRESS ? LZO1X_999_MEM_COMPRESS : LZO1X_1_MEM_COMPRESS];
|
||||||
|
#endif
|
||||||
|
|
||||||
static void send_udppacket(node_t *, vpn_packet_t *);
|
static void send_udppacket(node_t *, vpn_packet_t *);
|
||||||
|
|
||||||
|
@ -148,9 +153,13 @@ 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 == 10) {
|
||||||
|
#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);
|
||||||
return lzolen;
|
return lzolen;
|
||||||
|
#else
|
||||||
|
return -1;
|
||||||
|
#endif
|
||||||
} else if(level < 10) {
|
} else if(level < 10) {
|
||||||
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)
|
||||||
|
@ -158,9 +167,13 @@ static length_t compress_packet(uint8_t *dest, const uint8_t *source, length_t l
|
||||||
else
|
else
|
||||||
return -1;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
|
#ifdef HAVE_LZO
|
||||||
lzo_uint lzolen = MAXSIZE;
|
lzo_uint lzolen = MAXSIZE;
|
||||||
lzo1x_999_compress(source, len, dest, &lzolen, lzo_wrkmem);
|
lzo1x_999_compress(source, len, dest, &lzolen, lzo_wrkmem);
|
||||||
return lzolen;
|
return lzolen;
|
||||||
|
#else
|
||||||
|
return -1;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -168,10 +181,12 @@ 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 > 9) {
|
||||||
|
#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)
|
||||||
return lzolen;
|
return lzolen;
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
return -1;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
unsigned long destlen = MAXSIZE;
|
unsigned long destlen = MAXSIZE;
|
||||||
|
|
|
@ -37,7 +37,9 @@
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_LZO
|
||||||
#include LZO1X_H
|
#include LZO1X_H
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_MINGW
|
#ifndef HAVE_MINGW
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
|
@ -540,10 +542,12 @@ int main(int argc, char **argv) {
|
||||||
if(!read_server_config())
|
if(!read_server_config())
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
#ifdef HAVE_LZO
|
||||||
if(lzo_init() != LZO_E_OK) {
|
if(lzo_init() != LZO_E_OK) {
|
||||||
logger(LOG_ERR, "Error initializing LZO compressor!");
|
logger(LOG_ERR, "Error initializing LZO compressor!");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_MINGW
|
#ifdef HAVE_MINGW
|
||||||
if(WSAStartup(MAKEWORD(2, 2), &wsa_state)) {
|
if(WSAStartup(MAKEWORD(2, 2), &wsa_state)) {
|
||||||
|
|
Loading…
Reference in a new issue