X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FReadWritePolicy.cc;h=4b4362571658b86b153bd44ef8063bf8063e802a;hb=171b7d9c23896219fc63a6c4a75fc86dfd4bb042;hp=8d550918933f8cf7784a1b000999214449efea8f;hpb=85ab07d100a382467a42e19d741d403a7a96c951;p=senf.git diff --git a/Socket/ReadWritePolicy.cc b/Socket/ReadWritePolicy.cc index 8d55091..4b43625 100644 --- a/Socket/ReadWritePolicy.cc +++ b/Socket/ReadWritePolicy.cc @@ -91,6 +91,12 @@ prefix_ unsigned senf::WriteablePolicy::do_write(FileHandle handle, char const * case EINTR: break; case EAGAIN: + case ECONNREFUSED: + // Writing to a UDP socket seems return this error code if a corresponding ICMP + // error code has been received before (at least on linux). This is inconsistent + // since I cannot rely on getting ECONNREFUSED. I therefore ignore this error. TCP + // sockets will return this error on connect() and not on write(). Therefore we can + // unconditionally ignore this error here. rv = 0; break; default: @@ -102,7 +108,7 @@ prefix_ unsigned senf::WriteablePolicy::do_write(FileHandle handle, char const * prefix_ unsigned senf::WriteablePolicy::do_writeto(FileHandle handle, char const * buffer, unsigned size, - struct sockaddr * addr, socklen_t len) + struct sockaddr const * addr, socklen_t len) { int rv = -1; do { @@ -132,4 +138,6 @@ prefix_ unsigned senf::WriteablePolicy::do_writeto(FileHandle handle, // c-file-style: "senf" // indent-tabs-mode: nil // ispell-local-dictionary: "american" +// compile-command: "scons -u test" +// comment-column: 40 // End: