This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author martin.panter
Recipients docs@python, giampaolo.rodola, jimd, martin.panter, terry.reedy
Date 2016-02-10.02:53:49
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1455072831.02.0.964279741191.issue5824@psf.upfronthosting.co.za>
In-reply-to
Content
It is not that wfile.getvalue() returns None, it is that self.client_address is None. If the client explicitly binds to a name, then the server gets that name in the client_address, and then everything seems to work properly for me on Linux.

On Linux, using strace and an unbound anonymous client, I see that recvfrom() outputs a zero-length sending address structure, which Python’s makesockaddr() function converts to None with the comment /* No address -- may be recvfrom() from known socket */. The man page <http://man7.org/linux/man-pages/man7/unix.7.html> actually says the address length should be sizeof(sa_family_t) in this case, so maybe that is a minor bug for Linux or the man page.

How does this work on non-Linux platforms? I’m not really familiar with Unix domain sockets, especially datagram ones, but it seems to me that the main confusion is whether DatagramRequestHandler supports anonymous Unix domain clients or not.

As in Issue 1767511, I think DatagramRequestHandler is designed to always send a response back to the sender of the request. If you don’t want to send a response, why are you using this class?
History
Date User Action Args
2016-02-10 02:53:51martin.pantersetrecipients: + martin.panter, terry.reedy, giampaolo.rodola, jimd, docs@python
2016-02-10 02:53:51martin.pantersetmessageid: <1455072831.02.0.964279741191.issue5824@psf.upfronthosting.co.za>
2016-02-10 02:53:51martin.panterlinkissue5824 messages
2016-02-10 02:53:49martin.pantercreate