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 christian.heimes
Recipients YoSTEALTH, christian.heimes, martin.panter, pitrou, r.david.murray, vstinner, yselivanov
Date 2018-02-24.01:31:11
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1519435872.16.0.467229070634.issue28134@psf.upfronthosting.co.za>
In-reply-to
Content
The problem is fixed and your example behaves as expected.

The laddr string is the result of inside.getsockname() and raddr string is the result of inside.getpeername(). In your example, inside and client share the same file descriptor. When the function exits client goes out of scope, the reference count of client drops to 0, the object gets deallocated and Python closes the shared file descriptor. In outside, the shared fd is gone and outside.getsockname() and outside.getpeername() fail. Basically the outside socket is dead because its fd has been closed.

You have to duplicate the fd or detach the socket to keep the fd open.
History
Date User Action Args
2018-02-24 01:31:12christian.heimessetrecipients: + christian.heimes, pitrou, vstinner, r.david.murray, martin.panter, yselivanov, YoSTEALTH
2018-02-24 01:31:12christian.heimessetmessageid: <1519435872.16.0.467229070634.issue28134@psf.upfronthosting.co.za>
2018-02-24 01:31:12christian.heimeslinkissue28134 messages
2018-02-24 01:31:11christian.heimescreate