Support tunneling IPv6 on Solaris.

This commit is contained in:
Guus Sliepen 2004-11-10 21:14:08 +00:00
parent d02d81ff9d
commit 5bba3124c8
2 changed files with 19 additions and 3 deletions

View file

@ -67,7 +67,6 @@ struct ip {
#define IP_RF 0x8000
#define IP_DF 0x4000
#define IP_MF 0x2000
#define IP_OFFMASK 0x1fff
uint8_t ip_ttl;
uint8_t ip_p;
uint16_t ip_sum;
@ -75,6 +74,10 @@ struct ip {
} __attribute__ ((__packed__));
#endif
#ifndef IP_OFFMASK
#define IP_OFFMASK 0x1fff
#endif
#ifndef HAVE_STRUCT_ICMP
struct icmp {
uint8_t icmp_type;

View file

@ -127,8 +127,21 @@ bool read_packet(vpn_packet_t *packet)
return false;
}
packet->data[12] = 0x08;
packet->data[13] = 0x00;
switch(packet->data[14] >> 4) {
case 4:
packet->data[12] = 0x08;
packet->data[13] = 0x00;
break;
case 6:
packet->data[12] = 0x86;
packet->data[13] = 0xDD;
break;
default:
ifdebug(TRAFFIC) logger(LOG_ERR,
_ ("Unknown IP version %d while reading packet from %s %s"),
packet->data[14] >> 4, device_info, device);
return false;
}
packet->len = lenin + 14;