Terry:
The files
/lib/modules/2.6.13-1.1532_FC4/build/include/linux/skbuff.h
/lib/modules/2.6.14-1.1637_FC4/build/include/linux/skbuff.h
/lib/modules/2.6.14-1.1637_FC4/build/include/linux/time.h
/lib/modules/2.6.14-1.1637_FC4/build/include/linux/types.h
show that a structure "sk_buff" has changed the "stamp" field into
"tstamp" with a different type, going from 2.6.14 from 2.6.13. This
affects the function call to
extern void do_gettimeofday(struct timeval *tv);
in the file "linuxcniapi.c" in the vpnclient directory.
The enclosed patch file casts the types returned by do_gettimeofday into
the types required for skb->tstamp. There are still some warnings for
incompatible pointers in the file "interceptor.c". I think they are
related to the same structure. But, the compiled vpn seems to work
without the warnings.
I applied the patch as follows:
tar -xf vpnclient-linux-4.7.00.0640-k9.tar
cd vpnclient
patch < (patch file name)
vpn_install
Hope this helps, Erwin
--- linuxcniapi.c 2005-11-12 11:53:06.000000000 -0600
+++ 2.6.14-vpnclient-linux-4.7.00.0640-linuxcniapi.c 2005-11-12 11:49:20.000000000 -0600
@@ -276,6 +276,8 @@
struct sk_buff *skb = NULL;
unsigned char *pIP = NULL, *pMac = NULL;
+ struct timeval timecount;
+
/* we need to build the actual sk_buff from the packet structure */
pBinding = (PBINDING) Binding;
lpPacketDescriptor = (LPPACKETDESCRIPTOR) Packet;
@@ -289,7 +291,10 @@
goto exit_gracefully;
}
/* move the data into the packet */
- do_gettimeofday(&skb->stamp);
+ do_gettimeofday(&timecount);
+
+ skb->tstamp.off_sec = (u32) timecount.tv_sec;
+ skb->tstamp.off_usec = (u32) timecount.tv_usec;
pIP = skb_put(skb, lpPacketDescriptor->uiPacketSize);
@@ -389,6 +394,8 @@
unsigned char *pIP = NULL, *pMac = NULL;
int tmp_rc = 0;
+ struct timeval timecount;
+
int (*tmp_InjectSend) (struct sk_buff * skb, struct net_device * dev);
tmp_InjectSend = NULL;
@@ -429,7 +436,10 @@
CniGetPacketData(Packet, 0, lpPacketDescriptor->uiPacketSize, pIP);
/* put the mac header on */
- do_gettimeofday(&skb->stamp);
+ do_gettimeofday(&timecount);
+
+ skb->tstamp.off_sec = (u32) timecount.tv_sec;
+ skb->tstamp.off_usec = (u32) timecount.tv_usec;
skb->dev = pBinding->pDevice;