As kernel API changed again, I wrote this patch to make it work
Created attachment 102449 [details, diff] cisco-vpnclient-3des-kernel-2.6.19.patch
A big problem with your patch is that it alters semantics for *older* kernels. For example, these lines from the diff: #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10) - if (skb_checksum_help(skb,1)) + if (skb_checksum_help(skb)) Not safe. Better to make a new #if that checks for 2,6,19 and above. For example: #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10) if (skb_checksum_help(skb,1)) #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19) if (skb_checksum_help(skb)) You get the idea. Your changes alters behavior for compiles under pre-2.6.19 kernel which do not have the new API, so it is not ideal. When it's revised to only change semantics if kernel is at least 2.6.19, then it may be ready for inclusion.
Created attachment 103241 [details, diff] Revised patch I hope this is what was meant.
Created attachment 103242 [details] Modified ebuild modified ebuild to patch if we're using >=2.6.19
This patch looks OK to me (and seems to work alright), but I'd prefer someone to check out the difference between CHECKSUM_COMPLETE and CHECKSUM_PARTIAL, and whether they're related to the extra 1/0 parameter that's no longer passed to skb_checksum_help. From http://lwn.net/Articles/200925/: The CHECKSUM_HW value has long been used in the networking subsystem to support hardware checksumming. That value has been replaced with CHECKSUM_PARTIAL (intended for outgoing packets where the job must be completed by the hardware) and CHECKSUM_COMPLETE (for incoming packets which have been completely checksummed by the hardware). Suggesting that for checking outgoing packets, CHECKSUM_PARTIAL be used instead. Also, there's no need to only apply the patch, since the revised patch will now check the kernel and thus should work for all sources... 5:)
Created attachment 103250 [details] Comparison between skb_checksum_help() from 2.6.19 and 2.6.18 I tried to figure out what it does.. but I still have no idea what it does but here is what I've dug up. Between the 2.6.19 skb_checksum_help and the 2.6.18 version is one line if (skb->ip_summed == CHECKSUM_COMPLETE) which was originally if(inward). inward was the parameter that was removed.
*** Bug 157229 has been marked as a duplicate of this bug. ***
I tested the patch at http://www.tuxx-home.at/projects/cisco-vpnclient/vpnclient-linux-2.6.19.diff - not sure if this is the same as presented here - but this works ALSO for version 4.7.0 of the VPN client. Please apply the change to that version as well.
FIXED in CVS... enjoy