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

5134 Commits

Author SHA1 Message Date
Michael Vetter
4a0d1d2108 Fix formatting for invite command help 2019-11-05 22:17:22 +01:00
Michael Vetter
c1a9736232 Merge /invite, /invites and /decline commands
`/invite <contact>` became `/invite send <contact>.
`/invites` became `/invite list`.
`/decline` became `/invite decline`.

Accept is still done via `/join`.

Regards https://github.com/profanity-im/profanity/issues/1116
2019-11-05 22:06:19 +01:00
Michael Vetter
40dc5932f7 Add /titlebar show presence command
Additionally to `/presence titlebar on` we now allow the setting via
/titlebar show|hide presence` since it's about the titlebar.

Regards https://github.com/profanity-im/profanity/issues/1116
2019-11-05 21:06:07 +01:00
Michael Vetter
68843f2448 Display resource information in /titlebar 2019-11-05 21:01:30 +01:00
Michael Vetter
3d272f02bc Add /titlebar show resource command
Additionally to `/resource titlebar on` we now allow the setting via
/titlebar show|hide resource` since it's about the titlebar.

But makes sense to have it in `/resource` too because there is
`/resource message on|off` too. And this one doesnt have an setting of
it's own.

Regards https://github.com/profanity-im/profanity/issues/1116
2019-11-05 20:51:27 +01:00
Michael Vetter
fc6f2755c1 Move /encwarn command into /titlebar
Instead of `/encwarn on|off` we now have `/titlebar show|hide encwarn`.

Regards https://github.com/profanity-im/profanity/issues/1116
2019-11-05 20:39:33 +01:00
Michael Vetter
ba0f925222 Fix add_history usage in down arrow handler
[Programming with GNU
History](http://www.math.utah.edu/docs/info/hist_2.html) mentions
using_history().

Chet, maintainer of readline told me about it. (Thanks Chet!)

Seems like we need to call this so that the history offset is at the
right end of the list. I assume it's called in the linehandler
automatically.

Fix https://github.com/profanity-im/profanity/issues/200
2019-11-05 17:19:51 +01:00
Michael Vetter
330ef3bcf3 Store current input line in history
Regards https://github.com/profanity-im/profanity/issues/200

This doesn't work yet. And I have no idea why.
Weird behaviour:

- start profanity
- type 'ASDF'
- ctrl+arrow down
-> text vanishes (like intended)
- arrow up
-> nothing happens (intended is that the last history item [ASDF]
appears)

- type 'ABC'
- press enter
- arrow up
-> ABC appears
- enter

- type 'UUU'
- ctrl+arrow down
- type 'ZZZ'
- enter
- arrow up
- ZZZ appears
- arrow up
- UUU appears

So in the latter case we added to history and deleted from the input
line and then immediately entered new text and pressed enter, to add
this to the history too.
When we do this the not sent text succesfully was stored in history.
2019-11-05 17:18:42 +01:00
Michael Vetter
643d12af44 Move tls show to titlebar command
Previously we had `/tls show on|off` to manipulate the UI setting for
the title bar. To decide whether to show TLS info there or not.

This should go into `/titlebar`.

Now we have `/titlebar show|hide tls` for this.

Regards https://github.com/profanity-im/profanity/issues/1116
2019-11-05 13:48:26 +01:00
Michael Vetter
8d2b1b05e7 Initialize ProfBufEntry->id correctly 2019-11-01 18:31:19 +01:00
Michael Vetter
bc282ef569 Move id from DeliveryReceipt to ProfBuffEntry struct
XEP-0184: Message Delivery Receipts, *requires* the id attribute.
Generally this is not the case.
For this reason the id was only present in the DeliveryReceipt struct
since it was only used for XEP-0184.

For https://github.com/profanity-im/profanity/issues/660 XEP-0313 MAM
and https://github.com/profanity-im/profanity/issues/805 XEP-0308 Last Message Correction
we will also need the id.

So in preparation for further work let's move the id to the general
ProfBuffEntry.

We will need to adapt code so that we actually always write the ID if we
receive one.
2019-11-01 17:53:59 +01:00
Michael Vetter
d5212d8593 Remove not needed if blocks 2019-11-01 17:35:17 +01:00
Michael Vetter
f71de61b9d Don't override ProfMessage Id with origin-id
Profanity sends the same value for both. Other clients might not.
Safe both since we could need them later.

Once we implement Last Message Correction we will need the regular id.
If we override it with origin-id and another client chooses to not use
the same value for id and origin-id then we can't interpret the id sent
with the LMC request correctly.
2019-10-31 13:45:44 +01:00
Michael Vetter
4ecd4dea6a Replace sent_messages list with algo
For OMEMO we had a list with our sent messages.
It was used so that we don't decrypt our own messages in MUCs that come
in via reflection.

Recently for https://github.com/profanity-im/profanity/pull/1209 we
started to use origin-id and use an algorithm so we can detect our own
sent messages via checking origin-id.

Profanity uses the same id for the message ID and origin-id.

With 06f300a42c we added the
message_is_sent_by_us() function.

We implemented XEP-0359 this way to fix
https://github.com/profanity-im/profanity/issues/1201 so that we don't
log our own messages in MUCs twice.

We can now check whether the message was sent by us using this function
and can get rid of the list.

Probably we could also put many parts of the sv_ev_room_message()
function inside (else) part of `if (!(g_strcmp0(mynick,
message->jid->resourcepart) == 0 && message_is_sent_by_us(message))) {`.

Have to look more closely whether any of this needs to be run in case
the message actually comes from us.
2019-10-31 12:56:48 +01:00
aszlig
b1e960cfae
omemo: Check stanza names when iterating nodes
Some clients (eg. PSI) are sending the stanzas delimited by whitespace
text nodes, which will fail while looping through the <prekeys/>
children and also print weird errors when iterating through the <list/>
of devices.

When debugging this, I was looking at the XML of Gajim and PSI and first
was somehow confused why Profanity printed "OMEMO: received device
without ID" while the XML looked identical (minus the actual IDs and the
JIDs of course).

However, Gajim was sending the XML without whitespace nodes in between
and PSI did not, so for example the following (with the relevant
whitespace nodes marked with X):

  <message type="headline" to="..." from="...">
    <event xmlns="http://jabber.org/protocol/pubsub#event">
      <items type="headline" node="eu.siacs.conversations.axolotl.devicelist">
        <item id="...">
          <list xmlns="eu.siacs.conversations.axolotl">
          X <device id="..."/>
          X <device id="..."/> X
          </list>
        </item>
      </items>
    </event>
    <delay xmlns="urn:xmpp:delay" stamp="..." from="..."/>
  </message>

... would result in three times the "OMEMO: received device without ID"
error, because we actually have three XML text nodes here that obviously
don't have an "id" attribute.

Now since the <list/> children above aren't really a problem and only
annoying, text nodes in the <prekeys/> stanza actually cause
omemo_start_device_session_handle_bundle to return failure.

I've fixed this by explicitly matching the stanza names we are
interested in, skipping everything else.

Signed-off-by: aszlig <aszlig@nix.build>
Reported-by: @devhell
2019-10-29 23:10:07 +01:00
Michael Vetter
900426025e Put ifdef around tray.h functions
Only define in case we built with GTK support.
2019-10-29 21:03:39 +01:00
Michael Vetter
f5afedd171 Remove not neede gtk_init() in tray.c
gtk_init_check() already has that functionality.
2019-10-29 21:00:56 +01:00
Michael Vetter
81253cd2ca Remove comments 2019-10-29 20:59:54 +01:00
Michael Vetter
5d6cb3c741 Dont use clipboard_init yet
For now we initialize gtk in tray_init().
Should maybe use a general function and check in tray_init and
clipboard_init whether gtk was already initialized.
2019-10-29 15:20:57 +01:00
Michael Vetter
291f9de1e9 Send clipboard via /paste
New command `/paste` that sends the clipboard in MUC, Chat etc windows.

Fix https://github.com/profanity-im/profanity/issues/156
2019-10-29 15:20:57 +01:00
Michael Vetter
b46dbcc363 Add clipboard feature
Use GTK to take the text from the clipboard.
Add `/paste` command which pastes this text now to console window.
2019-10-29 15:20:57 +01:00
Michael Vetter
aa0c638394 Update chat_log_pgp_msg_out() usage
Fix build
2019-10-29 15:20:24 +01:00
Michael Vetter
5a0a6c97e2 Two carbon logging changes
Add resourcepart to the outgoing carbon that is logged, so we use the
correct filenames for MUC PMs.

Dont log incoming carbons of MUC PMs as a workaround to faulty server
behaviour.

See https://wiki.xmpp.org/web/Multi-Session_Nicks#Private_Messages under
'Client-side workaround behavior'.

Regards https://github.com/profanity-im/profanity/issues/1214
2019-10-29 11:46:01 +01:00
Michael Vetter
9788410aaf Also log sv_ev_delayed_private_message 2019-10-29 10:52:11 +01:00
Michael Vetter
7dd747b58d Set mucuser in carbon case
Also we initialize mucuser properly.

Now in case of a carbon of a MUC PM we sv_ev_incoming_carbon() which
calls _sv_ev_incoming_plain() and then we log it via chat_log_msg_in()
in there.
But we also get the sv_ev_incoming_private_message() and call
chat_log_msg_in() in there too. So the incoming message get's logged
twice.
2019-10-29 10:41:07 +01:00
Michael Vetter
8c8c18c6fd Actually log MUC PM messages
If I'm not mistaken MUC PMs have not been logged at all if there was no
other client sending carbons.
This should add MUC PM logging functionality.

We still need to make sure carbons log to the same file.

Regards https://github.com/profanity-im/profanity/issues/1214
2019-10-28 23:36:42 +01:00
Michael Vetter
f186eb94da Remove not neede free
It's in the def == NULL case. So will always be noop.
2019-10-25 14:06:03 +02:00
Michael Vetter
6a88af6bc6 Remove /leave command
We have `/close` which does the same and more.

Regards https://github.com/profanity-im/profanity/issues/1116
2019-10-22 15:33:54 +02:00
Michael Vetter
22bf281399 Make prof_identifier const 2019-10-22 12:47:32 +02:00
Michael Vetter
6b75848f96 Display ownership of connection_get_profanity_identifier 2019-10-22 12:04:16 +02:00
Michael Vetter
ba18752405 Use UUID in origin-id and id
Let's use UUID to have a more random string then just 10 alphanumeric
values.
2019-10-22 11:10:37 +02:00
Martin
b16426f66d Change default text colors to default (#1213)
Change default themes text color

Using "default" instead of white makes the default better readable
when using a black/dark font on white/light background.

May fix #535
2019-10-22 08:13:39 +02:00
Michael Vetter
2292f15633 Make sure date vars are initialized 2019-10-21 16:19:35 +02:00
Michael Vetter
40d9dcae87 Properly display chatwin history
So far if one had enabled `/history` and did `/msg somenick` the history
was loaded from file and displayed like this:

```
04-04-17 15:23 - 3/4/2017:
01-01-00 10:30 - me: ....
01-01-00 10:31 - somebody: ....
01-01-00 10:32 - somebody: ....
```

So the first line contained the actual date. But the date used in each
line was always 01-01-2000. This date was for some reason hardcoded.

This commit now actually uses that date to build the proper GDateTime
instead of just printing it.

Fix https://github.com/profanity-im/profanity/issues/922
2019-10-21 15:26:40 +02:00
Michael Vetter
ef19b45e64 Remove old comment
It's not up to date.
Some time ago we changed from individual handlers to general ones.
2019-10-21 10:28:29 +02:00
Michael Vetter
c4a52b13e8
Merge pull request #1209 from jubalh/feature/xep-0359
XEP-0359
2019-10-21 09:56:15 +02:00
Michael Vetter
963ab841b4 Set prof_ident to NULL after free
This caused the bug mentioned in the PR comment:

```
It seems with the changes done here we get a crash in: src/xmpp/message.c message_handlers_init() when looking up handlers: ProfMessageHandler *handler = g_hash_table_lookup(pubsub_event_handlers, curr->data);.

Steps to reproduce:

    open Profanity and connect
    /autoping set 10
    /autoping timeout 10
    stop WiFi/connection
    wait for Lost connection
    restart wifi
    /connect
```
2019-10-21 09:50:13 +02:00
Michael Vetter
8a5932b251 Rename _calculate_identifier to _compute_identifier 2019-10-20 00:01:19 +02:00
Michael Vetter
db4b55eee0 Rename random_bytes to profanity_instance_id 2019-10-19 23:27:19 +02:00
Michael Vetter
31014b5e51 Fix which message we want to log 2019-10-19 23:24:33 +02:00
Michael Vetter
2a4d1b8410 Free hmac and msgid 2019-10-19 08:18:37 +02:00
Michael Vetter
f190d2c5f2 Free prof_identifier in case of reconnect
Bedore we assign it new.
2019-10-19 07:40:59 +02:00
Michael Vetter
c3912df05b Move ProfMessage and message_is_sent_by_us to xmpp
Not meant for internal usage only.
2019-10-19 06:36:47 +02:00
Michael Vetter
4d7a496ae2 Change origin-id/id algo
Hash twice.
Use HMAC SHA256 from glib.
2019-10-18 16:12:26 +02:00
Michael Vetter
06f300a42c Move message sent by us logic in own function 2019-10-18 14:50:25 +02:00
Michael Vetter
dfead6415f sv_ev_room_message: log in all cases if not our client
Forgot to check what happens if the length is <= 10.
2019-10-18 11:59:39 +02:00
Michael Vetter
f7474cd72c sv_ev_room_message: check if message->id is not NULL 2019-10-18 11:43:30 +02:00
Michael Vetter
5c6f5ba0f7 Add connection_get_profanity_identifier stub
And move defintion to xmpp.h
2019-10-18 11:23:30 +02:00
Michael Vetter
33083662d1 Add XEP-0359 to capabilities
We implement </origin-id> from [XEP-0359](https://xmpp.org/extensions/xep-0359.html).
We already had this implemented for OMEMO. And now use it to check
whether MUC messages were sent from us
(https://github.com/profanity-im/profanity/issues/1201).

We don't implement </stanza-id> yet, but probably need to do so for MAM.

Anyways let's flag this as implementing the XEP.

Fix https://github.com/profanity-im/profanity/issues/1207
2019-10-18 10:46:06 +02:00
Michael Vetter
430b2eaa0d Log incoming MUC messages if origin-id sais they dont come from us
Regards https://github.com/profanity-im/profanity/issues/1201
2019-10-18 10:40:24 +02:00
Michael Vetter
53640f6e97 Remove prefix from stanza id
We sent `prof_prefix_uuid` as id. Where the prefix was also optional.
We don't need this at all.
2019-10-17 15:40:40 +02:00
Michael Vetter
827af999b7 Change algo for connection_create_stanza_id() 2019-10-17 15:32:46 +02:00
Michael Vetter
8f5d1751b2 Change connection_create_stanza_id()
To return identifier and uuid together.
We can remove the prefix later on.
2019-10-17 09:23:11 +02:00
Michael Vetter
708bc83870 Calculate identifier upon connect
This will be needed so that we can later detect if messages (origin-in)
was sent by us.

Regards https://github.com/profanity-im/profanity/issues/1207
2019-10-16 15:53:28 +02:00
Michael Vetter
ee0541a262 Rename identification file 2019-10-16 10:54:05 +02:00
Michael Vetter
46f0304f89 Use random string for random-bytes identifier
And rename `instance` to `identifier`.

Regards https://github.com/profanity-im/profanity/issues/1207
2019-10-16 10:45:41 +02:00
Michael Vetter
f9eb302a59 Move code from jid_random_resource() into own function
Move the code that creates a random string into it's own function
+get_random_string().
2019-10-16 10:39:35 +02:00
Michael Vetter
1e09a055ca Create random-bytes file
So far only with dummy value.
We will need an identifier that we can hash together with a message ID
and put in as the origin-id.
So when we receive message we can unsplit it and see if it was sent from
this client.

Regards https://github.com/profanity-im/profanity/issues/1207
2019-10-16 10:17:34 +02:00
Dmitry Podgorny
69bba3ea4e plugins/python: fix double _XOPEN_SOURCE definition
ncursesw defines _XOPEN_SOURCE macro via command-line. In particular, it
is defined in ncursesw.pc and extracted via pkg-config. From other side,
Python defines the same macro unconditionally in pyconfig.h. Python-3.x
defines the macro with value different than ncursesw does. In turn, this
causes a warning that the macro is redefined. And warnings are treated
as errors.

Since both entities define the mecro unconditionally, we can't simply
reorder headers as Python developers suggest. So, undefine the macro
just before the <Python.h> to fix this silly issue.
2019-10-15 12:30:38 +00:00
Michael Vetter
d0c3d3fd6b Null-set account struct
Surpresses the valgrind warning about uninit. values.
2019-10-14 11:35:18 +02:00
Dmitry Podgorny
6d11cd2db3 Fix memory leak in cmd_join()
room is either argv[0] or allocated by GString. We have to free memory
in the 2nd case. Replace argv[0] with g_strdup(argv[0]) in order to
make unconditional g_free().
2019-10-14 00:19:08 +03:00
Michael Vetter
5c53e02d86 Add option to hilight unread rooms in /wins command
In the theme we can now set `cmd.wins.unread` to hvae a special color
for the lines of the `/wins` output that have unread messages.

Fix https://github.com/profanity-im/profanity/issues/895
2019-10-12 13:03:14 +02:00
Michael Vetter
87b66d0816 Make cmd_account safer 2019-10-10 18:06:28 +02:00
Michael Vetter
d3dd95963e Sort includes in python_api.c 2019-10-07 15:53:17 +02:00
Michael Vetter
b3ed213668 Improve MUC 1:1 logging
If we get a private message from a user in a MUC profanity shows this
like:
`profanity@roomsASDF.dismail.de/Martin: Hi`

This was so far logged at:
`~/.local/share/profanity/chatlogs/my-account-at-server/profanity_at_rooms.dismail.de/2019_09_04.log` as:

```
10:48:13 - profanity@rooms.dismail.de: Hi
```

So the nickname was not saved anywhere. This is due to us not knowing
whether we got a regular message from user@server.org/resource or a MUC
PM from room@server.org/user.

We now check for `<x xmlns='http://jabber.org/protocol/muc#user' />` and
add the resourcepart to the logging if we get it.

The file will be created at
`~/.local/share/profanity/chatlogs/my-account-at-server/profanity_at_rooms.dismail.de_nick` and look like:

```
23:59:43 - nick: Hi
```

Fix https://github.com/profanity-im/profanity/issues/1184
2019-10-07 00:05:37 +02:00
Michael Vetter
f1d31e024c Fix typo handel -> handle 2019-10-06 23:00:08 +02:00
Michael Vetter
7684cf64f0 Revert "Fix memleak in cmd_join"
This reverts commit 1746f5f8a8.
2019-10-06 22:44:35 +02:00
Michael Vetter
147be3afdf Don't log own messages on incoming MUC
`sv_ev_room_message()` called `groupchat_log_msg_in()` to log all
incoming MUC messages.

`cl_ev_send_muc_msg()` calls `groupchat_log_msg_out()`.

So messages sent by the user himself was logged two times.

Filter the incoming messages and only log the ones not from our occupant
jid/nick.

Fix https://github.com/profanity-im/profanity/issues/1201
2019-10-06 22:32:58 +02:00
Michael Vetter
7d7997e93c Add account clear example to help
Give example on how to clear pgpkeyig.
2019-10-06 20:46:50 +02:00
Michael Vetter
9b3517c21e Free strings in autocomplete_param_no_with_func
Regards https://github.com/profanity-im/profanity/issues/1019
2019-10-06 19:05:27 +02:00
Michael Vetter
94b401ab96 Fix invalid read in muc code
We didn't set the variables to NULL, but the rest of the code depends on
this check.
```
==22201== Invalid read of size 8
==22201==    at 0x44E560: autocomplete_clear (autocomplete.c:69)
==22201==    by 0x427B2C: muc_invites_clear (muc.c:190)
==22201==    by 0x461328: ev_disconnect_cleanup (common.c:59)
==22201==    by 0x463FB5: cl_ev_disconnect (client_events.c:91)
==22201==    by 0x431252: cmd_disconnect (cmd_funcs.c:1234)
==22201==    by 0x47E883: clears_chat_sessions
(test_cmd_disconnect.c:28)
==22201==    by 0x487E9E1: _run_test (in /usr/lib64/libcmocka.so.0.7.0)
==22201==    by 0x487ECCC: _run_tests (in /usr/lib64/libcmocka.so.0.7.0)
==22201==    by 0x47F1BE: main (unittests.c:629)
==22201==  Address 0x814b690 is 0 bytes inside a block of size 24 free'd
==22201==    at 0x48379AB: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==22201==    by 0x44E5F7: autocomplete_free (autocomplete.c:90)
==22201==    by 0x4278A0: muc_close (muc.c:97)
==22201==    by 0x47DBAA: cmd_join_uses_password_when_supplied
(test_cmd_join.c:169)
==22201==    by 0x487E9E1: _run_test (in /usr/lib64/libcmocka.so.0.7.0)
==22201==    by 0x487ECCC: _run_tests (in /usr/lib64/libcmocka.so.0.7.0)
==22201==    by 0x47F1BE: main (unittests.c:629)
==22201==  Block was alloc'd at
==22201==    at 0x483677F: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==22201==    by 0x44E51B: autocomplete_new (autocomplete.c:57)
==22201==    by 0x427837: muc_init (muc.c:88)
==22201==    by 0x47DA77: cmd_join_uses_password_when_supplied
(test_cmd_join.c:154)
==22201==    by 0x487E9E1: _run_test (in /usr/lib64/libcmocka.so.0.7.0)
==22201==    by 0x487ECCC: _run_tests (in /usr/lib64/libcmocka.so.0.7.0)
==22201==    by 0x47F1BE: main (unittests.c:629)
```
2019-10-06 19:00:46 +02:00
Michael Vetter
1746f5f8a8 Fix memleak in cmd_join
Free `room` string in case we allocated it ourselves.

Regards https://github.com/profanity-im/profanity/issues/1019
2019-10-06 18:53:16 +02:00
Michael Vetter
3ce27b47ad Free strings in all cases in cmd_rooms
Regards https://github.com/profanity-im/profanity/issues/1019
2019-10-06 18:51:04 +02:00
Michael Vetter
b591f0cf2b Free list in error case in parse_options
Fix memleaks.

Regards https://github.com/profanity-im/profanity/issues/1019
2019-10-06 18:12:50 +02:00
Michael Vetter
897dfbb3c1 Fix memleak in get_start()
Regards https://github.com/profanity-im/profanity/issues/1019
2019-10-06 17:42:44 +02:00
Michael Vetter
57ebb7cfa6 Destroy hash table ein autocompleters_destroy()
Regards https://github.com/profanity-im/profanity/issues/1019
2019-10-06 17:29:35 +02:00
Michael Vetter
10f2715ea9 Free options in error case for cmd_connect()
Regards https://github.com/profanity-im/profanity/issues/1019
2019-10-06 17:19:17 +02:00
Michael Vetter
4e8f0c90b5 Fix preferences memory leak
Memory leak detected through unit tests.

Regards https://github.com/profanity-im/profanity/issues/1019
2019-10-05 20:45:07 +02:00
Michael Vetter
684a9b1a56 Add /clear autocompletion and improve help
Regards https://github.com/profanity-im/profanity/issues/855

https://github.com/profanity-im/profanity/pull/874 brought us the
`/clear` command. The author of that patch couldn't follow up with the
review boothj5 did.

So the autocompletion and updated help was missing.
This commit adds it.
2019-10-05 16:19:53 +02:00
Michael Vetter
d7c00360ea
Merge pull request #874 from spiridoncha/master
Change /clear behaviour. Closes issue #855.
2019-10-05 15:12:44 +02:00
Michael Vetter
4637a7a23b Merge remote-tracking branch 'philipflohr/master' 2019-10-05 15:04:46 +02:00
Michael Vetter
c135f989ec Check errors in is_dir() is_regular_file()
In case of error print the error. And return right value.

Improvement based on @pasis advice in https://github.com/profanity-im/profanity/pull/1036
Applying in preparation to merge that PR.
2019-10-04 23:29:10 +02:00
Michael Vetter
5c77b97c35 Introduce /reload command
This command reloads the configuration file.

Fix https://github.com/profanity-im/profanity/issues/627
2019-10-04 14:06:25 +02:00
Michael Vetter
523681a642 Log outgoing carbons instead of incoming
Incoming carbons are logged as normal message already.
So we had this logged twice but didn't log outgoing carbons,
send from our account but by another client, at all.

Fix https://github.com/profanity-im/profanity/issues/1181
2019-10-04 13:22:14 +02:00
Michael Vetter
7da2a444da Mention XEP-0191 in blocked command 2019-09-30 19:12:47 +02:00
Michael Vetter
53c4c8548b Document how to block users in MUCs
Regards https://github.com/profanity-im/profanity/issues/618
2019-09-30 19:11:30 +02:00
Michael Vetter
e8420e7235 Bind key to switch to next active window
alt-a brings one to the next window with unread messages.

Regards https://github.com/profanity-im/profanity/issues/1114
2019-09-30 18:28:05 +02:00
Michael Vetter
d6c638c70f Define keybindings to switch to up to 20 windows
alt-2 brings one ot the window.
irssi supports alt + 1234567890qwertyuio to easily switch to 20 windows
instead of just ten.

Hardcode this too.

Regards https://github.com/profanity-im/profanity/issues/1114
2019-09-30 17:42:32 +02:00
Michael Vetter
6ab6fe8649 Detect MUC history correctly with some Prosody versions
Some versions of prosody send the domainpart.
See https://issues.prosody.im/1416

Workaround to handle those cases.
Thanks to Holger Weiss for helping with this!

Fix https://github.com/profanity-im/profanity/issues/1190
2019-09-30 10:01:19 +02:00
Michael Vetter
6161235733 Remove not needed code
Was left over from refactoring a long time ago.
2019-09-29 15:47:24 +02:00
Michael Vetter
d1f388cbd7 Add comment about statusbar.current 2019-09-29 15:47:11 +02:00
Michael Vetter
30875a9069 Fix typo conact -> contact 2019-09-29 15:07:32 +02:00
Michael Vetter
a4e9d9b9e2 Use helper function for cmd_status 2019-09-29 15:07:08 +02:00
Michael Vetter
b961ad29c7 Allow pasing a jid to info command in chat window
If we pass a jid/nick to `/info` in a chat window we will still get the
output. But on the console window.

Regards https://github.com/profanity-im/profanity/issues/1194
2019-09-29 15:04:19 +02:00
Michael Vetter
0f732466f8 Allow pasing a jid to status command in chat window
Regards https://github.com/profanity-im/profanity/issues/1194
2019-09-29 14:58:25 +02:00
Daniel Lublin
641410f6bd Add coloring of statusbar.current tab in view
This theme color applies to the tab title text of the statusbar tab that
is currently shown.

The (somewhat confusingly named) `statusbar.active` theme color now
applies to all other tabs (before, it applied to all tabs).

Coloring of a tab that is highlighted/has new messages is done as before
using the `statusbar.new` theme color.

The default color is set to `cyan`, and thus causes no visible change
for users -- until modified.
2019-09-24 10:35:30 +02:00
Dmitry Podgorny
3ecb5424ae log: set nonblocking mode for stderr
Glib can print error messages to stderr and blocking write freezes
Profanity if the buffer is full. Move stderr to nonblocking mode
in hope that glib will skip printing on EWOULDBLOCK error. In this
case we lose some error messages, but Profanity continues working.
2019-09-13 11:48:31 +00:00
Michael Vetter
6cf06dc516 Log alleged roster push to file
https://gultsch.de/dino_multiple.html mentions CVE-2019-16235, CVE-2019-16236 and CVE-2019-16237.

CVE-2019-16235: Is checking the from in carbon messages. We do that.
CVE-2019-16236: Is checking the from in roster pushes. We do that but
didn't log it yet.
CVE-2019-16237: Is checking the form in MAM messages. We don't support
them yet.
2019-09-12 20:55:16 +02:00
Michael Vetter
2c97a48418 Print history color in theme properties
Also print `main.text.history` setting when `/theme properties' is run.
2019-09-11 13:21:02 +02:00
Michael Vetter
e10f4d4bb0 Set default color for main.text.history
Might be related to https://github.com/profanity-im/profanity/issues/1186
2019-09-11 13:20:32 +02:00
Michael Vetter
aa0f497975 Allow colorization of history messages
History was always printed with `THEME_DEFAULT` we now use
`THEME_TEXT_HISTORY` which is accesible in theme files via
`main.text.history`.

Fix https://github.com/profanity-im/profanity/issues/1170
2019-09-10 11:22:30 +02:00
Michael Vetter
09b6fc9aaa Log 1:1 messages from other clients also to file
Carbons where not logged so far.

Fix https://github.com/profanity-im/profanity/issues/1181
2019-09-04 10:28:52 +02:00
Michael Vetter
09c5f38f11 Set message->plain in carbon case
message->plain should always contain something. In the case of the
carbons we forgot to set if rom the body in case it's empy.
2019-09-04 10:27:03 +02:00
Dmitry Podgorny
8c69d7105b Don't crash if source jid doesn't contain the node part
Profanity uses the node part of a JID as display name for a tab. If such
a JID doesn't contain the node part, Profanity crashes on NULL pointer
dereference.

In the above case, use barejid which is just a domain. Fixes #1153.
2019-08-26 12:46:30 +03:00
Michael Vetter
c100897c9d Hardcode James email adress in info message
Dont rely on PACKAGE_BUGREPORT being James' mail.
2019-08-24 18:07:24 +02:00
Michael Vetter
726eee2a66 Make sure memory in color_pair_cache_reset() was allocated.
Just to be on the safe side.

Probably only relevant for unit tests where ncurses vars are not
initialized with real values.
Fix unit tests on all platforms.
2019-08-24 18:04:02 +02:00
Michael Vetter
03fbf2e77a Remove unused colour_string_t struct 2019-08-23 14:59:26 +02:00
Michael Vetter
7d7a49f132 theme: print to log not to console
Seems this can cause trouble in case we cant use the theme properly.
2019-08-23 14:56:29 +02:00
Michael Vetter
e408e988a7 color: set capacity in unittest case
Fix https://github.com/profanity-im/profanity/issues/1178
2019-08-23 14:54:55 +02:00
Michael Vetter
c2a565c2ec Notify trying to load 256 colour theme in incapable terminal 2019-08-23 14:24:44 +02:00
Michael Vetter
42fb1935c4 Add 256 colour info to /theme colours 2019-08-23 14:08:00 +02:00
Michael Vetter
56c77678f2 color: Include log.h 2019-08-23 14:07:41 +02:00
Michael Vetter
023e2dc387 Reset color pairs when new theme is loaded
We only need the colour pairs initialized that the theme actually uses.
It's otherwise possible that we run over the max value of initialzed
pairs.
2019-08-23 13:54:09 +02:00
Michael Vetter
df1b19ecec Reformat color.c 2019-08-23 13:48:42 +02:00
Michael Vetter
8a04496c79 Add header to color.h 2019-08-23 13:47:41 +02:00
Michael Vetter
0b9880f7a0 Use log_error() instead of g_warning() 2019-08-23 13:46:14 +02:00
Aurelien Aptel
269afa53b4 Add 256 colors support
Themes can now use color names from the xterm color name list [1].

1: https://jonasjacek.github.io/colors/
2019-08-23 13:25:45 +02:00
Michael Vetter
ab60a61fb9 omemo: use lower case to log info 2019-08-23 10:18:20 +02:00
Michael Vetter
976c2ec524 Fix typo in OMEMO materials log 2019-08-23 10:14:04 +02:00
Michael Vetter
d43bd8f253 Add comment about dead assignment in callback_add_timed 2019-08-23 10:13:45 +02:00
Michael Vetter
62103665e2 Remove unused code in cmd_room() about win num
There is actually no reason to get the window number here.
2019-08-23 10:04:54 +02:00
Michael Vetter
dacbe25d93 Remove duplicate code in roster_update
Part of what `roster_update()` does manually is actually done in
`roster_change_name()`.
2019-08-23 09:50:53 +02:00
Michael Vetter
13088e0a1a Use fixed email instead of PACKAGE_BUGREPORT 2019-08-23 09:40:54 +02: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
Michael Vetter
d8d6aa4b88
Merge pull request #1167 from profanity-im/feature/specify-config-file
Possibility to specify alternative config file
2019-08-02 16:22:12 +02:00
Michael Vetter
10ca3e8c31 Possibility to specify alternative config file
Introduce `profanity -c` to specify an alternative config file.
2019-08-02 15:55:47 +02:00
Michael Vetter
25501a5d8a Improve sv_ev_roster_received() last activity check
We don't need to do all the timing stuff if last activity is disabled
anyways.
2019-08-02 15:52:49 +02:00
Michael Vetter
5d711639b0
Merge pull request #1166 from profanity-im/fix/1165-subscribed-msg
Don't print subscribed message if contact is already in roster
2019-08-02 12:48:01 +02:00
Michael Vetter
658e36a066 Add 'save' command to save preferences
Most applications have an 'apply changes' button. This makes testing
easier too.

Implement https://github.com/profanity-im/profanity/issues/1164
2019-08-02 10:23:13 +02:00
Michael Vetter
53c3115976 Don't print subscribed message if contact is already in roster
This occured with a user running Cisco Jabber. It seems this server
sends repeated presence subscribed stanzas. And although I find this
strange according to RFC this seems to be ok.

So let's filter them and only display in the console output and to the
log. But don't open seperate windows.

Fix https://github.com/profanity-im/profanity/issues/1165
2019-08-01 20:48:23 +02:00
Michael Vetter
ad0a1efd8c
Merge pull request #1163 from paulfariello/hotfix/command-exec
Fix memleak in /cmd exec
2019-07-30 13:50:25 +02:00
Paul Fariello
b3e59e1fb6 Fix memleak in /cmd exec 2019-07-30 13:35:08 +02:00
Michael Vetter
1ec87ffd8f
Merge pull request #1161 from profanity-im/fix/omemo-leak
Fix memleaks in OMEMO
2019-07-30 11:22:41 +02:00
Paul Fariello
5e61bc08dd Fix command form submit
Command form userdata were freed by iq_id_handler.
We should now free the command ourself.
2019-07-30 10:22:57 +02:00
Michael Vetter
1b2e71faac Fix memleak in save_identity()
I don't see a reason for strdupping here.
2019-07-23 08:34:46 +02:00
Michael Vetter
a9db705faa Fix potential leak in omemo_untrust() 2019-07-23 08:34:46 +02:00
Michael Vetter
fade378fee Dont use not needed strdup() in save_identity()
I don't see a reason for strdupping here.
2019-07-23 08:34:46 +02:00
Michael Vetter
bb08c7270d Make sure result is always set for otr_get_policy() 2019-07-23 08:03:39 +02:00
Michael Vetter
41bf7f4b22
Merge pull request #1160 from profanity-im/fix/1159-groupaddsegfault
Fix segfault in group add/remove command
2019-07-22 20:16:27 +02:00
Michael Vetter
9f0a40819f Fix memleak in roster_change_name() 2019-07-22 15:37:41 +02:00
Michael Vetter
41b54a5c14 Fix 3 leaks in cmd_funcs 2019-07-22 15:26:32 +02:00
Michael Vetter
27952cb16c Fix several memleaks im cmd_ac.c
Exiting without freeing in some cases.
2019-07-22 14:59:20 +02:00
Michael Vetter
46ddf2c2f4 Fix memleak in roster_remove
strdup() is not needed here but will actually lead to a memleak.
2019-07-22 14:47:45 +02:00
Michael Vetter
41267ae1c5 Fix memory leak in roster_update()
current_name should not be const and should be freed.
2019-07-22 14:42:43 +02:00
Michael Vetter
e540ccd50e Remove dead assignments 2019-07-22 14:27:14 +02:00
Michael Vetter
137d128af2 Remove unused assignments 2019-07-22 14:16:10 +02:00
Michael Vetter
e75cc41164 Fix double initialization of loop iterator 2019-07-22 14:02:33 +02:00
Michael Vetter
16174727f4 Guard against arg being NULL in cmd_funcs
This should actually never happen because we have the mechanism that
checks the commands. But let's do it in case we break something in that
mechanism and to make clang happy.

Fixes clangs: 'Argument with 'nonnull' attribute passed null'
2019-07-22 13:47:52 +02:00
Michael Vetter
d004891a29 Reduce scope of num in ui_print_system_msg_from_recipient() 2019-07-22 13:25:52 +02:00
Michael Vetter
fa27ab9561 Fix segfault in group add/remove command
Also regarding destructor.
Fix https://github.com/profanity-im/profanity/issues/1159
2019-07-22 11:54:05 +02:00
Michael Vetter
4a0fa1cf9e
Merge pull request #1154 from optmzr/issue-1099
Always check for directory changes with sendfile auto completion
2019-07-20 19:36:59 +02:00
William Wennerström
0c10a699f2
Always check for directory changes with sendfile auto completion
Instead of only checking for files when 'last_directory' has changed, do
it every time.

Add autocomplete_update function that updates the items while retaining
last_found and search_str.

Fixes #1099
2019-07-20 10:38:22 +02:00
Michael Vetter
d3828cf24e Fix segfault in block command
Another case of double free() due to new destructor.

Fixes https://github.com/profanity-im/profanity/issues/1156
2019-07-19 12:38:33 +02:00
Michael Vetter
c07d533ec1 Fixup for last commit 2019-07-12 11:11:45 +02:00
Michael Vetter
68b6deefbf Fix segfault in iq_{submit,cancel}_command_config
Taken care of by the destructor.
2019-07-12 10:57:07 +02:00
Michael Vetter
04988ab4ba Fix segfault in /cmd exec
Test for correct number of arguments before using argument.
2019-07-12 10:36:17 +02:00
Michael Vetter
ad41959cc6
Merge pull request #1150 from paulfariello/hotfix/omemo-memleaks
Hotfix/omemo memleaks

Regards https://github.com/profanity-im/profanity/issues/1131
2019-07-11 16:19:31 +02:00
Michael Vetter
f32827d70d Fix some more potential double frees
Regards https://github.com/profanity-im/profanity/issues/1148
2019-07-11 16:15:57 +02:00
Paul Fariello
c22df13d95 Dirty fix libgcrypt memleak 2019-07-11 14:25:42 +02:00
Paul Fariello
b7144d82fe Enable secure memory in gcrypt initialisation 2019-07-11 11:01:07 +02:00
Paul Fariello
b110da9a92 Fix various OMEMO memleaks 2019-07-10 17:32:23 +02:00
Michael Vetter
eb14ae5f03 Fix jump depending on uninit. value in statusbar 2019-07-10 12:55:49 +02:00
Michael Vetter
6c8e567328 Reduce codelines in form.c
Let's use calloc instead of malloc and then setting almost all fields to
NULL.
2019-07-10 12:53:45 +02:00
Michael Vetter
a8b3de7016 Fix double free in roster_process_pending_presence
This is taken care of now in the destructor _pendingPresence_free().
2019-07-10 12:08:09 +02:00
Michael Vetter
38edc1c325 Add destructor for roster_pending_presence
Fix:
```
==18682== 408 bytes in 17 blocks are definitely lost in loss record
3,279 of 3,632
==18682==    at 0x483677F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==18682==    by 0x42F602: roster_update_presence (roster_list.c:129)
==18682==    by 0x448AA3: sv_ev_contact_online (server_events.c:906)
==18682==    by 0x43D2BA: _available_handler (presence.c:674)
==18682==    by 0x43C81B: _presence_handler (presence.c:398)
==18682==    by 0x5AF118E: handler_fire_stanza (handler.c:124)
==18682==    by 0x5AEDBDA: _handle_stream_stanza (conn.c:1253)
==18682==    by 0x5AFA43E: _end_element (parser_expat.c:190)
==18682==    by 0x6818AA4: doContent (xmlparse.c:2977)
==18682==    by 0x681A3AB: contentProcessor (xmlparse.c:2552)
==18682==    by 0x681D7EB: XML_ParseBuffer (xmlparse.c:1988)
==18682==    by 0x681D7EB: XML_ParseBuffer (xmlparse.c:1957)
==18682==    by 0x5AF0A63: xmpp_run_once (event.c:255)
==18682==    by 0x432E5D: connection_check_events (connection.c:104)
==18682==    by 0x4323B3: session_process_events (session.c:255)
==18682==    by 0x42C097: prof_run (profanity.c:128)
==18682==    by 0x4B25B9: main (main.c:172)
```
2019-07-09 16:04:27 +02:00
Michael Vetter
89d8fc846e Fix double free in room id handler
Free is done in destructor now.
Regards https://github.com/profanity-im/profanity/issues/1148
2019-07-09 09:47:35 +02:00
Michael Vetter
7af85d0fe0 Fix double free in omemo_start_device_session_handle_bundle()
omemo_key_free() was called to free the key.
It free the key->data too. But in same cases this was not set  yet. So
we need to set the data to NULL (or use calloc) at initialization so
that omemo_key_free() only frees it if it was actually allocated.

Regards https://github.com/profanity-im/profanity/issues/1148
2019-07-08 16:36:05 +02:00
Michael Vetter
b3bb62dcbd Fix double free regarding iq handlers 2019-07-08 15:58:40 +02:00
Michael Vetter
6355272091
Merge pull request #1146 from profanity-im/fix/omemoleaks-autocompl
Fix several OMEMO related leaks
2019-07-04 18:01:59 +02:00
Michael Vetter
9aad2aa487 Free iq_id_handlers correctly
so far only the key part was freed. We also need to free the actual
handler.

Fix:
```
==21171== 1,128 bytes in 47 blocks are definitely lost in loss record
3,476 of 3,670
==21171==    at 0x483677F: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==21171==    by 0x434248: iq_id_handler_add (iq.c:265)
==21171==    by 0x4B122E: omemo_devicelist_request (omemo.c:46)
==21171==    by 0x4AC411: omemo_start_session (omemo.c:409)
==21171==    by 0x4AC37C: omemo_start_sessions (omemo.c:396)
==21171==    by 0x447881: sv_ev_roster_received (server_events.c:189)
==21171==    by 0x444019: roster_result_handler (roster.c:312)
==21171==    by 0x433FC2: _iq_handler (iq.c:202)
==21171==    by 0x5AF118E: ??? (in /usr/lib64/libmesode.so.0.0.0)
==21171==    by 0x5AEDBDA: ??? (in /usr/lib64/libmesode.so.0.0.0)
==21171==    by 0x5AFA43E: ??? (in /usr/lib64/libmesode.so.0.0.0)
==21171==    by 0x6818AA4: ??? (in /usr/lib64/libexpat.so.1.6.8)
==21171==    by 0x681A3AB: ??? (in /usr/lib64/libexpat.so.1.6.8)
==21171==    by 0x681D7EB: XML_ParseBuffer (in
/usr/lib64/libexpat.so.1.6.8)
==21171==    by 0x5AF0A63: xmpp_run_once (in
/usr/lib64/libmesode.so.0.0.0)
==21171==    by 0x432E5D: connection_check_events (connection.c:104)
==21171==    by 0x4323B3: session_process_events (session.c:255)
==21171==    by 0x42C097: prof_run (profanity.c:128)
==21171==    by 0x4B2627: main (main.c:172)
```
2019-07-04 14:25:53 +02:00
Paul Fariello
c0e8f72276 Fix plaintext private message handling 2019-07-04 14:02:42 +02:00
Michael Vetter
482138feff Free key on error in omemo_start_device_session_handle_bundle()
Fix:
```
==20561== 32 bytes in 1 blocks are definitely lost in loss record 1,467
of 3,678
==20561==    at 0x483677F: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==20561==    by 0x4B16C9: omemo_start_device_session_handle_bundle
(omemo.c:167)
==20561==    by 0x43405E: _iq_handler (iq.c:214)
==20561==    by 0x5AF118E: ??? (in /usr/lib64/libmesode.so.0.0.0)
==20561==    by 0x5AEDBDA: ??? (in /usr/lib64/libmesode.so.0.0.0)
==20561==    by 0x5AFA43E: ??? (in /usr/lib64/libmesode.so.0.0.0)
==20561==    by 0x6818AA4: ??? (in /usr/lib64/libexpat.so.1.6.8)
==20561==    by 0x681A3AB: ??? (in /usr/lib64/libexpat.so.1.6.8)
==20561==    by 0x681D7EB: XML_ParseBuffer (in
/usr/lib64/libexpat.so.1.6.8)
==20561==    by 0x5AF0A63: xmpp_run_once (in
/usr/lib64/libmesode.so.0.0.0)
==20561==    by 0x432E5D: connection_check_events (connection.c:104)
==20561==    by 0x4323B3: session_process_events (session.c:255)
==20561==    by 0x42C097: prof_run (profanity.c:128)
==20561==    by 0x4B260D: main (main.c:172)
```
2019-07-04 11:55:53 +02:00
Michael Vetter
e3443f5c9a Rework omemo_start_device_session_handle_bundle exit
In some conditions we just returned without freeing allocated variables.

Should fix following valgrind reported leak:

```
==17941== 19 bytes in 1 blocks are definitely lost in loss record 613 of
3,674
==17941==    at 0x483677F: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==17941==    by 0x5BB0DAA: strdup (strdup.c:42)
==17941==    by 0x4B1592: omemo_start_device_session_handle_bundle
(omemo.c:126)
==17941==    by 0x43405E: _iq_handler (iq.c:214)
==17941==    by 0x5AF118E: ??? (in /usr/lib64/libmesode.so.0.0.0)
==17941==    by 0x5AEDBDA: ??? (in /usr/lib64/libmesode.so.0.0.0)
==17941==    by 0x5AFA43E: ??? (in /usr/lib64/libmesode.so.0.0.0)
==17941==    by 0x6818AA4: ??? (in /usr/lib64/libexpat.so.1.6.8)
==17941==    by 0x681A3AB: ??? (in /usr/lib64/libexpat.so.1.6.8)
==17941==    by 0x681D7EB: XML_ParseBuffer (in
/usr/lib64/libexpat.so.1.6.8)
==17941==    by 0x5AF0A63: xmpp_run_once (in
/usr/lib64/libmesode.so.0.0.0)
==17941==    by 0x432E5D: connection_check_events (connection.c:104)
==17941==    by 0x4323B3: session_process_events (session.c:255)
==17941==    by 0x42C097: prof_run (profanity.c:128)
==17941==    by 0x4B2610: main (main.c:172)
```
2019-07-04 11:46:32 +02:00
Michael Vetter
0410802753 Free omemo_ctx.device_list_handler 2019-07-04 10:47:50 +02:00
Michael Vetter
d0047c8376 Dont initialize omemo autocompleter twice
We already do this in omemo_init() no need to do it again in
omemo_on_connect().
2019-07-04 10:38:24 +02:00
Michael Vetter
199162b11a Add omemo_close function
We call omemo_init() when starting profanity and should have an
omemo_close() at exit.

For now we free the fingerprint autocompleter in there.

Fixes valgrind:
```
==13226== 24 bytes in 1 blocks are definitely lost in loss record 2,855
of 6,958
==13226==    at 0x483677F: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==13226==    by 0x48AD39: autocomplete_new (autocomplete.c:57)
==13226==    by 0x4AB89F: omemo_init (omemo.c:127)
==13226==    by 0x42C283: _init (profanity.c:206)
==13226==    by 0x42BFF3: prof_run (profanity.c:98)
==13226==    by 0x4B25E6: main (main.c:172)
```

Regards https://github.com/profanity-im/profanity/issues/1131
2019-07-04 10:30:56 +02:00
Michael Vetter
4a6b1665f3 Use correct jid variable 2019-07-03 15:28:46 +02:00
Michael Vetter
f504a02167 Define goto out in _private_chat_handler() 2019-07-03 15:27:31 +02:00
Michael Vetter
19902e8e21 Set plain message in _private_chat_handler
In case that plain is NULL we need to copy over from body.

Fix https://github.com/profanity-im/profanity/issues/1144
2019-07-03 15:16:19 +02:00
Michael Vetter
ad9263520e Show MUC history on intentional reconnect
Small bug caused by 13675fb and ce5a4ed.
Fix https://github.com/profanity-im/profanity/issues/1142
2019-07-03 09:19:24 +02:00
Paul Fariello
f081766913 Mark messages received from a session as trusted 2019-06-25 18:43:15 +02:00
Paul Fariello
45e8467231 Fix a segfault when carbon has no body 2019-06-21 16:49:52 +02:00
Paul Fariello
db8f32c049 Fix handling of encrypted carbons 2019-06-21 15:52:24 +02:00
Paul Fariello
498b75afa9 Don't highlight cleartext message as untrusted 2019-06-21 15:50:41 +02:00
Paul Fariello
ac96a6951d Fix segfault when receiving messages without ID 2019-06-21 12:03:08 +02:00
Paul Fariello
a444137e66 Fix NULL pointer when handling non encrypted message in MUC 2019-06-21 11:34:36 +02:00
Paul Fariello
f831f65737 Rename prof_message_t into ProfMessage 2019-06-20 14:30:45 +02:00
Paul Fariello
9482ce6168 Set foreground color for untrusted messages 2019-06-20 14:30:45 +02:00
Paul Fariello
44d16e9141 Add prof_message_t to wrap all message attributes
Probably missing copy of body to plain in carbon and privmessage.
Only covers the incoming message path because goal is OMEMO decryption
of untrusted message.
Cover some of the log functions but not all.
2019-06-20 14:30:42 +02:00
Paul Fariello
3bb3cc625d Use flags in xmmp/message.c for encryption and trust 2019-06-20 14:30:37 +02:00
Paul Fariello
a650ecc67d Add trusted state after OMEMO decryption
Use it to print message on red background if not trusted.
2019-06-20 14:29:55 +02:00
Paul Fariello
2604786cb6 Decrypt all incoming OMEMO msg
Trust all key as long as it's for reading. This code isn't multithread
safe.
2019-06-20 14:29:55 +02:00
Michael Vetter
7ca8ec3e6b _bookmark_destroy: follow normal logic 2019-06-20 12:37:32 +02:00
Michael Vetter
b8c8059402 Call message_handlers_clear() upon disconnect
Free pubsub_event_handlers. Fix memory leaks.
2019-06-20 12:37:32 +02:00
Michael Vetter
11b8204d14 Call iq_handlers_clear() upon disconnect
Free id_handlers. Fix memory leaks.
2019-06-20 12:37:32 +02:00
Michael Vetter
29e2d16e14 Free contacts in omemo_start_sessions() 2019-06-19 23:18:45 +02:00
Michael Vetter
0d698d4898 Free OMEMO session store upon disconnect 2019-06-19 23:15:24 +02:00
Michael Vetter
184f01c4ac Fix prefs_get_string mem leaks in statusbar 2019-06-19 16:45:18 +02:00
Michael Vetter
20e94beca2 Free last_msg_timestamp
Fix memory leak.
2019-06-19 12:30:57 +02:00
Michael Vetter
ae1e60a9f9 Add option to set all window related time formats
Implements feature requested at: https://github.com/profanity-im/profanity/issues/632

So instead of:

/time console set <format>
/time chat set <format>
/time muc set <format>
/time mucconfig set <format>
/time private set <format>
/time xml set <format>

As a short cut the user can do:

/time all set <format>

Excluding statusbar and lastactivity settings since they are not for main windows, but used slightly differently.
2019-06-17 14:23:33 +02:00
Michael Vetter
e4b007c9da Add copyright to omemo code 2019-06-17 10:47:56 +02:00
Michael Vetter
40b72ffe55 Add myself to copyright
Like discussed with James.
2019-06-17 10:44:08 +02:00
Michael Vetter
d66ffde91f Use profanity channel as example 2019-06-17 10:28:04 +02:00
Michael Vetter
5dd6ba73f4
Merge pull request #1110 from profanity-im/feature/704-ui-behaviour-reconnect
Feature/704 ui behaviour reconnect
2019-06-11 07:00:34 +02:00
Michael Vetter
47e55cc112 Safe last MUC message timestamp per MUC
After pasis review of my code he thinks it's better to safe the
timestamp per MUC so we can account for some problems that could occur
with timing.
2019-06-11 06:35:03 +02:00
Michael Vetter
ff6038fe32 Rejoin all MUCs on reconnect
Should fix https://github.com/profanity-im/profanity/issues/1120
2019-06-10 23:18:43 +02:00
Michael Vetter
c4fcc0c3cb
Merge pull request #1125 from profanity-im/fix/519-logrotate
Iterate logfiles until 100 are reached
2019-06-10 14:20:29 +02:00
Michael Vetter
60d8d7e93a
Merge pull request #1124 from paulfariello/feature/remove_session_when_untrusting_omemo_device
Remove OMEMO session when untrusting a fingerprint
2019-06-08 00:25:43 +02:00
Michael Vetter
bb4dd47a01 Iterate logfiles until 100 are reached
Fix https://github.com/profanity-im/profanity/issues/519
2019-06-07 23:48:44 +02:00
Paul Fariello
5731a7c472 Remove OMEMO session when untrusting a fingerprint
We have to store known_devices in a long term fashion otherwise we might
not be able to delete session if it is remove from device list server
side.
2019-06-07 23:43:40 +02:00
Michael Vetter
1f3d61e9f7
Merge pull request #1123 from profanity-im/fix/1093-already-started-message
Print omemo start related msgs into correct window
2019-06-07 22:16:33 +02:00
Michael Vetter
9516324248 Refactor cmd_omemo_start
Some code was duplicated/similar.
The parts about using a chatwin while being started from another window
(recipient provided) and being a chatwin were the same.

Like this it should be easier to read and less code.
2019-06-07 21:14:53 +02:00
Michael Vetter
2eb2bf3508 Print omemo start related msgs into correct window
Print them in the window of the contact. Not just the current window.
Fix https://github.com/profanity-im/profanity/issues/1093
2019-06-07 21:14:44 +02:00
Michael Vetter
1772236178
Merge pull request #1118 from profanity-im/fix/1117-omemo-autocompletion-crash
Only complete certain omemo commands if connected
2019-06-07 19:49:08 +02:00
Michael Vetter
bee7846ea0
Merge pull request #1121 from profanity-im/feature/notify-plugin-fail
Improve plugin load/install failure message
2019-06-07 12:17:56 +02:00
Michael Vetter
cc697de051 Improve plugin load/install failure message
In case Python or C plugins are disabled install/load failed silently.
Notify the user that we can't load them because profanity was built
without support for plugins.
2019-06-07 11:30:46 +02:00
Michael Vetter
1e723970de Only complete certain omemo commands if connected
Some of the omemo commands depend on the roster being present.
Several of those functions call `assert()` if that's not the case.

Modify omemo autocompletion in such a way that only things that don't
need the roster will be completed. Only works on first level.

When typing `/omemo` it will still complete to `/omemo start` but not
offer suggestions for that, but print a message that you need to be
connected.

Fix https://github.com/profanity-im/profanity/issues/1117
2019-06-06 16:01:19 +02:00
Michael Vetter
4e972f8aef Check for sane argument in autoconnect set
Check that user doesnt do `/autoconnect set   `.
Which would result in: `Account '(null)' does not exist`.
2019-06-05 14:41:09 +02:00
Michael Vetter
53ef209272 Check if valid account before setting autoconnect
Fixes https://github.com/profanity-im/profanity/issues/1112
2019-06-05 14:19:41 +02:00
Michael Vetter
c57d0b8c8e Add omemo.char theme option
Thanks to @kaffekanne for noticing this!
2019-06-05 11:01:08 +02:00
Michael Vetter
ce5a4ed77c Only show MUC subject on first connect
For #704 we don't show the room history upon reconnect.
Now we also don't show the room subject in the channel
upon re-established connection.
2019-06-05 10:05:12 +02:00
Michael Vetter
d53c477e4e Reduce timestamp call when saving last muc message
Let's test for mucwin earlier.
2019-06-05 09:56:00 +02:00
Michael Vetter
13675fbf06 Only print room history for new messages upon reconnect
If re-establish a connection don't print the room history again.
In case there there happened nothing at all since we got the room
history on the last connection.
And in case there were no new messages during the time we have been
disconnected.

Instead of printing the room history again we now print 'Re-established
Connection'.

This adds a bit of overhead since we save the timestamp upon every MUC
message.

See: https://github.com/profanity-im/profanity/issues/704
2019-06-05 09:49:50 +02:00
Michael Vetter
b210fb3603 statusbar: check if roster exists
We destory the roster in ev_disconnect_cleanup().
Adding a function to test if the roster has been destroyed and testing
for it in the statusbar.

So now when the connection is lost 'Lost connection' is printed in all
open windows.
We can then reconnect with `/connect accountname`.

Should fix https://github.com/profanity-im/profanity/issues/1083
2019-06-04 16:19:04 +02:00
Michael Vetter
2d00444702 statusbar: reduce duplicate code
status_bar_new() and status_bar_active() are almost identical.
Let's use one helper function to not duplicate code.

I thought about renaming both functions into one and adding another
parameter but didn't come up with a good name for the function that
clearly describes what it does. So staying with current names + helper
functions.
2019-06-04 14:50:25 +02:00
Michael Vetter
ea62c3f293 Determine chat window names beforehand
Save the name for displaying the windows in the statusbar inside the tab
object.
So far we calculated them repeatedly and this created issues when we
lost the connection.

Regards https://github.com/profanity-im/profanity/issues/1083
2019-06-04 12:33:57 +02:00
Michael Vetter
48013f8d43
Merge pull request #1106 from profanity-im/saved-account
Don't clear saved account data in session_disconnect()
2019-06-03 14:11:00 +02:00
Dmitry Podgorny
6138a5f79b Cancel autoping timer on disconnect or connection loss
If Profanity is disconnected in any way before ping response is
received, the autoping timer will expire after the next connection
is established. As result, user will be disconnected immediately.

Cancel autoping timer in ev_disconnect_cleanup(), so it is done
for all kind of disconnections.
2019-06-03 13:28:00 +03:00
Dmitry Podgorny
4344ee2a5a Don't clear saved account data in session_disconnect()
If connection loss occurs, it calls session_disconnect() eventually.
This function clears saved account data which is required for
reconnection. Therefore, when reconnect timer expires, we get errors:

02/06/2019 04:53:42: stderr: ERR: (profanity:17115): GLib-CRITICAL **:
                     04:53:42.305: g_key_file_has_group: assertion
                     'group_name != NULL' failed
02/06/2019 04:53:43: prof: ERR: Unable to reconnect, account no longer
                     exists: (null)

To solve it, don't clear the saved data in session_disconnect(). It will
be cleared properly on connection loss if reconnect timer is not
configured. But won't be cleared with /disconnect command.
So, after /disconnect the data will live in memory until the next
/connect.

Also, remove some copy-paste in connection loss path.
2019-06-03 13:21:52 +03:00
Dmitry Podgorny
c2d3c3e416 xmpp/connection: fix #1103
When connection is lost, profanity tries to disconnect what leads
to an infinite loop. The loop occurs, because connection_disconnet()
runs xmpp_run_once() separately and waits for XMPP_CONN_DISCONNECT
event. But it doesn't happen, because the connection object is
disconnected.

As solution, don't disconnect after XMPP_CONN_DISCONNECT is received.
Also, don't free libstrophe objects while the event loops executes,
because the event loop continues using objects after callbacks quit.
2019-06-01 20:21:46 +03:00
Michael Vetter
bfa4a2ef1f Close windows on connection loss not general disc.
Call `ui_close_all_wins();` only if we disconnect on purpose not when
connection is lost.

Otherwise users might miss messages.

This partly reverts 6ac73db876.
Regards https://github.com/profanity-im/profanity/issues/1083
2019-05-27 12:52:04 +02:00
Michael Vetter
eb16c674ae
Merge pull request #1092 from frnky/remove_mblen
Don't call mblen() to not depend on locale
2019-05-23 21:18:46 +02:00
Paul Fariello
04cd1b4409 Correctly handle malformed OMEMO messages
Fix #1101
2019-05-23 13:12:02 +02:00
Frank Zschockelt
56e925ed03 Don't call mblen() to not depend on locale
mblen will fail with return code -1 if the locale used by the unit tests
isn't available on the machine. This will lead to an off by one error in some
tests where the needle is at the end of the haystack.

Since prof_occurrences expect null-terminated strings, the character after
the needle can simply be found by incrementing the address of the found needle
with strlen(needle).
2019-05-22 19:57:52 +02:00
Michael Vetter
91d17edcb4
Merge pull request #1098 from optmzr/fix-omemo-gen-message
Force UI update before generating OMEMO crypto materials

The message wouldn't show up before the generation of OMEMO crypto materials started.
2019-05-22 09:52:29 +02:00
William Wennerström
e07a06d1a2
Force UI update before generating OMEMO crypto materials 2019-05-21 22:32:06 +02:00
Michael Vetter
883dbe1911 Create seperate function for disconnect cleanup
Duplicate code in client_events.c and server_events.c. Let's have
events/common.c and a function containing that code.
2019-05-19 22:57:51 +02:00
Michael Vetter
c94f3d0b4a Fix ifdef guard (should have been OMEMO) 2019-05-06 16:11:22 +02:00
Michael Vetter
9ecc14c95d
Merge pull request #1090 from jubalh/fix/connection-loss-1089
Reset things on connection loss
2019-05-06 16:06:41 +02:00
Michael Vetter
6ac73db876 Reset things on connection loss
Remove the windows, clear tls certs, clean omemo.
Regards https://github.com/profanity-im/profanity/issues/1089
2019-05-06 12:30:33 +02:00
Michael Vetter
4a165b81e6
Merge pull request #1084 from jubalh/occupants-char
Add occupants char
2019-05-03 11:11:40 +02:00
Michael Vetter
a28f0d9e74 Update tests with new URL
https://github.com/profanity-im/profanity/issues/1085
2019-05-03 10:46:41 +02:00
Michael Vetter
ebbacec667 Update profanity URL in entity capabilities stanza
Regards https://github.com/profanity-im/profanity/issues/1085
2019-05-03 10:36:26 +02:00
Michael Vetter
9288621320 Update profanity URL in /tiny example
Regards https://github.com/profanity-im/profanity/issues/1085
2019-05-03 10:33:52 +02:00
Michael Vetter
1446ac15cb Check for new profanity version using new URL
Regards https://github.com/profanity-im/profanity/issues/1085
2019-05-03 10:33:46 +02:00
Michael Vetter
f082563bf2 Add occupants char
`/occupants char` now sets a character that is displayed before the nick
in MUCs. Similar like `/roster char` is displaying a char for the roster.

Regards #690
2019-05-02 17:01:55 +02:00
Michael Vetter
722cb5fdc3 OMEMO: Initialize result in omemo_automatic_start
This is actually not needed because result will always be set.

hartmann had problems building profanity on OpenBSD and he proposed this
patch.

Let's use it to make the compiler happy there.
2019-04-29 11:32:22 +02:00
Michael Vetter
a794dadfa9 OMEMO: Check if ID is present before using it
Fixes https://github.com/boothj5/profanity/issues/1079
2019-04-24 15:20:54 +02:00
Michael Vetter
1d2c0ddc69 Fix statusbar number in theme
There is a typo here. So this actually never worked ;-)
2019-04-24 14:48:24 +02:00
Michael Vetter
a666f0deae Fix formatting for privileges on
`/privileges on` lists `Moderator`, `Visitor` etc. Formatting was wrong
here. Printing privilige followed by nickaname in the same line.
2019-04-24 10:28:27 +02:00
Michael Vetter
30f9de61d0 Occupantswin: handle newline correctly 2019-04-24 09:49:14 +02:00
Michael Vetter
98f768bdc2 Add occupants wrap to help 2019-04-24 09:49:14 +02:00
Michael Vetter
259c5801cf Fix occupants header char message 2019-04-24 09:49:14 +02:00
Michael Vetter
125ca2f0d2 Add occupants wrap option
Wrapping for the occupants panel like already exists for the roster
panel. See `/occupants wrap on`.

