Michael Vetter
31a78e2629
ox: add logging prefix
2021-03-25 16:22:47 +01:00
Michael Vetter
f81ed759f5
stanza: guard mallocs
...
If this happens we have more serious problems :-)
But anyways..
2021-03-25 16:14:40 +01:00
Michael Vetter
d23c3dd065
stanza: simplify stanza_get_muc_destroy_alternative_room
2021-03-25 15:59:48 +01:00
Michael Vetter
caa2c7afd0
stanza: replae strcmp with g_strcmp0
...
since its NULL safe
2021-03-25 15:55:18 +01:00
Michael Vetter
1f96e14ce7
message: simplify _handle_headline
2021-03-25 15:43:57 +01:00
Michael Vetter
b2a02424ed
message: make _receipt_request_handler safer
2021-03-25 15:38:48 +01:00
Michael Vetter
099260a4e3
message: make _handle_receipt_received safer
2021-03-25 15:37:54 +01:00
Michael Vetter
2236242407
message: make _handle_groupchat safer
2021-03-25 15:36:17 +01:00
Michael Vetter
ca9c946ddc
message: simplify _handle_conference
2021-03-25 15:33:30 +01:00
Michael Vetter
2601fc5571
message: make _handle_form safer
2021-03-25 15:27:59 +01:00
Michael Vetter
b1bd1ecca8
message: make _message_handler safer
2021-03-25 15:26:16 +01:00
Michael Vetter
11382a8bf3
mesage: make _handle_ox_chat safer
...
And on the way fix a memleak
2021-03-25 15:20:53 +01:00
Michael Vetter
8a6d256fc1
message: make _handle_chat safer
2021-03-25 15:07:09 +01:00
Michael Vetter
ee87e5b036
message: make _handle_muc_private_message safer
2021-03-25 15:03:35 +01:00
Michael Vetter
d2dc440535
message: fix potential segfault in _receipt_request_handler
2021-03-25 11:56:38 +01:00
Michael Vetter
e396e863dd
message: safeguard _handle_receipt_received
...
This shouldnt be necessary since we check for the receipt outside
alreayd. Let's be on the safe side though in case code gets changed
later.
2021-03-25 11:54:59 +01:00
Michael Vetter
9cfe5ec787
message: reorder _handle_groupchat
2021-03-25 11:51:42 +01:00
Michael Vetter
96b228728e
message: fix possible segfault in _handle_conference
2021-03-25 11:43:42 +01:00
Michael Vetter
f21a99eaf8
message: fix possible segfault in _handle_muc_user
2021-03-25 11:38:22 +01:00
Michael Vetter
e656bdb83c
message: fix possible segfault in _message_handler
2021-03-25 11:34:14 +01:00
Michael Vetter
fde0a0d1c6
Add support to register with a room
...
`/affiliation register` can now be used to register a nickname with a
MUC.
Tested with a server without forms. Couldn't find a server which
supports forms yet.
Implements https://github.com/profanity-im/profanity/issues/1210
2021-03-25 11:05:58 +01:00
Michael Vetter
ebb1be9e58
form.c: fix memleak in form_tag_exists
2021-03-17 16:18:56 +01:00
Michael Vetter
5cec47c86a
Add support to approve MUC voice requests
...
A form will open. One can then use `/field4 on` `/form submit`.
Implements https://github.com/profanity-im/profanity/issues/1507
2021-03-17 16:16:59 +01:00
Thorben Günther
ec6f9df486
MUC: Add voice request
...
closes https://github.com/profanity-im/profanity/issues/1211
2021-03-12 14:57:00 +01:00
Michael Vetter
a7ecda7773
Merge pull request #1501 from xenrox/change-password
...
Add command to change password of logged in user
2021-03-11 18:18:03 +01:00
Thorben Günther
b0aea2bcff
Add command to change password of logged in user
2021-03-11 17:42:53 +01:00
Maximilian Wuttke
e217ed0b79
Update to the newest version of XEP 0363 (HTTP Upload)
...
Main changes:
1. Attributes instead of tags
2. Read the optional <header> tags and send them in the HTTP PUT header:
* Authorization
* Cookie
* Expires
Co-authored-by: Martin Dosch <martin@mdosch.de>
2021-03-11 17:11:22 +01:00
Maximilian Wuttke
2b1ada7722
[OMEMO]: Fix bundle publishing
...
Use the following options in `omemo_bundle_publish()`:
- "pubsub#persist_items" = "true"
- "pubsub#access_model" = "open"
The same options are also used in Gajim.
I've tested this on two different servers. The bundle was successfully
added as a new PEP node. Test cases:
1. Normal use on my main account
2. Log in into a fresh tesst account on a different server
3. `/omemo clear_device_list`. In this case, the client(s) may have to
be restarted.
Note: In `_omemo_bundle_publish_result`, there's a route that is taken
when the bundle publish stanza failed. In this case, the node is
configured manually, i.e. the access_model is set to 'open'. I have
manually tested this case, but this case didn't naturally occur for me.
Note: The option "pubsub#max_items=max" is REQUIRED for the bundle
publication, as per XEP-0384. However, this is not done in other clients
(I've checked the source code of Gajim and Conversations), and it is
also not supported by Prosody. Cf. <https://github.com/xsf/xeps/pull/988 >.
2021-03-09 17:48:29 +01:00
Maximilian Wuttke
68469149cd
Logging [OMEMO]
...
Also "handle" some errors in `_omemo_bundle_publish_configure` if the
stanzas can't be found
2021-03-09 17:47:43 +01:00
Maximilian Wuttke
4124856100
Variadic version of stanza_attach_publish_options
2021-03-09 17:47:37 +01:00
Maximilian Wuttke
8481698705
Logging [OMEMO]
2021-03-09 17:47:27 +01:00
Stefan
637c2c2d62
Logging [CONNECTION]
2021-03-09 17:47:22 +01:00
Michael Vetter
69e923df3b
Remove forgotten debug line
2021-02-15 09:58:37 +01:00
Michael Vetter
1435c7ae14
Use correct time for MAM messages
...
We need the delay value from the <forward> element.
Regards https://github.com/profanity-im/profanity/issues/660
2021-02-04 21:13:31 +01:00
Michael Vetter
c2ec3e7033
Enable error logging on MAM RSM
2021-01-28 14:44:53 +01:00
Michael Vetter
840238b126
Get MAM from last 7 days
...
Probably should make this configurable later.
2021-01-28 14:44:53 +01:00
Michael Vetter
d3303517f7
MAM: Request more pages via RSM
...
Send another request with same jid and last id we got.
2021-01-28 14:44:53 +01:00
Michael Vetter
6e1e01dbb8
Adapt MAM RSM code to latest functions
...
Some functions changed in the meantime.
stanza_get_child_by_name_and_ns() got dropped and
xmpp_stanza_get_child_by_name_and_ns() from newer libstrophe is used.
2021-01-28 14:44:53 +01:00
Michael Vetter
db65255a5a
wip: add rsm after we get the first couple of mam messages
2021-01-28 14:44:53 +01:00
Michael Vetter
69e35e86b2
mam: Use correct ID in rsm handler
...
Thanks to DebXWoody for the help.
2021-01-28 14:44:53 +01:00
Michael Vetter
d06ca64098
mam: fix logging message
2021-01-28 14:44:53 +01:00
Michael Vetter
014e03c72e
Start working on MAM RSM to get more pages
...
Regards https://github.com/profanity-im/profanity/issues/660
2021-01-28 14:44:35 +01:00
Michael Vetter
8c08e64f37
Update copyright
2021-01-08 16:36:30 +01:00
Michael Vetter
881b99c062
Remove not needed include
2020-12-16 14:46:01 +01:00
Michael Vetter
a94378f206
Fix various typos
2020-12-10 09:24:32 +01:00
Michael Vetter
35aecd425f
Declare counter var inside loop
...
We require c99/gnu99 anyways.
2020-11-09 11:33:33 +01:00
Michael Vetter
3b3c9bf4d5
Print all error stanzas
...
Regards https://github.com/profanity-im/profanity/issues/1435
So far we didn't print the error if it contained `<error
type="cancel">`. It appears that the code always thought this is a
service-not-available (so one is either blocked or the account doesn't
exist) and printed `Recipient not found`.
But there can be other errors as well. Like in above mentioned issue
`not-allowed`.
Let's just print the text.
In case of the cancel type we still remove the jid from the chat
sessions. I'm not entirely sure whether this needs to be done in other
cases too.
2020-10-30 15:09:40 +01:00
DebXWoody
15f45fcfe1
Fixed Date format for MAM request
...
Using g_date_time_new_now_utc instead of g_date_time_new_now_local
Using g_date_time_format(timestamp, "%FT%TZ") instead of "%FT%T%:::z"
Edit:
DebXWoody created this patch because ejabberd returned an error with the
old date format.
2020-10-28 09:06:49 +01:00
Dmitry Podgorny
3a86b997ca
xmpp/bookmark: don't use uninitialised field
...
When a bookmark is created with '/bookmark add' command,
ext_gajim_minimize remains uninitialised in new bookmark object and
is read further in _send_bookmarks().
Initialise the field with 0.
Fixes #1432 .
2020-10-19 00:00:00 +03:00
Philipp Klaus Krause
6a276e74e3
Since the string from strerror should never be modified, use const.
2020-10-14 09:52:26 +02:00
Michael Vetter
4d4c094b5f
Enable _handle_ox_chat() payload/body decryption
...
This part of the code was waiting for xmpp_stanza_new_from_string() from
libstrophe 0.10.0.
2020-10-09 09:38:47 +02:00
Michael Vetter
17b1b431f5
Replace stanza_get_child_by_name_and_ns with xmpp_stanza_get_child_by_name_and_ns
...
Replace our own stanza_get_child_by_name_and_ns() with the upstreamed
xmpp_stanza_get_child_by_name_and_ns() provided by the new
libstrophe/libmesode 0.10.0.
2020-09-30 19:41:08 +02:00
Michael Vetter
0a9200e268
Require libstrophe/libmesode 0.10.0
2020-09-30 19:30:40 +02:00
Dmitry Podgorny
7553676b40
Fix memory leak in _handle_chat()
...
jid_create() for attribute "to" was called twice and the 1st object was
lost.
2020-08-07 00:47:45 +03:00
Michael Vetter
8852db03d6
Parse stanza-id
...
Add stable stanza IDs to ProfMessage struct.
We parse this for 1:1 messages (MUC needs to be done too).
<stanza-id> for live messages
<result id="x"> for MAM messages
Regards MAM: https://github.com/profanity-im/profanity/issues/660
Regards Stable IDs: https://github.com/profanity-im/profanity/issues/1207
2020-07-23 14:21:27 +02:00
Michael Vetter
d7b7f54782
ox review: Use english not german
2020-07-10 13:41:48 +02:00
DebXWoody
0552e50c78
OX: XEP-0373: OpenPGP for XMPP - Version 0.5.0 (2020-06-19)
...
Discovering Public Keys via PEP
* 4.3 Discovering Public Keys of a User
* 4.4 Requesting Public Keys
* Import Public Keys into GnuPG's local keyring.
Issue: #1331
2020-07-10 13:40:00 +02:00
Michael Vetter
a2726b6a7d
Apply coding style
2020-07-07 14:18:57 +02:00
Michael Vetter
bddbfa58c0
OX: Fix tests
...
Fix:
```
/usr/bin/ld: src/xmpp/ox.o: in function `ox_announce_public_key':
src/xmpp/ox.c:90: undefined reference to `p_ox_gpg_readkey'
```
2020-07-07 14:07:38 +02:00
Michael Vetter
a4cadf78fa
Revert "Apply coding style"
...
This reverts commit 9b55f2dec0
.
Sorting the includes creates some problems.
2020-07-07 13:53:30 +02:00
Michael Vetter
9b55f2dec0
Apply coding style
...
Regards https://github.com/profanity-im/profanity/issues/1396
2020-07-07 09:43:28 +02:00
DebXWoody
5a17957253
OX: Announce public key on PEP
...
src/pgp/gpg.c:p_ox_gpg_readkey
Used to read a public key from a file. The function will return the fingerprint
of the file and the base64 encoded key.
src/xmpp/ox.[hc]
ox_announce_public_key(const char* const filename) can be called from the /ox
announce <filename> command. The key within the file will be pushed on PEP and
the Metadata node will be set.
Issue: #1331
2020-07-06 13:19:18 +02:00
Michael Vetter
bf170d6c91
Merge branch 'omemofix'
2020-07-04 17:38:44 +02:00
DebXWoody
54667c022f
Messages are not shown in ChatSecure
...
In 0.9.x we fixed an issue, because OMEMO devices should be defined in "item"
with id "current". This should work, but it won't work if there is no "current".
If there is no "current" we will just use the first item.
Issue #1384
2020-07-04 17:38:30 +02:00
Michael Vetter
aecbeff8ba
message.c: Use message->to_jid instead of to_jid
...
This one will always be set.
2020-07-03 18:04:07 +02:00
Michael Vetter
b1343cd3ac
message.c: _handle_carbons() check from field outside of function
...
So that we don't have to pass the wrapping stanza and can handle
the error nicer.
2020-07-03 17:55:15 +02:00
Michael Vetter
896e6c4e87
message.c: Dont duplicate code in _handle_carbon and _handle_chat
...
Trying to simplify the conditions so we don't have duplicate code
in both of those functions.
2020-07-03 17:51:42 +02:00
Michael Vetter
8ce299838d
message.c: Remove from/to setting out of condition
...
Since its done in both cases.
2020-07-03 16:38:05 +02:00
Michael Vetter
0412ec9662
message.c: Small code improvements
2020-07-03 16:26:33 +02:00
Michael Vetter
c66d3c6389
message.c: Put XEP-0085 code in helper function
2020-07-03 16:17:18 +02:00
Michael Vetter
14f33e54f6
Change formatting
2020-07-03 12:35:48 +02:00
Michael Vetter
8d8ef675cd
handle_headline(): Free text correctly
2020-07-03 12:05:46 +02:00
Stefan Kropp
3640900cf6
Handle headline stanza
...
Authored by DebXWoody in:
https://github.com/profanity-im/profanity/pull/1369
Regards: https://github.com/profanity-im/profanity/issues/1366
Since I'm in the process of cleaning up message.c I take this now
so he doesn't have to rebase.
I also omitted the _handle_normal() case since I'm not sure that would
be correct.
Probably will be addressed again when continuing the cleanup.
2020-07-03 12:02:41 +02:00
William Wennerström
d5aae08c41
Fix messages with receipt request not displayed
...
Messages from Conversations contains:
<request xmlns='urn:xmpp:receipts'/>
And would not be displayed in Profanity as it never reached
_handle_chat(..).
2020-07-02 20:50:26 +02:00
Michael Vetter
83ed9ba24b
message.c: Put plugin handler code in helper function
2020-07-02 17:53:28 +02:00
Michael Vetter
6be5b51a46
message.c: Log invalid message type
...
So far we logged when we receive a message without a type. Which is
actually quite common and makes no sense.
2020-07-02 17:47:07 +02:00
Michael Vetter
46a00317ee
message.c: Check for message type
...
RFC 6121 allows only few types.
So we can also remove that check in _handle_chat().
2020-07-02 17:40:58 +02:00
Michael Vetter
19d9e80a79
message.c: Remove handled cases form _handle_chat()
...
Both cases are tested before entering that function.
2020-07-02 17:32:14 +02:00
Michael Vetter
d9cfa2e48a
message.c: Break out of _message_handler() after handling code
...
AFAIK it can only be one.
Except at STANZA_NS_MUC_USER which is used in several cases.
2020-07-02 17:31:56 +02:00
Michael Vetter
ad3dd72325
Add HEADLINE stanza define
2020-07-02 17:17:28 +02:00
Michael Vetter
b14b711492
message.c: Parse incoming message stanzas according to type
2020-07-02 17:15:42 +02:00
Michael Vetter
728cb55b68
message.c: Add pubsub helper function
2020-07-02 16:48:57 +02:00
Michael Vetter
f2b415079a
message.c: Add XEP information
2020-07-02 16:37:20 +02:00
Michael Vetter
1f50647865
message.c: Add my copyright
2020-07-02 15:22:58 +02:00
Michael Vetter
3350139ed0
message.c: Make several functions static
2020-07-02 15:21:54 +02:00
Michael Vetter
10190b5fb0
message.c: Adjust function formatting
2020-07-02 15:20:17 +02:00
Michael Vetter
e5ac12afa6
Remove prefs_free_string()
...
It just does a free.
Related to b580b9ef11
2020-07-02 11:34:12 +02:00
Michael Vetter
8de6a7bfb0
And ifdefs around new OX functions
...
Fix for some build cases introduced in 2c94ee5a88
Fix https://github.com/profanity-im/profanity/issues/1376
2020-06-30 11:10:27 +02:00
DebXWoody
2c94ee5a88
Feature request - XEP-0373: OpenPGP for XMPP (OX)
...
Basic implementation of XEP-0373: OpenPGP for XMPP.
https://xmpp.org/extensions/xep-0373.html
Command /ox
Issue: #1331
2020-06-29 19:05:41 +02:00
Dmitry Podgorny
409bbd6f2d
Fix possible segfault in xmpp/message.c
...
Check for pointer to be NULL before dereferencing it.
2020-06-16 17:52:01 +03:00
Michael Vetter
914c6752dd
Fix reading/writing linked files
...
"base" was not really base but the filename :-)
Fix https://github.com/profanity-im/profanity/issues/1362
2020-06-13 15:02:43 +02:00
Dmitry Podgorny
424918c5ed
Make legacy auth optional
...
Some systems don't provide recent libstrophe releases. When older
version of libstrophe is detected, don't build legacy auth support.
To simplify this patch, report about unsupported legacy auth and
keep commands option as is.
2020-06-11 02:51:07 +03:00
Dmitry Podgorny
ac410445af
Add option for legacy authentication
...
New options:
/connect <account> [auth default|legacy]
/account <account> set auth default|legacy
Fixes #1236 .
2020-06-05 11:37:51 +03:00
Pierre Mazière
d92c576aa5
Get output and error streams from the command spawned by external_call()
...
Signed-off-by: Pierre Mazière <pierre.maziere@gmx.com>
2020-06-03 13:09:29 +02:00
Michael Vetter
e19bf0e303
Merge branch 'bugfix/1329'
2020-05-29 10:29:20 +02:00
Michael Vetter
24e8243a98
_omemo_receive_devicelist() use if/else
2020-05-29 10:28:41 +02:00
Michael Vetter
8d9cbef1e3
Merge pull request #1343 from DebXWoody/bugfix/1333
...
Incoming iq stanza - Reset the autoping timer
2020-05-29 10:21:51 +02:00
Michael Vetter
d4692b1b2d
Fix carbon logging
...
Regards https://github.com/profanity-im/profanity/issues/1342
2020-05-27 22:06:04 +02:00
Michael Vetter
de8975c008
Add and use connection_get_barejid()
...
Instead of connection_get_fulljid() and then creating a Jid from it.
2020-05-25 13:04:19 +02:00
Michael Vetter
a2af4c3184
Fix memleak in bookmark minimize
...
Introduced in 36f2569e53
2020-05-24 13:35:09 +02:00