Added some additional debug information that help help track down what triggers a particular failure path

This commit is contained in:
John Sharratt 2017-07-02 15:13:16 +02:00
parent 5c56cd3a6d
commit 0fd1dc0308
5 changed files with 14 additions and 9 deletions

View File

@ -315,14 +315,18 @@ ssize_t iface::read(int fd, struct sockaddr* saddr, uint8_t* msg, size_t size)
mhdr.msg_iov =& iov;
mhdr.msg_iovlen = 1;
logger::debug() << "iface::read() ifa=" << name() << ", len=" << len;
if ((len = recvmsg(fd,& mhdr, 0)) < 0)
{
int e = errno;
logger::error() << "iface::read() failed! errno=" << e << ", ifa=" << name();
return -1;
}
if (len < sizeof(struct icmp6_hdr))
return -1;
logger::debug() << "iface::read() len=" << len;
return len;
}
@ -346,7 +350,7 @@ ssize_t iface::write(int fd, const address& daddr, const uint8_t* msg, size_t si
mhdr.msg_iov =& iov;
mhdr.msg_iovlen = 1;
logger::debug() << "iface::write() daddr=" << daddr.to_string() << ", len="
logger::debug() << "iface::write() ifa=" << name() << ", daddr=" << daddr.to_string() << ", len="
<< size;
int len;
@ -354,7 +358,7 @@ ssize_t iface::write(int fd, const address& daddr, const uint8_t* msg, size_t si
if ((len = sendmsg(fd,& mhdr, 0)) < 0)
{
int e = errno;
logger::error() << "iface::write() failed! errno=" << e;
logger::error() << "iface::write() failed! errno=" << e << ", ifa=" << name() << ", daddr=" << daddr.to_string();
return -1;
}

View File

@ -42,9 +42,9 @@ public:
static int poll_all();
static ssize_t read(int fd, struct sockaddr* saddr, uint8_t* msg, size_t size);
ssize_t read(int fd, struct sockaddr* saddr, uint8_t* msg, size_t size);
static ssize_t write(int fd, const address& daddr, const uint8_t* msg, size_t size);
ssize_t write(int fd, const address& daddr, const uint8_t* msg, size_t size);
// Writes a NB_NEIGHBOR_SOLICIT message to the _ifd socket.
ssize_t write_solicit(const address& taddr);

View File

@ -65,7 +65,8 @@ void proxy::handle_solicit(const address& saddr, const address& daddr,
const address& taddr)
{
logger::debug()
<< "proxy::handle_solicit() saddr=" << saddr.to_string()
<< "proxy::handle_solicit() ifa=" << ((_ifa) ? _ifa->name() : "null")
<< ", saddr=" << saddr.to_string()
<< ", taddr=" << taddr.to_string();
// Let's check this proxy's list of sessions to see if we can

View File

@ -52,7 +52,7 @@ ptr<rule> rule::create(const ptr<proxy>& pr, const address& addr, const ptr<ifac
if_add_to_list(ifindex, ifa);
#endif
logger::debug() << "rule::create() if=" << pr->ifa()->name() << ", addr=" << addr;
logger::debug() << "rule::create() if=" << pr->ifa()->name() << ", slave=" << ifa->name() << ", addr=" << addr;
return ru;
}

View File

@ -111,7 +111,7 @@ ptr<session> session::create(const ptr<proxy>& pr, const address& saddr,
_sessions.push_back(se);
logger::debug()
<< "session::create() pr=" << logger::format("%x", (proxy* )pr) << ", saddr=" << saddr
<< "session::create() pr=" << logger::format("%x", (proxy* )pr) << ", slave=" << ((pr->ifa()) ? pr->ifa()->name() : "null") << ", saddr=" << saddr
<< ", daddr=" << daddr << ", taddr=" << taddr << ", autowire=" << (auto_wire == true ? "yes" : "no") << " =" << logger::format("%x", (session* )se);
return se;