From 6331f5695f6492bc760320d104ded26dbf810384 Mon Sep 17 00:00:00 2001 From: Florian Zeitz Date: Thu, 8 Nov 2012 21:42:10 +0100 Subject: [PATCH] Make reconnecting possible. --- src/XMPPConnection.m | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/XMPPConnection.m b/src/XMPPConnection.m index 6367464..764afc7 100644 --- a/src/XMPPConnection.m +++ b/src/XMPPConnection.m @@ -69,7 +69,6 @@ self = [super init]; @try { - sock = [[OFTCPSocket alloc] init]; port = 5222; encrypted = NO; streamOpen = NO; @@ -257,6 +256,12 @@ XMPPSRVLookup *SRVLookup = nil; OFEnumerator *enumerator; + if (sock != nil) + @throw [OFAlreadyConnectedException + exceptionWithClass: [self class]]; + + sock = [[OFTCPSocket alloc] init]; + if (server) [sock connectToHost: [self XMPP_IDNAToASCII: server] port: port]; @@ -635,10 +640,23 @@ - (void)close { - if (streamOpen) { + if (streamOpen) [sock writeString: @""]; - streamOpen = NO; - } + + + [oldParser release]; + oldParser = nil; + [oldElementBuilder release]; + oldElementBuilder = nil; + [authModule release]; + authModule = nil; + [sock release]; + sock = nil; + [JID release]; + JID = nil; + streamOpen = needsSession = encrypted = NO; + supportsRosterVersioning = supportsStreamManagement = NO; + lastID = 0; } - (void)XMPP_handleStanza: (OFXMLElement*)element