Differences From Artifact [cfbc33f443]:
- File src/XMPPConnection.m — part of check-in [f848b17360] at 2012-08-10 12:08:22 on branch trunk — Close the stream when restricted XML is received (user: js, size: 26674) [annotate] [blame] [check-ins using]
To Artifact [934072be7a]:
- File
src/XMPPConnection.m
— part of check-in
[a618f77f45]
at
2012-08-10 12:08:23
on branch trunk
— Add very basic Stream Management (XEP-0198) support
This implementation only counts incomming stanzas and
sends ACKs on request.
While basic this already allows servers to write
messages to offline storage that were sent to,
but never received by a client. (user: js, size: 26853) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
356 357 358 359 360 361 362 363 364 365 366 367 368 369 | return streamOpen; } - (BOOL)supportsRosterVersioning { return supportsRosterVersioning; } - (BOOL)checkCertificateAndGetReason: (OFString**)reason { X509Certificate *cert; OFDictionary *SANs; BOOL serviceSpecific = NO; | > > > > > | 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 | return streamOpen; } - (BOOL)supportsRosterVersioning { return supportsRosterVersioning; } - (BOOL)supportsStreamManagement { return supportsStreamManagement; } - (BOOL)checkCertificateAndGetReason: (OFString**)reason { X509Certificate *cert; OFDictionary *SANs; BOOL serviceSpecific = NO; |
︙ | ︙ | |||
856 857 858 859 860 861 862 863 864 865 866 867 868 869 | if (encryptionRequired && !encrypted) /* TODO: Find/create an exception to throw here */ @throw [OFException exceptionWithClass: [self class]]; if ([element elementForName: @"ver" namespace: XMPP_NS_ROSTERVER] != nil) supportsRosterVersioning = YES; if (mechs != nil) { OFEnumerator *enumerator; OFXMLElement *mech; enumerator = [[mechs children] objectEnumerator]; while ((mech = [enumerator nextObject]) != nil) | > > > > | 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 | if (encryptionRequired && !encrypted) /* TODO: Find/create an exception to throw here */ @throw [OFException exceptionWithClass: [self class]]; if ([element elementForName: @"ver" namespace: XMPP_NS_ROSTERVER] != nil) supportsRosterVersioning = YES; if ([element elementForName: @"sm" namespace: XMPP_NS_SM] != nil) supportsStreamManagement = YES; if (mechs != nil) { OFEnumerator *enumerator; OFXMLElement *mech; enumerator = [[mechs children] objectEnumerator]; while ((mech = [enumerator nextObject]) != nil) |
︙ | ︙ |