ns-3 Direct Code Execution
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
unix-datagram-socket-fd.h
Go to the documentation of this file.
1 #ifndef UNIX_DATAGRAM_SOCKET_FD_H
2 #define UNIX_DATAGRAM_SOCKET_FD_H
3 
4 #include "unix-socket-fd.h"
5 #include "ns3/ipv4-address.h"
6 #include "ns3/icmpv4.h"
7 #include <netinet/in.h>
8 
9 namespace ns3 {
10 
11 class Address;
12 
14 {
15 public:
16  UnixDatagramSocketFd (Ptr<Socket> sock);
17 
18 private:
19  virtual ssize_t DoRecvmsg (struct msghdr *msg, int flags);
20  virtual ssize_t DoSendmsg (const struct msghdr *msg, int flags);
21  virtual int Listen (int backlog);
22  virtual int Accept (struct sockaddr *my_addr, socklen_t *addrlen);
23  virtual int Shutdown (int how);
24  virtual bool CanRecv (void) const;
25  virtual bool CanSend (void) const;
26  virtual bool HangupReceived (void) const;
27  virtual int Poll (PollTable* ptable);
28  void IcmpCallback (Ipv4Address icmpSource, uint8_t icmpTtl,
29  uint8_t icmpType, uint8_t icmpCode,
30  uint32_t icmpInfo);
31  void QueueErr (sock_extended_err ee, struct sockaddr_in offender, uint8_t ttl);
32  void CopyMacAddress (const Address &a, uint8_t* const buf);
33  void MainSendTo (int *r, Ptr<Packet> p, uint32_t f, Address ad);
34 
35  struct Error
36  {
37  sock_extended_err ee;
38  struct sockaddr_in offender;
39  uint8_t ttl;
40  };
41  std::list<struct Error> m_errQueue;
42 };
43 
44 } // namespace ns3
45 
46 #endif /* UNIX_DATAGRAM_SOCKET_FD_H */