+
+ case 6:
+ // Append IPv6 Pseudo Header
+ {
+ Uint32 buf[4+4+1+1];
+ memcpy(buf, Conn->Interface->Address, 16);
+ memcpy(&buf[4], &Conn->RemoteIP, 16);
+ buf[8] = htonl(Length);
+ buf[9] = htonl(6);
+ checksum[0] = htons( ~IPv4_Checksum(buf, sizeof(buf)) ); // Partial checksum
+ }
+ Data->Checksum = htons( IPv4_Checksum(checksum, 2*2) ); // Combine the two
+ IPv6_SendPacket(Conn->Interface, Conn->RemoteIP.v6, IP4PROT_TCP, Length, Data);
+ break;