diff -uNr freeswan-1.99-4/klips/net/ipsec/ipsec_kversion.h freeswan-1.99-5/klips/net/ipsec/ipsec_kversion.h --- freeswan-1.99-4/klips/net/ipsec/ipsec_kversion.h 2002-04-12 05:21:43.000000000 +0200 +++ freeswan-1.99-5/klips/net/ipsec/ipsec_kversion.h 2003-02-04 23:01:48.000000000 +0100 @@ -100,6 +100,10 @@ #define LINUX_KERNEL_HAS_SNPRINTF #endif +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,19) +#define LINUX_KERNEL_HAS_SNPRINTF +#endif + #ifdef NET_21 # include #else diff -uNr freeswan-1.99-4/klips/net/ipsec/ipsec_tunnel.c freeswan-1.99-5/klips/net/ipsec/ipsec_tunnel.c --- freeswan-1.99-4/klips/net/ipsec/ipsec_tunnel.c 2003-02-04 22:50:09.000000000 +0100 +++ freeswan-1.99-5/klips/net/ipsec/ipsec_tunnel.c 2003-02-04 23:01:48.000000000 +0100 @@ -66,6 +66,11 @@ # include /* TCP options */ #endif /* MSS_HACK */ +/* The ip_select_ident change can not be detected by kernel version only */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,18) && defined(IP_LOCAL_DATA) +# define IP_SELECT_IDENT_NEW_NEW +#endif + #include "radij.h" #include "ipsec_life.h" #include "ipsec_xform.h" @@ -1744,7 +1749,9 @@ /* XXX use of skb->dst below is a questionable substitute for &rt->u.dst which is only available later-on */ -#ifdef IP_SELECT_IDENT_NEW +#ifdef IP_SELECT_IDENT_NEW_NEW + ip_select_ident(iph); +#elif defined IP_SELECT_IDENT_NEW ip_select_ident(iph, skb->dst, NULL); #else /* IP_SELECT_IDENT_NEW */ ip_select_ident(iph, skb->dst);