Add autorelease pools.
This commit is contained in:
parent
56ddb5c8de
commit
3e97096129
1 changed files with 30 additions and 17 deletions
|
@ -50,11 +50,12 @@
|
||||||
|
|
||||||
@interface XMPPConnection ()
|
@interface XMPPConnection ()
|
||||||
- (void)XMPP_startStream;
|
- (void)XMPP_startStream;
|
||||||
|
- (void)XMPP_handleStanza: (OFXMLElement*)elem;
|
||||||
- (void)XMPP_sendAuth: (OFString*)name;
|
- (void)XMPP_sendAuth: (OFString*)name;
|
||||||
- (void)XMPP_handleFeatures: (OFXMLElement*)elem;
|
|
||||||
- (void)XMPP_handleIQ: (XMPPIQ*)iq;
|
- (void)XMPP_handleIQ: (XMPPIQ*)iq;
|
||||||
- (void)XMPP_handleMessage: (XMPPMessage*)msg;
|
- (void)XMPP_handleMessage: (XMPPMessage*)msg;
|
||||||
- (void)XMPP_handlePresence: (XMPPPresence*)pres;
|
- (void)XMPP_handlePresence: (XMPPPresence*)pres;
|
||||||
|
- (void)XMPP_handleFeatures: (OFXMLElement*)elem;
|
||||||
- (void)XMPP_sendResourceBind;
|
- (void)XMPP_sendResourceBind;
|
||||||
- (void)XMPP_handleResourceBind: (XMPPIQ*)iq;
|
- (void)XMPP_handleResourceBind: (XMPPIQ*)iq;
|
||||||
- (void)XMPP_sendSession;
|
- (void)XMPP_sendSession;
|
||||||
|
@ -264,6 +265,8 @@
|
||||||
namespace: (OFString*)ns
|
namespace: (OFString*)ns
|
||||||
attributes: (OFArray*)attrs
|
attributes: (OFArray*)attrs
|
||||||
{
|
{
|
||||||
|
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
|
||||||
|
|
||||||
if (![name isEqual: @"stream"] || ![prefix isEqual: @"stream"] ||
|
if (![name isEqual: @"stream"] || ![prefix isEqual: @"stream"] ||
|
||||||
![ns isEqual: NS_STREAM]) {
|
![ns isEqual: NS_STREAM]) {
|
||||||
of_log(@"Did not get expected stream start!");
|
of_log(@"Did not get expected stream start!");
|
||||||
|
@ -279,17 +282,36 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
parser.delegate = elementBuilder;
|
parser.delegate = elementBuilder;
|
||||||
|
|
||||||
|
[pool release];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)elementBuilder: (OFXMLElementBuilder*)b
|
- (void)elementBuilder: (OFXMLElementBuilder*)b
|
||||||
didBuildElement: (OFXMLElement*)elem
|
didBuildElement: (OFXMLElement*)elem
|
||||||
{
|
{
|
||||||
|
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
|
||||||
|
|
||||||
elem.defaultNamespace = NS_CLIENT;
|
elem.defaultNamespace = NS_CLIENT;
|
||||||
[elem setPrefix: @"stream"
|
[elem setPrefix: @"stream"
|
||||||
forNamespace: NS_STREAM];
|
forNamespace: NS_STREAM];
|
||||||
|
|
||||||
of_log(@"In: %@", elem);
|
of_log(@"In: %@", elem);
|
||||||
|
|
||||||
|
[self XMPP_handleStanza: elem];
|
||||||
|
|
||||||
|
[pool release];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)XMPP_startStream
|
||||||
|
{
|
||||||
|
[sock writeFormat: @"<?xml version='1.0'?>\n"
|
||||||
|
@"<stream:stream to='%@' xmlns='" NS_CLIENT @"' "
|
||||||
|
@"xmlns:stream='" NS_STREAM @"' "
|
||||||
|
@"version='1.0'>", server];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)XMPP_handleStanza: (OFXMLElement*)elem
|
||||||
|
{
|
||||||
if ([elem.namespace isEqual: NS_CLIENT]) {
|
if ([elem.namespace isEqual: NS_CLIENT]) {
|
||||||
if ([elem.name isEqual: @"iq"]) {
|
if ([elem.name isEqual: @"iq"]) {
|
||||||
[self XMPP_handleIQ: [XMPPIQ stanzaWithElement: elem]];
|
[self XMPP_handleIQ: [XMPPIQ stanzaWithElement: elem]];
|
||||||
|
@ -343,16 +365,15 @@
|
||||||
OFXMLElement *responseTag;
|
OFXMLElement *responseTag;
|
||||||
OFDataArray *challenge =
|
OFDataArray *challenge =
|
||||||
[OFDataArray dataArrayWithBase64EncodedString:
|
[OFDataArray dataArrayWithBase64EncodedString:
|
||||||
[elem.children.firstObject stringValue]];
|
[elem.children.firstObject stringValue]];
|
||||||
OFDataArray *response =
|
OFDataArray *response = [authModule
|
||||||
[authModule
|
calculateResponseWithChallenge: challenge];
|
||||||
calculateResponseWithChallenge: challenge];
|
|
||||||
|
|
||||||
responseTag = [OFXMLElement elementWithName: @"response"
|
responseTag = [OFXMLElement elementWithName: @"response"
|
||||||
namespace: NS_SASL];
|
namespace: NS_SASL];
|
||||||
[responseTag
|
[responseTag addChild:
|
||||||
addChild: [OFXMLElement elementWithCharacters:
|
[OFXMLElement elementWithCharacters:
|
||||||
[response stringByBase64Encoding]]];
|
[response stringByBase64Encoding]]];
|
||||||
|
|
||||||
[self sendStanza: responseTag];
|
[self sendStanza: responseTag];
|
||||||
return;
|
return;
|
||||||
|
@ -379,7 +400,7 @@
|
||||||
@throw [XMPPAuthFailedException
|
@throw [XMPPAuthFailedException
|
||||||
newWithClass: isa
|
newWithClass: isa
|
||||||
connection: self
|
connection: self
|
||||||
reason: [elem stringValue]];
|
reason: elem.stringValue];
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(0);
|
assert(0);
|
||||||
|
@ -388,14 +409,6 @@
|
||||||
assert(0);
|
assert(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)XMPP_startStream
|
|
||||||
{
|
|
||||||
[sock writeFormat: @"<?xml version='1.0'?>\n"
|
|
||||||
@"<stream:stream to='%@' xmlns='" NS_CLIENT @"' "
|
|
||||||
@"xmlns:stream='" NS_STREAM @"' "
|
|
||||||
@"version='1.0'>", server];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)XMPP_handleIQ: (XMPPIQ*)iq
|
- (void)XMPP_handleIQ: (XMPPIQ*)iq
|
||||||
{
|
{
|
||||||
BOOL handled = NO;
|
BOOL handled = NO;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue