With a little side of applesauce...

Monday, February 5, 2007

Cisco vpnclient - Linux kernel 2.6.20 interceptor.h skb_checksum_help (too many arguments)

Next, we needed to fix the skb_checksum_help function, which previously took two arguments. Here is the error:

Making module
make -C /lib/modules/2.6.20-6-generic/build SUBDIRS=/home/speeves/downloads/vpnclient modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.20-6-generic'
CC [M] /home/speeves/downloads/vpnclient/interceptor.o
In file included from /home/speeves/downloads/vpnclient/Cniapi.h:15,
from /home/speeves/downloads/vpnclient/interceptor.c:30:
/home/speeves/downloads/vpnclient/GenDefs.h:110:2: warning: #warning 64 bit
/home/speeves/downloads/vpnclient/interceptor.c: In function ‘handle_vpnup’:
/home/speeves/downloads/vpnclient/interceptor.c:310: warning: assignment from incompatible pointer type
/home/speeves/downloads/vpnclient/interceptor.c:334: warning: assignment from incompatible pointer type
/home/speeves/downloads/vpnclient/interceptor.c:335: warning: assignment from incompatible pointer type
/home/speeves/downloads/vpnclient/interceptor.c: In function ‘do_cleanup’:
/home/speeves/downloads/vpnclient/interceptor.c:378: warning: assignment from incompatible pointer type
/home/speeves/downloads/vpnclient/interceptor.c: In function ‘recv_ip_packet_handler’:
/home/speeves/downloads/vpnclient/interceptor.c:557: error: too many arguments to function ‘skb_checksum_help’
/home/speeves/downloads/vpnclient/interceptor.c: In function ‘do_cni_send’:
/home/speeves/downloads/vpnclient/interceptor.c:683: error: too many arguments to function ‘skb_checksum_help’
make[2]: *** [/home/speeves/downloads/vpnclient/interceptor.o] Error 1
make[1]: *** [_module_/home/speeves/downloads/vpnclient] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.20-6-generic'
make: *** [default] Error 2


Here is the fix:

$ cd /path/to/vpnclient
$ for f in interceptor.c; do \
> sed -i "s?skb_checksum_help(skb,0)?skb_checksum_help(skb)?" $f ; done

Reference:
http://www.tuxx-home.at/projects/cisco-vpnclient/vpnclient-linux-2.6.19.diff

1 comment:

Jason said...

I still end up with:
/opt/download/vpnclient/interceptor.c: In function ‘recv_ip_packet_handler’:
/opt/download/vpnclient/interceptor.c:557: error: too many arguments to function ‘skb_checksum_help’
make[2]: *** [/opt/download/vpnclient/interceptor.o] Error 1
make[1]: *** [_module_/opt/download/vpnclient] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.19-1.2288.fc5-smp-i686'
make: *** [default] Error 2
Failed to make module "cisco_ipsec.ko".

$ uname -a
Linux brhm-old 2.6.19-1.2288.fc5smp #1 SMP Sat Feb 10 15:33:48 EST 2007 i686 i686 i386 GNU/Linux

./vpn_install
Cisco Systems VPN Client Version 4.8.00 (0490) Linux Installer