ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/src/vpn.C
(Generate patch)

Comparing gvpe/src/vpn.C (file contents):
Revision 1.56 by root, Tue Feb 8 23:11:36 2011 UTC vs.
Revision 1.59 by root, Fri Sep 16 17:59:46 2011 UTC

1/* 1/*
2 vpn.C -- handle the protocol, encryption, handshaking etc. 2 vpn.C -- handle the protocol, encryption, handshaking etc.
3 Copyright (C) 2003-2008 Marc Lehmann <gvpe@schmorp.de> 3 Copyright (C) 2003-2008,2010,2011 Marc Lehmann <gvpe@schmorp.de>
4 4
5 This file is part of GVPE. 5 This file is part of GVPE.
6 6
7 GVPE is free software; you can redistribute it and/or modify it 7 GVPE is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the 8 under the terms of the GNU General Public License as published by the
521 return send_ipv4_packet (pkt, si, tos); 521 return send_ipv4_packet (pkt, si, tos);
522 522
523 case PROT_UDPv4: 523 case PROT_UDPv4:
524 return send_udpv4_packet (pkt, si, tos); 524 return send_udpv4_packet (pkt, si, tos);
525 525
526#if ENABLE_TCP 526#if ENABLE_TCP
527 case PROT_TCPv4: 527 case PROT_TCPv4:
528 return send_tcpv4_packet (pkt, si, tos); 528 return send_tcpv4_packet (pkt, si, tos);
529#endif 529#endif
530#if ENABLE_ICMP 530#if ENABLE_ICMP
531 case PROT_ICMPv4: 531 case PROT_ICMPv4:
559 if (len > 0) 559 if (len > 0)
560 { 560 {
561 pkt->len = len; 561 pkt->len = len;
562 562
563 // raw sockets deliver the ipv4 header, but don't expect it on sends 563 // raw sockets deliver the ipv4 header, but don't expect it on sends
564 pkt->skip_hdr (IP_OVERHEAD); 564 pkt->skip_ipv4_hdr ();
565 565
566 recv_vpn_packet (pkt, si); 566 recv_vpn_packet (pkt, si);
567 } 567 }
568 else 568 else
569 { 569 {
606 if (hdr->type == ::conf.icmp_type 606 if (hdr->type == ::conf.icmp_type
607 && hdr->code == 255) 607 && hdr->code == 255)
608 { 608 {
609 // raw sockets deliver the ipv4, but don't expect it on sends 609 // raw sockets deliver the ipv4, but don't expect it on sends
610 // this is slow, but... 610 // this is slow, but...
611 pkt->skip_hdr (ICMP_OVERHEAD); 611 pkt->skip_ipv4_hdr (ICMP_OVERHEAD - IP_OVERHEAD);
612 612
613 recv_vpn_packet (pkt, si); 613 recv_vpn_packet (pkt, si);
614 } 614 }
615 } 615 }
616 else 616 else

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines