X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=tunprotocol.cpp;h=f455e20ce7aeed31b4218619a8846c309e3bc09f;hb=HEAD;hp=534c8bdabfc77bb8aaad6a642fa1a196676f10bd;hpb=47f75fc7569e504a94a601cb3a81793400b134ac;p=greproxy diff --git a/tunprotocol.cpp b/tunprotocol.cpp index 534c8bd..f455e20 100644 --- a/tunprotocol.cpp +++ b/tunprotocol.cpp @@ -39,10 +39,10 @@ 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) +void TUNProtocol::send_packet(uint16_t proto, const string &data, uint32_t incoming_seq) { char buf[4096]; @@ -62,6 +62,8 @@ void TUNProtocol::send_packet(uint16_t proto, const string &data, int incoming_s perror("write"); return; } + + ++sent_packets; } int TUNProtocol::fd() const @@ -69,7 +71,7 @@ int TUNProtocol::fd() const return tunfd; } -void TUNProtocol::read_packet(Protocol *sender) +void TUNProtocol::read_packet(Sender *sender) { char buf[4096]; int ret = read(tunfd, buf, sizeof(buf)); @@ -89,6 +91,7 @@ void TUNProtocol::read_packet(Protocol *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); + ++received_packets; + sender->send_packet(proto, string(ptr, buf + ret), seq++); }