Ticket #3217 defect closed fixed
twisted.names.dns: DNSDatagramProtocol doesn't release unused UDP-ports
| Reported by: | pittipatti | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | names | Keywords: | names |
| Cc: | Branch: | ||
| Author: | Launchpad Bug: |
Description
In class "DNSDatagramProtocol" the function "startListening" attaches a UDP-port to the reactor, but leaves it attached even when the protocol is closed.
In my application I have to create new resolvers for querying many different nameservers.
Please have a look at the attachments with sample code which results
- in many listening UDP-ports ( please see in another console: netstat -anpu | grep python )
- in a (rather strange) exception (ImportError: cannot import name SHA)
As mentioned above, DNSDatagramProtocol.startListening() executes reactor.listenUDP, but the returned port isn't saved anywere, so it can't be closed. I saved it as a instance-variable but have no clue where to call the stopListening()-function, since DNSDatagramProtocol.stopProtocol() or DNSDatagramProtocol.doStop() don't seem to be called at all.
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

