︙ | | |
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
-
+
|
OFString *old = username;
char *node;
Stringprep_rc rc;
if ((rc = stringprep_profile([username_ UTF8String], &node,
"SASLprep", 0)) != STRINGPREP_OK)
@throw [XMPPStringPrepFailedException
exceptionWithClass: isa
exceptionWithClass: [self class]
connection: self
profile: @"SASLprep"
string: username_];
@try {
username = [[OFString alloc] initWithUTF8String: node];
} @finally {
|
︙ | | |
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
-
+
|
OFString *old = resource;
char *res;
Stringprep_rc rc;
if ((rc = stringprep_profile([resource_ UTF8String], &res,
"Resourceprep", 0)) != STRINGPREP_OK)
@throw [XMPPStringPrepFailedException
exceptionWithClass: isa
exceptionWithClass: [self class]
connection: self
profile: @"Resourceprep"
string: resource_];
@try {
resource = [[OFString alloc] initWithUTF8String: res];
} @finally {
|
︙ | | |
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
-
+
|
OFString *oldDomainToASCII = domainToASCII;
char *srv;
Stringprep_rc rc;
if ((rc = stringprep_profile([domain_ UTF8String], &srv,
"Nameprep", 0)) != STRINGPREP_OK)
@throw [XMPPStringPrepFailedException
exceptionWithClass: isa
exceptionWithClass: [self class]
connection: self
profile: @"Nameprep"
string: domain_];
@try {
domain = [[OFString alloc] initWithUTF8String: srv];
} @finally {
|
︙ | | |
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
|
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
|
-
+
|
OFString *old = password;
char *pass;
Stringprep_rc rc;
if ((rc = stringprep_profile([password_ UTF8String], &pass,
"SASLprep", 0)) != STRINGPREP_OK)
@throw [XMPPStringPrepFailedException
exceptionWithClass: isa
exceptionWithClass: [self class]
connection: self
profile: @"SASLprep"
string: password_];
@try {
password = [[OFString alloc] initWithUTF8String: pass];
} @finally {
|
︙ | | |
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
|
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
|
-
-
-
-
+
+
+
+
+
|
else
condition = @"undefined";
reason = [[element
elementForName: @"text"
namespace: XMPP_NS_XMPP_STREAM] stringValue];
@throw [XMPPStreamErrorException exceptionWithClass: isa
connection: self
condition: condition
reason: reason];
@throw [XMPPStreamErrorException
exceptionWithClass: [self class]
connection: self
condition: condition
reason: reason];
return;
}
assert(0);
}
- (void)XMPP_handleTLS: (OFXMLElement*)element
|
︙ | | |
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
|
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
|
-
+
|
[self XMPP_startStream];
return;
}
if ([[element name] isEqual: @"failure"])
/* TODO: Find/create an exception to throw here */
@throw [OFException exceptionWithClass: isa];
@throw [OFException exceptionWithClass: [self class]];
assert(0);
}
- (void)XMPP_handleSASL: (OFXMLElement*)element
{
if ([[element name] isEqual: @"challenge"]) {
|
︙ | | |
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
|
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
|
-
+
|
return;
}
if ([[element name] isEqual: @"failure"]) {
of_log(@"Auth failed!");
// FIXME: Do more parsing/handling
@throw [XMPPAuthFailedException
exceptionWithClass: isa
exceptionWithClass: [self class]
connection: self
reason: [element XMLString]];
}
assert(0);
}
|
︙ | | |
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
|
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
|
-
+
|
[OFXMLElement elementWithName: @"starttls"
namespace: XMPP_NS_STARTTLS]];
return;
}
if (encryptionRequired && !encrypted)
/* TODO: Find/create an exception to throw here */
@throw [OFException exceptionWithClass: isa];
@throw [OFException exceptionWithClass: [self class]];
if ([element elementForName: @"ver"
namespace: XMPP_NS_ROSTERVER] != nil)
supportsRosterVersioning = YES;
if (mechs != nil) {
OFEnumerator *enumerator;
|
︙ | | |
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
|
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
|
-
+
|
OFString *ret;
char *cDomain;
Idna_rc rc;
if ((rc = idna_to_ascii_8z([domain_ UTF8String],
&cDomain, IDNA_USE_STD3_ASCII_RULES)) != IDNA_SUCCESS)
@throw [XMPPIDNATranslationFailedException
exceptionWithClass: isa
exceptionWithClass: [self class]
connection: self
operation: @"ToASCII"
string: domain_];
@try {
ret = [[OFString alloc] initWithUTF8String: cDomain];
} @finally {
|
︙ | | |
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
|
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
|
-
+
+
|
{
return port;
}
- (void)setDataStorage: (id <XMPPStorage>)dataStorage_
{
if (streamOpen)
@throw [OFInvalidArgumentException exceptionWithClass: isa];
@throw [OFInvalidArgumentException
exceptionWithClass: [self class]];
dataStorage = dataStorage_;
}
- (id <XMPPStorage>)dataStorage
{
return dataStorage;
|
︙ | | |