On 04:20 pm, b...@fsn.hu wrote: >Hello, > >I have a code, which opens persistent (connected, see: >http://twistedmatrix.com/documents/current/core/howto/udp.html#auto2) >UDP connections, and sends and receives data on them. > >The problem is that occasionally I receive ICMP 13 (administratively >prohibited) errors from the destinations, which triggers and exception >and closes the UDP socket. I would like to keep that open, no matter >what happens. >On FreeBSD the exception comes during writing into the socket with >transport.write, so this is an easy one.
This is probably a bug: http://twistedmatrix.com/trac/ticket/2790 So you're right that you have to handle it in your app code (and that it's easy to do so, fortunately). Hopefully someday this will no longer be true. >But on Linux it's a little bit harder, because there I get exception >not >during writing, but reading, which is handled here: >http://twistedmatrix.com/trac/browser/tags/releases/twisted-9.0.0/twisted/internet/udp.py#L113 And this looks like another bug. :) >[snip] >"/usr/lib64/python2.6/site-packages/Twisted-9.0.0_r27775-py2.6-linux- >x86_64.egg/twisted/internet/udp.py", >line 109, in doRead > data, addr = self.socket.recvfrom(self.maxPacketSize) > socket.error: [Errno 113] No route to host > >I wonder what is the preferred way of achieving that the socket will be >write()-able and kept open regardless what ICMP or other sending or >receiving error occurs? It seems like udp.py should be handling EHOSTUNREACH (and probably several more errors that it also misses currently). There's already a `connectionRefused` callback which could be invoked to handle these cases. This seems pretty related to another open ticket: http://twistedmatrix.com/trac/ticket/3396 Aside from monkey-patching the doRead method, I don't see a way for an application to handle this one. Development has started on fixing each of these issues. The latter seems to even have been reviewed and is now waiting for someone to address the review feedback. Jean-Paul _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python