ObjXMPP  Diff

Differences From Artifact [8fb736958d]:

To Artifact [8b80b6f458]:


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
56
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
107
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
139
140
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
222
223
224
225
226
227
228
229



230
231
232
233


234
235
236
237

238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310

311
312
313
314
315
316
317
318
319

320
321
322
323
324

325
326
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
56
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
107
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
139
140
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
222
223
224
225
226




227
228
229
230
231


232
233
234
235


236
237
238
239
240
241
242
243
244
245
246
247


248
249
250
251
252
253
254
255
256


257
258
259
260

261
262

263
264
265
266
267

268
269
270
271




272
273
274
275

276


277
278


279
280
281


282
283
284
285
286
287
288
289
290



291
292
293

294


295
296
297
298


299
300
301
302
303
304
305
306
307
308
309































































310
311
312
313
314
315
316
317
318

319
320
321
322
323

324
325
326







-
-
+
+

-
-
+
+


-
+







-
-
+
+

-
+


-
+

















-
+




-
-
-
-
+
+
+
+

-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+


-
-
+
+







-
-
-
-
+
+
+
+

-
-
+
+


-
-
+
+










-
-
+
+







+
-
+
-


-
+

-
+


-
+

-
+



-
-
-
-
+
+
+
+


-
-
-
+
+
+



-
-
+
+







-
-
-
-
+
+
+
+

-
-
+
+


-
-
+
+










-
-
+
+







-
-
+
+


-
+

-
+




-
+



-
-
-
-
+
+
+
+
-

-
-
+
+
-
-
+


-
-
+
+







-
-
-
+
+
+
-

-
-
+
+


-
-
+










-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+








-
+




-
+


# include "config.h"
#endif

#import "XMPPExceptions.h"
#import "XMPPConnection.h"

@implementation XMPPException
+ exceptionWithClass: (Class)class_
	  connection: (XMPPConnection*)conn
+ exceptionWithClass: (Class)class
	  connection: (XMPPConnection*)connection
{
	return [[[self alloc] initWithClass: class_
				 connection: conn] autorelease];
	return [[[self alloc] initWithClass: class
				 connection: connection] autorelease];
}

- initWithClass: (Class)class_
- initWithClass: (Class)class
{
	Class c = [self class];
	[self release];
	@throw [OFNotImplementedException exceptionWithClass: c
						    selector: _cmd];
}

- initWithClass: (Class)class_
     connection: (XMPPConnection*)conn