Regards https://github.com/boothj5/profanity/issues/690
2019-04-24 09:49:14 +02:00
kaffeekanne
f8640019f3 Update copyright years 2019-04-24 01:08:38 +02:00
Michael Vetter
028839e35a Put occupants update into own function 2019-04-23 14:13:08 +02:00
Michael Vetter
566022786d Add occupants header char
`/occupants header char` now sets a character that is displayed before
the role (moderator, visitor..) in a room. Similar to `/roster header
char` is displaying a char for the roster.

Regards https://github.com/boothj5/profanity/issues/690
2019-04-23 14:13:03 +02:00
kaffeekanne
49e2838a98 Fix indentation for time config 2019-04-23 12:39:05 +02:00
Michael Vetter
d520667935 Adjust jid for occupants indent
Indent the jid one more space than nick.
2019-04-20 20:35:45 +02:00
Michael Vetter
2b0e75ce35 Add occupants indent autocompletion 2019-04-20 20:35:45 +02:00
Michael Vetter
62c23233f7 Allow setting occupants indent outside of MUC
And when not connected.
2019-04-20 20:35:37 +02:00
Michael Vetter
0c248a0b16 Add /occupants indent command
Roster has a `/roster contact indent` option.
Now we have the same for occupants. So contacts in roster and in MUC can
have configurable indentation.

