Hey guys, Question for you. In the 2.0 Twisted release the policies.ProtocolWrapper changed on line 31 to now set the wrappedProtocol.factory to point to the wrappingFactory.
def __init__(self, factory, wrappedProtocol): self.wrappedProtocol = wrappedProtocol < self.factory = factory
self.factory = wrappedProtocol.factory = factory
I was wondering what the reason for the change was? The change caused our current code to break (an easy fix). It seems to me that the wrapper should be transparent to the wrappedProtocol. Changing the protocol's factory leads to unexpected behavior if that protocol is depending on specific methods or data in the factory. In fact this change actually breaks the Twisted smtp.py code.
def getMailFrom(self): if not self.done: self.done = 1 / return str(self.factory.fromEmail) #this will now break if wrapped/ else: return None
Brian Kirsch - Email Framework Engineer Open Source Applications Foundation 543 Howard St. 5th Floor San Francisco, CA 94105 (415) 946-3056 http://www.osafoundation.org