]> git.llucax.com Git - z.facultad/75.74/practicos.git/blob - practicas/pipi/src/ipin.h
Bugfix, se pone bien la MAC del dispositivo.
[z.facultad/75.74/practicos.git] / practicas / pipi / src / ipin.h
1 #ifndef _IPIN_H_
2 #define _IPIN_H_
3
4 #include "ipaddr.h"
5 #include "ipheader.h"
6 #include "dev.h"
7 #include <iostream>
8 #include <string>
9 #include <stdexcept>
10
11 /// IP de recepción
12 struct IPIn
13 {
14
15     /// Dirección MAC
16     IPAddr ip;
17
18     /// Dispositivo de red
19     Dev& dev;
20
21     /// Dispositivo de logging
22     std::ostream& log;
23
24     /// Constructor
25     IPIn(const IPAddr& ip, Dev& dev, std::ostream& log = std::cout);
26
27     /// Descarta un paquete
28     void drop(const std::string& msg, const std::string& buf);
29     void drop(const std::string& msg, const IPHeader& iph);
30
31     /// Recibe un paquete IP
32     std::string recv(uint8_t proto, IPAddr& src, IPAddr& dst)
33         throw (std::runtime_error);
34
35     // Nada de andar copiando placas...
36     private:
37     IPIn(const IPIn&);
38     IPIn& operator=(const IPIn&);
39
40 };
41
42 #endif // _IPIN_H_
43
44 // vim: set et sw=4 sts=4 :