Regards https://github.com/boothj5/profanity/issues/690
2019-04-18 20:53:02 +02:00
Michael Vetter
7e4e9e6688 Fix typo in /help roster 2019-04-18 17:05:10 +02:00
Michael Vetter
199e8752ca
Merge pull request #1063 from paulfariello/hotfix/presence-before-roster
Handle presence received before roster
2019-04-17 20:47:54 +02:00
Michael Vetter
2f6387f3fa Set correct year in copyright display
Fixes https://github.com/boothj5/profanity/issues/1069
2019-04-17 20:44:39 +02:00
Paul Fariello
db55e01dce Follow OMEMO policy even when opening window on message and carbon reception
This should close #1052
2019-04-17 15:54:15 +02:00
Paul Fariello
973a05d15a Handle presence received before roster
Presence of contact not found in roster are filtered out.
But sometimes roster is received after a first few presences.

We choose to store presences until we receive roster and then process
this presences.

Fixes #1050
2019-04-17 14:19:31 +02:00
Paul Fariello
21ae946896 Handle MUC anonymous state when auto starting OMEMO
When auto joining a MUC we don't have access to required information so
we just don't start OMEMO at this time.

Once we receive disco info we then try to start OMEMO.
2019-04-17 14:03:14 +02:00
Paul Fariello
a6eb0d2c43 Handle missing real jid in OMEMO encrypted MUC
This should never happens since we should ensure MUC is Non-Anonymous
before enabling OMEMO.

