Skip to content

Commit

Permalink
f
Browse files Browse the repository at this point in the history
  • Loading branch information
sonnyp committed Jan 1, 2025
1 parent 532204c commit cf99272
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 20 deletions.
18 changes: 9 additions & 9 deletions packages/events/lib/procedure.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
export default function procedure(entity, stanza = null, handler) {
return new Promise((resolve, reject) => {
function stop(...args) {
function onError(err) {
entity.removeListener("nonza", listener);
reject(err);
}

function done(...args) {
entity.removeListener("nonza", listener);
resolve(...args);
}

async function listener(element) {
try {
await handler(element, stop);
await handler(element, done);
} catch (err) {
reject(err);
entity.removeListener("nonza", listener);
onError(err);
}
}

stanza &&
entity.send(stanza).catch((err) => {
entity.removeListener("nonza", listener);
reject(err);
});
stanza && entity.send(stanza).catch(onError);
entity.on("nonza", listener);
});
}
4 changes: 2 additions & 2 deletions packages/sasl/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ async function authenticate({ saslFactory, entity, mechanism, credentials }) {
{ xmlns: NS, mechanism: mech.name },
encode(mech.response(creds)),
),
async (element, stop) => {
async (element, done) => {
if (element.getNS() !== NS) return;

if (element.name === "challenge") {
Expand All @@ -58,7 +58,7 @@ async function authenticate({ saslFactory, entity, mechanism, credentials }) {
}

if (element.name === "success") {
return stop();
return done();
}
},
);
Expand Down
6 changes: 3 additions & 3 deletions packages/sasl2/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ async function authenticate({
userAgent,
...streamFeatures,
]),
async (element, stop) => {
async (element, done) => {
if (element.getNS() !== NS) return;

if (element.name === "challenge") {
mech.challenge(decode(element.text()));
const resp = mech.response(creds);
entity.send(
await entity.send(
xml(
"response",
{ xmlns: NS, mechanism: mech.name },
Expand Down Expand Up @@ -87,7 +87,7 @@ async function authenticate({
feature?.[1]?.(child);
}

return stop();
return done();
}
},
);
Expand Down
8 changes: 4 additions & 4 deletions packages/stream-management/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,19 @@ function makeResumeElement({ sm }) {
}

function enable(entity, sm) {
return procedure(entity, makeEnableElement({ sm }), (element, stop) => {
return procedure(entity, makeEnableElement({ sm }), (element, done) => {
if (element.is("enabled", NS)) {
return stop(element);
return done(element);
} else if (element.is("failed", NS)) {
throw XMPPError.fromElement(element);
}
});
}

async function resume(entity, sm) {
return procedure(entity, makeResumeElement({ sm }), (element, stop) => {
return procedure(entity, makeResumeElement({ sm }), (element, done) => {
if (element.is("resumed", NS)) {
return stop(element);
return done(element);
} else if (element.is("failed", NS)) {
throw XMPPError.fromElement(element);
}
Expand Down
12 changes: 10 additions & 2 deletions packages/stream-management/stream-features.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,11 @@ test("enable - failed", async () => {
expect(entity.streamManagement.outbound).toBe(0);
entity.streamManagement.enabled = true;

entity.mockInput(<failed xmlns="urn:xmpp:sm:3" />);
entity.mockInput(
<failed xmlns="urn:xmpp:sm:3">
<unexpected-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
</failed>,
);

await tick();

Expand Down Expand Up @@ -169,7 +173,11 @@ test("resume - failed", async () => {
<resume xmlns="urn:xmpp:sm:3" previd="bar" h="0" />,
);

entity.mockInput(<failed xmlns="urn:xmpp:sm:3" />);
entity.mockInput(
<failed xmlns="urn:xmpp:sm:3">
<unexpected-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
</failed>,
);

await tick();

Expand Down

0 comments on commit cf99272

Please sign in to comment.