Commit Graph

42 Commits

Author SHA1 Message Date
Xavier Del Campo Romero 8cd96e0a14
connection_manager.vala: Use yield on disconnect() 2023-10-09 16:38:02 +02:00
Xavier Del Campo Romero aa39852931
connection_manager.vala: Refactor reconnect stream 2023-10-09 14:09:00 +02:00
Xavier Del Campo Romero 90bee87ff5
Revamp connection_manager.vala
The original implementation was unable to reconnect accounts after
several suspend cycles.
2023-10-05 14:32:10 +02:00
fiaxh b7ca33a37d Initialize and use dbus interfaces async
related #1155
2022-02-01 23:37:54 +01:00
fiaxh 26d10d1dcb Add multiparty call support to libdino and xmpp-vala 2021-11-10 11:05:34 +01:00
fiaxh 421f43dd8b Add support for OMEMO call encryption 2021-04-29 16:13:25 +02:00
fiaxh dfffa08ec1 Fix warnings 2021-04-11 14:42:59 +02:00
hrxi 148cf48d2b Add libnice and listen for direct connections in Jingle SOCKS5 (#608)
Add libnice as a plugin. If it is present, use libnice to enumerate
local IP addresses and listen on them to support direct connections for
Jingle SOCKS5.

Tested with Conversations and Gajim.

Created the nice.vapi file using
```
vapigen --library nice --pkg gio-2.0 --metadatadir metadata /usr/share/gir-1.0/Nice-0.1.gir
```
2021-03-19 22:06:02 +01:00
fiaxh 2c22c0428c Fix segfault on accept_certificate signal (fixup 81a5505) 2020-12-31 23:19:06 +01:00
fiaxh 81a5505270 Allow certificates from unknown CAs from .onion domains
It's barely possible for .onion servers to provide a non-self-signed cert. But that's fine because encryption is provided independently though TOR.

see #958
2020-12-31 19:04:02 +01:00
fiaxh 07917f1d84 Refactor XmppStream, TLS and connection method logic
fixes #534
2020-11-20 15:21:18 +01:00
fiaxh f8f305efe5 xmpp-vala: Use more async 2020-04-24 14:19:42 +02:00
fiaxh 1985fe1d7b Don't continue reading after stream was disconnected, make disconnecting async
fixes #636
2019-11-27 20:01:48 +01:00
fiaxh 03f25e1f87 Remove Message.stanza field 2019-05-26 20:20:09 +02:00
fiaxh 6f6e4b97cb Use glib log functions 2019-03-15 22:01:34 +01:00
fiaxh 952ac95484 Use regex literals, fixes some compiler warnings 2019-03-14 17:39:31 +01:00
fiaxh d668e0158d Fix runtime criticals (and compiler warnings)
fixes #520
2019-02-13 16:14:16 +01:00
fiaxh fc1a9a5712 Improve ping timeouts, add debug output for XmlErrors and ping timeouts 2019-01-02 15:59:56 +01:00
fiaxh 45d89326b8 Fix TLS error notification wrongly appearing 2018-11-21 18:01:54 -06:00
fiaxh fa731a4623 Split login jid/password into two steps with checks 2018-11-16 09:29:34 -06:00
fiaxh 9575b192e4 Fix runtime criticals 2018-09-16 14:04:36 +02:00
Marvin W baa3f99ed7 Initial implementation of SCRAM-SHA-1 2018-09-01 13:20:10 +02:00
fiaxh 4ccdc1d092 Small connection fixes 2018-03-10 20:01:22 +01:00
Marvin W 782ae4c049 Move Jid class to xmpp-vala, partially refactor namespace 2018-01-28 00:38:47 +01:00
Mathieu Bridon 5557c03be8 Move to GNetworkMonitor (#236)
* Move to GNetworkMonitor

Dino currently talks to NetworkManager over DBus to know the state of
the network.

That doesn't work in a Flatpak sandbox by default though, because
Flatpak filters DBus communications and only allows a very small set of
things to pass (which are known to be safe).

Gio provides an API to know the state of the network (and be notified of
changes via a signal): GNetworkMonitor.

And GNetworkMonitor works both inside a Flatpak sandbox, and in
traditional builds. (in Flatpak it uses what we call a "portal", which
are the clean, safe way to let apps exit their sandbox)

Fixes #235

* Don't check for network connectivity for now

The connectivity check really is the correct thing to do:

* network_available means that the computer has network routes to
  "somewhere". That is, it is connected to a router.
* connectivity.FULL means that the computer can access "the
  Internet". That is, if it is behind a router, that router is
  connected.

As a result, only checking for network_available is not correct.

Unfortunately, NetworkManager tends to wait a long time before checking
for connectivity. As a result, it is possible that a transient network
error leaves NetworkManager thinking that network_available is true but
connectivity!=FULL, and it will wait several minutes before realizing
that the Internet connexion did come back.

During that time, apps checking for connectivity (e.g the whole GNOME
desktop) will think they don't have access to the Internet, while apps
that don't (e.g Firefox) will access the Internet just fine. Users are
understandably confused when that happens.

Removing the check for connectivity is an acceptable trade-off in the
short-term, until this situation is improved on the NetworkManager side.

https://bugzilla.gnome.org/show_bug.cgi?id=792240
2018-01-09 20:39:45 +01:00
fiaxh a8cc94c188 Show error on invalid TLS certificate 2018-01-04 21:17:56 +01:00
fiaxh 3f531d6b91 Read+(write) stream async 2017-11-16 17:43:00 +01:00
fiaxh 1d0745177e Replace deprecated function usages 2017-11-16 14:09:30 +01:00
fiaxh d82194af58 Go offline before quiting application
fixes #141
2017-10-31 17:32:48 +01:00
fiaxh 0102abeec1 Fix warnings 2017-10-31 15:41:45 +01:00
linkmauve 1e1aa704a2 Remove new from struct initialisation, as it is deprecated (#180)
* Remove new from struct initialisation, as it is deprecated.

* Use Map.has_key instead of Map.contains, as it is deprecated.
2017-10-23 16:10:15 +02:00
fiaxh 9d8e1e88ec http-files: max-file-size handling 2017-09-26 17:01:06 +02:00
fiaxh d2a5287eff Use utc time everywhere 2017-08-31 18:54:38 +02:00
fiaxh f9436b63f1 connection: keep-alive pings, act upon connection change (VPN) 2017-08-25 22:30:03 +02:00
fiaxh a59f728bdd Stream Management 2017-08-14 22:38:12 +02:00
fiaxh 7bbbb738fd Get rid of manual storage objects for delegates 2017-06-13 20:12:40 +02:00
fiaxh d8881c4b16 Show account status (incl errors) in ManageAccounts.Dialog 2017-04-10 15:47:17 +02:00
Marvin W 2a49d4a1aa
Add --print-xmpp flag to log details 2017-04-03 15:09:30 +02:00
fiaxh db57a97353 Add typed identity to manager modules and stream flags 2017-03-20 22:28:27 +01:00
Marvin W 0087a7135e
Fix account repeated disconnect/connect issues 2017-03-13 15:52:54 +01:00
fiaxh 1ccad732b9 Use typed identity in stream modules 2017-03-11 01:40:42 +01:00
Marvin W 29ca70a6d5
Initial plugin system 2017-03-10 19:50:34 +01:00