But we should neither segfault if this happens.
2019-04-17 14:03:14 +02:00
Paul Fariello
5f015e32b2 Add OMEMO policy
There is 3 policy:

- manual: OMEMO session are only started manually
- automatic: OMEMO session are only started if they have been started
  manually before
- always: OMEMO session are always started unless they have been ended
  manually before

Closes #1040 and fixes #1052
2019-04-17 14:03:14 +02:00
Michael Vetter
9574127177
Merge pull request #1066 from paulfariello/hotfix/OMEMO-ensure-muc-is-nonanonymous
Ensure MUC is Non-Anonymous before starting OMEMO
2019-04-17 13:58:45 +02:00
Paul Fariello
8c71a74afe Ensure MUC is Non-Anonymous before starting OMEMO
Store MUC anonymous type in mucwin for that purpose.

Fixes #1065
2019-04-17 13:56:27 +02:00
Paul Fariello
fc8dc328a4 Alert about long OMEMO cryptographic generation
Fixes #1055
2019-04-17 09:55:16 +02:00
Michael Vetter
02d0f7fc38
Merge pull request #1061 from paulfariello/hotfix/handle-message-without-id-in-muc
Handle message without id in MUC
2019-04-15 10:43:39 +02:00
Paul Fariello
9c0a395408 Don't persist OMEMO {signed,}prekey cleaning on disconnect
We should not remove signed prekey and prekey from persistent storage
when cleaning OMEMO store on disconnect.
2019-04-14 22:03:16 +02:00
Paul Fariello
94a39b2e9b Handle malformed OMEMO identity.txt
If OMEMO identity.txt is malformed just abort loading.
User should be able to call `/omemo gen` again.
2019-04-14 22:03:16 +02:00
Paul Fariello
c33d8e5f0b Don't unload OMEMO cryto on disconnect if OMEMO wasn't loaded
If OMEMO wasn't loaded, removing key would create empty identity.txt
file. Then at load time it would segfault profanity.

Another commit should fix load of malformed identity.txt.
2019-04-14 22:03:16 +02:00
Paul Fariello
cdc0290a59 Handle message without id in MUC
Some clients seems to send message without id.
2019-04-14 21:53:26 +02:00
Paul Fariello
9714d1d867 Add random string at the end of the default resource
When connecting for the first time or when creating a new account don't
use only 'profanity' as default resource.

Some server don't support having 2 connection with same resource. Using
profanity as default lead to deconnections.
2019-04-12 15:49:54 +02:00
Paul Fariello
f75e1d7a7b Support contact name in /omemo fingerprint command 2019-04-10 17:24:56 +02:00
Paul Fariello
ad21021ce7 Fix issue with first encrypted message
When decrypting first message with prekey, libsignal wants to remove
used prekey from storage. Return value on success should be 0.

We used to return number of deleted keys. Thus libsignal was considering
we failed to remove the key and we were ignoring plaintext.
2019-04-10 17:24:56 +02:00
Paul Fariello
df648ba959 Try to start sessions with every jid in roster 2019-04-10 17:24:56 +02:00
Paul Fariello
f9b2fdc7db OMEMO should be written uppercase 2019-04-10 17:24:56 +02:00
Paul Fariello
381d85bcca Fix build on travis 2019-04-10 17:24:56 +02:00
Paul Fariello
277e8dc901 Add /omemo char command 2019-04-10 17:24:56 +02:00
Paul Fariello
0bc660400b Automatically starts OMEMO if one identity is trusted 2019-04-10 17:24:56 +02:00
Paul Fariello
25eb138d0b Rework trusted fingerprint storage
Stop using "jid:device_id" keys. And move long term storage to its own
file: trust.txt.
2019-04-10 17:23:46 +02:00
Paul Fariello
4ad6904216 Wait for discovery end to publish omemo devicelist and bundle
Add sv_ev_connection_features_received for that purpose
2019-04-10 17:23:46 +02:00
Paul Fariello
01e96769c2 Prefix static function with _ 2019-04-10 17:23:46 +02:00
Paul Fariello
0f4dd61776 Ensure pre keys are generated if missing from long term storage 2019-04-10 17:23:46 +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
e7be3a605b Add OMEMO in prefs command 2019-04-10 17:23:46 +02:00
Paul Fariello
65b3f82c5f Fix devicelist notification handler
devicelist handler should be kept after trigger
2019-04-10 17:23:46 +02:00
Paul Fariello
898302243e Add clear_device_list command 2019-04-10 17:23:46 +02:00
Paul Fariello
5cd2b8dc9d Permanently store pre keys 2019-04-10 17:23:46 +02:00
Paul Fariello
0d0e2b246a Add support for missing from in bundle iq 2019-04-10 17:23:45 +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
904528b490 Ensure signal context is built on connection
We can't keep it between two connection because signal context is
specific to a given account.
2019-04-10 17:23:45 +02:00
Paul Fariello
075d4cf35b Don't use glib 2.58 func 2019-04-10 17:23:45 +02:00
Paul Fariello
2015ba201d Ensure encrypted carbon of own message are marked as encrypted 2019-04-10 17:23:45 +02:00
Paul Fariello
4a1c3c8c1e Show all device fingerprint for current account 2019-04-10 17:12:31 +02:00
Paul Fariello
ba9679a706 Print fingerprint after trust and untrust command 2019-04-10 17:12:31 +02:00
Paul Fariello
bc16ba1669 Temporarly disable check for publish-options support 2019-04-10 17:12:31 +02:00
Paul Fariello
678bff9169 Add fingerprint autocompletion 2019-04-10 17:12:31 +02:00
Paul Fariello
3d8f47a724 Use /omemo fingerprint to show contact fingerprints
Don't print fingerprints when they are received
2019-04-10 17:12:31 +02:00
Paul Fariello
2fd2ca208c Use connection_support to check for publish-options support 2019-04-10 17:12:31 +02:00
Paul Fariello
306706bd2e Add OMEMO log command 2019-04-10 17:12:31 +02:00
Paul Fariello
dadd0c0590 Add missing preferences for OMEMO logs 2019-04-10 17:12:31 +02:00
Paul Fariello
91ee289c77 Add support for disconnect in OMEMO 2019-04-10 17:12:31 +02:00
Paul Fariello
bc541cb8ac Add OMEMO end command 2019-04-10 17:12:31 +02:00
Paul Fariello
9a66e74986 Handle absent muc member 2019-04-10 17:12:31 +02:00
Paul Fariello
70109953ec Revert "Ensure room isn't anonymous"
This reverts commit 733e1a24c7e08dde6aa2c15ec4528220aa360845.
2019-04-10 17:12:31 +02:00
Paul Fariello
d8f0bcef94 Add publish option to OMEMO device list and bundle 2019-04-10 17:12:31 +02:00
Paul Fariello
9044e3732c Ensure room isn't anonymous 2019-04-10 17:12:31 +02:00
Paul Fariello
e5b01ed71b Add OMEMO state in titlebar in MUC 2019-04-10 17:12:31 +02:00
Paul Fariello
88670a7f0b Add OMEMO state in titlebar 2019-04-10 17:12:31 +02:00
Paul Fariello
4e1ffa6bdb Log and print outgoing encrypted message 2019-04-10 17:12:31 +02:00
Paul Fariello
a9d55dec92 Add support for sending encrypted message in MUC 2019-04-10 17:12:31 +02:00
Paul Fariello
f7ce1607f9 Ensure saved_account is set before calling sv_ev_login_account_success 2019-04-10 17:12:31 +02:00
Paul Fariello
031e906035 Cosmetics rename variable barejid into roomjid 2019-04-10 17:12:31 +02:00
Paul Fariello
cf528383bd Allow to start OMEMO in MUC 2019-04-10 17:12:31 +02:00
Paul Fariello
21f247d0eb Handle window type MUC in OMEMO start command 2019-04-10 17:12:31 +02:00
Paul Fariello
a3897abba1 Add MUC message decryption 2019-04-10 17:12:31 +02:00
Paul Fariello
33b0b46420 Fix prekey handling after first use
libsignal will remove prekey on its own.
2019-04-10 17:12:31 +02:00
Paul Fariello
319fb856e0 Handle decrypted OMEMO messages as such 2019-04-10 17:12:31 +02:00
Paul Fariello
3e325a61c3 Add support for OMEMO, OTR, PGP built together 2019-04-10 17:12:31 +02:00
Paul Fariello
0dd5441f92 device_list iq should be from barejid or none
Ensure we request device_list and remove non conforming handling of
responses.

Move initialisation of iq_handlers before call to sv_ev_login_account_success
2019-04-10 17:12:31 +02:00
Paul Fariello
6bb7deeb9c Add logs about crypto generation 2019-04-10 17:12:31 +02:00
Paul Fariello
197e098f4b Log device_id on startup 2019-04-10 17:12:31 +02:00
Paul Fariello
4826da3aa6 Don't rely on account name being jid 2019-04-10 17:12:31 +02:00
Paul Fariello
8952684472 Add hints about trust command when printing fingerprints 2019-04-10 17:12:31 +02:00
Paul Fariello
2455bcc28a Avoid using xmpp_jid_bare 2019-04-10 17:12:31 +02:00
Paul Fariello
5d90199a41 Avoid opening win if crypto materials are missing 2019-04-10 17:12:31 +02:00
Paul Fariello
89ece4f235 Add UI feedback for OMEMO gen command 2019-04-10 17:12:31 +02:00
Paul Fariello
2622c2d21a Add OMEMO untrust command 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
dbf96dcfc6 Allow to trust own device id 2019-04-10 17:12:31 +02:00
Paul Fariello
063a5d1c52 Add trust command 2019-04-10 17:12:31 +02:00
Paul Fariello
23485eb4e7 Don't trust unknown identity keys
Also add long terme storage of known identity keys.
If a key is stored it means it is trusted.
2019-04-10 17:12:31 +02:00
Paul Fariello
249701fe7a Add OMEMO status in build information 2019-04-10 17:12:31 +02:00
Paul Fariello
97c661271b Add support for libsignal-protocol-c 2.3.2 2019-04-10 17:12:31 +02:00
Paul Fariello
b3be504e84 Add OMEMO fingerprint command 2019-04-10 16:31:45 +02:00
Paul Fariello
55407ee15f Add OMEMO session long term storage 2019-04-10 16:31:45 +02:00
Paul Fariello
5eb66aea26 Replace used prekey in bundle 2019-04-10 16:31:45 +02:00
Paul Fariello
1b5848fb23 Start new session upon prekey reception 2019-04-10 16:31:45 +02:00
Paul Fariello
bf8b89c568 Randomly choose a prekey on session build 2019-04-10 16:31:45 +02:00
Paul Fariello
ba0fa6e536 Add OMEMO commands autocompletion 2019-04-10 16:31:45 +02:00
Paul Fariello
2718183d27 Enable start of OMEMO in existing chat win 2019-04-10 16:31:45 +02:00
Paul Fariello
da0376a6a9 Check received gcm tag 2019-04-10 16:31:45 +02:00
Paul Fariello
b0c52f84ab Follow xep by putting gcm tag on encrypted key 2019-04-10 16:31:45 +02:00
Paul Fariello
605e06411c Get rid of libsodium 2019-04-10 16:31:45 +02:00
Paul Fariello
695694051e Remove hints preventing carbons to work properly 2019-04-10 16:31:45 +02:00
Paul Fariello
1309405d28 Add log on OMEMO session start 2019-04-10 16:31:45 +02:00
Paul Fariello
3d8c928e53 Use profanity logs for OMEMO logs 2019-04-10 16:31:45 +02:00
Paul Fariello
bcd582be42 Don't explicitely disable carbons for OMEMO messages 2019-04-10 16:31:45 +02:00
Paul Fariello
9b8c1d7d2c Add support for encrypted carbon
Fix {signed,}_pre_key store
2019-04-10 16:31:45 +02:00
Paul Fariello
20ed86c58c Handle requested device list for session start 2019-04-10 16:31:45 +02:00
Paul Fariello
421d1b1560 Add OMEMO identity materials long term storage 2019-04-10 16:31:39 +02:00
Paul Fariello
810ea32223 Follow normal workflow for OMEMO message reception
We try to decrypt all messages, if it's successful we use
sv_ev_incoming_message even for OMEMO messages. We pass an OMEMO
boolean to let UI be aware that message were encrypted.
2019-04-10 16:03:50 +02:00
Paul Fariello
d871efdcf9 Add chat session state to OMEMO message stanza 2019-04-10 16:03:50 +02:00
Paul Fariello
904904d74e Add default body on OMEMO message 2019-04-10 16:03:50 +02:00
Paul Fariello
0fb27dc496 Add OMEMO message encryption and decryption 2019-04-10 16:03:50 +02:00
Paul Fariello
b1ae220aa4 Create signal session 2019-04-10 16:03:50 +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
95da03ac28 Ensure received devicelist contains our own device id 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
79bb5016c2 Ensure not to generate omemo crypto twice 2019-04-10 16:03:50 +02:00
Paul Fariello
d8d7a5348c Ensure OMEMO isn't started before starting OTR 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
2d28725c85 Rename ProfIdCallback into ProfIqCallback
Goal is to create other kind of callback no based on id cmp
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
Paul Fariello
2602cbf785 Move OMEMO initialization to profanity intialization
Also store identity keys into account
2019-04-10 15:37:22 +02:00
Paul Fariello
519cf295f3 Add signal-protocol locking 2019-04-08 11:50:12 +02:00
Paul Fariello
bfbc8edcad Add crypto backend for signal-protocol 2019-04-08 11:50:12 +02:00
Paul Fariello
4a5b672f95 Link against libsignal-protocol-c 2019-04-08 11:50:12 +02:00
Paul Fariello
aa9dcf7b3a Avoid use after free on default account
Fix 1046
2019-04-08 11:20:14 +02:00
David Baer
a1ec80e194 Fix use after free bug 2019-03-22 09:10:54 -04:00
Philip Flohr
73549dc751 Don't stop plugin installation if given path points to a directory
The command "/plugins install <path_to_folder> should install all
plugins in the given folder. This commit removes the check if the path
points to a file (which is repeated in the section installing a plugin
from file) and makes the existing code installing multiple plugins accessible
2019-02-26 14:17:59 +01:00
Michael Vetter
d0a1cae8e8 Fix /me display when highlighting user in MUCs
Fixes https://github.com/boothj5/profanity/issues/950
Closes https://github.com/boothj5/profanity/pull/992
2019-02-26 12:02:32 +01:00
Philip Flohr
5b7f9dffbc Fix broken support for case-sensitive account names
Don't lower account name before calling accounts_get_account().
Only lower if there is no account with the given name and the name is
interpreted as a jid.
Updated unittests to test this behaviour.

Fixes #725

