]> git.sesse.net Git - greproxy/commitdiff
Merge branch 'master' of morgental.zrh.sesse.net:greproxy
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Sat, 7 Feb 2015 23:55:56 +0000 (00:55 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Sat, 7 Feb 2015 23:55:56 +0000 (00:55 +0100)
greprotocol.cpp
greprotocol.h
tunprotocol.cpp
tunprotocol.h

index 2fb2503d3e0cbc240d9220e5c072cf24ca79edd0..5fd4e4b8262a69be62098fb41524a2b228b7602f 100644 (file)
@@ -24,7 +24,6 @@ struct gre_header {
 
 
 GREProtocol::GREProtocol(const in6_addr &src, const in6_addr &dst)
-       : seq(0)
 {
        memset(&dstaddr, 0, sizeof(dstaddr));
        dstaddr.sin6_family = AF_INET6;
@@ -57,7 +56,7 @@ void GREProtocol::send_packet(uint16_t proto, const string &data, int incoming_s
        gre->protocol_type = htons(proto);
 
        char *ptr = buf + sizeof(*gre);
-       int seq_be = htonl(seq++);  // Ignore incoming_seq.
+       int seq_be = htonl(incoming_seq);
        memcpy(ptr, &seq_be, sizeof(seq_be));
        ptr += sizeof(seq_be);
 
index fd595b7a05e9b8bc59501847e6d28ea41aa51903..739b97e17177a0a3e9936804caf3d45fcadcb5e0 100644 (file)
@@ -16,7 +16,6 @@ public:
        virtual void read_packet(Sender* sender);
 
 private:
-       int seq;
        int sock;
        sockaddr_in6 dstaddr;
 };
index f8bde7d3627279dfcf84e8cc3c1cfca00c136c07..7a52362c5482ee8e93a7d0cab04038b9faac2c89 100644 (file)
@@ -39,7 +39,7 @@ int tun_open(const char *name) {
 }  // namespace
 
 TUNProtocol::TUNProtocol(const char *devname)
-       : tunfd(tun_open(devname)) {
+       : tunfd(tun_open(devname)), seq(0) {
 }
 
 void TUNProtocol::send_packet(uint16_t proto, const string &data, int incoming_seq)
@@ -89,6 +89,6 @@ void TUNProtocol::read_packet(Sender *sender)
        ptr += 2;
        //fprintf(stderr, "tun packet: flags=%x proto=%x len=%d\n",
        //      flags, proto, ret - 4);
-       sender->send_packet(proto, string(ptr, buf + ret), -1);
+       sender->send_packet(proto, string(ptr, buf + ret), seq++);
 }
 
index 7f160668f7973985988f515cd98d925f38263896..d9f40fa4e661c07e43f34b40ea838ec8e6ed70e1 100644 (file)
@@ -15,6 +15,7 @@ public:
 
 private:
        int tunfd;
+       int seq;
 };
 
 #endif  // !defined(_TUNPROTOCOL_H)