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_RF 0x8000
|
||||||
#define IP_DF 0x4000
|
#define IP_DF 0x4000
|
||||||
#define IP_MF 0x2000
|
#define IP_MF 0x2000
|
||||||
#define IP_OFFMASK 0x1fff
|
|
||||||
uint8_t ip_ttl;
|
uint8_t ip_ttl;
|
||||||
uint8_t ip_p;
|
uint8_t ip_p;
|
||||||
uint16_t ip_sum;
|
uint16_t ip_sum;
|
||||||
|
@ -75,6 +74,10 @@ struct ip {
|
||||||
} __attribute__ ((__packed__));
|
} __attribute__ ((__packed__));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef IP_OFFMASK
|
||||||
|
#define IP_OFFMASK 0x1fff
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_STRUCT_ICMP
|
#ifndef HAVE_STRUCT_ICMP
|
||||||
struct icmp {
|
struct icmp {
|
||||||
uint8_t icmp_type;
|
uint8_t icmp_type;
|
||||||
|
|
|
@ -127,8 +127,21 @@ bool read_packet(vpn_packet_t *packet)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch(packet->data[14] >> 4) {
|
||||||
|
case 4:
|
||||||
packet->data[12] = 0x08;
|
packet->data[12] = 0x08;
|
||||||
packet->data[13] = 0x00;
|
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;
|
packet->len = lenin + 14;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue