1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-12-04 14:46:46 -05:00
Commit Graph

156 Commits

Author SHA1 Message Date
Michael Vetter
771dfab123 Start implementing XEP-0084
So far we just subscribe and get the IDs.
2019-12-18 10:17:10 +01:00
Michael Vetter
61f66966dd Check for correct delay tag for muc timestamps
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
2019-11-13 09:41:19 +01:00
Michael Vetter
68af0aad65 _handle_groupchat(): get correct origin-id stanza
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
2019-11-08 15:05:49 +01:00
Holger Weiß
3228ab47d3 Don't render (all) delayed messages as MUC history
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.
2019-08-20 17:51:26 +02:00
Paul Fariello
e69f947547 Rework MUC reflected message filtering
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.
2019-04-10 17:23:46 +02:00
Paul Fariello
562302846a Handle bundle publication error on publish-options
We try to reconfigure node and publish again.
If it fails again then we give up.
2019-04-10 17:23:45 +02:00
Paul Fariello
d8f0bcef94 Add publish option to OMEMO device list and bundle 2019-04-10 17:12:31 +02:00
Paul Fariello
36ce21fc6d Add store hints for OMEMO encrypted messages
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.
2019-04-10 17:12:31 +02:00
Paul Fariello
f9216fddb1 Add signal store backend and OMEMO start command 2019-04-10 16:03:50 +02:00
Paul Fariello
1f9d46037c Request for device list when OMEMO is ready 2019-04-10 16:03:50 +02:00
Paul Fariello
756fefb09a Fix devicelist subscription and handle pubsub event
Devicelist subscription can be done directly with caps_add feature.
2019-04-10 16:03:50 +02:00
Paul Fariello
1ae5d9f1f8 Add pubsub event callback
Also add generic message callback struct
2019-04-10 16:03:50 +02:00
Paul Fariello
fdc5f25f2d Add devicelist and bundle publication 2019-04-10 16:03:50 +02:00
Paul Fariello
bce1981128 Add devicelist subscription 2019-04-10 15:37:22 +02:00
Michael Vetter
706af9a900 Update copyright to include 2019 2019-01-22 11:31:45 +01:00
Paul Fariello
233e076be9 Add support for command config execution 2018-09-05 13:52:19 +02:00
Paul Fariello
925cd488c1 Handle simple execution
Tested with ping from biboumi
2018-09-05 13:50:59 +02:00
Paul Fariello
c9f6a78f57 Add command subcommands: list and exec
Also handle list result
2018-09-05 13:49:40 +02:00
Paul Fariello
ca022ec75e Add command command
Initial commit to test commands API
2018-09-05 13:42:28 +02:00
James Booth
250e972b7a Update copyright 2018-01-21 15:00:02 +00:00
James Booth
68a3daedb9 Update Copyright 2017-01-28 17:24:22 +00:00
James Booth
0886062806 Use hash table for bookmarks 2016-08-21 15:25:49 +01:00
James Booth
583fb2b8c6 Use libstrophe xmpp_presence_new convenience function 2016-08-20 20:37:48 +01:00
James Booth
45048e3ac8 Replace stanza_create_message with libstrophe convenience functions 2016-08-20 18:51:19 +01:00
James Booth
b26c961730 Move caps_create -> stanza_create_caps_from_query_element 2016-08-14 00:15:03 +01:00
James Booth
d5f14abd4e Move caps_create_sha1_str -> stanza_create_caps_sha1_from_query 2016-08-14 00:07:08 +01:00
James Booth
9cecef5609 Move caps_create_query_response_stanza -> stanza_create_caps_query_element 2016-08-13 23:43:54 +01:00
James Booth
0a57c4de78 Tidy headers 2016-07-24 15:43:51 +01:00
James Booth
e8fc80f5c1 Update GPL link in headers 2016-07-24 01:14:49 +01:00
James Booth
ccabc08fef Tidy xmpp headers 2016-05-04 01:19:51 +01:00
James Booth
b8c94376aa Add /blocked command 2016-05-01 19:39:39 +01:00
Dmitry Podgorny
efbf233c85 Define stanza's attributes as const char*
In most get-like funcitons libstrophe returns pointer to a string
that resides in an internal structure (e.g. xmpp_stanza_t). Hence,
Profanity must not change such strings. Define respective variables
as 'const char*' to reduce a chance of error and conform future
libstrophe's interface.

