about summary refs log tree commit diff stats
path: root/src/xmpp/stanza.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix potential memleak in stanza_create_caps_from_query_element()Michael Vetter2020-04-201-4/+12
| | | | | Each of those should only occur one time. But let's make sure we only write/alloc one time to be on the safe side.
* First MAM testMichael Vetter2020-04-111-0/+82
| | | | | | Send a request (which we can't handle yet) :-) Regards https://github.com/profanity-im/profanity/issues/660
* Fix use-after-free in stanza_create_caps_from_query_element()Dmitry Podgorny2020-04-091-4/+8
| | | | | | | | | The function creates a form to find such strings as software, os, etc. It remembers the strings allocated by form_create() and use them below in caps_create(). The issue is that the form is destroyed before and as result the strings are freed too. As solution, allocate own copy of strings.
* Fix memory leak in stanza_attach_correction()Dmitry Podgorny2020-04-051-0/+1
| | | | | | xmpp_stanza_add_child() takes own reference to the child stanza. Therefore we have to release our reference or the child is lost and not freed otherwise.
* Fix memleak in stanza_get_oldest_delayMichael Vetter2020-02-251-2/+14
| | | | We need to unref the temp datetimes again.
* xep-0308: Implement `/correct` to correct the last send messageMichael Vetter2020-02-101-0/+12
| | | | | | | | So far the correction is sent. But the UI in Profanity itself is not updated. Also autocompletion for `/correct` with the last sent message is missing.
* avatar: use unique id for stanza idMichael Vetter2020-02-071-3/+3
| | | | "retrieve1" should have been only for testing.
* fix: Initialize variable in stanza_get_oldest_delay()Michael Vetter2020-01-301-1/+1
|
* Fix error in stanza_get_oldest_delay()Michael Vetter2020-01-301-3/+3
| | | | Introduced in bf2e09feee1697c570fcfb9e1e44a8ec991bd196.
* muc: save oldest timestampMichael Vetter2020-01-301-1/+30
| | | | | | | | | | | | | | | | | | So far we saved the timestamp which also had the `from`. But we need this only to find out whether it's MUC history. For displaying we should use the oldest delay timestamp. Also in https://github.com/profanity-im/profanity/commit/61f66966ddfe8ebd8bae26dd7ff92d777004edda#diff-4926fd4577a336bd3eb240f8104a5c5bL837 a error was introduced. Before we saved the timestamp in all cases. And only if timestamp AND from was given we went into MUC history case. Normal timestamp saving was not done anymore only if it also had a from attribute. Regards https://github.com/profanity-im/profanity/issues/1254
* stanza: Refactor stanza_get_delay_from()Michael Vetter2020-01-301-26/+49
| | | | Have two helper functions one for XEP-0203 and one for XEP-0091.
* Fix typo in commentMichael Vetter2020-01-231-1/+1
|
* xep-0084: Download avatarsMichael Vetter2019-12-181-0/+31
| | | | | Proof of concept. Needs error checking, a nice interface, general cleanup..
* Fix stanza_get_child_by_name_and_from() strcmpMichael Vetter2019-11-141-1/+3
| | | | Fix https://github.com/profanity-im/profanity/issues/1227
* Add vim modelineMichael Vetter2019-11-131-0/+1
|
* Check for correct delay tag for muc timestampsMichael Vetter2019-11-131-12/+34
| | | | | | | | | | | | | https://github.com/profanity-im/profanity/issues/1190 had another issue: Sometimes servers send multiple </delay> and we just checked the first one we got and only used it if the 'from' attribute was fitting. However it could be that we actually wanted the second </delay> element and there the 'from' would have been right. So we need to loop through them until we get the one with the fitting 'from'. Fix https://github.com/profanity-im/profanity/issues/1190
* Fix stanza_get_child_by_name_and_ns() if no nameMichael Vetter2019-11-121-1/+3
| | | | Fix bug introduced in 68af0aad65d243e654866eac5a7cd728ee293aa0.
* _handle_groupchat(): get correct origin-id stanzaMichael Vetter2019-11-081-0/+18
| | | | | | | | | | | | | | | | | | The problem is that in _handle_groupchat() we look for STANZA_NS_STABLE_ID which will result in origin-id or stanza-id. It seems like prosody servers send origin-id first, so this worked in all my tests. But actually we cannot be sure of the order. So far we stopped after the first element was found. I only found xmpp_stanza_get_child_by_ns() and xmpp_stanza_get_child_by_name() in libstrophe. But we need a combination of both. So I created stanza_get_child_by_name_and_ns() for Profanity. I need to remember to upstream this to libstrophe later (if they really don't have such a function). Fix https://github.com/profanity-im/profanity/issues/1223
* Remove prefix from stanza idMichael Vetter2019-10-171-29/+29
| | | | | We sent `prof_prefix_uuid` as id. Where the prefix was also optional. We don't need this at all.
* Don't render (all) delayed messages as MUC historyHolger Weiß2019-08-201-0/+15
| | | | | | | | Double-check that a <delay/> tag on a groupchat message was actually added by the MUC service (rather than the sending client) before assuming it was received from the MUC history. Fixes #1173.
* Fix various OMEMO memleaksPaul Fariello2019-07-101-0/+9
|
* Update tests with new URLMichael Vetter2019-05-031-1/+1
| | | | https://github.com/profanity-im/profanity/issues/1085
* Update profanity URL in entity capabilities stanzaMichael Vetter2019-05-031-1/+1
| | | | Regards https://github.com/profanity-im/profanity/issues/1085
* Rework MUC reflected message filteringPaul Fariello2019-04-101-0/+15
| | | | | | | | | Reflected messages can't be filtered by nick only otherwise you might ignore messages comming from you on another devices. Consequently we maintain a list of sent messages id in mucwin. To be sure the id will be correctly reflected we use the origin-id stanza.
* Handle bundle publication error on publish-optionsPaul Fariello2019-04-101-8/+57
| | | | | We try to reconfigure node and publish again. If it fails again then we give up.
* Add support for disconnect in OMEMOPaul Fariello2019-04-101-4/+12
|
* Add publish option to OMEMO device list and bundlePaul Fariello2019-04-101-0/+39
|
* Add store hints for OMEMO encrypted messagesPaul Fariello2019-04-101-0/+12
| | | | | | | | | Store hints are required has some server might discard messages without body. Here we ensure OMEMO messages are stored on server and delivered to client when they connect back. It's really important since it avoid libsignal to desynchronize counters.
* Add support for encrypted carbonPaul Fariello2019-04-101-1/+1
| | | | Fix {signed,}_pre_key store
* Add signal store backend and OMEMO start commandPaul Fariello2019-04-101-0/+25
|
* Request for device list when OMEMO is readyPaul Fariello2019-04-101-0/+24
|
* Fix devicelist subscription and handle pubsub eventPaul Fariello2019-04-101-2/+2
| | | | Devicelist subscription can be done directly with caps_add feature.
* Add devicelist and bundle publicationPaul Fariello2019-04-101-2/+145
|
* Add devicelist subscriptionPaul Fariello2019-04-101-0/+25
|
* Update copyright to include 2019Michael Vetter2019-01-221-1/+1
|
* Fix optionnal sessionid in xep 0050Paul Fariello2019-01-211-1/+3
|
* Merge pull request #991 from paulfariello/feature/xep-0050Michael Vetter2018-09-271-1/+51
|\ | | | | Add support for xep 0050 ad-hoc commands, without multi-step
| * Add support for command config executionPaul Fariello2018-09-051-0/+25
| |
| * Handle simple executionPaul Fariello2018-09-051-1/+1
| | | | | | | | Tested with ping from biboumi
| * Add command subcommands: list and execPaul Fariello2018-09-051-2/+5
| | | | | | | | Also handle list result
| * Add command commandPaul Fariello2018-09-051-0/+22
| | | | | | | | Initial commit to test commands API
* | Move p_sha1_hash() to stanza.cMichael Vetter2018-09-061-1/+18
|/ | | | | | | | | | | | Move `p_sha1_hash()` from `common.c` to `xmpp/stanza.c` as it is only used in this file and now depends on libstrophe so xmpp is a better namespace folder. Renaming it as `_stanza_create_sha1_hash()`. And making static since only used here. The function cannot be tested in the unit tests anymore. Once functional tests are working again we should write a test for the sha1 functionality.
* Move ID generation to xmpp folderMichael Vetter2018-08-301-20/+20
| | | | | | | | | | | create_unique_id() was changed to use UUIDs instead of a counter in the last commit. Since now it depends on connection_create_uuid() which is in the xmpp subfolder the function should also be moved there. Renamed it to connection_create_stanza_id() and moved it to src/xmpp/connection.c. Discussion happened in https://github.com/boothj5/profanity/pull/1010
* Update copyrightJames Booth2018-01-211-1/+1
|
* Update CopyrightJames Booth2017-01-281-1/+1
|
* Free stanzas on stanza_create_http_upload_request()James Booth2016-09-051-0/+6
|
* Use hash table for bookmarksJames Booth2016-08-211-22/+21
|
* Use libstrophe xmpp_presence_new convenience functionJames Booth2016-08-201-15/+3
|
* Use libstrophe xmpp_iq_new convenience functionJames Booth2016-08-201-99/+57
|
* Use libstrophe xmpp_message_new convenience functionJames Booth2016-08-201-18/+10
|