I'm testing out an application I wrote in 1.3. In 2.0.1 I get a warning and an exception. The UserWarning about SSL I looked up on the list and I understand why it's there, although I think it's a bad idea. The warning is about a bug in pyopenssl that hasn't been fixed in pyopenssl. In addition there is no reason to think it will ever be fixed after being ignored for this long. Maybe someone could find a better solution for this warning other then leaving it to end user to find the patch on the mailing list, which for all I know might not even work at this point. Maybe put up a patched copy of pyopenssl on twistedmatrix.com? Seems better than having an unmaintained dependancy in twisted. The exception I really have no clue about, maybe someone could point out where the problem is? Code: ---------------------------------------- #!/usr/local/bin/python from OpenSSL import SSL import sys import time from twisted.internet.protocol import ClientFactory from twisted.protocols.basic import LineReceiver from twisted.internet import ssl, reactor from curses.ascii import STX,ETX,FS STX = chr(STX) ETX = chr(ETX) FS = chr(FS) class EchoClient(LineReceiver): end="GoodBye" def connectionMade(self): transaction = self.factory.trans self.sendLine("%s" % transaction) def connectionLost(self, reason): #print 'connection lost (protocol)' reactor.stop() def lineReceived(self, line): print "receive:", line self.transport.loseConnection() class EchoClientFactory(ClientFactory): protocol = EchoClient def clientConnectionFailed(self, connector, reason): print 'connection failed:', reason.getErrorMessage() reactor.stop() def clientConnectionLost(self, connector, reason): #print 'connection lost:', reason.getErrorMessage() reactor.stop() def SetTransaction(self,id,a,b,c,d,e,f,g,h,i,j,k,l): self.trans = STX + id + FS + a + FS + b + FS + c + FS + d + FS + e + FS + f + FS + g + FS + h + FS + i + FS + j + FS + k + FS + l + ETX def GetTransaction(self): return self.trans def main(): factory = EchoClientFactory() factory.SetTransaction('id1','vital','VERIFY','poi2','4111111111111111','05','12','100','123 abc street','98034','','','id1') reactor.connectSSL('localhost', 8000, factory, ssl.ClientContextFactory()) reactor.run() if __name__ == '__main__': main() ----------------------------------------------------------- Output: ------------------------------------------------- receive: id1:APPROVED::TRANSACTION PRESENT:::0000123456789 /usr/local/lib/python2.4/site-packages/twisted/internet/tcp.py:216: UserWarning: SSL connection shutdown possibly unreliable, please upgrade to ver 0.XX "please upgrade to ver 0.XX", category=UserWarning) Traceback (most recent call last): File "./error", line 55, in ? main() File "./error", line 51, in main reactor.run() File "/usr/local/lib/python2.4/site-packages/twisted/internet/posixbase.py", line 199, in run self.mainLoop() File "/usr/local/lib/python2.4/site-packages/twisted/internet/posixbase.py", line 207, in mainLoop self.runUntilCurrent() --- <exception caught here> --- File "/usr/local/lib/python2.4/site-packages/twisted/internet/base.py", line 533, in runUntilCurrent call.func(*call.args, **call.kw) File "/usr/local/lib/python2.4/site-packages/twisted/internet/base.py", line 389, in _continueSystemEvent for callList in sysEvtTriggers[1], sysEvtTriggers[2]: exceptions.TypeError: unsubscriptable object