- rfe1602625 - fix compilation for lzo2, making compatible with
SuSE 10.1 and others.
This commit is contained in:
parent
3425d0e4ed
commit
f23e8d0a68
159
lfd_lzo.c
Normal file
159
lfd_lzo.c
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
/*
|
||||||
|
VTun - Virtual Tunnel over TCP/IP network.
|
||||||
|
|
||||||
|
Copyright (C) 1998-2000 Maxim Krasnyansky <max_mk@yahoo.com>
|
||||||
|
|
||||||
|
VTun has been derived from VPPP package by Maxim Krasnyansky.
|
||||||
|
|
||||||
|
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
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* lfd_lzo.c,v 1.1.1.2.2.7.2.1 2006/11/16 04:03:00 mtbishop Exp
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* LZO compression module */
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <syslog.h>
|
||||||
|
|
||||||
|
#include "vtun.h"
|
||||||
|
#include "linkfd.h"
|
||||||
|
#include "lib.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_LZO
|
||||||
|
|
||||||
|
#include "lzo1x.h"
|
||||||
|
#include "lzoutil.h"
|
||||||
|
|
||||||
|
static lzo_byte *zbuf;
|
||||||
|
static lzo_voidp wmem;
|
||||||
|
static int zbuf_size = VTUN_FRAME_SIZE * VTUN_FRAME_SIZE / 64 + 16 + 3;
|
||||||
|
|
||||||
|
/* Pointer to compress function */
|
||||||
|
int (*lzo1x_compress)(const lzo_byte *src, lzo_uint src_len,
|
||||||
|
lzo_byte *dst, lzo_uint *dst_len,
|
||||||
|
lzo_voidp wrkmem);
|
||||||
|
/*
|
||||||
|
* Initialize compressor/decompressor.
|
||||||
|
* Allocate the buffers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int alloc_lzo(struct vtun_host *host)
|
||||||
|
{
|
||||||
|
int zlevel = host->zlevel ? host->zlevel : 1;
|
||||||
|
int mem;
|
||||||
|
|
||||||
|
switch( zlevel ){
|
||||||
|
case 9:
|
||||||
|
lzo1x_compress = lzo1x_999_compress;
|
||||||
|
mem = LZO1X_999_MEM_COMPRESS;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lzo1x_compress = lzo1x_1_15_compress;
|
||||||
|
mem = LZO1X_1_15_MEM_COMPRESS;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( lzo_init() != LZO_E_OK ){
|
||||||
|
vtun_syslog(LOG_ERR,"Can't initialize compressor");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if( !(zbuf = lfd_alloc(zbuf_size)) ){
|
||||||
|
vtun_syslog(LOG_ERR,"Can't allocate buffer for the compressor");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if( !(wmem = lzo_malloc(mem)) ){
|
||||||
|
vtun_syslog(LOG_ERR,"Can't allocate buffer for the compressor");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
vtun_syslog(LOG_INFO, "LZO compression[level %d] initialized", zlevel);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Deinitialize compressor/decompressor.
|
||||||
|
* Free the buffer.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int free_lzo()
|
||||||
|
{
|
||||||
|
lfd_free(zbuf); zbuf = NULL;
|
||||||
|
lzo_free(wmem); wmem = NULL;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This functions _MUST_ consume all incoming bytes in one pass,
|
||||||
|
* that's why we expand buffer dynamicly.
|
||||||
|
*/
|
||||||
|
int comp_lzo(int len, char *in, char **out)
|
||||||
|
{
|
||||||
|
unsigned int zlen = 0;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
if( (err=lzo1x_compress((void *)in,len,zbuf,&zlen,wmem)) != LZO_E_OK ){
|
||||||
|
vtun_syslog(LOG_ERR,"Compress error %d",err);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
*out = (void *)zbuf;
|
||||||
|
return zlen;
|
||||||
|
}
|
||||||
|
|
||||||
|
int decomp_lzo(int len, char *in, char **out)
|
||||||
|
{
|
||||||
|
unsigned int zlen = 0;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
if( (err=lzo1x_decompress((void *)in,len,zbuf,&zlen,wmem)) != LZO_E_OK ){
|
||||||
|
vtun_syslog(LOG_ERR,"Decompress error %d",err);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
*out = (void *) zbuf;
|
||||||
|
return zlen;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct lfd_mod lfd_lzo = {
|
||||||
|
"LZO",
|
||||||
|
alloc_lzo,
|
||||||
|
comp_lzo,
|
||||||
|
NULL,
|
||||||
|
decomp_lzo,
|
||||||
|
NULL,
|
||||||
|
free_lzo,
|
||||||
|
NULL,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
#else /* HAVE_LZO */
|
||||||
|
|
||||||
|
int no_lzo(struct vtun_host *host)
|
||||||
|
{
|
||||||
|
vtun_syslog(LOG_INFO, "LZO compression is not supported");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct lfd_mod lfd_lzo = {
|
||||||
|
"LZO",
|
||||||
|
no_lzo, NULL, NULL, NULL, NULL, NULL, NULL, NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* HAVE_LZO */
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
@name vtun-3.0.0
|
@name vtun-3.0.1
|
||||||
|
|
||||||
@owner root
|
@owner root
|
||||||
@group wheel
|
@group wheel
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
PKG="vtun"
|
PKG="vtun"
|
||||||
NAME="VTun - Virtual tunnels over TCP/IP"
|
NAME="VTun - Virtual tunnels over TCP/IP"
|
||||||
VERSION="3.0.0"
|
VERSION="3.0.1"
|
||||||
ARCH="i386"
|
ARCH="i386"
|
||||||
VENDOR="Bishop Clark"
|
VENDOR="Bishop Clark"
|
||||||
EMAIL="bishop@platypus.bc.ca"
|
EMAIL="bishop@platypus.bc.ca"
|
||||||
CATEGORY="system"
|
CATEGORY="system"
|
||||||
CLASSES="none"
|
CLASSES="none"
|
||||||
PSTAMP="20061211"
|
PSTAMP="20070606"
|
||||||
BASEDIR="/usr/local/"
|
BASEDIR="/usr/local/"
|
||||||
|
@ -1,16 +1,20 @@
|
|||||||
# $Id: vtun.spec,v 1.24.2.2 2006/12/11 14:09:34 mtbishop Exp $
|
# $Id: vtun.spec,v 1.24.2.3 2007/06/06 08:48:19 mtbishop Exp $
|
||||||
|
|
||||||
# By default, builds without socks-support.
|
# By default, builds without socks-support.
|
||||||
# To build with socks-support, issue:
|
# To build with socks-support, issue:
|
||||||
# rpm --define "_with_socks yes" ...
|
# rpm --define "_with_socks yes" ...
|
||||||
|
|
||||||
# By default, builds with LZO support (available for any RPM system)
|
# By default, builds with LZO 1 support (available for any RPM system)
|
||||||
# To disable LZO, issue:
|
# To disable LZO, issue:
|
||||||
# rpm --define "_without_lzo yes" ...
|
# rpm --define "_without_lzo yes" ...
|
||||||
|
#
|
||||||
|
# Enabling LZO2 only fixes the RPM builddeps, so far; configure still
|
||||||
|
# exercises some license.
|
||||||
|
# rpm --with lzo2
|
||||||
|
|
||||||
# define variables here for older RPM versions.
|
# define variables here for older RPM versions.
|
||||||
%define name vtun
|
%define name vtun
|
||||||
%define version 3.0.0
|
%define version 3.0.1
|
||||||
%define release 1
|
%define release 1
|
||||||
|
|
||||||
# expansion of the previous part.
|
# expansion of the previous part.
|
||||||
@ -55,22 +59,27 @@ BuildRequires: %{_bindir}/gcc
|
|||||||
|
|
||||||
# please check the FAQ for this question, and mail Bishop if there is
|
# please check the FAQ for this question, and mail Bishop if there is
|
||||||
# no FAQ entry.
|
# no FAQ entry.
|
||||||
%define _buildreq_ zlib-devel %{!?_without_ssl:openssl-devel >= 0.9.7} %{!?_without_lzo: lzo-devel}
|
%define _buildreq_ zlib-devel %{!?_without_ssl:openssl-devel >= 0.9.7} %{?_with_lzo2:lzo2-devel} %{!?_with_lzo2:%{!?_without_lzo: lzo-devel}}
|
||||||
%define _requires_ tun
|
%define _requires_ tun
|
||||||
|
|
||||||
# Caldera has funny zlib
|
# Caldera has funny zlib
|
||||||
%define _buildreq_ol libz-devel %{!?_without_ssl:openssl-devel >= 0.9.7} %{!?_without_lzo:lzo-devel}
|
%define _buildreq_ol libz-devel %{!?_without_ssl:openssl-devel >= 0.9.7} %{?_with_lzo2:lzo2-devel} %{!?_with_lzo2:%{!?_without_lzo: lzo-devel}}
|
||||||
# Mandrake has unpredictable devel package names
|
# Mandrake has unpredictable devel package names
|
||||||
%define _buildreq_mdk zlib1-devel %{!?_without_ssl:libopenssl0-devel >= 0.9.7} %{!?_without_lzo: liblzo1-devel}
|
%define _buildreq_mdk zlib1-devel %{!?_without_ssl:libopenssl0-devel >= 0.9.7} %{?_with_lzo2:liblzo2-devel} %{!?_with_lzo2:%{!?_without_lzo: liblzo1-devel}}
|
||||||
|
|
||||||
# normally, NOT depending on the tun package encourages other apps to
|
# normally, NOT depending on the tun package encourages other apps to
|
||||||
# clobber the modules.conf file. In this case, the reverse is true,
|
# clobber the modules.conf file. In this case, the reverse is true,
|
||||||
# since FCx actually includes all the necessary entries. So no tun.
|
# since FCx actually includes all the necessary entries. So no tun.
|
||||||
# We avoid a %null value by stating one redundantly.
|
# We avoid a %null value by stating one redundantly.
|
||||||
%define _requires_fc zlib
|
%define _requires_fc zlib
|
||||||
%define _buildreq_fc zlib-devel %{!?_without_ssl:openssl-devel} %{!?_without_lzo: lzo-devel}
|
%define _buildreq_fc zlib-devel %{!?_without_ssl:openssl-devel} %{?_with_lzo2:lzo2-devel} %{!?_with_lzo2:%{!?_without_lzo: lzo-devel}}
|
||||||
%define _requires_rhel4 %_requires_fc
|
%define _requires_rhel %_requires_fc
|
||||||
%define _buildreq_rhel4 %_buildreq_fc
|
%define _buildreq_rhel %_buildreq_fc
|
||||||
|
|
||||||
|
# SuSE doesn't permit lzo and lzo2 to be installed simultaneously so
|
||||||
|
# we do not need to care so much.
|
||||||
|
%define _buildreq_suse zlib-devel %{!?_without_ssl:openssl-devel >= 0.9.7} %{!?_without_lzo: lzo-devel}
|
||||||
|
%define _requires_suse zlib %{!?_without_lzo: lzo}
|
||||||
|
|
||||||
Requires: %{_requires}
|
Requires: %{_requires}
|
||||||
BuildRequires: %{_buildreq}
|
BuildRequires: %{_buildreq}
|
||||||
@ -175,16 +184,19 @@ sbin/insserv etc/init.d/vtund
|
|||||||
%attr(755,root,root) %dir %{log_dir}
|
%attr(755,root,root) %dir %{log_dir}
|
||||||
%attr(755,root,root) %dir %{lock_dir}
|
%attr(755,root,root) %dir %{lock_dir}
|
||||||
%{_mandir}/man8/vtund.8*
|
%{_mandir}/man8/vtund.8*
|
||||||
#%{_mandir}/man8/vtun.8*
|
|
||||||
%{_mandir}/man5/vtund.conf.5*
|
%{_mandir}/man5/vtund.conf.5*
|
||||||
/etc/xinetd.d/vtun
|
/etc/xinetd.d/vtun
|
||||||
%if "%_dis" == "suse"
|
%if "%_dis" == "suse"
|
||||||
|
%{_mandir}/man8/vtun.8*
|
||||||
%attr(755,root,root) %{_sbindir}/rcvtund
|
%attr(755,root,root) %{_sbindir}/rcvtund
|
||||||
/var/adm/fillup-templates/rc.config.vtund
|
/var/adm/fillup-templates/rc.config.vtund
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
#date +"%a %b %d %Y"
|
#date +"%a %b %d %Y"
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Mar 27 2007 Bishop Clark (LC957) <bishop@platypus.bc.ca> 3.0.1-1
|
||||||
|
- new code drop (more LZO2 work)
|
||||||
|
|
||||||
* Mon Dec 11 2006 Bishop Clark (LC957) <bishop@platypus.bc.ca> 3.0.0-1
|
* Mon Dec 11 2006 Bishop Clark (LC957) <bishop@platypus.bc.ca> 3.0.0-1
|
||||||
- new code drop
|
- new code drop
|
||||||
- s/Copyright/License/, deprecated parameter.
|
- s/Copyright/License/, deprecated parameter.
|
||||||
|
Loading…
Reference in New Issue
Block a user