This patch mostly replaces 'char *' with 'const char*', but also
fixes two memory leaks after stanza_get_reason(). Add comment within
stanza_get_reason() to fix conflict with different allocator types.
2016-04-27 10:31:28 +00:00
Dominik Heidler
1b0ce852bb Implement XEP-0363: HTTP File Upload 2016-04-26 23:50:55 +02:00
James Booth
9b177a9e01 Removed #AX_PREFIX_CONFIG_H 2016-03-31 21:05:02 +01:00
James Booth
1f90aca503 Merge branch 'master' into plugins-c
Conflicts:
	src/main.c
	src/ui/console.c
2016-02-14 23:00:52 +00:00
James Booth
e53e94f1e2 Updated copyright 2016-02-14 22:54:46 +00:00
James Booth
41fe8c22b1 Added C plugin code from plugins branch 2016-02-14 22:28:55 +00:00
James Booth
c8a6bdb381 Applied coding style to src/xmpp/ 2015-10-26 00:14:23 +00:00
James Booth
26d160cae8 WIP: Added last activity request and response 2015-09-29 00:01:38 +01:00
James Booth
2b88e2f1bf Check for libmesode, fall back to libstrophe 2015-09-21 21:40:04 +01:00
Sam Whited
167ee28ec0 Add no-copy and no-store hints to OTR messages 2015-07-01 09:04:54 -05:00
James Booth
dd206ef637 WIP fix for #516, needs memory cleanup 2015-06-29 23:48:41 +01:00
James Booth
c36d4b3643 Merge branch 'master' into pgp 2015-03-29 02:51:05 +01:00
James Booth
1917d4c095 Added password to direct invites 2015-03-29 02:46:59 +01:00
James Booth
c1eceebcba Merge branch 'master' into pgp 2015-03-29 00:59:42 +00:00
James Booth
fac2b2cf66 Added check members only room to send mediated invites 2015-03-28 22:51:41 +00:00
James Booth
eb5cb7b2f8 Send encrypted messages 2015-03-24 23:34:24 +00:00
James Booth
475dfebd97 Added pgpkeyid account setting, send signed presence 2015-03-23 23:38:06 +00:00
James Booth
57c7564445 Show message received text for receipts 2015-03-11 23:47:11 +00:00
James Booth
78becceedb Added basic delivery receipts 2015-03-11 23:18:28 +00:00
James Booth
2ff6873cf1 Send private carbons element with message when encrypted 2015-03-10 21:16:34 +00:00
James Booth
945f29873e Merge remote-tracking branch 'oliverlemoal/xep-0280' into xep-0280 2015-03-08 21:51:50 +00:00
James Booth
b3be26a214 Updated copyright 2015-02-10 23:16:09 +00:00
Olivier LE MOAL
48f9f3b3b0 Add XEP-0280 support 2015-02-10 11:32:22 +01:00
James Booth
42a5c431c7 Use resource in chat sessions 2015-01-04 20:19:42 +00:00
James Booth
e263e00a85 Refactored parsing caps 2014-11-26 21:59:36 +00:00
James Booth
508bfeb2bf Refactored available presence handler 2014-11-26 21:07:46 +00:00
James Booth
77674beb7e Show occupants role/affiliation changes 2014-10-18 19:10:50 +01:00
James Booth
78a1556f12 Added jid autocomplete for affiliation commands 2014-10-06 22:59:25 +01:00
James Booth
965f048b18 Implemented setting and listing roles 2014-10-06 21:42:09 +01:00
James Booth
d12534c58e Implemented /room kick command 2014-10-05 20:52:34 +01:00
James Booth
ac7bc02c63 Added /room kick command 2014-10-05 03:52:55 +01:00
James Booth
7584ddaa62 Added /room subject command 2014-10-05 03:05:46 +01:00
James Booth
0b78a9a57e Implemented setting affiliation and listing affiliations 2014-10-04 23:40:36 +01:00
James Booth
58fb89ad33 Allow adding and removing room owners 2014-10-04 21:38:31 +01:00
James Booth
99c0b3f2cf wip - refactoring capabilities 2014-09-19 00:49:48 +01:00
James Booth
eba3a7cb30 Implemented /room config submit for saving room configuration 2014-09-10 23:05:35 +01:00
James Booth
5e1023dfd9 Parse data form for room configuration 2014-09-04 23:15:51 +01:00
James Booth
1e0e5597c2 Added /room config edit and /room config cancel 2014-09-04 22:29:57 +01:00
James Booth
4ba33cb13c Added /ping command 2014-09-04 01:08:10 +01:00
James Booth
aa9f1dfa06 Send room destroy iq on /room config cancel 2014-09-03 20:29:17 +01:00
James Booth
09c10f62f2 Send instant room request 2014-09-03 13:55:06 +01:00
James Booth
57effcd504 Show message when room requires config 2014-09-03 00:23:04 +01:00
James Booth
f9737251a6 Added license exemption for OpenSSL to source headers 2014-08-24 20:57:39 +01:00
James Booth
d2662a6f17 Refactored bookmarks to use option parser, allow bookmarking rooms with passwords 2014-05-10 00:50:43 +01:00
James Booth
d6e92f62dc Fixed cppcheck warnings 2014-04-26 00:36:36 +01:00
James Booth
2c15aba92a Chat room windows now created only after successful join 2014-04-21 00:37:04 +01:00
James Booth
5bb3fab17c Implemented "/bookmark add" for private storage
Issue #194
2014-04-13 01:01:53 +01:00
James Booth
26726b207a Updated copyright 2014-03-09 01:18:19 +00:00
Kristofer M White
8a54c5895d Adding password handling for joining chatrooms 2014-02-27 05:31:10 +00:00
James Booth
9394091f04 Implemented add bookmark for XEP-0223
Issue #194
2014-02-02 02:39:36 +00:00
James Booth
292ae567aa Handle recipient not found 2014-01-26 18:30:34 +00:00
James Booth
ae1ccc7bae Add generated id to messages 2014-01-26 01:07:11 +00:00
James Booth
107fdd355e Added simple mock test, refactored roster 2013-12-14 15:34:17 +00:00
Dmitry Podgorny
2837c4054f initial support of autojoin for MUC 2013-06-30 18:59:38 +03:00
James Booth
d5e9ca649d Show messages on /group add and /group remove
closes #189
closes #190
2013-06-23 17:38:30 +01:00
Dmitry Podgorny
c84cb17bd4 added support of captcha in a MUC 2013-06-09 16:19:49 +03:00
James Booth
01bdc6ae5a Added /roster remove command 2013-06-02 00:06:05 +01:00
James Booth
d017999a91 Add groups to roster contacts
fixes #175
2013-05-22 23:38:52 +01:00
James Booth
d300e8e763 Added /roster command with nick option to change handle 2013-05-19 02:07:01 +01:00
James Booth
90ac69beb3 Added /duck command to perform searches using duckduckgo chat bot 2013-05-05 02:31:04 +01:00
James Booth
81020e6d43 Added /invite for direct MUC invitations 2013-04-20 20:18:13 +01:00
James Booth
b6095ca955 Show message in console when receiving chat room invites 2013-03-24 21:46:00 +00:00
James Booth
8d2e0656b4 Refactor show and status stanza handling 2013-03-17 22:21:05 +00:00
James Booth
e2bc9bde74 Implemented output for /disco info 2013-03-14 23:41:36 +00:00
James Booth
31cd507d3c Added /disco command 2013-03-14 20:50:09 +00:00
James Booth
b960b76034 Added basic /rooms command to get chat room list 2013-03-13 23:38:26 +00:00
James Booth
bced3d4b36 Added autocomplete for /software command 2013-02-17 02:10:56 +00:00
James Booth
576be7921d Tidy up presence module 2013-02-10 23:29:37 +00:00
James Booth
e922568770 Added resource_presence_t and contact_presence_t 2013-02-10 17:13:19 +00:00