Support tunneling IPv6 on Solaris.
This commit is contained in:
parent
d02d81ff9d
commit
5bba3124c8
2 changed files with 19 additions and 3 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue