Cisco VPN client for linux kernel > 2.6.13
Saturday, December 31st, 2005Per lavoro ho la necessitàdi utilizzare il Client VPN di Cisco, per collegarmi nella rete privata dell’azienda.
Siccome mi piace provare sempre le features dei nuovi kernel, mi sono trovato d’avanti ad un problemino.
Ho istallato il kernel 2.6.14, ho ricompilato tutti i moduli aggiuntivi per il mio hardware (ipw2200, fglrx, vmware, ecc) senza alcun problema, ma quando sono andato a compilare il “Cisco VPN Client” ho trovato la sorpresa:
CC [M] /home/software/vpnclient/linuxcniapi.o
/home/software/vpnclient/linuxcniapi.c: In function ‘CniInjectReceive’:
/home/software/vpnclient/linuxcniapi.c:292: error: ‘struct sk_buff’ has no member named ‘stamp’
/home/software/vpnclient/linuxcniapi.c: In function ‘CniInjectSend’:
/home/software/vpnclient/linuxcniapi.c:432: error: ‘struct sk_buff’ has no member named ‘stamp’
make[2]: *** [/home/software/vpnclient/linuxcniapi.o] Error 1
make[1]: *** [_module_/home/software/vpnclient] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.14.2′
make: *** [default] Error 2
A questo punto ho effettuato qualche ricerca su internet ed ho trovato una patch per riolvere queasto problema, nella lista di Fedora:
diff -ur vpnclient.orig/linuxcniapi.c vpnclient/linuxcniapi.c
— vpnclient.orig/linuxcniapi.c 2005-09-13 22:40:56.000000000 -0400
+++ vpnclient/linuxcniapi.c 2005-11-15 15:43:36.000000000 -0500
@@ -289,7 +289,11 @@
goto exit_gracefully;
}
/* move the data into the packet */
+#if LINUX_VERSION_CODE >= 132622
+ __net_timestamp(skb);
+#else
do_gettimeofday(&skb->stamp);
+#endifpIP = skb_put(skb, lpPacketDescriptor->uiPacketSize);
@@ -429,7 +433,11 @@
CniGetPacketData(Packet, 0, lpPacketDescriptor->uiPacketSize, pIP);/* put the mac header on */
+#if LINUX_VERSION_CODE >= 132622
+ __net_timestamp(skb);
+#else
do_gettimeofday(&skb->stamp);
+#endifskb->dev = pBinding->pDevice;
Adesso funziona tutto benissimo.