- initWithClass: (Class)class
     connection: (XMPPConnection*)connection
{
	self = [super initWithClass: class_];
	self = [super initWithClass: class];

	@try {
		_connection = [conn retain];
		_connection = [connection retain];
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;
}

- (void)dealloc
{
	[_connection release];

	[super dealloc];
}

- (XMPPConnection*)connection
{
	return _connection;
	OF_GETTER(_connection, NO)
}
@end

@implementation XMPPStreamErrorException
+ exceptionWithClass: (Class)class_
	  connection: (XMPPConnection*)conn
	   condition: (OFString*)condition_
	      reason: (OFString*)reason_;
+ exceptionWithClass: (Class)class
	  connection: (XMPPConnection*)connection
	   condition: (OFString*)condition
	      reason: (OFString*)reason;
{
	return [[[self alloc] initWithClass: class_
				 connection: conn
				  condition: condition_
				     reason: reason_] autorelease];
	return [[[self alloc] initWithClass: class
				 connection: connection
				  condition: condition
				     reason: reason] autorelease];
}

- initWithClass: (Class)class
     connection: (XMPPConnection*)connection
{
	Class c = [self class];
	[self release];
	@throw [OFNotImplementedException exceptionWithClass: c
						    selector: _cmd];
}

- initWithClass: (Class)class
     connection: (XMPPConnection*)connection
      condition: (OFString*)condition
	 reason: (OFString*)reason
{
	self = [super initWithClass: class
			 connection: connection];

	@try {
		_condition = [condition copy];
		_reason = [reason copy];
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;
}

- (void)dealloc
{
	[_condition release];
	[_reason release];

	[super dealloc];
}

- (OFString*)description
{
	return [OFString stringWithFormat:
	    @"Got stream error in class %@: %@. Reason: %@!", [self inClass],
	    _condition, _reason];
}

- (OFString*)condition
{
	OF_GETTER(_condition, NO)
}

- (OFString*)reason
{
	OF_GETTER(_reason, NO)
}
@end

@implementation XMPPStringPrepFailedException
+ exceptionWithClass: (Class)class
	  connection: (XMPPConnection*)connection
	     profile: (OFString*)profile
	      string: (OFString*)string
{
	return [[[self alloc] initWithClass: class
				 connection: connection
				    profile: profile
				     string: string] autorelease];
}

- initWithClass: (Class)class_
     connection: (XMPPConnection*)conn
- initWithClass: (Class)class
     connection: (XMPPConnection*)connection
{
	Class c = [self class];
	[self release];
	@throw [OFNotImplementedException exceptionWithClass: c
						    selector: _cmd];
}

- initWithClass: (Class)class_
     connection: (XMPPConnection*)conn
      condition: (OFString*)condition_
	 reason: (OFString*)reason_
- initWithClass: (Class)class
     connection: (XMPPConnection*)connection
	profile: (OFString*)profile
	 string: (OFString*)string
{
	self = [super initWithClass: class_
			 connection: conn];
	self = [super initWithClass: class
			 connection: connection];

	@try {
		condition = [condition_ copy];
		reason = [reason_ copy];
		_profile = [profile copy];
		_string = [string copy];
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;
}

- (void)dealloc
{
	[condition release];
	[reason release];
	[_profile release];
	[_string release];

	[super dealloc];
}

- (OFString*)description
{
	return [OFString stringWithFormat:
	    @"Stringprep with profile %@ failed in class %@ on string '%@'!",
	    @"Got stream error in class %@: %@. Reason: %@!", [self inClass],
	    _profile, [self inClass], _string];
	    condition, reason];
}

- (OFString*)condition
- (OFString*)profile
{
	return condition;
	OF_GETTER(_profile, NO)
}

- (OFString*)reason
- (OFString*)string
{
	return reason;
	OF_GETTER(_string, NO)
}
@end

@implementation XMPPStringPrepFailedException
+ exceptionWithClass: (Class)class_
	  connection: (XMPPConnection*)conn
	     profile: (OFString*)profile
@implementation XMPPIDNATranslationFailedException
+ exceptionWithClass: (Class)class
	  connection: (XMPPConnection*)connection
	   operation: (OFString*)operation
	      string: (OFString*)string
{
	return [[[self alloc] initWithClass: class_
				 connection: conn
				    profile: profile
	return [[[self alloc] initWithClass: class
				 connection: connection
				  operation: operation
				     string: string] autorelease];
}

- initWithClass: (Class)class_
     connection: (XMPPConnection*)conn
- initWithClass: (Class)class
     connection: (XMPPConnection*)connection
{
	Class c = [self class];
	[self release];
	@throw [OFNotImplementedException exceptionWithClass: c
						    selector: _cmd];
}

- initWithClass: (Class)class_
     connection: (XMPPConnection*)conn
	profile: (OFString*)profile_
	 string: (OFString*)string_
- initWithClass: (Class)class
     connection: (XMPPConnection*)connection
      operation: (OFString*)operation
	 string: (OFString*)string
{
	self = [super initWithClass: class_
			 connection: conn];
	self = [super initWithClass: class
			 connection: connection];

	@try {
		profile = [profile_ copy];
		string = [string_ copy];
		_operation = [operation copy];
		_string = [string copy];
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;
}

- (void)dealloc
{
	[profile release];
	[string release];
	[_operation release];
	[_string release];

	[super dealloc];
}

- (OFString*)description
{
	return [OFString stringWithFormat:
	    @"Stringprep with profile %@ failed in class %@ on string '%@'!",
	    profile, [self inClass], string];
	    @"IDNA operation %@ failed in class %@ on string '%@'!", _operation,
	    [self inClass], _string];
}

- (OFString*)profile
- (OFString*)operation
{
	return profile;
	OF_GETTER(_operation, NO)
}

- (OFString*)string
{
	return string;
	OF_GETTER(_string, NO)
}
@end

@implementation XMPPIDNATranslationFailedException
+ exceptionWithClass: (Class)class_
	  connection: (XMPPConnection*)conn
	   operation: (OFString*)operation
@implementation XMPPAuthFailedException
+ exceptionWithClass: (Class)class
	  connection: (XMPPConnection*)connection
	      reason: (OFString*)reason;
	      string: (OFString*)string
{
	return [[[self alloc] initWithClass: class_
				 connection: conn
	return [[[self alloc] initWithClass: class
				 connection: connection
				  operation: operation
				     string: string] autorelease];
				     reason: reason] autorelease];
}

- initWithClass: (Class)class_
     connection: (XMPPConnection*)conn
- initWithClass: (Class)class
     connection: (XMPPConnection*)connection
{
	Class c = [self class];
	[self release];
	@throw [OFNotImplementedException exceptionWithClass: c
						    selector: _cmd];
}

- initWithClass: (Class)class_
     connection: (XMPPConnection*)conn
      operation: (OFString*)operation_
- initWithClass: (Class)class
     connection: (XMPPConnection*)connection
	 reason: (OFString*)reason
	 string: (OFString*)string_
{
	self = [super initWithClass: class_
			 connection: conn];
	self = [super initWithClass: class
			 connection: connection];

	@try {
		operation = [operation_ copy];
		string = [string_ copy];
		_reason = [reason copy];
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;
}

- (void)dealloc
{
	[operation release];
	[string release];

	[super dealloc];
}

- (OFString*)description
{
	return [OFString stringWithFormat:
	    @"IDNA operation %@ failed in class %@ on string '%@'!", operation,
	    [self inClass], string];
}

- (OFString*)operation
{
	return operation;
}

- (OFString*)string
{
	return string;
}
@end

@implementation XMPPAuthFailedException
+ exceptionWithClass: (Class)class_
	  connection: (XMPPConnection*)conn
	      reason: (OFString*)reason_;
{
	return [[[self alloc] initWithClass: class_
				 connection: conn
				     reason: reason_] autorelease];
}

- initWithClass: (Class)class_
     connection: (XMPPConnection*)conn
{
	Class c = [self class];
	[self release];
	@throw [OFNotImplementedException exceptionWithClass: c
						    selector: _cmd];
}

- initWithClass: (Class)class_
     connection: (XMPPConnection*)conn
	 reason: (OFString*)reason_
{
	self = [super initWithClass: class_
			 connection: conn];

	@try {
		reason = [reason_ copy];
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;
}

- (void)dealloc
{
	[reason release];
	[_reason release];

	[super dealloc];
}

- (OFString*)description
{
	return [OFString stringWithFormat:
	    @"Authentication failed in class %@. Reason: %@!", [self inClass],
	    reason];
	    _reason];
}

- (OFString*)reason
{
	return reason;
	OF_GETTER(_reason, NO)
}
@end