Skip to content

Commit 9c50c2c

Browse files
Ensure stream:features have been received before consider them "processed"
1 parent 69dab51 commit 9c50c2c

1 file changed

Lines changed: 10 additions & 7 deletions

File tree

register/strophe.register.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,11 @@ Strophe.addConnectionPlugin('register', {
7474
// Save this request in case we want to authenticate later
7575
self._connect_cb_data = {req: req,
7676
raw: raw};
77-
// remember that we already processed stream:features
78-
self.processed_features = true;
79-
self._register_cb(req, callback, raw);
80-
delete self._registering;
77+
if(self._register_cb(req, callback, raw)) {
78+
// remember that we already processed stream:features
79+
self.processed_features = true;
80+
delete self._registering;
81+
};
8182
}
8283
};
8384

@@ -184,27 +185,29 @@ Strophe.addConnectionPlugin('register', {
184185

185186
var conncheck = conn._proto._connect_cb(bodyWrap);
186187
if (conncheck === Strophe.Status.CONNFAIL) {
187-
return;
188+
return false;
188189
}
189190

190191
// Check for the stream:features tag
191192
var register = bodyWrap.getElementsByTagName("register");
192193
var mechanisms = bodyWrap.getElementsByTagName("mechanism");
193194
if (register.length === 0 && mechanisms.length === 0) {
194195
conn._proto._no_auth_received(_callback);
195-
return;
196+
return false;
196197
}
197198

198199
if (register.length === 0) {
199200
conn._changeConnectStatus(Strophe.Status.REGIFAIL, null);
200-
return;
201+
return true;
201202
}
202203

203204
// send a get request for registration, to get all required data fields
204205
conn._addSysHandler(this._get_register_cb.bind(this),
205206
null, "iq", null, null);
206207
conn.send($iq({type: "get"}).c("query",
207208
{xmlns: Strophe.NS.REGISTER}).tree());
209+
210+
return true;
208211
},
209212

210213
/** PrivateFunction: _get_register_cb

0 commit comments

Comments
 (0)