diff -Nur vpnclient/IPSecDrvOS_linux.c vpnclient.new/IPSecDrvOS_linux.c --- vpnclient/IPSecDrvOS_linux.c 2005-11-22 01:52:00.000000000 -0800 +++ vpnclient.new/IPSecDrvOS_linux.c 2007-04-08 11:53:01.000000000 -0700 @@ -11,7 +11,7 @@ * * ***************************************************************************/ -#include +#include #include #include #include diff -Nur vpnclient/frag.c vpnclient.new/frag.c --- vpnclient/frag.c 2005-11-22 01:52:00.000000000 -0800 +++ vpnclient.new/frag.c 2007-04-08 11:53:02.000000000 -0700 @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff -Nur vpnclient/interceptor.c vpnclient.new/interceptor.c --- vpnclient/interceptor.c 2005-11-22 01:52:00.000000000 -0800 +++ vpnclient.new/interceptor.c 2007-04-08 11:57:14.000000000 -0700 @@ -8,7 +8,7 @@ *************************************************************************** * This module implements the linux driver. ***************************************************************************/ -#include +#include #include #include #include @@ -33,6 +33,18 @@ #include "mtu.h" #include "unixkernelapi.h" +// With linux 2.6.19, CHECKSUM_HW was split into CHECKSUM_COMPLETE +// and CHECKSUM_PARTIAL + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19) + #define CHECK_IP_SUMMED(n) \ + (((n) == CHECKSUM_COMPLETE) || ((n) == CHECKSUM_PARTIAL)) + #define SKB_CHECKSUM_HELP(a,b) skb_checksum_help((a)) +#else + #define CHECK_IP_SUMMED(n) ((n) == CHECKSUM_HW) + #define SKB_CHECKSUM_HELP(a,b) skb_checksum_help((a),(b)) +#endif + static uint8_t interceptor_eth_addr[] = { 0x00, 0x0b, 0xfc, 0xf8, 0x01, 0x8f }; // packet statistics @@ -550,13 +562,13 @@ goto exit_gracefully; } - if (skb->ip_summed == CHECKSUM_HW) + if (CHECK_IP_SUMMED(skb->ip_summed)) { #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,7) #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10) - if (skb_checksum_help(skb,1)) + if (SKB_CHECKSUM_HELP(skb,1)) #else - if (skb_checksum_help(&skb,1)) + if (SKB_CHECKSUM_HELP(&skb,1)) #endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10) { dev_kfree_skb(skb); @@ -677,14 +689,14 @@ tmp_InjectSend = NULL; #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0) - if (skb->ip_summed == CHECKSUM_HW) + if (CHECK_IP_SUMMED(skb->ip_summed)) { #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10) - if (skb_checksum_help(skb,0)) + if (SKB_CHECKSUM_HELP(skb,0)) #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,7) - if (skb_checksum_help(&skb,0)) + if (SKB_CHECKSUM_HELP(&skb,0)) #else - if ((skb = skb_checksum_help(skb)) == NULL) + if ((skb = SKB_CHECKSUM_HELP(skb)) == NULL) #endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,7) { goto exit_gracefully; diff -Nur vpnclient/linuxcniapi.c vpnclient.new/linuxcniapi.c --- vpnclient/linuxcniapi.c 2005-11-22 01:52:00.000000000 -0800 +++ vpnclient.new/linuxcniapi.c 2007-04-08 11:53:02.000000000 -0700 @@ -9,7 +9,7 @@ * This module implements a translation layer between the CNI API and the * Linux Interceptor driver. ***************************************************************************/ -#include +#include #include #include #include