Comment: | Adjust to ObjFW changes |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
36e00ffb71bdd1613cf42d25919a4f50 |
User & Date: | js on 2016-07-09 22:39:19 |
Other Links: | manifest | tags |
2017-01-21
| ||
23:49 | Adjust to ObjFW changes check-in: 1ed4d99db8 user: js tags: trunk | |
2016-07-09
| ||
22:39 | Adjust to ObjFW changes check-in: 36e00ffb71 user: js tags: trunk | |
21:34 | Move m4 to build-aux check-in: 82071daa3c user: js tags: trunk | |
Modified src/XMPPAuthenticator.h from [17c15c7939] to [c96f22a65a].
1 2 3 | /* * Copyright (c) 2011, Florian Zeitz <florob@babelmonkeys.de> * | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
26 27 28 29 30 31 32 | * \brief A base class for classes implementing authentication mechanisms */ @interface XMPPAuthenticator: OFObject { OFString *_authzid, *_authcid, *_password; } | < < | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | * \brief A base class for classes implementing authentication mechanisms */ @interface XMPPAuthenticator: OFObject { OFString *_authzid, *_authcid, *_password; } /// \brief The authzid to get authorization for @property (copy) OFString *authzid; /// \brief The authcid to authenticate with @property (copy) OFString *authcid; /// \brief The password to authenticate with @property (copy) OFString *password; /** * \brief Initializes an already allocated XMPPAuthenticator with an authcid * and password. * * \param authcid The authcid to authenticate with * \param password The password to authenticate with |
︙ | ︙ | |||
73 74 75 76 77 78 79 | /** * \brief Continue authentication with the specified data. * * \param data The continuation data send by the server * \return The appropriate response if the data was a challenge, nil otherwise */ - (OFDataArray*)continueWithData: (OFDataArray*)data; | < < < < < < < | 72 73 74 75 76 77 78 79 | /** * \brief Continue authentication with the specified data. * * \param data The continuation data send by the server * \return The appropriate response if the data was a challenge, nil otherwise */ - (OFDataArray*)continueWithData: (OFDataArray*)data; @end |
Modified src/XMPPAuthenticator.m from [5bc209efe7] to [6f8a8e6b01].
1 2 3 | /* * Copyright (c) 2011, Florian Zeitz <florob@babelmonkeys.de> * | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #ifdef HAVE_CONFIG_H # include "config.h" #endif #import "XMPPAuthenticator.h" @implementation XMPPAuthenticator - initWithAuthcid: (OFString*)authcid password: (OFString*)password { return [self initWithAuthzid: nil authcid: authcid password: password]; } | > > | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #ifdef HAVE_CONFIG_H # include "config.h" #endif #import "XMPPAuthenticator.h" @implementation XMPPAuthenticator @synthesize authzid = _authzid, authcid = _authcid, password = _password; - initWithAuthcid: (OFString*)authcid password: (OFString*)password { return [self initWithAuthzid: nil authcid: authcid password: password]; } |
︙ | ︙ | |||
58 59 60 61 62 63 64 | [_authzid release]; [_authcid release]; [_password release]; [super dealloc]; } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | [_authzid release]; [_authcid release]; [_password release]; [super dealloc]; } - (OFDataArray*)initialMessage { return nil; } - (OFDataArray*)continueWithData: (OFDataArray*)challenge { return nil; } @end |
Modified src/XMPPConnection.h from [bbf937bb03] to [27474cb4d8].
1 | /* | | > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | /* * Copyright (c) 2010, 2011, 2012, 2013, 2016 * Jonathan Schleifer <js@heap.zone> * Copyright (c) 2011, 2012, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
39 40 41 42 43 44 45 | * \brief A protocol that should be (partially) implemented * by delegates of a XMPPConnection */ @protocol XMPPConnectionDelegate #ifndef XMPP_CONNECTION_M <OFObject> #endif | < < < | 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | * \brief A protocol that should be (partially) implemented * by delegates of a XMPPConnection */ @protocol XMPPConnectionDelegate #ifndef XMPP_CONNECTION_M <OFObject> #endif @optional /** * \brief This callback is called when the connection received an element. * * \param connection The connection that received the element * \param element The element that was received */ - (void)connection: (XMPPConnection*)connection |
︙ | ︙ | |||
143 144 145 146 147 148 149 | */ - (void)connectionDidUpgradeToTLS: (XMPPConnection*)connection; @end /** * \brief A class which abstracts a connection to an XMPP service. */ | | < | < | 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | */ - (void)connectionDidUpgradeToTLS: (XMPPConnection*)connection; @end /** * \brief A class which abstracts a connection to an XMPP service. */ @interface XMPPConnection: OFObject <OFXMLParserDelegate, OFXMLElementBuilderDelegate> { id _socket; OFXMLParser *_parser, *_oldParser; OFXMLElementBuilder *_elementBuilder, *_oldElementBuilder; OFString *_username, *_password, *_server, *_resource; OFString *_privateKeyFile, *_certificateFile; const char *_privateKeyPassphrase; |
︙ | ︙ | |||
170 171 172 173 174 175 176 | bool _needsSession; bool _encryptionRequired, _encrypted; bool _supportsRosterVersioning; bool _supportsStreamManagement; unsigned int _lastID; } | < | 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | bool _needsSession; bool _encryptionRequired, _encrypted; bool _supportsRosterVersioning; bool _supportsStreamManagement; unsigned int _lastID; } /// \brief The username to use for authentication @property (copy) OFString *username; /// \brief The password to use for authentication @property (copy) OFString *password; /** * \brief The server to use for the connection * |
︙ | ︙ | |||
207 208 209 210 211 212 213 | @property bool encryptionRequired; /// \brief Whether the connection is encrypted @property (readonly) bool encrypted; /// \brief Whether roster versioning is supported @property (readonly) bool supportsRosterVersioning; /// \brief Whether stream management is supported @property (readonly) bool supportsStreamManagement; | < | 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | @property bool encryptionRequired; /// \brief Whether the connection is encrypted @property (readonly) bool encrypted; /// \brief Whether roster versioning is supported @property (readonly) bool supportsRosterVersioning; /// \brief Whether stream management is supported @property (readonly) bool supportsStreamManagement; /** * \brief Creates a new autoreleased XMPPConnection. * * \return A new autoreleased XMPPConnection */ + (instancetype)connection; |
︙ | ︙ |
Modified src/XMPPConnection.m from [cd38c39db4] to [52b20891be].
1 | /* | | > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | /* * Copyright (c) 2010, 2011, 2012, 2013, 2015, 2016 * Jonathan Schleifer <js@heap.zone> * Copyright (c) 2011, 2012, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
113 114 115 116 117 118 119 120 121 122 123 124 125 126 | [pool release]; return nil; } @end @implementation XMPPConnection + (instancetype)connection { return [[[self alloc] init] autorelease]; } - init { | > > > > > > | 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | [pool release]; return nil; } @end @implementation XMPPConnection @synthesize language = _language, privateKeyFile = _privateKeyFile; @synthesize certificateFile = _certificateFile, socket = _socket; @synthesize encryptionRequired = _encryptionRequired, encrypted = _encrypted; @synthesize supportsRosterVersioning = _supportsRosterVersioning; @synthesize supportsStreamManagement = _supportsStreamManagement; + (instancetype)connection { return [[[self alloc] init] autorelease]; } - init { |
︙ | ︙ | |||
301 302 303 304 305 306 307 | } - (OFString*)password { return [[_password copy] autorelease]; } | < < < < < < < < < < < < < < < < < < < < | 308 309 310 311 312 313 314 315 316 317 318 319 320 321 | } - (OFString*)password { return [[_password copy] autorelease]; } - (void)connect { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; XMPPSRVEntry *candidate = nil; XMPPSRVLookup *SRVLookup = nil; OFEnumerator *enumerator; |
︙ | ︙ | |||
473 474 475 476 477 478 479 | return false; } return true; } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 | return false; } return true; } - (bool)streamOpen { return _streamOpen; } - (bool)checkCertificateAndGetReason: (OFString**)reason { X509Certificate *cert; OFDictionary *SANs; bool serviceSpecific = false; @try { |
︙ | ︙ | |||
1251 1252 1253 1254 1255 1256 1257 | } @finally { free(cDomain); } return ret; } | < < < < < < < < < < < < < < < < < < < < < < < < < | 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 | } @finally { free(cDomain); } return ret; } - (void)setDataStorage: (id <XMPPStorage>)dataStorage { if (_streamOpen) /* FIXME: Find a better exception! */ @throw [OFInvalidArgumentException exception]; _dataStorage = dataStorage; } - (id <XMPPStorage>)dataStorage { return _dataStorage; } - (void)addDelegate: (id <XMPPConnectionDelegate>)delegate { [_delegates addDelegate: delegate]; } - (void)removeDelegate: (id <XMPPConnectionDelegate>)delegate { |
︙ | ︙ |
Modified src/XMPPContact.h from [c06c9b325a] to [7a12748cc4].
1 2 3 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2013, 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
34 35 36 37 38 39 40 | @interface XMPPContact: OFObject { XMPPRosterItem *_rosterItem; OFMutableDictionary *_presences; XMPPJID *_lockedOnJID; } | < < | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | @interface XMPPContact: OFObject { XMPPRosterItem *_rosterItem; OFMutableDictionary *_presences; XMPPJID *_lockedOnJID; } /// \brief The XMPPRosterItem corresponding to this contact @property (readonly) XMPPRosterItem *rosterItem; /// \brief The XMPPPresences of this contact with the resources as keys @property (readonly) OFDictionary *presences; /** * \brief Sends a message to the contact honoring resource locking * * \param message The message to send * \param connection The connection to use for sending the message */ |
︙ | ︙ |
Modified src/XMPPContact.m from [7146d5897e] to [2af3d0c968].
1 2 3 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2013, 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
21 22 23 24 25 26 27 28 29 30 31 32 33 34 | */ #import "XMPPContact.h" #import "XMPPMessage.h" #import "XMPPConnection.h" @implementation XMPPContact - init { self = [super init]; @try { _presences = [[OFMutableDictionary alloc] init]; } @catch (id e) { | > > > | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | */ #import "XMPPContact.h" #import "XMPPMessage.h" #import "XMPPConnection.h" @implementation XMPPContact @synthesize rosterItem = _rosterItem; @synthesize presences = _presences; - init { self = [super init]; @try { _presences = [[OFMutableDictionary alloc] init]; } @catch (id e) { |
︙ | ︙ | |||
42 43 44 45 46 47 48 | - (void)dealloc { [_presences release]; [super dealloc]; } | < < < < < < < < < < | > > | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | - (void)dealloc { [_presences release]; [super dealloc]; } - (void)sendMessage: (XMPPMessage*)message connection: (XMPPConnection*)connection { if (_lockedOnJID == nil) [message setTo: [_rosterItem JID]]; else [message setTo: _lockedOnJID]; [connection sendStanza: message]; } - (void)XMPP_setRosterItem: (XMPPRosterItem*)rosterItem { XMPPRosterItem *old = _rosterItem; _rosterItem = [rosterItem retain]; [old release]; } - (void)XMPP_setPresence: (XMPPPresence*)presence resource: (OFString*)resource { if (resource != nil) [_presences setObject: presence |
︙ | ︙ | |||
95 96 97 98 99 100 101 | } [self XMPP_setLockedOnJID: nil]; } - (void)XMPP_setLockedOnJID: (XMPPJID*)JID; { | | > > | 91 92 93 94 95 96 97 98 99 100 101 102 | } [self XMPP_setLockedOnJID: nil]; } - (void)XMPP_setLockedOnJID: (XMPPJID*)JID; { XMPPJID *old = _lockedOnJID; _lockedOnJID = [JID retain]; [old release]; } @end |
Modified src/XMPPContactManager.h from [6573f2496e] to [18be2e3f7f].
1 2 3 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2013, 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
31 32 33 34 35 36 37 | @class XMPPPresence; /** * \brief A protocol that should be (partially) implemented by delegates * of a XMPPContactManager */ @protocol XMPPContactManagerDelegate <OFObject> | < < | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | @class XMPPPresence; /** * \brief A protocol that should be (partially) implemented by delegates * of a XMPPContactManager */ @protocol XMPPContactManagerDelegate <OFObject> @optional /** * \brief This callback is called whenever a new contact enters the users roster * * \param manager The contact manager that added the contact * \param contact The contact that was added */ - (void)contactManager: (XMPPContactManager*)manager |
︙ | ︙ | |||
97 98 99 100 101 102 103 | /** * \brief A class tracking a XMPPContact instance for each contact in the roster * * This class delegates to a XMPPConnection and a XMPPRoster, thereby tracking * each contacts presences and the current XMPPRosterItem. */ | | < | < < < | 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | /** * \brief A class tracking a XMPPContact instance for each contact in the roster * * This class delegates to a XMPPConnection and a XMPPRoster, thereby tracking * each contacts presences and the current XMPPRosterItem. */ @interface XMPPContactManager: OFObject <XMPPConnectionDelegate, XMPPRosterDelegate> { OFMutableDictionary *_contacts; XMPPConnection *_connection; XMPPRoster *_roster; XMPPMulticastDelegate *_delegates; } /// \brief The tracked contacts, with their bare JID as key @property (readonly) OFDictionary *contacts; /*! * @brief Initializes an already allocated XMPPContactManager. * * @param connection The connection to be used to track contacts * @param roster The roster used by the contact manager * @return An initialized XMPPContactManager |
︙ | ︙ |
Modified src/XMPPContactManager.m from [ca133d05bd] to [cc3e305fdb].
1 2 3 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2013, 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #import "XMPPContactManager.h" #import "XMPPJID.h" #import "XMPPMulticastDelegate.h" #import "XMPPPresence.h" #import "XMPPRosterItem.h" @implementation XMPPContactManager - initWithConnection: (XMPPConnection*)connection roster: (XMPPRoster*)roster { self = [super init]; @try { _connection = connection; | > > | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #import "XMPPContactManager.h" #import "XMPPJID.h" #import "XMPPMulticastDelegate.h" #import "XMPPPresence.h" #import "XMPPRosterItem.h" @implementation XMPPContactManager @synthesize contacts = _contacts; - initWithConnection: (XMPPConnection*)connection roster: (XMPPRoster*)roster { self = [super init]; @try { _connection = connection; |
︙ | ︙ | |||
80 81 82 83 84 85 86 | } - (void)removeDelegate: (id <XMPPContactManagerDelegate>)delegate { [_delegates removeDelegate: delegate]; } | < < < < < | 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | } - (void)removeDelegate: (id <XMPPContactManagerDelegate>)delegate { [_delegates removeDelegate: delegate]; } - (void)rosterWasReceived: (XMPPRoster*)roster { OFEnumerator *contactEnumerator; XMPPContact *contact; OFDictionary *rosterItems; OFEnumerator *rosterItemEnumerator; OFString *bareJID; |
︙ | ︙ |
Modified src/XMPPDiscoEntity.h from [9a1090f9dd] to [a04ce71488].
1 2 3 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2013, 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
34 35 36 37 38 39 40 | @interface XMPPDiscoEntity: XMPPDiscoNode <XMPPConnectionDelegate> { OFMutableDictionary *_discoNodes; XMPPConnection *_connection; OFString *_capsNode; } | < > > | > < | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | @interface XMPPDiscoEntity: XMPPDiscoNode <XMPPConnectionDelegate> { OFMutableDictionary *_discoNodes; XMPPConnection *_connection; OFString *_capsNode; } /** * \brief The XMPPDiscoNodes this entity provides Services Discovery * responses for * * This usually contains at least all immediate child nodes, but may contain * any number of nodes nested more deeply. */ @property (readonly) OFDictionary *discoNodes; /** * The node advertised for the entity's capabilites. */ @property (readonly) OFString *capsNode; /** * \brief Creates a new autoreleased XMPPDiscoEntity with the specified * connection. * * \param connection The XMPPConnection to serve responses on. * \return A new autoreleased XMPPDiscoEntity |
︙ | ︙ | |||
102 103 104 105 106 107 108 | /** * \brief Calculates the Entity Capabilities Hash of the entity * * \return A OFString containing the capabilities hash */ - (OFString*)capsHash; | < < < | 104 105 106 107 108 109 110 111 | /** * \brief Calculates the Entity Capabilities Hash of the entity * * \return A OFString containing the capabilities hash */ - (OFString*)capsHash; @end |
Modified src/XMPPDiscoEntity.m from [6081227565] to [498b317e51].
1 2 3 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2013, 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #import "XMPPDiscoEntity.h" #import "XMPPDiscoIdentity.h" #import "XMPPIQ.h" #import "namespaces.h" @implementation XMPPDiscoEntity + (instancetype)discoEntityWithConnection: (XMPPConnection*)connection { return [[[self alloc] initWithConnection: connection] autorelease]; } + (instancetype)discoEntityWithConnection: (XMPPConnection*)connection capsNode: (OFString*)capsNode | > > | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #import "XMPPDiscoEntity.h" #import "XMPPDiscoIdentity.h" #import "XMPPIQ.h" #import "namespaces.h" @implementation XMPPDiscoEntity @synthesize discoNodes = _discoNodes, capsNode = _capsNode; + (instancetype)discoEntityWithConnection: (XMPPConnection*)connection { return [[[self alloc] initWithConnection: connection] autorelease]; } + (instancetype)discoEntityWithConnection: (XMPPConnection*)connection capsNode: (OFString*)capsNode |
︙ | ︙ | |||
68 69 70 71 72 73 74 | { [_connection removeDelegate: self]; [_discoNodes release]; [super dealloc]; } | < < < < < < < < < < | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | { [_connection removeDelegate: self]; [_discoNodes release]; [super dealloc]; } - (void)addDiscoNode: (XMPPDiscoNode*)node { [_discoNodes setObject: node forKey: [node node]]; } - (OFString*)capsHash { OFEnumerator *enumerator; XMPPDiscoIdentity *identity; OFString *feature; OFMutableString *caps = [OFMutableString string]; OFSHA1Hash *hash = [OFSHA1Hash hash]; |
︙ | ︙ |
Modified src/XMPPDiscoIdentity.h from [a255ebd64e] to [7348cd9341].
1 2 3 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2013, 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
25 26 27 28 29 30 31 | /** * \brief A class describing a Service Discovery Identity */ @interface XMPPDiscoIdentity: OFObject <OFComparing> { OFString *_category, *_name, *_type; } | | < | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | /** * \brief A class describing a Service Discovery Identity */ @interface XMPPDiscoIdentity: OFObject <OFComparing> { OFString *_category, *_name, *_type; } /// \brief The category of the identity @property (readonly) OFString *category; /// \brief The name of the identity, might be unset @property (readonly) OFString *name; /// \brief The type of the identity @property (readonly) OFString *type; /** * \brief Creates a new autoreleased XMPPDiscoIdentity with the specified * category, type and name. * * \param category The category of the identity * \param type The type of the identity |
︙ | ︙ | |||
81 82 83 84 85 86 87 | * * \param category The category of the identity * \param type The type of the identity * \return An initialized XMPPDiscoIdentity */ - initWithCategory: (OFString*)category type: (OFString*)type; | < < < < | 81 82 83 84 85 86 87 88 | * * \param category The category of the identity * \param type The type of the identity * \return An initialized XMPPDiscoIdentity */ - initWithCategory: (OFString*)category type: (OFString*)type; @end |
Modified src/XMPPDiscoIdentity.m from [6d865bd091] to [a8b2dc07c4].
1 2 3 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2013, 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
19 20 21 22 23 24 25 26 27 28 29 30 31 32 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #import "XMPPDiscoIdentity.h" @implementation XMPPDiscoIdentity + (instancetype)identityWithCategory: (OFString*)category type: (OFString*)type name: (OFString*)name { return [[[self alloc] initWithCategory: category type: type name: name] autorelease]; | > > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #import "XMPPDiscoIdentity.h" @implementation XMPPDiscoIdentity @synthesize category = _category, name = _name, type = _type; + (instancetype)identityWithCategory: (OFString*)category type: (OFString*)type name: (OFString*)name { return [[[self alloc] initWithCategory: category type: type name: name] autorelease]; |
︙ | ︙ | |||
85 86 87 88 89 90 91 | [_category release]; [_name release]; [_type release]; [super dealloc]; } | < < < < < < < < < < < < < < < | 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | [_category release]; [_name release]; [_type release]; [super dealloc]; } - (bool)isEqual: (id)object { XMPPDiscoIdentity *identity; if (object == self) return true; |
︙ | ︙ |
Modified src/XMPPDiscoNode.h from [fef10c1504] to [ddb792233d].
1 2 3 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2013, 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
34 35 36 37 38 39 40 | OFString *_node; OFString *_name; OFSortedList *_identities; OFSortedList *_features; OFMutableDictionary *_childNodes; } | < < | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | OFString *_node; OFString *_name; OFSortedList *_identities; OFSortedList *_features; OFMutableDictionary *_childNodes; } /// \brief The JID this node lives on @property (readonly) XMPPJID *JID; /// \brief The node's opaque name of the node @property (readonly) OFString *node; /// \brief The node's human friendly name (may be unspecified) @property (readonly) OFString *name; /// \brief The node's list of identities @property (readonly) OFSortedList *identities; /// \brief The node's list of features @property (readonly) OFSortedList *features; /// \brief The node's children @property (readonly) OFDictionary *childNodes; /** * \brief Creates a new autoreleased XMPPDiscoNode with the specified * JID and node * * \param JID The JID this node lives on * \param node The node's opaque name |
︙ | ︙ | |||
118 119 120 121 122 123 124 | /** * \brief Adds a XMPPDiscoNode as child of the node * * \param node The XMPPDiscoNode to add as child */ - (void)addChildNode: (XMPPDiscoNode*)node; | < < < < < < | 117 118 119 120 121 122 123 124 125 126 127 128 | /** * \brief Adds a XMPPDiscoNode as child of the node * * \param node The XMPPDiscoNode to add as child */ - (void)addChildNode: (XMPPDiscoNode*)node; - (bool)XMPP_handleItemsIQ: (XMPPIQ*)IQ connection: (XMPPConnection*)connection; - (bool)XMPP_handleInfoIQ: (XMPPIQ*)IQ connection: (XMPPConnection*)connection; @end |
Modified src/XMPPDiscoNode.m from [898738e772] to [100f191d9d].
1 2 3 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2013, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2013, 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
25 26 27 28 29 30 31 32 33 34 35 36 37 | #import "XMPPJID.h" #import "XMPPDiscoEntity.h" #import "XMPPDiscoNode.h" #import "XMPPDiscoIdentity.h" #import "namespaces.h" @implementation XMPPDiscoNode + (instancetype)discoNodeWithJID: (XMPPJID*)JID node: (OFString*)node; { return [[[self alloc] initWithJID: JID node: node] autorelease]; } | > > > > < | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #import "XMPPJID.h" #import "XMPPDiscoEntity.h" #import "XMPPDiscoNode.h" #import "XMPPDiscoIdentity.h" #import "namespaces.h" @implementation XMPPDiscoNode @synthesize JID = _JID, node = _node, name = _name, identities = _identities; @synthesize features = _features, childNodes = _childNodes; + (instancetype)discoNodeWithJID: (XMPPJID*)JID node: (OFString*)node; { return [[[self alloc] initWithJID: JID node: node] autorelease]; } + (instancetype)discoNodeWithJID: (XMPPJID*)JID node: (OFString*)node name: (OFString*)name { return [[[self alloc] initWithJID: JID node: node |
︙ | ︙ | |||
90 91 92 93 94 95 96 | [_identities release]; [_features release]; [_childNodes release]; [super dealloc]; } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | [_identities release]; [_features release]; [_childNodes release]; [super dealloc]; } - (void)addIdentity: (XMPPDiscoIdentity*)identity { [_identities insertObject: identity]; } - (void)addFeature: (OFString*)feature { |
︙ | ︙ |
Modified src/XMPPExceptions.h from [0c1c187111] to [609b2260ac].
1 | /* | > | | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, 2016, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2011, 2012, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
29 30 31 32 33 34 35 | * \brief A base class for XMPP related exceptions */ @interface XMPPException: OFException { XMPPConnection *_connection; } | < < < < < < | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | * \brief A base class for XMPP related exceptions */ @interface XMPPException: OFException { XMPPConnection *_connection; } /// \brief The connection the exception relates to @property (readonly, retain) XMPPConnection *connection; /** * \brief Creates a new XMPPException. * * \param connection The connection that received the data responsible * for this exception * \return A new XMPPException */ + (instancetype)exceptionWithConnection: (XMPPConnection*)connection; /** * \brief Initializes an already allocated XMPPException. * * \param connection The connection that received the data responsible * for this exception * \return An initialized XMPPException */ - initWithConnection: (XMPPConnection*)connection; @end /** * \brief An exception indicating a stream error was received */ @interface XMPPStreamErrorException: XMPPException { OFString *_condition, *_reason; } /// \brief The defined error condition specified by the stream error @property (readonly, copy) OFString *condition; /// \brief The descriptive free-form text specified by the stream error @property (readonly, copy) OFString *reason; /** * \brief Creates a new XMPPStreamErrorException. * * \param connection The connection that received the stream error * \param condition The defined error condition specified by the stream error * \param reason The descriptive free-form text specified by the stream error |
︙ | ︙ | |||
93 94 95 96 97 98 99 | * \param condition The defined error condition specified by the stream error * \param reason The descriptive free-form text specified by the stream error * \return An initialized XMPPStreamErrorException */ - initWithConnection: (XMPPConnection*)connection condition: (OFString*)condition reason: (OFString*)reason; | < < < < < | 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | * \param condition The defined error condition specified by the stream error * \param reason The descriptive free-form text specified by the stream error * \return An initialized XMPPStreamErrorException */ - initWithConnection: (XMPPConnection*)connection condition: (OFString*)condition reason: (OFString*)reason; @end /** * \brief An exception indicating a stringprep profile * did not apply to a string */ @interface XMPPStringPrepFailedException: XMPPException { OFString *_profile, *_string; } /// \brief The name of the stringprep profile that did not apply @property (readonly, copy) OFString *profile; /// \brief The string that failed the stringprep profile @property (readonly, copy) OFString *string; /** * \brief Creates a new XMPPStringPrepFailedException. * * \param connection The connection the string relates to * \param profile The name of the stringprep profile that did not apply * \param string The string that failed the stringprep profile |
︙ | ︙ | |||
137 138 139 140 141 142 143 | * \param profile The name of the stringprep profile that did not apply * \param string The string that failed the stringprep profile * \return An initialized XMPPStringPrepFailedException */ - initWithConnection: (XMPPConnection*)connection profile: (OFString*)profile string: (OFString*)string; | < < < < < | 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | * \param profile The name of the stringprep profile that did not apply * \param string The string that failed the stringprep profile * \return An initialized XMPPStringPrepFailedException */ - initWithConnection: (XMPPConnection*)connection profile: (OFString*)profile string: (OFString*)string; @end /** * \brief An exception indicating IDNA translation of a string failed */ @interface XMPPIDNATranslationFailedException: XMPPException { OFString *_operation, *_string; } /// \brief The IDNA translation operation which failed @property (readonly, copy) OFString *operation; /// \brief The string that could not be translated @property (readonly, copy) OFString *string; /** * \brief Creates a new XMPPIDNATranslationFailedException. * * \param connection The connection the string relates to * \param operation The name of the stringprep profile that did not apply * \param string The string that could not be translated |
︙ | ︙ | |||
180 181 182 183 184 185 186 | * \param operation The name of the stringprep profile that did not apply * \param string The string that could not be translated * \return An initialized XMPPIDNATranslationFailedException */ - initWithConnection: (XMPPConnection*)connection operation: (OFString*)operation string: (OFString*)string; | < < < < < < < | 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 | * \param operation The name of the stringprep profile that did not apply * \param string The string that could not be translated * \return An initialized XMPPIDNATranslationFailedException */ - initWithConnection: (XMPPConnection*)connection operation: (OFString*)operation string: (OFString*)string; @end /** * \brief An exception indicating authentication failed */ @interface XMPPAuthFailedException: XMPPException { OFString *_reason; } /// \brief The reason the authentication failed @property (readonly, copy) OFString *reason; /** * \brief Creates a new XMPPAuthFailedException. * * \param connection The connection that could not be authenticated * \param reason The reason the authentication failed * \return A new XMPPAuthFailedException */ + (instancetype)exceptionWithConnection: (XMPPConnection*)connection reason: (OFString*)reason; /** * \brief Initializes an already allocated XMPPAuthFailedException. * * \param connection The connection that could not be authenticated * \param reason The reason the authentication failed * \return An initialized XMPPAuthFailedException */ - initWithConnection: (XMPPConnection*)connection reason: (OFString*)reason; @end |
Modified src/XMPPExceptions.m from [9acb94944f] to [6e9babd31e].
1 | /* | | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, 2016, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2012, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include <stdlib.h> #import "XMPPExceptions.h" #import "XMPPConnection.h" @implementation XMPPException + (instancetype)exceptionWithConnection: (XMPPConnection*)connection { return [[[self alloc] initWithConnection: connection] autorelease]; } - init { | > > < < < < < < | < | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include <stdlib.h> #import "XMPPExceptions.h" #import "XMPPConnection.h" @implementation XMPPException @synthesize connection = _connection; + (instancetype)exceptionWithConnection: (XMPPConnection*)connection { return [[[self alloc] initWithConnection: connection] autorelease]; } - init { OF_INVALID_INIT_METHOD } - initWithConnection: (XMPPConnection*)connection { self = [super init]; @try { |
︙ | ︙ | |||
63 64 65 66 67 68 69 | - (void)dealloc { [_connection release]; [super dealloc]; } | < < < < < > > < < < < < < | < | 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | - (void)dealloc { [_connection release]; [super dealloc]; } @end @implementation XMPPStreamErrorException @synthesize condition = _condition, reason = _reason; + (instancetype)exceptionWithConnection: (XMPPConnection*)connection condition: (OFString*)condition reason: (OFString*)reason; { return [[[self alloc] initWithConnection: connection condition: condition reason: reason] autorelease]; } - initWithConnection: (XMPPConnection*)connection { OF_INVALID_INIT_METHOD } - initWithConnection: (XMPPConnection*)connection condition: (OFString*)condition reason: (OFString*)reason { self = [super initWithConnection: connection]; |
︙ | ︙ | |||
122 123 124 125 126 127 128 | } - (OFString*)description { return [OFString stringWithFormat: @"Got stream error: %@. Reason: %@!", _condition, _reason]; } | < < < < < < < < < < > > < < < < < < | < | 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | } - (OFString*)description { return [OFString stringWithFormat: @"Got stream error: %@. Reason: %@!", _condition, _reason]; } @end @implementation XMPPStringPrepFailedException @synthesize profile = _profile, string = _string; + (instancetype)exceptionWithConnection: (XMPPConnection*)connection profile: (OFString*)profile string: (OFString*)string { return [[[self alloc] initWithConnection: connection profile: profile string: string] autorelease]; } - initWithConnection: (XMPPConnection*)connection { OF_INVALID_INIT_METHOD } - initWithConnection: (XMPPConnection*)connection profile: (OFString*)profile string: (OFString*)string { self = [super initWithConnection: connection]; |
︙ | ︙ | |||
187 188 189 190 191 192 193 | - (OFString*)description { return [OFString stringWithFormat: @"Stringprep with profile %@ failed on string '%@'!", _profile, _string]; } | < < < < < < < < < < > > < < < < < < | < | 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | - (OFString*)description { return [OFString stringWithFormat: @"Stringprep with profile %@ failed on string '%@'!", _profile, _string]; } @end @implementation XMPPIDNATranslationFailedException @synthesize operation = _operation, string = _string; + (instancetype)exceptionWithConnection: (XMPPConnection*)connection operation: (OFString*)operation string: (OFString*)string { return [[[self alloc] initWithConnection: connection operation: operation string: string] autorelease]; } - initWithConnection: (XMPPConnection*)connection { OF_INVALID_INIT_METHOD } - initWithConnection: (XMPPConnection*)connection operation: (OFString*)operation string: (OFString*)string { self = [super initWithConnection: connection]; |
︙ | ︙ | |||
251 252 253 254 255 256 257 | } - (OFString*)description { return [OFString stringWithFormat: @"IDNA operation %@ failed on string '%@'!", _operation, _string]; } | < < < < < < < < < < > > < < < < < < | < | 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 | } - (OFString*)description { return [OFString stringWithFormat: @"IDNA operation %@ failed on string '%@'!", _operation, _string]; } @end @implementation XMPPAuthFailedException @synthesize reason = _reason; + (instancetype)exceptionWithConnection: (XMPPConnection*)connection reason: (OFString*)reason; { return [[[self alloc] initWithConnection: connection reason: reason] autorelease]; } - initWithConnection: (XMPPConnection*)connection { OF_INVALID_INIT_METHOD } - initWithConnection: (XMPPConnection*)connection reason: (OFString*)reason { self = [super initWithConnection: connection]; |
︙ | ︙ | |||
310 311 312 313 314 315 316 | } - (OFString*)description { return [OFString stringWithFormat: @"Authentication failed. Reason: %@!", _reason]; } | < < < < < | 251 252 253 254 255 256 257 258 | } - (OFString*)description { return [OFString stringWithFormat: @"Authentication failed. Reason: %@!", _reason]; } @end |
Modified src/XMPPJID.h from [a02e2d5381] to [3ced7021d5].
1 | /* | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, 2016, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2011, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
27 28 29 30 31 32 33 | * \brief A class for easy handling of JIDs. */ @interface XMPPJID: OFObject <OFCopying> { OFString *_node, *_domain, *_resource; } | < < | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | * \brief A class for easy handling of JIDs. */ @interface XMPPJID: OFObject <OFCopying> { OFString *_node, *_domain, *_resource; } /// \brief The JID's localpart @property (copy) OFString *node; /// \brief The JID's domainpart @property (copy) OFString *domain; /// \brief The JID's resourcepart @property (copy) OFString *resource; /** * \brief Creates a new autoreleased XMPPJID. * * \return A new autoreleased XMPPJID */ + (instancetype)JID; |
︙ | ︙ | |||
72 73 74 75 76 77 78 | /** * \brief Returns the full JID. * * \return An OFString containing the full JID */ - (OFString*)fullJID; | < < < < < < < | 70 71 72 73 74 75 76 77 | /** * \brief Returns the full JID. * * \return An OFString containing the full JID */ - (OFString*)fullJID; @end |
Modified src/XMPPJID.m from [dc53237dd0] to [ea81f23548].
1 | /* | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2011, 2012, 2013, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ |
Modified src/XMPPMessage.h from [2b70f07253] to [307740d3cb].
1 | /* | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, 2016, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2011, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
23 24 25 26 27 28 29 | #import "XMPPStanza.h" /** * \brief A class describing a message stanza. */ @interface XMPPMessage: XMPPStanza | < | < | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #import "XMPPStanza.h" /** * \brief A class describing a message stanza. */ @interface XMPPMessage: XMPPStanza /** The text content of the body of the message. */ @property (copy) OFString *body; /** * \brief Creates a new autoreleased XMPPMessage. * * \return A new autoreleased XMPPMessage */ + (instancetype)message; |
︙ | ︙ | |||
87 88 89 90 91 92 93 | * * \param type The value for the stanza's type attribute * \param ID The value for the stanza's id attribute * \return A initialized XMPPMessage */ - initWithType: (OFString*)type ID: (OFString*)ID; | < < < < < < < < < < < < < < | 85 86 87 88 89 90 91 92 | * * \param type The value for the stanza's type attribute * \param ID The value for the stanza's id attribute * \return A initialized XMPPMessage */ - initWithType: (OFString*)type ID: (OFString*)ID; @end |
Modified src/XMPPMessage.m from [c69cbcf9ac] to [f9ef57b623].
1 | /* | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2011, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ |
Modified src/XMPPPresence.h from [7c4674f054] to [d33b5223b7].
1 | /* | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, 2016, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2011, 2013, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
24 25 26 27 28 29 30 | #import "XMPPStanza.h" /** * \brief A class describing a presence stanza. */ @interface XMPPPresence: XMPPStanza <OFComparing> { | | > < > > > > > > > > > > > < | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #import "XMPPStanza.h" /** * \brief A class describing a presence stanza. */ @interface XMPPPresence: XMPPStanza <OFComparing> { OFString *_status, *_show; OFNumber *_priority; } /** * The text content of the status element. */ @property (copy) OFString *status; /** * The text content of the show element of the presence stanza. */ @property (copy) OFString *show; /** * The numeric content of the priority element. */ @property (copy) OFNumber *priority; /** * \brief Creates a new autoreleased XMPPPresence. * * \return A new autoreleased XMPPPresence */ + (instancetype)presence; |
︙ | ︙ | |||
93 94 95 96 97 98 99 | * * \param type The value for the stanza's type attribute * \param ID The value for the stanza's id attribute * \return A initialized XMPPPresence */ - initWithType: (OFString*)type ID: (OFString*)ID; | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 103 104 105 106 107 108 109 110 | * * \param type The value for the stanza's type attribute * \param ID The value for the stanza's id attribute * \return A initialized XMPPPresence */ - initWithType: (OFString*)type ID: (OFString*)ID; @end |
Modified src/XMPPPresence.m from [75cd9b8e76] to [ef8e25196d].
1 | /* | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, 2016, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2011, 2012, 2013, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
21 22 23 24 25 26 27 | * POSSIBILITY OF SUCH DAMAGE. */ #ifdef HAVE_CONFIG_H # include "config.h" #endif | < < | > | | > | > | > | > | > | | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | * POSSIBILITY OF SUCH DAMAGE. */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #import "XMPPPresence.h" #import "namespaces.h" /* This provides us with sortable values for show values */ static int show_to_int(OFString *show) { if ([show isEqual: @"chat"]) return 0; if (show == nil) return 1; /* available */ if ([show isEqual: @"away"]) return 2; if ([show isEqual: @"dnd"]) return 3; if ([show isEqual: @"xa"]) return 4; OF_ENSURE(0); } @implementation XMPPPresence + (instancetype)presence { return [[[self alloc] init] autorelease]; } |
︙ | ︙ | |||
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | return [[_type copy] autorelease]; } - (void)setShow: (OFString*)show { OFXMLElement *oldShow = [self elementForName: @"show" namespace: XMPP_NS_CLIENT]; if (oldShow != nil) [self removeChild: oldShow]; if (show != nil) [self addChild: [OFXMLElement elementWithName: @"show" namespace: XMPP_NS_CLIENT stringValue: show]]; | > | > > > | > > > | > > | 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 | return [[_type copy] autorelease]; } - (void)setShow: (OFString*)show { OFXMLElement *oldShow = [self elementForName: @"show" namespace: XMPP_NS_CLIENT]; OFString *old; if (oldShow != nil) [self removeChild: oldShow]; if (show != nil) [self addChild: [OFXMLElement elementWithName: @"show" namespace: XMPP_NS_CLIENT stringValue: show]]; old = _show; _show = [show copy]; [old release]; } - (OFString*)show { return [[_show copy] autorelease]; } - (void)setStatus: (OFString*)status { OFXMLElement *oldStatus = [self elementForName: @"status" namespace: XMPP_NS_CLIENT]; OFString *old; if (oldStatus != nil) [self removeChild: oldStatus]; if (status != nil) [self addChild: [OFXMLElement elementWithName: @"status" namespace: XMPP_NS_CLIENT stringValue: status]]; old = _status; _status = [status copy]; [old release]; } - (OFString*)status { return [[_status copy] autorelease]; } - (void)setPriority: (OFNumber*)priority { intmax_t prio = [priority intMaxValue]; OFNumber *old; if ((prio < -128) || (prio > 127)) @throw [OFInvalidArgumentException exception]; OFXMLElement *oldPriority = [self elementForName: @"priority" namespace: XMPP_NS_CLIENT]; if (oldPriority != nil) [self removeChild: oldPriority]; OFString* priority_s = [OFString stringWithFormat: @"%" @PRId8, [priority int8Value]]; [self addChild: [OFXMLElement elementWithName: @"priority" namespace: XMPP_NS_CLIENT stringValue: priority_s]]; old = _priority; _priority = [priority copy]; [old release]; } - (OFNumber*)priority { return [[_priority copy] autorelease]; } |
︙ | ︙ |
Modified src/XMPPRoster.h from [cd389fa1d0] to [8794fd5d42].
1 | /* | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, 2016, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2012, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
35 36 37 38 39 40 41 | * \brief A protocol that should be (partially) implemented by delegates * of a XMPPRoster */ @protocol XMPPRosterDelegate #ifndef XMPP_ROSTER_M <OFObject> #endif | < < | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | * \brief A protocol that should be (partially) implemented by delegates * of a XMPPRoster */ @protocol XMPPRosterDelegate #ifndef XMPP_ROSTER_M <OFObject> #endif @optional /** * \brief This callback is called after the roster was received (as a result of * calling -requestRoster). * * \param roster The roster that was received */ - (void)rosterWasReceived: (XMPPRoster*)roster; |
︙ | ︙ | |||
59 60 61 62 63 64 65 | - (void)roster: (XMPPRoster*)roster didReceiveRosterItem: (XMPPRosterItem*)rosterItem; @end /** * \brief A class implementing roster related functionality. */ | | < < < < < < < | 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | - (void)roster: (XMPPRoster*)roster didReceiveRosterItem: (XMPPRosterItem*)rosterItem; @end /** * \brief A class implementing roster related functionality. */ @interface XMPPRoster: OFObject <XMPPConnectionDelegate> { XMPPConnection *_connection; OFMutableDictionary *_rosterItems; XMPPMulticastDelegate *_delegates; id <XMPPStorage> _dataStorage; bool _rosterRequested; } /** * \brief The connection to which the roster belongs */ @property (readonly, assign) XMPPConnection *connection; /** * \brief An object for data storage, conforming to the XMPPStorage protocol. * * Inherited from the connection if not overridden. */ @property (assign) id <XMPPStorage> dataStorage; /** * \brief The list of contacts as an OFDictionary with the bare JID as a string * as key. */ @property (readonly, copy) OFDictionary *rosterItems; /** * \brief Initializes an already allocated XMPPRoster. * * \param connection The connection roster related stanzas * are send and received over * \return An initialized XMPPRoster */ - initWithConnection: (XMPPConnection*)connection; /** * \brief Requests the roster from the server. */ - (void)requestRoster; /** * \brief Adds a new contact to the roster. |
︙ | ︙ | |||
142 143 144 145 146 147 148 | /** * \brief Removes the specified delegate. * * \param delegate The delegate to remove */ - (void)removeDelegate: (id <XMPPRosterDelegate>)delegate; | < < < < < | 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | /** * \brief Removes the specified delegate. * * \param delegate The delegate to remove */ - (void)removeDelegate: (id <XMPPRosterDelegate>)delegate; - (void)XMPP_updateRosterItem: (XMPPRosterItem*)rosterItem; - (void)XMPP_handleInitialRosterForConnection: (XMPPConnection*)connection IQ: (XMPPIQ*)iq; - (XMPPRosterItem*)XMPP_rosterItemWithXMLElement: (OFXMLElement*)element; @end @interface OFObject (XMPPRosterDelegate) <XMPPRosterDelegate> @end |
Modified src/XMPPRoster.m from [26a9dc0c6a] to [c728f8b7c2].
1 | /* | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, 2016, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2012, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #import "XMPPConnection.h" #import "XMPPIQ.h" #import "XMPPJID.h" #import "XMPPMulticastDelegate.h" #import "namespaces.h" @implementation XMPPRoster - initWithConnection: (XMPPConnection*)connection { self = [super init]; @try { _rosterItems = [[OFMutableDictionary alloc] init]; _connection = connection; | > > > | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #import "XMPPConnection.h" #import "XMPPIQ.h" #import "XMPPJID.h" #import "XMPPMulticastDelegate.h" #import "namespaces.h" @implementation XMPPRoster @synthesize connection = _connection, dataStorage = _dataStorage; @synthesize rosterItems = _rosterItems; - initWithConnection: (XMPPConnection*)connection { self = [super init]; @try { _rosterItems = [[OFMutableDictionary alloc] init]; _connection = connection; |
︙ | ︙ | |||
63 64 65 66 67 68 69 | [_connection removeDelegate: self]; [_delegates release]; [_rosterItems release]; [super dealloc]; } | < < < < < | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | [_connection removeDelegate: self]; [_delegates release]; [_rosterItems release]; [super dealloc]; } - (void)requestRoster { XMPPIQ *iq; OFXMLElement *query; _rosterRequested = true; |
︙ | ︙ |
Modified src/XMPPRosterItem.h from [dd977fe5de] to [cbf28d2ff4].
1 | /* | | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, 2016, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2012, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
31 32 33 34 35 36 37 | { XMPPJID *_JID; OFString *_name; OFString *_subscription; OFArray *_groups; } | < < < < < < < < < < < | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | { XMPPJID *_JID; OFString *_name; OFString *_subscription; OFArray *_groups; } /// \brief The JID of the roster item @property (copy) XMPPJID *JID; /// \brief The name of the roster item to show to the user @property (copy) OFString *name; /// \brief The subscription for the roster item @property (copy) OFString *subscription; /// \brief An array of groups in which the roster item is @property (copy) OFArray *groups; /** * \brief Creates a new autoreleased roster item. * * \return A new autoreleased roster item. */ + (instancetype)rosterItem; @end |
Modified src/XMPPRosterItem.m from [2c3d9410b3] to [eccb0bf62a].
1 | /* | | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, 2016, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2012, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #import "XMPPRosterItem.h" #import "XMPPJID.h" #import <ObjFW/macros.h> @implementation XMPPRosterItem + (instancetype)rosterItem { return [[[self alloc] init] autorelease]; } - (void)dealloc { | > > > | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #import "XMPPRosterItem.h" #import "XMPPJID.h" #import <ObjFW/macros.h> @implementation XMPPRosterItem @synthesize JID = _JID, name = _name, subscription = _subscription; @synthesize groups = _groups; + (instancetype)rosterItem { return [[[self alloc] init] autorelease]; } - (void)dealloc { |
︙ | ︙ | |||
64 65 66 67 68 69 70 | - (OFString*)description { return [OFString stringWithFormat: @"<XMPPRosterItem, JID=%@, name=%@, " @"subscription=%@, groups=%@>", _JID, _name, _subscription, _groups]; } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 68 69 70 71 72 73 74 75 | - (OFString*)description { return [OFString stringWithFormat: @"<XMPPRosterItem, JID=%@, name=%@, " @"subscription=%@, groups=%@>", _JID, _name, _subscription, _groups]; } @end |
Modified src/XMPPSRVLookup.h from [9725c64004] to [33918d583a].
1 | /* | | > | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2011, 2012, 2013, 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
31 32 33 34 35 36 37 | uint16_t _priority; uint16_t _weight; uint32_t _accumulatedWeight; uint16_t _port; OFString *_target; } | < < < < < < < < < < | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | uint16_t _priority; uint16_t _weight; uint32_t _accumulatedWeight; uint16_t _port; OFString *_target; } @property (readonly) uint16_t priority; @property (readonly) uint16_t weight; @property uint32_t accumulatedWeight; @property (readonly) uint16_t port; @property (readonly, copy) OFString *target; + (instancetype)entryWithPriority: (uint16_t)priority weight: (uint16_t)weight port: (uint16_t)port target: (OFString*)target; + (instancetype)entryWithResourceRecord: (ns_rr)resourceRecord handle: (ns_msg)handle; - initWithPriority: (uint16_t)priority weight: (uint16_t)weight port: (uint16_t)port target: (OFString*)target; - initWithResourceRecord: (ns_rr)resourceRecord handle: (ns_msg)handle; @end @interface XMPPSRVLookup: OFObject <OFEnumerating> { OFString *_domain; struct __res_state _resState; OFList *_list; } @property (readonly, copy) OFString *domain; + (instancetype)lookupWithDomain: (OFString*)domain; - initWithDomain: (OFString*)domain; - (void)XMPP_lookup; - (void)XMPP_addEntry: (XMPPSRVEntry*)item; @end |
︙ | ︙ |
Modified src/XMPPSRVLookup.m from [890298a587] to [6251193e54].
1 | /* | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | /* * Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016 * Jonathan Schleifer <js@heap.zone> * Copyright (c) 2011, 2012, 2013, 2014, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include <openssl/rand.h> #import "XMPPSRVLookup.h" #import <ObjFW/OFSystemInfo.h> @implementation XMPPSRVEntry + (instancetype)entryWithPriority: (uint16_t)priority weight: (uint16_t)weight port: (uint16_t)port target: (OFString*)target { return [[[self alloc] initWithPriority: priority weight: weight | > > > > | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #include <openssl/rand.h> #import "XMPPSRVLookup.h" #import <ObjFW/OFSystemInfo.h> @implementation XMPPSRVEntry @synthesize priority = _priority, weight = _weight; @synthesize accumulatedWeight = _accumulatedWeight, port = _port; @synthesize target = _target; + (instancetype)entryWithPriority: (uint16_t)priority weight: (uint16_t)weight port: (uint16_t)port target: (OFString*)target { return [[[self alloc] initWithPriority: priority weight: weight |
︙ | ︙ | |||
129 130 131 132 133 134 135 | - (OFString*)description { return [OFString stringWithFormat: @"<%@ priority: %" PRIu16 @", weight: %" PRIu16 @", target: %@:%" PRIu16 @">", [self class], _priority, _weight, _target, _port]; } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < > > | 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | - (OFString*)description { return [OFString stringWithFormat: @"<%@ priority: %" PRIu16 @", weight: %" PRIu16 @", target: %@:%" PRIu16 @">", [self class], _priority, _weight, _target, _port]; } @end @implementation XMPPSRVLookup @synthesize domain = _domain; + (instancetype)lookupWithDomain: (OFString*)domain { return [[[self alloc] initWithDomain: domain] autorelease]; } - initWithDomain: (OFString*)domain { |
︙ | ︙ | |||
192 193 194 195 196 197 198 | { [_list release]; [_domain release]; [super dealloc]; } | < < < < < | 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | { [_list release]; [_domain release]; [super dealloc]; } - (void)XMPP_lookup { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; unsigned char *answer = NULL; size_t pageSize = [OFSystemInfo pageSize]; OFString *request; |
︙ | ︙ |
Modified src/XMPPStanza.h from [f4da51d486] to [132bb6d0c8].
1 | /* | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, 2016, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2011, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ | |||
30 31 32 33 34 35 36 | */ @interface XMPPStanza: OFXMLElement { XMPPJID *_from, *_to; OFString *_type, *_ID, *_language; } | < | | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | */ @interface XMPPStanza: OFXMLElement { XMPPJID *_from, *_to; OFString *_type, *_ID, *_language; } /// \brief The value of the stanza's from attribute @property (copy) XMPPJID *from; /// \brief The value of the stanza's to attribute @property (copy) XMPPJID *to; /// \brief The value of the stanza's type attribute @property (copy) OFString *type; /// \brief The value of the stanza's id attribute @property (copy) OFString *ID; /// \brief The stanza's xml:lang @property (copy) OFString *language; /** * \brief Creates a new autoreleased XMPPStanza with the specified name. * * \param name The stanza's name (one of iq, message or presence) * \return A new autoreleased XMPPStanza */ |
︙ | ︙ | |||
142 143 144 145 146 147 148 | /** * \brief Initializes an already allocated XMPPStanza based on a OFXMLElement. * * \param element The element to base the XMPPStanza on * \return A initialized XMPPStanza */ - initWithElement: (OFXMLElement*)element; | < < < < < < < < < < < | 141 142 143 144 145 146 147 148 | /** * \brief Initializes an already allocated XMPPStanza based on a OFXMLElement. * * \param element The element to base the XMPPStanza on * \return A initialized XMPPStanza */ - initWithElement: (OFXMLElement*)element; @end |
Modified src/XMPPStanza.m from [d2bae5f7fc] to [1e02f0c1e0].
1 | /* | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | /* * Copyright (c) 2011, 2012, 2013, Jonathan Schleifer <js@heap.zone> * Copyright (c) 2011, Florian Zeitz <florob@babelmonkeys.de> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
︙ | ︙ |
Modified src/XMPPStreamManagement.h from [41ce04c91f] to [4473d58316].
1 2 3 | /* * Copyright (c) 2012, Florian Zeitz <florob@babelmonkeys.de> * | > | | < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | /* * Copyright (c) 2012, Florian Zeitz <florob@babelmonkeys.de> * Copyright (c) 2013, 2016, Jonathan Schleifer <js@heap.zone> * * https://heap.zone/git/?p=objxmpp.git * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #import "XMPPConnection.h" @interface XMPPStreamManagement: OFObject <XMPPConnectionDelegate> { XMPPConnection *_connection; uint32_t _receivedCount; } - initWithConnection: (XMPPConnection*)connection; @end |