.
2019-02-22 13:08:08 +01:00
Michael Vetter
6034b833be Redraw screen after entry of PGP secret key
After specifying the PGP key ID with pgp.keyid within the accounts file on startup profanity asks for the secret key passphrase. It then doesn't redraw the screen, leaving it in an odd looking state.

This probably only happens with pinentry-curses since it draws in
screen.

We need this fix for cli only environments.

Fixes https://github.com/boothj5/profanity/issues/906 reported by Bob
Mottram.
Based on https://github.com/boothj5/profanity/pull/908 by Bob Mottram

Bob removed his GitHub account, so GitHub created a ghost placeholder
user for him, which unfortunately makes it impossible to cherry-pick
this commit. To more or less preserve authorship I added him as
co-author.

Commit picked and message edited by jubalh.

Co-authored-by: Bob Mottram <bob@freedombone.net>
2019-02-20 12:03:23 +01:00
Viachaslau Khalikin
289b05ea50 Restoration of correct GPG encryption
Fixes https://github.com/boothj5/profanity/issues/997
Proposed as https://github.com/boothj5/profanity/pull/1008
Related to XEP-0027.

Message edited and commit cherry picked by jubalh.
2019-02-20 11:53:40 +01:00
Michael Vetter
4792984f1e XEP-0027: Mention XEP in message body
With all the different kinds of encryption (OMEMO, OTR3 OTR4, PGP in XEP-0027 and XEP-0373) it might be helpful to know which kind of encryption is used.
2019-02-20 10:48:28 +01:00
Michael Vetter
c8f55ed338
Merge pull request #994 from philipflohr/master
Fail plugin unloading if plugin does not exist
2019-02-20 10:31:34 +01:00
Michael Vetter
fbbf920e2a
Merge pull request #995 from philipflohr/plugins_unload_all
let plugins_unload_all fail if one plugin unload operation fails
2019-02-20 10:22:49 +01:00
Philip Flohr
d1c54e9aaa Fail plugin unload operation if plugin does not exist 2019-02-20 10:21:17 +01:00
Michael Vetter
0c07b7cf50 Fix autoaway typo 2019-02-19 23:01:53 +01:00
Michael Vetter
706af9a900 Update copyright to include 2019 2019-01-22 11:31:45 +01:00
Paul Fariello
ac2d1c07fa Fix optionnal sessionid in xep 0050 2019-01-21 15:02:54 +01:00
twardziejszy
ca29638f2c Add prof_win_close (#1017) 2019-01-10 12:44:52 +01:00
Michael Vetter
a97202ace6 Merge branch 'nick'
See https://github.com/boothj5/profanity/pull/1023
2018-11-22 11:00:18 +01:00
Raf Czlonka
b4739b328e Nicks containig spaces need to be quoted
For example "FirstName LastName", need to be quoted.
2018-11-22 10:59:18 +01:00
Raf Czlonka
fb2ca00f93 Splash logo improvements (#1022)
* Splash logo improvements
* Use straight/flat, instead or rounded, outer edges on `o` and `a`
2018-11-21 10:03:37 +01:00
Dmitry Podgorny
3fd6f70bd9 Override account options with connect options
With this feature user can configure TLS policy for an account and
override it for a single login with /connect command.

Example:
 /account set <jid> tls force
 /connect <jid> tls trust
The example shows how to trust server's certificate only once.

Fixes #1021.
2018-11-07 15:02:30 +02:00
Dmitry Podgorny
7f65aaa9a2 Add option to trust server's certificate
New tls policy "trust" added to /connect and /account. With the policy
TLS connection is established even with invalid certificate. Note, that
trust policy forces TLS connection and it fails when server doesn't
support TLS.

Examples:
 /connect <jid> tls trust
 /account <name> set tls trust
2018-11-06 14:09:02 +02:00
Michael Vetter
47f90d7a39
Merge pull request #991 from paulfariello/feature/xep-0050
Add support for xep 0050 ad-hoc commands, without multi-step
2018-09-27 17:27:37 +02:00
Paul Fariello
2e0bc27bf0 Make _get_groups_from_item and roster _compare_* public
In order to avoid duplication with xep 0133 support in command execution
2018-09-26 14:34:52 +02:00
Michael Vetter
bb87122af9
Merge pull request #1011 from jubalh/sha1
Get rid of p_sha1 dependency
2018-09-19 11:45:19 +02:00
Paul Fariello
01428eb858 Add special handling for xep-0133 get-user-roster 2018-09-10 13:09:23 +02:00
Paul Fariello
371b64a842 Don't show submit help on form if there is no submit callback
Could be missleading for user.
2018-09-10 12:50:01 +02:00
Paul Fariello
6de60e7efc Add support for ad-hoc response with forms 2018-09-10 12:28:28 +02:00
Paul Fariello
b7556b4e41 Add missing command name for completion log 2018-09-10 11:30:46 +02:00
Michael Vetter
82f8083b85 Move p_sha1_hash() to stanza.c
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.
2018-09-06 20:40:09 +02:00
Philip Flohr
054267d738 Fix extended plugin handling PR
Fixes problems found in PR #999
2018-09-06 19:54:29 +03:00
Philip Flohr
a5a7db9e2b implemented plugin updates 2018-09-06 19:28:02 +03:00
Philip Flohr
cd86f5bc28 added the possibility to uninstall a plugin 2018-09-06 19:28:02 +03:00
Philip Flohr
e4ddced420 use gio functions for file copy 2018-09-06 19:28:02 +03:00
Philip Flohr
2795dc487c removed unreachable code: if plugin is loaded it is also installed and therefore installation will fail. -> The unload code is not needed 2018-09-06 19:28:02 +03:00
Philip Flohr
1f66c08567 provide feedback on failure cause if plugin installation fails 2018-09-06 19:28:02 +03:00
Philip Flohr
adb4955c34 Fail plugin installation if the target file already exists 2018-09-06 19:28:02 +03:00
Paul Fariello
3c70972610 Add default jid for cmd commands on WIN_CONSOLE 2018-09-05 14:37:26 +02:00
Paul Fariello
db1ffae3bd Fix command exec error output 2018-09-05 14:17:26 +02:00
Paul Fariello
771d90c766 Fix comment about config windows 2018-09-05 13:52:20 +02:00
Paul Fariello
4d703c7eb0 Fix description for config commands 2018-09-05 13:52:20 +02:00
Paul Fariello
1d3baa99a7 Ensure cmd commands are run on the right type of window 2018-09-05 13:52:20 +02:00
Paul Fariello
afd4fc4ea1 Fix bad english sentence 2018-09-05 13:52:20 +02:00
Paul Fariello
ec5fc3612f Allow to use cmd without being in a window 2018-09-05 13:52:20 +02:00
Paul Fariello
e555e41eaf Fix cmd command synopsis 2018-09-05 13:52:20 +02:00
Paul Fariello
71c9cbf8a8 Conform to Section 3.2.2.1 of XML Schema Part 2: Datatypes
In accordance with Section 3.2.2.1 of XML Schema Part 2: Datatypes, the
allowable lexical representations for the xs:boolean datatype are the
strings "0" and "false" for the concept 'false' and the strings "1" and
"true" for the concept 'true'; implementations MUST support both styles
of lexical representation.
2018-09-05 13:52:20 +02:00
Paul Fariello
233e076be9 Add support for command config execution 2018-09-05 13:52:19 +02:00
Paul Fariello
b11d3a79df Add conf win callback 2018-09-05 13:51:00 +02:00
Paul Fariello
a952776b89 Rename mucconf wins into conf wins
Configuration windows are now being used by both muc and cmd.
2018-09-05 13:51:00 +02:00
Paul Fariello
7123e94e82 Add support for form edition in command execution
Also change wins_get_by_string prototype in order to handle const str.
2018-09-05 13:51:00 +02:00
Paul Fariello
40eee1caab Add command exec error handling 2018-09-05 13:51:00 +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
Michael Vetter
33e9af4100 Fix command 'group' description 2018-09-05 13:38:17 +02:00
Michael Vetter
9e021d5c8f Remove p_sha1 source files
And delete from Makefile.am
2018-09-05 11:45:31 +02:00
Michael Vetter
dcc249a616 Use libstrophe sha1 functions
Using libstrophes sha1 functions in p_sha1_hash() to get rid of the
p_sha1.c dependency.

Relates to https://github.com/boothj5/profanity/issues/882
2018-09-05 11:31:33 +02:00
Michael Vetter
6d80700329 Move ID generation to xmpp folder
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
2018-08-30 11:17:04 +02:00
Michael Vetter
f4fb61b0c8 Use uuid in create_unique_id instead of counter
Message IDs should be unique so they can be used by XEPs like delivery receipts, chat markers, message correction.

So far it used a counter so restarting profanity will cause the counter
to be 0 again.

Let's rather use an UUID since we have such a function in the
xmpp/xmpp.h already.

Closes https://github.com/boothj5/profanity/issues/998
2018-08-14 15:51:18 +02:00
Michael Vetter
811b3ba857
Merge pull request #926 from msantos/null-pointer-dereference
server_events: fix potential NULL pointer deref
2018-07-30 12:23:53 +02:00
Dominik Heidler
86a9ef7b5c Use correct macro
XMPP_FEATURE_PING insted of STANZA_NS_PING
2018-07-30 11:04:54 +02:00
Michael Vetter
64d5f938fd Fix gcc8 error about strncpy
With gcc8 we get the following error when stringop-truncation is on:

```
In function ‘_rotate_log_file’,
    inlined from ‘log_msg.part.2’ at src/log.c:201:17:
src/log.c:231:5: error: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
     strncpy(log_file_new, log_file, len);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/log.c: In function ‘log_msg.part.2’:
src/log.c:228:18: note: length computed here
     size_t len = strlen(log_file);
                  ^~~~~~~~~~~~~~~~
```

Using memcpy instead of strncpy.
2018-07-06 11:31:20 +02:00
Philip Flohr
7861c8c03c plugins_unload_all fails if one plugin unload operation fails 2018-04-21 16:47:58 +02:00
James Booth
70c70fcdf9 Fix theme load max tab length 2018-03-11 01:21:36 +00:00
James Booth
d6e7f389d1 Add max tab length to statusbar 2018-03-11 01:18:46 +00:00
James Booth
9f24f6083b Fix utf8 chars in statusbar 2018-03-11 00:46:27 +00:00
James Booth
b01dd7c48b Default tab name to false 2018-03-10 23:31:02 +00:00
James Booth
aa520f4f7c Add statusbar pref to themes 2018-03-10 23:22:58 +00:00
James Booth
8718b368a1 Statusbar render at start of small window 2018-03-10 23:01:51 +00:00
James Booth
b0e70e6caa Dont show extended tabs when max 0 2018-03-10 22:54:02 +00:00
James Booth
4bf67fb35a Use jid prefs in statusbar 2018-03-10 22:41:55 +00:00
James Booth
95b639a21f WIP add self prefs for statusbar 2018-03-10 22:16:52 +00:00
James Booth
b38f6ba512 Do not highlight room tab on subject change 2018-03-10 16:58:52 +00:00
James Booth
b7cb527608 Tidy windows when closing room config 2018-03-10 01:48:43 +00:00
James Booth
5dbddf4d43 Show extended tabs 2018-03-10 01:30:28 +00:00
James Booth
73bb628fd8 Refactor statusbar 2018-03-10 00:32:56 +00:00
James Booth
6f5c0eb525 Preference to show/hide tab number 2018-03-09 23:44:28 +00:00
James Booth
e96af8537c Only allow swapping active windows 2018-03-09 22:59:38 +00:00
James Booth
136b975b6c Remove empty tabs 2018-03-09 22:42:20 +00:00
James Booth
59382984c0 Add preferences for tab display 2018-03-09 21:15:27 +00:00
James Booth
a957c545d3 Add max tabs preference for statusbar 2018-03-08 23:11:49 +00:00
James Booth
720dce866e Add prefs for empty tabs and tab names 2018-03-08 22:27:49 +00:00
James Booth
119c5650cf Show name in statusbar tabs WIP 2018-03-08 20:01:36 +00:00
James Booth
1215ec9bc8 Add message to status bar 2018-03-07 22:22:53 +00:00
James Booth
be8ff9fdcd Set background in _status_bar_draw 2018-03-07 21:37:29 +00:00
James Booth
105c9c2943 Add time to status bar 2018-03-07 21:29:41 +00:00
James Booth
fcdddf11c0 Draw empty status bar 2018-03-07 20:58:07 +00:00
James Booth
d152c48d6f Do not colour room as joined when error joining
fixes #984
2018-03-07 19:43:24 +00:00
James Booth
44cff47668 Merge branch 'master' into autocomplete-clear 2018-03-05 20:50:05 +00:00
James Booth
ecd0736a09 Remove redundant window->type checks 2018-03-04 21:15:24 +00:00
James Booth
7c5ece24c5 Use jid argument for /bookmark when in room
fixes #983
2018-03-04 00:35:53 +00:00
James Booth
f4759cf337 Update themes 2018-02-10 00:01:26 +00:00
James Booth
ad76495267 Clear autocompletes on line edits 2018-02-09 22:48:55 +00:00
James Booth
d65fc24658 Fix muc nick autocomplete colon mid message 2018-02-09 20:47:41 +00:00
James Booth
bea815cc73 Update help for /rooms 2018-02-05 21:51:14 +00:00
James Booth
cba17faf3d Add /rooms service autocompletion 2018-02-05 21:40:32 +00:00
James Booth
e6d9a243cd Clear rooms cache on disconnect 2018-02-05 20:30:20 +00:00
James Booth
26a182945f Add /rooms cache 2018-02-05 20:01:54 +00:00
James Booth
8db2389df6 Filter rooms by simple case insensitive text 2018-02-04 21:59:33 +00:00
James Booth
a04b02c928 Include filter string in no rooms message 2018-01-28 00:13:36 +00:00
James Booth
e571ccd8ea Fix tests, move glob creation 2018-01-27 23:51:03 +00:00
James Booth
2e414797a4 Allow filtering rooms list by glob 2018-01-27 22:42:31 +00:00
James Booth
d4f06ac300 Show roster room server by defailt 2018-01-27 19:39:33 +00:00
James Booth
4c7396e77d Allow hiding room server in roster 2018-01-21 18:56:20 +00:00
James Booth
250e972b7a Update copyright 2018-01-21 15:00:02 +00:00
James Booth
ca1dcdda6c Show libotr and libgpgme versions on --version
issue #956
2017-08-10 22:47:17 +01:00
James Booth
17b4e45c57 Show Python version on --version
issue #956
2017-08-10 22:17:05 +01:00
Pavel Anosov
380e6f2b58 Fixed a typo in an error message ("This build does not support python plugins.") 2017-07-31 15:06:23 +02:00
James Booth
fc42e15789 Merge remote-tracking branch 'pasis/legacy-ssl' 2017-07-13 22:28:32 +01:00
Dmitry Podgorny
da51d99831 Fix memory leak in cmd_init()
_cmd_index() returns string allocated by glib.
2017-07-01 17:01:49 +03:00
Dmitry Podgorny
1012e11283 Legacy SSL support
Add "legacy" tls policy to /account and /connect commands. When this
policy is specified the connection is connected with
XMPP_CONN_LEGACY_SSL flag. Notice, legacy SSL and STARTTLS are not
compatible and user has to know when exactly the new policy should be
used.

To enable it, run one of the next commands:
  /connect <jid> tls legacy [server <host>]
  /account <name> set tls legacy

Notice, there is no SRV record for legacy SSL. Therefore, you may need
"server" property to connect successfully. Refer to configuration
provided by your server.
2017-06-24 21:33:30 +03:00
James Booth
4a6bf68727 Merge remote-tracking branch 'asdil12/ping' 2017-06-17 21:49:19 +01:00
Dominik Heidler
29f84ea3d4 Disable autoping if server doesn't support it
fixes #859
2017-06-16 12:11:44 +02:00
James Booth
f189dbc687 Only send ping requests to client that support it 2017-06-16 00:59:21 +01:00
James Booth
6511d61b13 Show message when server does not support ping 2017-06-15 23:27:30 +01:00
James Booth
b0a989a17f Recreate chat log when removed
fixes #210
2017-06-13 23:22:58 +01:00
James Booth
d52355d72c Set locale in unit tests
issue #901
2017-04-29 20:33:28 +01:00
James Booth
3e18aab9f3 Use g_utf8_find_ functions for prof_occurrences
issue #901
2017-04-28 21:41:55 +01:00
Michael Santos
db18ba8bdf server_events: fix potential NULL pointer deref 2017-04-12 10:20:22 -04:00
James Booth
2fafaec8a7 Allow search_any and search_all for help 2017-04-07 00:51:29 +01:00
James Booth
a39440b61d Match all terms on help search 2017-04-07 00:36:36 +01:00
James Booth
6cba96fdd1 Update /help help 2017-04-07 00:10:58 +01:00
James Booth
68cb8c9a8e Free cmd search index 2017-04-07 00:08:54 +01:00
James Booth
fd6620a950 Add basic help search 2017-04-06 23:36:50 +01:00
James Booth
6b830277a6 Allow previous autocompletion with shift tab 2017-04-01 00:27:11 +01:00
James Booth
97edebadcb Update Glib dependency to 2.40 2017-03-25 02:07:27 +00:00
James Booth
131c98b305 Add missing header 2017-03-25 01:48:40 +00:00
James Booth
b5e0106526 Autocomplete accent and case insensitive 2017-03-25 01:40:20 +00:00
Lukasz Marcinowski
91bc302acf Add theme option for time in a status bar 2017-03-22 19:56:00 +01:00
James Booth
f1a5d12950 Autotidy windows on /leave
fixes #917
2017-03-21 21:13:44 +00:00
James Booth
5f1ba08f55 Add plugins sourcepath property 2017-02-05 22:37:48 +00:00
James Booth
286fecf38d Allow installing plugins from directory 2017-02-05 21:09:03 +00:00
James Booth
c405367dfe Update plugins help 2017-02-05 19:23:16 +00:00
James Booth
dd42c3de6a Allow loading all plugins 2017-02-05 19:16:14 +00:00
James Booth
a9fab9ed2d Allow unloading all plugins 2017-02-05 18:54:33 +00:00
James Booth
68a3daedb9 Update Copyright 2017-01-28 17:24:22 +00:00
James Booth
8978f809f2 Fix alias help
fixes #899
2017-01-28 16:39:04 +00:00
James Booth
6679b890a0 Fix multibyte chars in prof_occurrences
issue #901
2017-01-26 00:52:13 +00:00
James Booth
b712820c99 Check barejid in carbons 2017-01-24 13:37:28 +00:00
James Booth
8e75437a7e Add carbons from check 2017-01-23 22:25:36 +00:00
James Booth
c073418306 Check roster contact before displayng typing notification
fixes #896
2017-01-23 20:56:05 +00:00
James Booth
83385cdbc0 Add pre chat and room message blocking 2017-01-22 18:09:04 +00:00
James Booth
7090f85d85 Add chat and room show calls to plugins api 2017-01-21 20:23:28 +00:00
James Booth
9cfd17821c Allow room display properies to be set by plugins 2017-01-20 23:26:14 +00:00
James Booth
c8874cd2e0 Allow chat prefix char to be set by plugins 2017-01-20 21:03:55 +00:00
James Booth
1b25aa84cb Add titlebar encryption text to plugins api 2017-01-19 22:33:29 +00:00
James Booth
68496db0b4 Fix conditional compile 2017-01-18 23:16:23 +00:00
James Booth
fccf56be10 Add prof.encryption_reset to Plugins API
issue #885
2017-01-18 22:46:29 +00:00
James Booth
0d0578b625 Fix compile 2017-01-16 00:07:17 +00:00
James Booth
2b7894ccff Remove status from cl_ev_presence_send
fixes #888
2017-01-15 23:59:31 +00:00
James Booth
b64646979e Remove unused function 2016-11-24 00:09:14 +00:00
James Booth
926d935e26 Fix help tags for /account 2016-11-23 00:17:50 +00:00
James Booth
e043029a50 Allow clearing account resource
issue #880
2016-11-22 00:39:52 +00:00
James Booth
c441dbfa42 Fix typo 2016-11-20 02:21:22 +00:00
James Booth
609d05366c Use server features for account muc service
issue #878
2016-11-20 02:09:34 +00:00
Spiridonov Alexander
fd2346ccb4
Makes /clear behavior configurable. 2016-11-07 03:26:15 +03:00
James Booth
8008d8c3c6 Add get_room_nick to plugins api 2016-11-06 23:01:16 +00:00
Frank Zschockelt
c0f099cb84 Added main.help.header theme option 2016-10-29 18:19:12 +02:00
James Booth
eac6b52e05 Fix typo 2016-10-29 13:06:50 +01:00
Spiridonov Alexander
0d6aef68e7 Change /clear behaviour. Closes issue #855. 2016-10-22 00:08:55 +03:00
James Booth
5b464f4cb0 Add /tls certpath default
issue #871
2016-10-17 23:48:03 +01:00
James Booth
04e0a53381 Remove unused functions 2016-10-16 22:34:27 +01:00
James Booth
333403d2e5 Remove ui_current_print_formatted_line 2016-10-16 22:13:49 +01:00
James Booth
769e71b17b Remove ui_current_print_line 2016-10-16 21:45:48 +01:00
James Booth
257d2d4f4f Remove unused function prototypes 2016-10-16 20:12:49 +01:00
James Booth
8fd9f9e201 Remove unused function prototype 2016-10-16 19:51:56 +01:00
James Booth
721dd050df Remove cons_show_word 2016-10-16 19:48:41 +01:00
James Booth
2032978ff6 Remove cons_show_time 2016-10-16 19:45:06 +01:00
James Booth
651541d7ec Rename buffer functions 2016-10-16 19:40:43 +01:00
James Booth
7ad722ae28 Fix win_append buffer push 2016-10-15 22:17:16 +01:00
James Booth
bb6540f7d8 Add win highlight fuctions 2016-10-15 22:12:07 +01:00
James Booth
f3aebd547c Use varargs in win_println_indent 2016-10-15 21:05:26 +01:00
James Booth
c814cb44b8 Add win_print_history 2016-10-15 20:55:45 +01:00
James Booth
f761d403b3 Use win_print_outgoing for carbons 2016-10-15 20:13:21 +01:00
James Booth
80309462ca Rename win_print_incoming_message -> win_print_incoming 2016-10-15 20:09:14 +01:00
James Booth
3b2ceee89b Add win_print_outgoing 2016-10-15 20:07:33 +01:00
James Booth
ce5f07a012 Add win_append 2016-10-15 19:53:49 +01:00
James Booth
711c5b8e45 Add win_appendln 2016-10-15 19:19:44 +01:00
James Booth
8f1d3ab55c Add win_print 2016-10-15 18:29:02 +01:00
James Booth
3612270e90 Rename win_println -> win_println_indent 2016-10-15 17:23:02 +01:00
James Booth
5488fd6e72 Remove win_vprintln_ch 2016-10-15 17:17:17 +01:00
James Booth
478c749ff9 Remove ui_current_error_line 2016-10-15 17:08:29 +01:00
James Booth
9d075c9805 Remove ui_win_error_line 2016-10-15 17:07:15 +01:00
James Booth
864939b809 Use win_printf_line instead of win_println 2016-10-15 17:03:30 +01:00
James Booth
e29e532d87 Remove whitespace 2016-10-15 16:42:23 +01:00
James Booth
6ed04d87b3 Rename win_get_string -> win_to_string 2016-10-15 16:41:37 +01:00
James Booth
8cf9e0cccc Use win_printf_line where appropriate 2016-10-15 16:31:54 +01:00
James Booth
33b4b79f2e Add ch arg to win_printf_line 2016-10-15 00:04:57 +01:00
James Booth
2f888979c5 Use THEME_DEFAULT 2016-10-14 23:56:51 +01:00
James Booth
54cf1dbec4 Add win_printf_line 2016-10-14 23:38:39 +01:00
James Booth
24f0dc2734 Always use string format in win_printf 2016-10-12 00:40:41 +01:00
James Booth
97898ee082 Add win_printf_line 2016-10-12 00:14:55 +01:00
James Booth
7b31af3060 Remove args from win_print_with_receipt 2016-10-11 23:47:13 +01:00
James Booth
af42bc4434 Add win_print_http_upload 2016-10-11 23:40:15 +01:00
James Booth
0890179fc4 Remove win_print, use win_printf instead 2016-10-11 23:38:59 +01:00
James Booth
0337c5b22c Rename win_vprint -> win_printf 2016-10-11 23:10:48 +01:00
James Booth
dcc2123ec4 Allow filepath autocompletion in plugins
closes #858
2016-10-10 22:28:23 +01:00
James Booth
d485588a07 Remove hash table replace entry when adding plugin timed callbacks
fixes #869
2016-10-09 23:37:36 +01:00
James Booth
40116db7c5 Fix /tls revoke message
fixes #868
2016-10-06 00:45:55 +01:00
James Booth
82a8f5f10b Minor code tidy cmd_ac.h 2016-10-06 00:20:20 +01:00
James Booth
4ba496a466 Minor code tidy cmd_ac.c 2016-10-06 00:19:06 +01:00
James Booth
c40660b0d8 Use current room for /bookmark add and /bookmark remove 2016-10-05 00:52:57 +01:00
James Booth
94fd116ef8 Reduce scope of GString in autocompleters
fixes #867
2016-10-03 21:44:40 +01:00
James Booth
772a72b6e6 Add config.h to http_upload.c 2016-10-02 22:52:17 +01:00
Jack Henschel
4b2f9448f7 Correct minor spelling errors 2016-09-27 16:20:37 +02:00
James Booth
b087f84d95 Allow setting /occupants properties when no connected 2016-09-26 00:46:09 +01:00
James Booth
da437642a5 Merge branch 'master' into win-order 2016-09-25 23:32:15 +01:00
James Booth
a48df40138 Fix assertion errors in unit tests 2016-09-25 23:30:44 +01:00
James Booth
b8bec9fce6 Merge branch 'master' into win-order 2016-09-25 22:58:04 +01:00
James Booth
9796b23cfd Use caps_lookup when checking for feature 2016-09-25 22:57:43 +01:00
James Booth
83974728af Remove verbose output on window move 2016-09-25 21:47:00 +01:00
James Booth
72f6b2db71 Tidy window position prefs 2016-09-25 21:24:29 +01:00
James Booth
3bf383cec6 Fix defaulting win positions 2016-09-25 20:49:54 +01:00
James Booth
6c8def367c Fix /inputwin up 2016-09-23 01:04:41 +01:00
James Booth
d3cc5bd7ed Allow vertical positioning of all windows 2016-09-23 00:56:53 +01:00
James Booth
3983ee1d6b Rename /titlebar -> /wintitle 2016-09-22 21:42:00 +01:00
James Booth
0aa758cbfb Add /inputwin top|bottom command
closes #853
2016-09-19 23:40:45 +01:00
James Booth
4647fd8a4f Free stanzas on stanza_create_http_upload_request() 2016-09-05 23:27:56 +01:00
James Booth
77ef4de29e Free hashtable key list in connection_jid_for_feature() 2016-09-05 23:19:22 +01:00
James Booth
74148dd6a2 Fix string frees in _complete_filepath 2016-09-05 23:10:09 +01:00
James Booth
2613d23f8b Free string on /plugins install 2016-09-05 22:55:23 +01:00
James Booth
9e59571f84 Free strings in _complete_filepath 2016-09-05 22:27:30 +01:00
Tim Nieradzik
74942da0ff cmd_defs: Fix typo 2016-09-05 09:34:00 +03:00
James Booth
f6e9ff5b9b Fix missing params 2016-09-03 22:53:32 +01:00
James Booth
0fe35d5f05 Merge pull request #845 from pasis/tray
Fix implicit declaration of function free
2016-09-03 22:39:16 +01:00
Dmitry Podgorny
6090f76f72 Add missed argument 2016-09-02 20:56:20 +03:00
Dmitry Podgorny
5be8f5f560 Fix implicit declaration of function free 2016-09-02 20:53:41 +03:00
James Booth
47a1a62009 Add sv_ev_bookmark_autojoin 2016-08-28 22:42:09 +01:00
James Booth
ea98a8b04a Rename Bookmark->jid to Bookmark->barejid 2016-08-28 22:12:50 +01:00
James Booth
6a18dedca8 Fixed typos 2016-08-28 17:30:15 +01:00
James Booth
fca59a3110 log_info on private carbons 2016-08-28 17:27:26 +01:00
James Booth
ea9216f054 Change autoping timeout default to 20 seconds 2016-08-22 22:22:43 +01:00
James Booth
f14a3e075e Update help 2016-08-22 00:34:35 +01:00
James Booth
0886062806 Use hash table for bookmarks 2016-08-21 15:25:49 +01:00
James Booth
a52230978f Tidy presence.c 2016-08-20 23:31:27 +01:00
James Booth
948d63d855 Tidy _handle_carbons 2016-08-20 21:37:20 +01:00
James Booth
583fb2b8c6 Use libstrophe xmpp_presence_new convenience function 2016-08-20 20:37:48 +01:00
James Booth
27263508c7 Use libstrophe xmpp_iq_new convenience function 2016-08-20 20:20:38 +01:00
James Booth
d61abd3577 Use libstrophe xmpp_message_get_body convenience function 2016-08-20 19:23:32 +01:00
James Booth
39ff399626 Use libstrophe xmpp_message_new convenience function 2016-08-20 19:08:13 +01:00
James Booth
45048e3ac8 Replace stanza_create_message with libstrophe convenience functions 2016-08-20 18:51:19 +01:00
James Booth
24c3eff428 Use libstrophe convenience functions for stanza attributes 2016-08-20 18:16:51 +01:00
James Booth
a978bb12bf Send receipt request only when receiver supports feature
issue #829
2016-08-18 22:53:23 +01:00
James Booth
71dcb2e427 Only include lastactivity feature in disco responses when enabled 2016-08-18 00:29:33 +01:00
James Booth
4de570b1ee Only include receipts feature in disco responses when enabled
issue #829
2016-08-18 00:10:15 +01:00
James Booth
41acaee955 Use hashtable to store profanity disco features 2016-08-17 23:49:20 +01:00
James Booth
7b22c813c8 Copy feature strings on caps_get_features 2016-08-17 23:32:43 +01:00
James Booth
9945246a64 Use hashtables for plugin disco features 2016-08-17 23:21:48 +01:00
James Booth
8b6549b36c Add caps_create 2016-08-14 01:06:13 +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
9c4e02db77 Move caps static functions 2016-08-13 23:53:41 +01:00
James Booth
e776ef9b68 Rename caps_contains -> caps_cache_contains 2016-08-13 23:45:58 +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
9ce59b1589 Free DiscoIdentity and SoftwareVersion 2016-08-13 17:49:19 +01:00
James Booth
ed75f1ec71 Use SoftwareVersion in EntityCapabilities 2016-08-13 17:43:43 +01:00
James Booth
0bd5b5200a Use DiscoIdentity in EntityCapabilities 2016-08-13 17:19:24 +01:00
James Booth
80eb5bee90 Rename Capabilties -> EntityCapabilities 2016-08-13 16:39:25 +01:00
James Booth
e949114284 Reduce variable scope in caps_create_sha1_str 2016-08-13 16:21:25 +01:00
James Booth
5c6e75fa06 Merge branch 'master' into caps 2016-08-13 00:17:23 +01:00
James Booth
4f5281bff0 Refactor stanza.c 2016-08-13 00:12:46 +01:00
James Booth
6ec159737b Use list for profanity service discovery features 2016-08-12 22:25:35 +01:00
James Booth
a65403c54a Remove disco features added by plugins on unload 2016-08-11 23:20:59 +01:00
James Booth
bb676cc0fc Check return values from python plugin hooks 2016-08-11 00:27:14 +01:00
James Booth
5d6b2d0b04 Add resource to chat message plugin hooks 2016-08-10 21:37:22 +01:00
James Booth
a948d741d9 Rename plugin jid arguments 2016-08-10 20:45:14 +01:00
James Booth
efeb2fcfcd Rename plugins settings functions 2016-08-07 00:16:57 +01:00
James Booth
350c121e26 Return int on c_api_settings_string_list_remove_all 2016-08-01 22:40:47 +01:00
James Booth
b2508be8f4 Return boolean on prof_settings_string_list_remove_all() 2016-08-01 22:09:25 +01:00
James Booth
b72bb3a157 Remove log debugs 2016-08-01 21:59:12 +01:00
James Booth
2518aa5078 Add string lists settings to plugins 2016-08-01 21:34:38 +01:00
James Booth
51a7588bc4 Add typedefs to C plugin API 2016-07-30 21:22:45 +01:00
James Booth
3396e75d23 Handle NULL saved_status 2016-07-27 23:35:49 +01:00
James Booth
a1f48f8457 Copy curr_status and free original in session.c 2016-07-27 22:07:11 +01:00
James Booth
6c1fef522a Use g_strndup in c_api.c 2016-07-27 21:32:44 +01:00
James Booth
ae003e62fb Remove copied char* in groupchat_log_chat 2016-07-26 00:40:29 +01:00
James Booth
8602ede65e Tidy rosterwin memory handling 2016-07-25 23:28:04 +01:00
James Booth
6777919d96 Rename rooms vars in _send_room_presence 2016-07-25 23:13:09 +01:00
James Booth
5f8ef3816c Free rooms list in sv_ev_login_account_success 2016-07-25 23:11:41 +01:00
James Booth
71730e9d99 Unreference GDateTime 2016-07-25 23:09:51 +01:00
James Booth
8633cd6e29 Free ProfAccount 2016-07-25 22:38:23 +01:00
James Booth
d5d04756ce Fix memory leaks 2016-07-25 22:23:54 +01:00
James Booth
943e91268c Fix memory leaks 2016-07-25 21:56:38 +01:00
James Booth
139e53f388 Decrement reference count on python hook args objects 2016-07-25 21:48:00 +01:00
James Booth
130e753aac Use Py_RETURN_NONE 2016-07-25 21:13:47 +01:00
Dominik Heidler
5d354defca Fix indentation in http_upload.c 2016-07-25 12:28:33 +02:00
James Booth
fcbf56657d Remove unused function prototype 2016-07-25 02:06:55 +01:00
James Booth
0ffb441cad Store GTimeZone in statusbar
fixes #785
2016-07-25 01:29:09 +01:00
James Booth
33172cb917 Free pgpdir 2016-07-25 01:03:44 +01:00
James Booth
1437c360b5 Free old hash table on wins_tidy 2016-07-25 00:57:42 +01:00
James Booth
8f9f018d5a Free python_str_or_unicode_to_string results 2016-07-25 00:41:34 +01:00
James Booth
923256b8bb Free icon dir path name 2016-07-25 00:18:52 +01:00
James Booth
cbfc34f7c3 Remove debug on plugin win create 2016-07-24 22:32:39 +01:00
James Booth
a3a73cf003 Move all filepath handling to files.c 2016-07-24 21:49:35 +01:00
James Booth
29452f8f1b Move xgd functions 2016-07-24 17:12:09 +01:00
James Booth
6cc4abedc5 Move window functions to window_list.c 2016-07-24 17:02:09 +01:00
James Booth
37742d71b6 Move resource conversions 2016-07-24 16:27:39 +01:00
James Booth
ef942bd27a Add config/files.c 2016-07-24 16:22:15 +01:00
James Booth
e7bfaa643f Move autoaway check 2016-07-24 16:06:24 +01:00
James Booth
0a57c4de78 Tidy headers 2016-07-24 15:43:51 +01:00
James Booth
5bc38b6bc2 Moved window_list.c 2016-07-24 15:14:46 +01:00
James Booth
8f213f22e7 Moved tray.c 2016-07-24 15:10:58 +01:00
James Booth
90b9b48ab9 Moved roster_list.c 2016-07-24 15:08:47 +01:00
James Booth
cc32bb7738 Moved resource.c 2016-07-24 15:05:24 +01:00
James Booth
2af0d38e3d Moved muc.c 2016-07-24 15:02:43 +01:00
James Booth
1c5efaeb58 Moved jid.c 2016-07-24 14:59:28 +01:00
James Booth
c23506f453 Moved contact.c 2016-07-24 14:55:32 +01:00
James Booth
9cff37352a Make header defines consistent 2016-07-24 14:51:39 +01:00
James Booth
310abd401d Moved chat_state.c 2016-07-24 14:28:25 +01:00
James Booth
25a6252a28 Moved chat_session.c 2016-07-24 14:23:55 +01:00
James Booth
0649aad80d Move event timeout to connection module 2016-07-24 14:08:30 +01:00
James Booth
8d8f2f290d Moved chat state handling code to chat_state.c 2016-07-24 13:56:11 +01:00
James Booth
7c593c2780 Reorder headers 2016-07-24 02:16:57 +01:00
James Booth
4209b1cf45 Add /plugins python_version command 2016-07-24 02:12:56 +01:00
James Booth
b48a3d2f6a Python plugins: Free string values 2016-07-24 01:53:13 +01:00
James Booth
47dfa6c3fc Merge branch 'master' into python3
Conflicts:
	.gitignore
2016-07-24 01:22:29 +01:00
James Booth
4ecb4019a6 Add missing include 2016-07-24 01:19:59 +01:00
James Booth
e8fc80f5c1 Update GPL link in headers 2016-07-24 01:14:49 +01:00
James Booth
d44472049b Allow str and unicode in python api 2016-07-24 01:09:18 +01:00
James Booth
d2e237203c Check for win callback hash before removing 2016-07-21 22:23:28 +01:00
Pete Maynard
14c8f53f85 Updated GPL URL 2016-07-21 11:49:52 +01:00
James Booth
376811a960 Tidy python3 conditional code 2016-07-19 01:02:33 +01:00
James Booth
71ccfcc09f Add python_init_prof() 2016-07-18 23:24:26 +01:00
James Booth
269b8ce832 Merge branch 'master' into python3 2016-07-18 22:55:05 +01:00
James Booth
feb50ea411 capabilities: use free instead of g_free 2016-07-18 22:32:58 +01:00
James Booth
d4b3a05678 Use g_path_get_basename when installing plugin 2016-07-18 20:55:50 +01:00
James Booth
7d742f704f Fix prof module init for python3 2016-07-18 01:27:23 +01:00
James Booth
ace2715cf7 Added PYTHON3 define 2016-07-14 00:00:46 +01:00
James Booth
10814b044d Fix plugin install output 2016-07-13 01:06:03 +01:00
James Booth
9af921f260 Remove redundant plugin dir function 2016-07-13 00:49:53 +01:00
James Booth
7abf506261 Free memory when plugin windows closed 2016-07-13 00:25:45 +01:00
James Booth
0991699ae6 Add /plugins install command 2016-07-12 23:50:21 +01:00
James Booth
5f393a6d9f Remove plugin window on /close 2016-07-12 02:16:12 +01:00
James Booth
1a7eb00763 Check for plugin win before creating 2016-07-12 01:51:27 +01:00
James Booth
9a0111c10a Allow reloading all plugins with /plugin reload 2016-07-10 01:28:30 +01:00
James Booth
448bef247b Add /plugin reload command 2016-07-10 01:07:41 +01:00
James Booth
44862fe842 Remove string allocation for conflists 2016-07-10 00:43:53 +01:00
James Booth
d24a0508f4 Store python modules on load 2016-07-09 23:42:09 +01:00
James Booth
7776c1494a Reaload python module if previous loaded on /plugin load 2016-07-09 23:13:36 +01:00
James Booth
1926ceea3d Plugin unload remove cmd_acs and close window 2016-07-05 22:46:00 +01:00
James Booth
82458c9d96 Revert "Move adding plugins commands to autocompleters"
This reverts commit 97f7997025.
2016-07-05 22:11:58 +01:00
James Booth
97f7997025 Move adding plugins commands to autocompleters 2016-07-05 22:10:41 +01:00
James Booth
99598e7d57 Add plugins on_unload hook 2016-07-05 22:03:14 +01:00
James Booth
71178b3696 Store plugin completers by plugin name 2016-07-05 21:46:36 +01:00
James Booth
fd218ac3e4 Pass plugin name to all autocompleter functions 2016-07-04 23:14:08 +01:00
James Booth
03c7ac73fd Move prefs_remove_plugin to plugins_unload 2016-07-04 23:00:41 +01:00
James Booth
c8d09083a8 Remove plugin callbacks in plugin_destroy functions 2016-07-04 22:54:55 +01:00
James Booth
0d7b4cb4a7 Store plugin window callbacks by plugin name 2016-07-04 22:42:15 +01:00
James Booth
a779ad0764 Use hash table for plugin timed functions 2016-07-04 21:48:04 +01:00
James Booth
71879a3f64 Free plugins commands on quit 2016-07-04 00:41:29 +01:00
James Booth
606a860bdc Rename callback execte and destroy functions 2016-07-03 01:03:05 +01:00
James Booth
70a79abd3b Add plugin name to win_create api call 2016-07-03 00:48:22 +01:00
James Booth
31c66bf857 Move plugin theme and settings init 2016-07-01 00:01:07 +01:00
James Booth
3bd3de036f Use hash table to store plugins 2016-06-30 23:58:04 +01:00
James Booth
bb33522e4d Fix plugin load prefs 2016-06-30 23:18:30 +01:00
James Booth
0cd1b50122 Move plugin config add on load 2016-06-30 23:16:54 +01:00
James Booth
ef6bad483e /plugins unload command and completer 2016-06-30 23:14:05 +01:00
James Booth
56480ce9ea Pass plugin name to api layer 2016-06-30 22:54:46 +01:00
James Booth
29eb843d56 Revert "WIP - Unload plugin commands"
This reverts commit a01eb5d08e.
2016-06-30 22:37:52 +01:00
James Booth
a01eb5d08e WIP - Unload plugin commands 2016-06-29 23:35:57 +01:00
James Booth
61a09476c5 Add macro for plugins completer add 2016-06-23 00:44:52 +01:00
James Booth
1e37b755fe Add macro for C plugins register_timed 2016-06-23 00:36:26 +01:00
James Booth
c6288d89f9 Add function to get C plugin name 2016-06-23 00:26:50 +01:00
James Booth
620e6a5a37 Add function to get plugin name 2016-06-22 01:09:39 +01:00
James Booth
3a3933eff6 Add ProfIdFreeCallback to free stale id handlers on connect 2016-06-08 23:25:51 +01:00
James Booth
d79364358a Fix memory leaks 2016-06-08 22:23:00 +01:00
James Booth
4c03ee6066 Free string on connect autocomplete 2016-06-08 21:29:15 +01:00
James Booth
086fd30e23 Check for NULL before clearing connection data 2016-06-01 22:41:17 +01:00
James Booth
784d9642bc Complete no arg for /account properties 2016-06-01 00:41:27 +01:00
James Booth
78785fa7e6 Complete no arg for /join properties 2016-06-01 00:15:01 +01:00
James Booth
28cc04ca7d Complete no arg for /connect properties 2016-06-01 00:04:35 +01:00
James Booth
3215418296 Merge branch 'master' into complete-empty 2016-05-31 23:29:46 +01:00
James Booth
e758f74e48 Update /notify help 2016-05-31 23:26:30 +01:00
James Booth
705e3dc7d8 Remove commented code 2016-05-31 23:22:07 +01:00
James Booth
383e601f25 Move /statuses options to /presence command 2016-05-31 23:21:19 +01:00
James Booth
52c01a8ee8 Add /presence titlebar subcommand 2016-05-31 22:46:03 +01:00
James Booth
1d5cc33279 Merge branch 'master' into complete-empty 2016-05-25 00:22:51 +01:00
James Booth
94212cd01c Update window navigation help 2016-05-25 00:21:27 +01:00
James Booth
5c15f95646 Complete no arg for /bookmark properties 2016-05-24 23:39:27 +01:00
James Booth
b574919738 Complete no arg for /role set 2016-05-24 23:39:09 +01:00
James Booth
e8b2578039 Complete no arg for /affiliation set 2016-05-24 01:43:45 +01:00
James Booth
492c1bfa14 Complete no arg for /script run|show 2016-05-24 01:39:16 +01:00
James Booth
78c23dce58 Complete no arg for /theme load 2016-05-24 01:37:25 +01:00
James Booth
d1ece21b5f Complete no arg for /plugins load 2016-05-24 01:36:21 +01:00
James Booth
e183fd9186 Allow empty autocomplete for /otr policy 2016-05-24 01:28:04 +01:00
James Booth
f377e0329e Allow autocomplete for basic compelters when no input 2016-05-24 00:32:53 +01:00
James Booth
6559263b2f Option to bookmark room invites
issue #813
2016-05-23 23:53:44 +01:00
James Booth
0edd430925 Merge branch 'cmd-tidy' 2016-05-23 22:34:45 +01:00
James Booth
3aa788772e Updated console output for room invites 2016-05-23 22:27:29 +01:00
James Booth
d0117cdabe Remove unneeded functions from cmd headers 2016-05-23 00:40:10 +01:00
James Booth
eb105e9172 Move functions from cmd_defs to cmd_funcs 2016-05-23 00:31:00 +01:00
James Booth
dfe613418f Fix command headers 2016-05-23 00:06:01 +01:00
James Booth
fb34785566 Rename command sources 2016-05-22 23:59:52 +01:00
James Booth
eaf2901b01 Add cmd_autocomplete.c 2016-05-20 00:19:03 +01:00
James Booth
a04e34fddc Fix output for tray timer setting 2016-05-15 02:15:45 +01:00
James Booth
c6a6e3a51c Add /tray timer <seconds>
closes #787
2016-05-15 01:41:34 +01:00
James Booth
d00615beba Add /tray read on|off command
issue #786
2016-05-15 00:55:19 +01:00
James Booth
cf8452d95f Reorder headers in inputwin.c
Fixes unknown type name '_fpos64_t' error on Cygwin
2016-05-11 22:50:19 +01:00
James Booth
598b2b3235 Add missing string.h include in blocking.c 2016-05-11 22:32:22 +01:00
James Booth
5439317ba1 Reorder headers in common.c
Fixes unknown type name '_fpos64_t' error on Cygwin
2016-05-11 22:30:39 +01:00
James Booth
d805d0c886 Added missing header in ui.h 2016-05-11 22:22:59 +01:00
James Booth
b935b4621c Add connection_set_disconnected() 2016-05-11 00:02:39 +01:00
James Booth
7e079f3684 Add connection_clear_data() 2016-05-10 23:53:44 +01:00
James Booth
a7fa27df01 Remove connection_free_conn(), connection_free_ctx() 2016-05-10 23:34:25 +01:00
James Booth
a67d199581 Add connection_shutdown() 2016-05-10 23:27:16 +01:00
James Booth
3d20c85ada Remove JABBER_STARTED, JABBER_UNDEFINED connection states 2016-05-10 23:18:11 +01:00
James Booth
22c4d91c50 Remove _session_free_session_data from session.c 2016-05-10 22:49:58 +01:00
James Booth
02bc4f217c Tidy connection.c 2016-05-10 22:09:09 +01:00
James Booth
5cb6b174cc Tidy connection.c 2016-05-10 21:59:41 +01:00
James Booth
030ac9e4e1 Fixed compile 2016-05-08 23:48:29 +01:00
James Booth
cd5d242207 Tidy session.c 2016-05-08 21:47:52 +01:00
James Booth
ec51ae689c Free features on disconnect 2016-05-08 03:14:22 +01:00
James Booth
ac3ab39e23 Use hash table for disco features 2016-05-08 03:04:36 +01:00
James Booth
29380a39cd Remove connection_get_disco_infos() 2016-05-08 02:37:02 +01:00
James Booth
188df60cfe Rename diso_items->diso_infos 2016-05-08 02:30:34 +01:00
James Booth
31e6cc8e38 Add connection_get_disco_info() 2016-05-08 02:25:34 +01:00
James Booth
137202e5dd Add connection_item_for_feature() 2016-05-08 01:45:22 +01:00
James Booth
f28655c5c8 Move logic to connection_set_disco_items 2016-05-08 01:10:42 +01:00
James Booth
f1cf444e05 Move conneciton initialisation to _connection_handler 2016-05-08 00:21:06 +01:00
James Booth
2f61f8d646 Move xmpp_initialise() to conneciton.c 2016-05-07 23:29:19 +01:00
James Booth
6ce8edc194 Move disco info struct to connection 2016-05-07 23:28:16 +01:00
James Booth
9596591610 Move available resources to connection struct 2016-05-07 23:04:50 +01:00
James Booth
7f1beadea9 Rename xmpp types 2016-05-06 02:31:55 +01:00
James Booth
81e95966cf Remove redundant tls secured function 2016-05-06 02:18:31 +01:00
James Booth
c009144b3d Tidy connect function 2016-05-06 02:08:10 +01:00
James Booth
3cb60399a1 Move connection_connect 2016-05-06 02:02:23 +01:00
James Booth
579d062063 Move send stanza function 2016-05-06 01:51:58 +01:00
James Booth
b6c4a2029f Move conn is secure function 2016-05-06 01:49:27 +01:00
James Booth
8950dbb768 Move tls peer cert function 2016-05-06 01:47:19 +01:00
James Booth
31b0f0b0c8 Move uuid functions 2016-05-06 01:16:13 +01:00
James Booth
d1c71e98f4 Move connection fulljid function 2016-05-06 01:12:54 +01:00
James Booth
cc485ed338 Tidy session.c 2016-05-06 01:10:12 +01:00
James Booth
88f423afea Rename jabber_ functions 2016-05-06 00:53:03 +01:00
James Booth
3bb1f12410 Add session.c 2016-05-05 23:51:49 +01:00
James Booth
f6fa63b374 Renamed connection.c -> session.c 2016-05-05 22:10:10 +01:00
James Booth
ccabc08fef Tidy xmpp headers 2016-05-04 01:19:51 +01:00
James Booth
2e1eb9210a Remove userdata from _blocklist_result_handler 2016-05-02 22:49:30 +01:00
James Booth
aabe3afff8 Rename stanza handler init functions 2016-05-02 22:34:43 +01:00
James Booth
39fb05577a Rename id_handler_add -> iq_id_handler_add 2016-05-02 21:50:39 +01:00
James Booth
92780f3e6e Remove free DiscoInfo values 2016-05-02 00:59:37 +01:00
James Booth
31ab43ea2d Free stanza text and DiscoInfo features 2016-05-02 00:40:16 +01:00
James Booth
2bacd43a16 Free stanza text on plugin send hooks 2016-05-01 23:41:57 +01:00
James Booth
6df6fed305 Disable tray icon by default 2016-05-01 20:33:42 +01:00
James Booth
d2df850f38 Update /blocked help 2016-05-01 20:20:15 +01:00
James Booth
5a48b7b7d5 Use current jid for /blocked add in chat win 2016-05-01 20:06:34 +01:00
James Booth
b8c94376aa Add /blocked command 2016-05-01 19:39:39 +01:00
James Booth
a2efda19cc Merge remote-tracking branch 'pasis/const-char' 2016-05-01 00:39:16 +01:00
James Booth
623fbe9e47 Plugins: Added prof_disco_add_feature() 2016-04-30 23:00:07 +01:00
James Booth
a718e6f91b Refactored /account set commands 2016-04-28 01:13:42 +01:00
James Booth
d4789ac375 Fixed compiler errors 2016-04-27 22:10:27 +01:00
James Booth
df30d4ba52 Check first entry in command sub_funcs 2016-04-27 21:52:58 +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
James Booth
5687c3e419 Free inputrc string
fixes #797
2016-04-27 01:36:14 +01:00
James Booth
ce32814679 Updated Command structure comments 2016-04-27 00:03:24 +01:00
James Booth
d4aa73159e Merge branch 'master' into subcmds 2016-04-26 23:56:12 +01:00
James Booth
043a673fe1 Merge remote-tracking branch 'asdil12/xep_0363_http_file_upload' 2016-04-26 23:30:26 +01:00
James Booth
4ca6296fb7 Fix OSX compile 2016-04-26 23:50:56 +02:00
James Booth
65960dfbb2 Fixed cygwin compile (again) 2016-04-26 23:50:56 +02:00
James Booth
9d263d7c83 Fixed cygwin compile 2016-04-26 23:50:55 +02:00
Dominik Heidler
1b0ce852bb Implement XEP-0363: HTTP File Upload 2016-04-26 23:50:55 +02:00
James Booth
0ff29b3d2e Added sub commands to command structure 2016-04-26 20:29:45 +01:00
Dominik Heidler
28e260c7da Cache all disco items and features on connect 2016-04-20 00:19:40 +02:00
James Booth
20a0313d17 Show correct tray icon immediately on enable 2016-04-18 00:35:03 +01:00
James Booth
12727744ab Load/destroy tray icons on init/shutdown 2016-04-18 00:26:17 +01:00
James Booth
de65f505a8 Moved gtk specific code to tray.c 2016-04-18 00:07:15 +01:00
James Booth
507ea5746c Grouped tray icon initialisation code 2016-04-17 23:57:05 +01:00
James Booth
153552ed07 Remove redundant return value from _cmd_set_boolean_preference 2016-04-17 23:46:29 +01:00
James Booth
2daa02cb60 Merge remote-tracking branch 'asdil12/tray_config' 2016-04-17 23:17:43 +01:00
Dominik Heidler
4cb1d73a83 Make tray icon configurable using /tray cmd 2016-04-16 16:29:32 +02:00
James Booth
6cc04bc3ba Merge branch 'muc-hooks' 2016-04-15 22:58:32 +01:00
James Booth
feeac48cf3 Merge remote-tracking branch 'asdil12/help' 2016-04-15 22:50:00 +01:00
James Booth
8f009c3c8d Plugins fixed return values for python stanza hooks 2016-04-15 22:37:44 +01:00
James Booth
d90c47f287 Plugins: Added more muc hooks 2016-04-15 22:24:50 +01:00
Dominik Heidler
02bad7af28 Add /command? shortcut to view /help command 2016-04-13 10:47:53 +02:00
James Booth
b3a3351a35 Plugins: Added account_name and fulljid to prof_init hook 2016-04-13 00:10:37 +01:00
James Booth
46687aeced Only complete unloaded plugins on /plugins load 2016-04-12 23:25:31 +01:00
James Booth
8ff9fd7091 Execute python string to append plugin path 2016-04-12 02:31:28 +01:00
James Booth
697db019d5 Merge remote-tracking branch 'Dav1d23/master'
Conflicts:
	Makefile.am
	install-all.sh
2016-04-11 00:23:36 +01:00
David
b300fa5baf Use log facilities instead of printing on the stderr 2016-04-10 15:44:37 +02:00
David
92a50000c2 Re-introduce gtk_use boolean
This param is still actual, in case the environemnt does not
support gtk initialization.

Fix a GTK assert on the way (GTKStatusIcon is not a Widget, but a plain
GObject).
2016-04-10 15:44:37 +02:00
James Booth
5ddde3e59a Fixed /plugins help 2016-04-10 01:23:35 +01:00
James Booth
03ab8baf4d Added /plugins load command 2016-04-10 01:15:11 +01:00
James Booth
21aa08fdb1 Fixed typos 2016-04-09 20:19:50 +01:00
James Booth
699e08b238 Fixed timestamp for on_room_history_message 2016-04-08 01:17:22 +01:00
James Booth
93672eba9f Plugins: Added on_room_history_message 2016-04-08 00:11:33 +01:00
James Booth
2f432a942d Plugins: Added completer_clear 2016-04-07 23:25:47 +01:00
James Booth
7ca6084657 Plugins: Added on_room_win_focus 2016-04-07 22:15:03 +01:00
James Booth
271278dd20 Plugins: Added on_chat_win_focus 2016-04-07 22:06:14 +01:00
James Booth
bfdc3b8807 Plugins: Added completer_remove 2016-04-07 21:25:12 +01:00
James Booth
a328367eb4 Plugins: Renamed register_ac->completer_add 2016-04-07 20:49:23 +01:00
James Booth
2ba121aef3 Room mention case insensitive by default 2016-04-07 01:37:04 +01:00
James Booth
bdb1287a4f Free mentions list 2016-04-07 01:14:12 +01:00
James Booth
f243e333fc Added whole word matches for room mention 2016-04-07 01:01:27 +01:00
James Booth
6edf3b3f94 Merge branch 'master' into mention-config 2016-04-04 23:44:04 +01:00
James Booth
1de11678dc Added reset to /notify help 2016-04-04 23:41:30 +01:00
James Booth
afa2c0f5ba Added mention match preferences 2016-04-03 23:33:21 +01:00
James Booth
d9344b00fe Added prof_strstr function 2016-04-03 22:30:24 +01:00
Dominik Heidler
4b1481987d Fix typo: diso -> disco 2016-04-01 12:09:35 +02:00
James Booth
6f81f2b845 Removed newline handling code from rosterwin.c 2016-03-31 23:14:51 +01:00
James Booth
9b177a9e01 Removed #AX_PREFIX_CONFIG_H 2016-03-31 21:05:02 +01:00
James Booth
c91ce78a04 Added missing include in callbacks.c 2016-03-31 20:16:53 +01:00
James Booth
759d9ccb8d Added plugins presence hooks 2016-03-30 23:18:12 +01:00
David
1e60d17d7c libgtk is now optional
Having the lib is no more needed.
2016-03-30 23:21:41 +02:00
James Booth
194c53c4fa Plugins: Added basic incoming message function 2016-03-29 23:44:54 +01:00
James Booth
94b9b1d8e4 Merge branch 'master' into stanza-hooks 2016-03-29 21:44:18 +01:00
James Booth
66467f976f PGP: Fixed array size for encryption keys 2016-03-29 21:30:41 +01:00
James Booth
7b138b71db PGP: Also encrypt using sender public key 2016-03-29 21:24:37 +01:00
James Booth
c6730783bf Removed duplicate typedef 2016-03-28 15:44:03 +01:00
James Booth
d39e48ba18 Use one stanza handler per type (message, iq, presence)
Allows plugins to stop stanza processing
2016-03-28 01:25:48 +01:00
James Booth
8933d59b03 Added basic stanza receive eooks 2016-03-27 21:36:29 +01:00
James Booth
18555ffcb4 Allow sending stanzas in xml console 2016-03-26 17:11:19 +00:00
James Booth
7b34f72007 Use xmpp_send_raw_string instead of xmpp_send_raw 2016-03-26 16:44:02 +00:00
James Booth
d0397f3da5 Added stanza send hooks for plugins 2016-03-26 15:50:16 +00:00
James Booth
ce9b0836a0 Added integer settings for plugins 2016-03-26 02:19:30 +00:00
James Booth
e2b02733df Added plugin string settings 2016-03-26 01:48:42 +00:00
James Booth
a4e6d50a40 Added boolean settings for plugins 2016-03-25 22:06:24 +00:00
James Booth
4c913aa08b Added prof_send_stanza to plugins API 2016-03-23 22:57:03 +00:00
James Booth
503fc9e393 Update roster count on carbons 2016-03-22 00:28:22 +00:00
James Booth
6f537c3818 Add PGP decryption for incoming/outgoing carbons 2016-03-22 00:20:29 +00:00
James Booth
1075f07ff5 Parse plugin args with freetext parser
Also allow adding to plugin autocompleters
2016-03-15 22:32:44 +00:00
David
bdad30b2d9 This case was clearly not tested locally, so many failures here.
I guess now this should be fine, at least for the no gui case.
Locally it is working fine btw.

I miss Gerrit and the ability to test before pushing right now... :'(
2016-03-13 17:52:49 +01:00
David
028d24283e fix no gtk init 2016-03-13 17:50:42 +01:00
David
72856f9b6c typo 2016-03-13 17:12:01 +01:00
David
e43f3e95c0 fix possible free(NULL) 2016-03-13 17:09:58 +01:00
David
098d84ef73 Merge branch 'tray_icon' into HEAD
Let's thanks Aline <linuxine@gmail.com> for the icons.

Enjoy!
2016-03-12 17:37:46 +01:00
David
520eee23a9 fixing leakings 2016-03-12 16:55:52 +01:00
James Booth
11356fec01 Merge branch 'master' into plugins-python 2016-03-10 22:23:56 +00:00
James Booth
185405b9d1 Fixed PLATFORM_CYGWIN references 2016-03-10 22:21:56 +00:00
David
82de077b02 read icons from local dir
if desired, icons could be put in the .config dir.
In this case, these icons will be read, instead of the other ones.
2016-03-10 22:45:16 +01:00
James Booth
d157e9bf71 Plugins: Fix python threading
Release global interpreter lock during api calls
2016-03-09 23:36:22 +00:00
David
4abdad03ec Fix icons when installed in share... it is working now! 2016-03-09 20:09:31 +01:00
James Booth
85abab6bf9 Merge branch 'master' into plugins-python 2016-03-08 20:28:51 +00:00
James Booth
1ddfa47313 Free TLSCertificate memory 2016-03-08 20:25:36 +00:00
David
718a708b93 Use a folder to add icons
NOTE: it is not working in this release, I have to get how to retrieve
icons from folder.
2016-03-07 22:26:48 +01:00
James Booth
9850e041c8 Merge branch 'master' into plugins-python 2016-03-07 20:44:18 +00:00
James Booth
5cabcf9b79 Plugins: Added callbacks init and close functions
Included destroy function in PluginWindowCallback
2016-03-07 20:36:25 +00:00
David
d1177d3ade better icons 2016-03-07 20:10:59 +01:00
James Booth
e4071015ea Merge branch 'master' into plugins-python 2016-03-07 18:42:02 +00:00
James Booth
72f940360d Free GLists in plugin autocompleters 2016-03-07 18:32:32 +00:00
James Booth
958dc6b184 Free GList in wins_get_plugin 2016-03-07 18:30:13 +00:00
James Booth
355adb117c Added WIN_PLUGIN case to win_free() 2016-03-07 18:24:04 +00:00
James Booth
35e456aebd Merge branch 'master' into plugins-python 2016-03-07 17:15:48 +00:00
Klement Sekera
e1b15182a4 Fix typo maxinum->maximum 2016-03-07 14:06:10 +01:00
David
dc0c3cc699 Introduce Tray Icon for Profanity
Add tray icon for profanity based on Gtk StatusIcon.
Different icon is displayed in case the user has unread messages.
2016-03-06 19:10:46 +01:00
James Booth
581b6e2cf1 Merge branch 'master' into plugins-python 2016-03-03 00:32:48 +00:00
James Booth
09cfbb7e05 Fixed /help group formatting 2016-03-03 00:31:27 +00:00
James Booth
5ddf379ffd Merge branch 'master' into plugins-python 2016-03-01 00:04:38 +00:00
James Booth
7fdf50eb31 Add plugin wins to /win and /close autocompletion 2016-03-01 00:03:11 +00:00
James Booth
da7e59bc86 Merge remote-tracking branch 'origin/master' 2016-02-28 23:18:50 +00:00
James Booth
21f6e88c3b Added current_win_is_console to python API 2016-02-28 23:12:53 +00:00
James Booth
c81b05b919 Merge branch 'master' into plugins-python 2016-02-28 23:08:32 +00:00
James Booth
ab08d0a378 Added current_win_is_console to plugins api 2016-02-28 23:06:45 +00:00
James Booth
25c9b19562 Merge branch 'master' into plugins-python 2016-02-28 19:06:13 +00:00
James Booth
accde2a61c Fixed cygwin compile 2016-02-28 19:05:26 +00:00
James Booth
d458e930d1 Merge branch 'master' into plugins-python 2016-02-25 01:52:32 +00:00
James Booth
fbd913ec62 Remove default from plugin theme NULL checks 2016-02-25 01:51:33 +00:00
James Booth
f507a6f541 Merge branch 'master' into plugins-python 2016-02-25 01:18:48 +00:00
James Booth
c562702ab9 Check for NULLs before testing plugin theme 2016-02-25 01:17:47 +00:00
James Booth
661cda3b10 Merge branch 'master' into plugins-python 2016-02-25 00:14:06 +00:00
James Booth
51c6cefafd Call plugin disconnect hook before disconnecting on autoping fail
fixes #746
2016-02-25 00:10:22 +00:00
James Booth
f18fbe333a Merge branch 'master' into plugins-python 2016-02-24 23:54:25 +00:00
James Booth
5b34e11e45 Added missing string.h include to plugins/api.c 2016-02-24 23:52:59 +00:00
James Booth
e3130dbe82 Merge branch 'master' into plugins-python 2016-02-24 01:00:39 +00:00
James Booth
9d31ce49c3 Added missing stdlib.h include 2016-02-24 00:59:28 +00:00
James Booth
d6e85e5cd6 Added python_api_cons_bad_cmd_usage 2016-02-24 00:48:34 +00:00
James Booth
2783c84a13 Added python support to -v 2016-02-24 00:36:23 +00:00
James Booth
0fc0b3eeec Added python plugins code 2016-02-24 00:31:55 +00:00
James Booth
ac91e7ef85 Added theme support to plugins 2016-02-21 23:58:13 +00:00
James Booth
1654f16a2f Return result from plugin calls
closes #739
2016-02-21 02:06:09 +00:00
James Booth
3705437a60 Removed plugin hook call for MUC history 2016-02-18 22:59:00 +00:00
James Booth
412dc13629 Added prof_cons_bad_cmd_usage plugin function 2016-02-18 22:25:43 +00:00
James Booth
0ed3b53bd2 Integrated plugins with /help command 2016-02-18 21:53:20 +00:00
James Booth
a152d7fb8e Added cmd_help_autocomplete_add 2016-02-18 21:14:12 +00:00
James Booth
0654aa1151 Added plugin commands to /help autocompletion 2016-02-18 21:06:21 +00:00
James Booth
639623d625 Tidied cons_show_help 2016-02-18 20:52:52 +00:00
James Booth
a14b7815ae Added new help format to c plugins WIP 2016-02-18 01:20:37 +00:00
James Booth
2ac911618a Fix call to plugins_post_chat_message_send 2016-02-16 23:48:47 +00:00
James Booth
7945ef5277 Fix plugin command memleak 2016-02-15 00:09:51 +00:00
James Booth
bd928f0f29 Removed non c plugin code 2016-02-14 23:52:04 +00:00
James Booth
3dd5c3b2c3 Updated copyright 2016-02-14 23:12:01 +00: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
f887a35c0c Fixed memory deallocations 2016-02-14 01:59:53 +00:00
James Booth
d7b331874a Fix memory leaks 2016-02-14 01:49:57 +00:00
James Booth
7a19ee822b Fixed theme defaults memory release 2016-02-14 01:37:13 +00:00
James Booth
87e3530e22 Added missing prefs_free_string() 2016-02-14 01:34:34 +00:00
James Booth
c3dfd6d35a Highlight longer triggers first 2016-02-13 22:55:57 +00:00
James Booth
1a3dc91e11 Highlight room trigger terms 2016-02-13 22:46:25 +00:00
James Booth
2f82f50a35 Added roommention.term theme option 2016-02-10 23:03:23 +00:00
James Booth
71679a3159 Added mention and trigger themes for console 2016-02-10 21:38:28 +00:00
James Booth
6d518327a3 Fixed /role and /affiliation help 2016-02-07 19:32:23 +00:00
James Booth
62b0cdd8fd Fix room notification reminders 2016-02-07 01:15:40 +00:00
James Booth
abc2f0de39 Added /roster show|hide unsubscribed 2016-02-07 00:49:48 +00:00
James Booth
6702bb9739 Don't show notification reminders for messages the user does not want notifications for 2016-02-04 01:24:37 +00:00
James Booth
e1962261a9 Tidy notify_room_message() 2016-02-04 00:45:37 +00:00
James Booth
c14ef33906 Tidy notify_message() 2016-02-04 00:41:53 +00:00
James Booth
f8f9ad5197 Tidy prefs_do_chat_notify() 2016-02-04 00:35:10 +00:00
James Booth
8342265607 Removed unused arg: prefs_do_chat_notify() 2016-02-04 00:21:38 +00:00
James Booth
bab75cae15 Implemented /console private setting 2016-02-03 23:39:20 +00:00
James Booth
19a3066e28 Implemented /console chat setting 2016-02-03 23:16:42 +00:00
James Booth
72c1c49695 Added console.chat preference 2016-02-03 23:02:52 +00:00
James Booth
003cdcf3fb Added /console chat autocompletion 2016-02-03 22:47:22 +00:00
James Booth
30116dd922 Update autocompleters on roster nick change/clear
fixes #720
2016-02-03 22:19:29 +00:00
James Booth
46b27bcbd8 Fixed help formatting 2016-02-03 00:37:05 +00:00
James Booth
77e819e81a Handle self leaving room in private wins 2016-02-03 00:11:38 +00:00
James Booth
292c9cf454 Handle occupant nick change in private wins 2016-02-02 23:25:26 +00:00
James Booth
3ddef99dfe Handle occupant kicked/banned in private chat wins 2016-02-02 22:25:55 +00:00
James Booth
150015fa3d Show message in private windows when user offline 2016-02-02 21:52:13 +00:00
James Booth
f91b21a1d6 Allow splitting roster rooms by conference server 2016-02-01 01:11:01 +00:00
James Booth
08c1e62e3c Colour private chats by presence in roster panel 2016-01-31 23:08:14 +00:00
James Booth
431913127c Roster panel colour fixes 2016-01-31 22:02:04 +00:00
James Booth
3805fcfbd1 Fixed /pref ui formatting 2016-01-31 20:26:49 +00:00
James Booth
a00095c8a9 Added roster.rooms.private.char setting 2016-01-31 20:17:20 +00:00
James Booth
dd250c6799 Show orphaned private chats 2016-01-31 19:38:06 +00:00
James Booth
a0f43adf5b Only add private chats to Rooms unread count in roster when room active 2016-01-31 18:52:53 +00:00
James Booth
1c65c36cb6 Show offline contacts with unread messages in roster 2016-01-31 02:47:50 +00:00
James Booth
e816b124ee Removed unused arg from roster_get_ functions 2016-01-31 02:33:44 +00:00
James Booth
369aa5e8a8 Added filter functions to roster 2016-01-31 02:27:02 +00:00
James Booth
f17ecb77d2 Added functions for rooms and private chat headers 2016-01-31 00:34:44 +00:00
James Booth
5bbb3ef413 Added _rosterwin_contacts_header function 2016-01-30 23:53:46 +00:00
James Booth
3f3182a7de Reorganise rosterwin.c 2016-01-30 23:11:31 +00:00
James Booth
20659b9841 Added _rosterwin_contacts_all function 2016-01-30 22:54:52 +00:00
James Booth
2092273474 Removed _rosterwin_contacts_by_no_group function 2016-01-30 22:39:08 +00:00
James Booth
7c4a63f3c2 Moved offline check logic in roster panel 2016-01-30 22:23:59 +00:00
James Booth
b801a605a7 Show private chat unread message count in roster panel 2016-01-28 01:08:16 +00:00
James Booth
27adf0311b Updated themes 2016-01-28 00:43:50 +00:00
James Booth
fbe8c1e345 Added unread counts to roster 2016-01-28 00:26:20 +00:00
James Booth
d4f1384b85 Store /roster count setting 2016-01-27 23:02:28 +00:00
James Booth
dbc52de043 Added /roster count command 2016-01-27 22:34:22 +00:00
James Booth
0501e49623 Fix handling of unknown characters with word wrap 2016-01-26 00:25:13 +00:00
James Booth
38dfdb9d84 Added missing header 2016-01-25 22:54:34 +00:00
James Booth
45a1c66e87 Themes: Tidy foreground colour loading 2016-01-25 00:27:56 +00:00
James Booth
0ae975c27f Added themes for roster room mention and triggers
closes #718
2016-01-25 00:19:26 +00:00
James Booth
b6e9a09c64 Show console messages for room mention and triggers
closes #719
2016-01-24 23:47:17 +00:00
James Booth
5ff9fbd810 Tidy handling room mention and room triggers 2016-01-24 23:06:22 +00:00
James Booth
5ff36c14c0 Added roomtrigger colour theme
closes #717
2016-01-24 17:33:26 +00:00
James Booth
2a8da892aa Roster private chat preferences 2016-01-24 02:28:22 +00:00
James Booth
7cacee8781 Added private chat roster group 2016-01-24 01:30:02 +00:00
James Booth
6d8a3e2020 Added /roster private command 2016-01-24 01:04:21 +00:00
James Booth
67abfaa21e Added private chat to roster rooms 2016-01-24 00:33:24 +00:00
James Booth
2df622f9fd Formatting of /theme properties command output 2016-01-23 22:55:04 +00:00
James Booth
6ec3f71a54 Pad theme settings 2016-01-23 21:47:23 +00:00
James Booth
53fc89f711 Added account theme property 2016-01-22 01:06:28 +00:00
James Booth
72bbb5c2b9 Keep cache of default theme properties 2016-01-21 23:59:45 +00:00
James Booth
37171fe692 Show theme colour value 2016-01-21 02:00:12 +00:00
James Booth
6b65a9be15 Tidied theme properties 2016-01-21 01:30:18 +00:00
James Booth
adb470c454 WIP: Add /theme properties command 2016-01-21 00:50:55 +00:00
James Booth
5bccee93cc Added /roster show|hide contacts 2016-01-20 01:48:41 +00:00
James Booth
10507b687b Added sys/select.h header includes 2016-01-19 22:55:43 +00:00
James Booth
519b10d105 Added /roster rooms position preference 2016-01-19 22:38:00 +00:00
James Booth
7b982f383c Fixed theme load roster rooms unread setting 2016-01-17 21:20:00 +00:00
James Booth
cce01f1d75 Added /roster unread preferrence
closes #712
2016-01-17 02:17:12 +00:00
James Booth
e58be44f81 Added /roster room unread preference
closes ##708
2016-01-17 01:49:16 +00:00
James Booth
aab6a52eee Show unread message count for contacts in roster 2016-01-15 00:44:47 +00:00
James Booth
fbc302317a Added roster contact themes 2016-01-14 22:54:50 +00:00
James Booth
042ad4758f Fix compile error on Cygwin 2016-01-14 00:05:12 +00:00
James Booth
2e99df1ac2 Added window title autocomplete to /close command 2016-01-13 23:19:11 +00:00
James Booth
7938db0a25 Use offline presence for software version responses from non contacts
fixes #714
2016-01-13 22:25:29 +00:00
James Booth
850ac3c6c0 Allow unlimited theme items 2016-01-10 03:11:05 +00:00
James Booth
de90243401 Added roster rooms order preference 2016-01-09 22:21:09 +00:00
James Booth
cd2458c019 Added roster room themes 2016-01-09 21:37:59 +00:00
James Booth
fcbd2592cf Use different colour for roster chat rooms with unread messages 2016-01-09 20:40:13 +00:00
James Booth
51f033ae42 End OTR sessions on lost server connection 2016-01-08 00:22:17 +00:00
James Booth
a90e109f7e Destroy roster after updating UI in server disconnect 2016-01-08 00:13:12 +00:00
James Booth
e5447cf37b Added /win navigation by jid, win title 2016-01-07 00:38:17 +00:00
James Booth
393e690165 Merge branch 'master' into roster-struct 2016-01-05 01:38:31 +00:00
James Booth
e1e0fda8b3 Call UI disconnect functions before disconnecting with /disconnect
fixes #703
2016-01-05 01:30:32 +00:00
James Booth
055a5f71ce Added roster struct, create and destroy roster on connect/disconnect 2016-01-05 00:06:50 +00:00
James Booth
8e9bf08389 Add cl_ev_disconnect 2016-01-03 17:23:36 +00:00
James Booth
03f63a912e Close all windows on /disconnect 2016-01-03 02:20:17 +00:00
James Booth
a713654f93 Fixed compilation without libotr 2016-01-03 02:01:01 +00:00
James Booth
4f35b11471 End OTR session when recipient goes offline 2016-01-03 01:32:37 +00:00
James Booth
3d9e860574 Set autoping timeout default to 10 seconds, added null checks 2016-01-02 16:45:20 +00:00
James Booth
523c35c375 Fix roster rooms checks 2016-01-02 02:50:17 +00:00
James Booth
8ca3fe4ea8 Sort roster rooms 2016-01-02 02:41:51 +00:00
James Booth
f9d89d564f Check for mucwin before showing room in roster 2016-01-02 01:45:02 +00:00
James Booth
254c83d2d1 Added /roster show|hide rooms 2016-01-02 01:37:03 +00:00
James Booth
cf80fdc329 Added roster rooms preference 2016-01-02 01:29:12 +00:00
James Booth
22a14e1240 Show rooms in roster panel 2016-01-02 01:22:19 +00:00
James Booth
f27cae68c5 Added autoping timeout preference 2016-01-01 19:50:13 +00:00
James Booth
94b0d2c6da Added hardcoded autoping timeout 2015-12-31 01:48:04 +00:00
James Booth
08d30a4a83 Abort autping when existing attempt already in progress 2015-12-31 00:33:05 +00:00
James Booth
2847e39659 Tidy ping handlers 2015-12-31 00:11:58 +00:00
James Booth
a0c9b0cb70 Renamed autoping handler 2015-12-30 23:50:39 +00:00
James Booth
fb7001cffb Added console muc message setting to themes 2015-12-30 00:48:37 +00:00
James Booth
6a8656a06b Added /console command 2015-12-29 23:32:32 +00:00
James Booth
8ea228480c Added console MUC message preference 2015-12-29 23:00:49 +00:00
Dmitry Podgorny
bea246d81b Don't compile pgp code with --disable-pgp 2015-12-21 12:53:41 +02:00
James Booth
d9f5a2bda6 Updated console new message text 2015-12-20 23:26:05 +00:00
James Booth
1b88b5706e Change console incoming message text to include "win" 2015-12-20 22:50:03 +00:00
James Booth
e3471fbfaa Fixed /charset help 2015-12-20 03:15:00 +00:00
James Booth
1f56c12377 Added cons_show_incoming_room_message() 2015-12-20 00:54:17 +00:00
James Booth
8f6b37f650 Added /charset command 2015-12-19 23:32:58 +00:00
James Booth
a02c89a8e8 Use MB_CUR_MAX when calculating cursor position 2015-12-19 23:21:07 +00:00
James Booth
e1f674eca3 Fixed PGP error message 2015-12-19 22:55:33 +00:00
James Booth
88fd2a25ee Show PGP error strings 2015-12-15 00:38:16 +00:00
James Booth
482eea4fcf Moved sending of initial presence to sv_ev_roster_received 2015-12-14 23:57:06 +00:00
Steven Erenst
29bc58f53c Fix spelling and grammatical mistakes in command help text
Signed-off-by: Steven Erenst <stevenerenst@gmail.com>
2015-12-06 00:58:51 -08:00
James Booth
53fd2b3534 Read ~/.config/profanity/inputrc 2015-12-06 02:12:20 +00:00
James Booth
e9e54dca44 Renamed readline handlers 2015-12-06 01:33:53 +00:00
James Booth
0d25de9459 Added readline function definitions 2015-12-06 01:33:36 +00:00
James Booth
1093737c62 Updated version in CHANGELOG and comments 2015-12-02 00:34:27 +00:00
James Booth
1e6a1f9921 readline: set rl_outstream to /dev/null 2015-12-01 22:24:43 +00:00
James Booth
d35f30f382 Merge remote-tracking branch 'kiethandi/master' 2015-11-30 23:58:29 +00:00
U-DIR\kieran.thandi
d288291e49 Include string take 2 2015-11-30 23:16:33 +00:00
U-DIR\kieran.thandi
a78dba0ced resolve strdup dec 2015-11-30 22:57:10 +00:00
U-DIR\kieran.thandi
b818dddb32 Inclued stdlib 2015-11-30 22:34:24 +00:00
James Booth
0920b65ddf Added /wins unread 2015-11-30 00:17:44 +00:00
James Booth
d9435d3b65 Tidy wins_create_summary() 2015-11-29 23:58:52 +00:00
James Booth
6e304bb867 Disable readline completion 2015-11-29 22:23:31 +00:00
James Booth
921ce6ec7d Changed /bookmark list output to show text "win" 2015-11-29 01:13:00 +00:00
James Booth
b404663847 Tidied output for /notify command 2015-11-29 00:34:53 +00:00
James Booth
3fbee4023e Renamed /notify message -> /notify chat 2015-11-29 00:08:49 +00:00
James Booth
04ad003e11 Added /notify reset to autocompletion 2015-11-28 23:47:08 +00:00
James Booth
2fc984e673 Removed regular chat message triggers 2015-11-28 23:43:02 +00:00
James Booth
60305de0d9 Added room specific notify settings 2015-11-28 00:15:53 +00:00
James Booth
ff2b19e3f9 Merge branch 'master' into notifications 2015-11-27 21:09:24 +00:00
Alex Jordan
29a2de332c Fix typo 2015-11-27 03:42:55 -08:00
James Booth
d3389db233 Only show reminder notifications when notifications are enabled 2015-11-25 22:33:26 +00:00
James Booth
20e63e364b Finished basic /notify triggers 2015-11-25 21:24:21 +00:00
James Booth
b9794361f7 Implemented regular chat notify triggers 2015-11-25 01:42:27 +00:00
James Booth
01682a7594 Merge branch 'master' into notifications 2015-11-25 00:43:26 +00:00
James Booth
c14d5b77e0 Merge remote-tracking branch 'incertia/export-command' 2015-11-25 00:41:37 +00:00
Will Song
df2726bdf5
add spaces after constructs such as if/for/while 2015-11-24 18:24:48 -06:00