]> git.sesse.net Git - greproxy/blob - greprotocol.h
Merge branch 'master' of /srv/git.sesse.net/www/greproxy
[greproxy] / greprotocol.h
1 #ifndef _GREPROTOCOL_H
2 #define _GREPROTOCOL_H
3
4 #include <arpa/inet.h>
5 #include <netinet/in.h>
6 #include <stdint.h>
7 #include <string>
8
9 #include "protocol.h"
10
11 class GREProtocol : public Sender, public Reader {
12 public:
13         GREProtocol(const in6_addr &myaddr, const in6_addr &dst);
14         virtual void send_packet(uint16_t proto, const std::string &data, uint32_t incoming_seq);
15         virtual int fd() const;
16         virtual void read_packet(Sender* sender);
17
18         int get_received_packets() const { return received_packets; }
19         int get_sent_packets() const { return sent_packets; }
20
21 private:
22         int sock;
23         sockaddr_in6 dstaddr;
24
25         int received_packets = 0, sent_packets = 0;
26 };
27
28 #endif  // !defined(_GREPROTOCOL_H)