- xmpp: gate XEP-0359 stanza-id dedup on disco urn:xmpp:sid:0. Before
honoring <stanza-id by='…'/> for archive_id dedup, check that the entity
in `by` (or its domain — that's what profanity disco's on connect)
announces the namespace; fall back to no-dedup when caps are unknown,
matching the XEP §6 disco-gate (#1).
- accounts: narrow group-name sanitizer to only the characters GKeyFile
actually forbids in group headers (`[`, `]`, `\n`, `\r`); `=` and `#` are
valid inside a header and stay (#2).
- functional tests cover both branches of the disco gate — replayed
stanza-id is flagged as duplicate when sid:0 is announced, and not
flagged when it isn't.
Refs #112
- Replace stbbr_for_id() with stbbr_for_query()/stbbr_send()
- Content-based stubbing matches stanzas by namespace instead of ID
- Use regex assertions for flexible output matching
- Fix timing issues in chat_session and presence tests
As 9f2abc75 accidentally got the ordering of some of the includes wrong,
I decided to propose my initial solution again.
Additional to that, I've opened a MR against CMocka to solve this on
their side, since I believe that the current way this is done is not
sustainable [0].
[0] https://gitlab.com/cmocka/cmocka/-/merge_requests/91
Fixes: 9f2abc75 ("Fix tests with gcc15 (uintptr_t)")
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
CProof note: our new tests need to also be updated.
- Modified chatwin_outgoing_msg to call _chatwin_set_last_message for corrected messages, using replace_id per XEP-0308.
- Updated _chatwin_set_last_message to skip redundant and invalid free/strdup for same pointers.
- Added null checks in _chatwin_set_last_message for safety.
- Fixes autocompletion suggesting original message content instead of corrected content.
Fixes#24