On Nov 24, 2009, at 4:26 PM, Olivier Parisy wrote: > Is this the "twisted" way to analyse this? Or should I use some kind of > "proxy" DatagramProtocol which would relay datagramReceived calls to the > proper DatagramProtocol, depending on the current protocol state > (handshaking or data exchange)?
Currently, the right way to do this is to do as you suggest, and have two DatagramProtocol instances, and a third which switches between them. Now, it just so happens that there is an accidental feature of udp.Port, whereby you can do self.udpPort.protocol = someOtherProtocol, and it will work. However, this feature is not supported and may break in a future version of Twisted. In the future, however, it would be reasonable and useful to have an explicit "switch protocol" method, which would tear down one protocol/transport relationship and set up another. If you would like to open a ticket and contribute a patch to do this, that would be great :). _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python