Fork of Dino XMPP client with additional features
Go to file
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
cmake Restore window state (size, maximized, position) 2017-12-31 22:48:14 +01:00
libdino Move to GNetworkMonitor (#236) 2018-01-09 20:39:45 +01:00
main Add support for setting a new Affiliation in a muc (#266) 2018-01-09 01:06:32 +01:00
plugins Small fixes to signal-protocol-c helper functions 2018-01-04 21:06:20 +01:00
qlite small fixes 2017-11-01 18:53:38 +01:00
xmpp-vala Add support for setting a new Affiliation in a muc (#266) 2018-01-09 01:06:32 +01:00
.gitignore Split OMEMO plug-in into files, various fixes 2017-03-12 03:17:21 +01:00
.gitmodules Fetch libsignal-protocol-c when not a submodule (still using git) 2017-03-23 19:41:32 +01:00
CMakeLists.txt Restore window state (size, maximized, position) 2017-12-31 22:48:14 +01:00
configure configure: ignore flags used by dh_make 2017-08-31 18:41:18 +02:00
dino.doap add DOAP (description of a project) file 2017-08-17 18:27:07 +02:00
LICENSE License under GPLv3 2017-03-21 00:17:07 +01:00
README.md Restore window state (size, maximized, position) 2017-12-31 22:48:14 +01:00

Dino

screenshots

Build

Build-time dependencies

  • CMake
  • C compiler
  • gettext
  • ninja(-build) (recommend)
  • valac (≥ 0.34)

Run-time dependencies

  • GLib (≥ 2.38)
  • glib-networking
  • GTK (≥ 3.22)
  • GPGME (For the OpenPGP plugin)
  • libgee-0.8 (≥ 0.10)
  • libgcrypt (For the OMEMO plugin)
  • libsoup (For the HTTP files plugin)
  • SQLite3

Instructions

./configure
make
build/dino

Resources

Join our conference room at chat@dino.im

Please refer to the wiki for further information or check out our website.

License

Dino - Modern Jabber/XMPP Client using GTK+/Vala
Copyright (C) 2017 Dino contributors

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.