Commit graph libervia-backend/sat/core
Author SHA1 Message Date
Goffi
5e43c6c98c core, plugin XEP-0045: fixed message type autodetection + ENTITY_TYPE_MUC constant:
an old hardcoded value was used in several places to detect if an entity is a MUC, but this
value was not valid anymore. This has been fixed, and ENTITY_TYPE_MUC constant is now used
instead. This fixes message type autodetection for "groupchat" messages.

fixes 300
2019-07-09 09:06:45 +02:00
Goffi
c857c375fc plugin XEP-0045: log "failure" on configure error 2019-07-06 15:51:48 +02:00
Goffi
57c621e534 core (xmpp): removed log for presence, as it is barely useful and too verbose even for debug logs. 2019-07-02 19:36:26 +02:00
Goffi
c18b828940 core (xmpp): set message timestamp on message reception:
message timestamp was set during the parsing, but this could lead to misordering as async
calls are done before message is parsed (so a variable delay could happen before the
timestamp was set). This patch workaround this by setting timestamp as soon as message is
received (in onMessage).
2019-07-02 19:36:15 +02:00
Goffi
e5aab2f453 core (xmpp): fixed URI correction while parsing messages:
A double "==" was used instead of a single one. As a result URI was never fixed and some
elements could be missed (like body), and then the message discarded.
Should fix 294 (to be confirmed).

fix 294
2019-07-02 09:09:04 +02:00
Goffi
c226b72b20 core, plugin XEP-0045: fix crashes when changing URIs:
When adding missing URIs in message, the "children" property was used instead of elements(). "children" not only return elements, and this was causing crashes.
This may fix bug 294

rel 294
2019-06-30 15:52:30 +02:00
Goffi
ad40509c89 core: return full jid in bridge's getContacts:
getContacts was returning only bare jid of entities, but jids with resources may be present in roster, so this behaviour has been changed.
2019-06-30 15:43:57 +02:00
Goffi
218390a0d9 logs: increased defaut limit for memory output to 300 2019-06-30 15:40:52 +02:00
Goffi
ffb051fca2 core (constants): fixed flatpak config paths for older versions of flatpak:
Older versions of Flatpak don't seem to set FLATPAK_ID, but do set FLATPAK_SANDBOX_DIR, so
this is now checked too to detect flatpak.
2019-06-30 15:39:58 +02:00
Goffi
29c4e048df core (constants): fixed Flatpak config path:
trailing "/" was missing in flatpak config path, resulting in the configuration not being read properly on this platform.
2019-06-27 20:26:00 +02:00
Goffi
e85c55f7a0 core (config): if flatpak is detected, config is also looked after in /app 2019-06-23 17:40:19 +02:00
Goffi
a090b76afd core (constants): added generic constants for "info", "warning" and "error" levels 2019-05-26 22:22:01 +02:00
Goffi
a782b6e6e0 core (constants): "on" can now be used as True value in bool method. 2019-05-26 22:22:00 +02:00
Goffi
c3fcfb3d64 core: fixed component connexion:
presence announcement has been moved to startConnection, but component don't have presence. This patch fixes it by moving presence announcement to clients only.
2019-04-14 08:21:51 +02:00
Goffi
553ebe5ab8 core: added getNamespace method to retrieve a namespace from short name. 2019-04-14 08:21:51 +02:00
Goffi
1f7d5bfd94 constants: added KEY_LANG which is the key/name used in templates to change language/locale. 2019-04-10 21:04:51 +02:00
Goffi
4d64efcda9 code (xmpp): store version after roster item update + fix item removal:
roster version is now stored after roster item has been added or removed. This way if something interrupting the process happens, former item update will be received and roster should be updated correctly.

Roster item removal was crashing because `load()` is not used (local PersistentDict cache is then not updated, and the key to remove is missing there). The exception is now catched and ignored to avoid loading the data only to remove an item.
2019-04-10 21:04:41 +02:00
Goffi
5a90f9d407 core, quick_frontend(app): fixed connected signal handling 2019-04-07 20:55:27 +02:00
Goffi
f51e924eb6 core: added a rosterResync method to bridge:
rosterResync do a full resynchronisation of roster with server. This should not be needed, but may be useful if user suspect a sync issue for whatever reason.
2019-04-07 18:49:41 +02:00
Goffi
5ceffc1491 core (xmpp): implemented roster versioning 2019-04-07 18:47:17 +02:00
Goffi
c2c7dbddfe core (xmpp): new networkEnabled() and networkDisabled() methods:
those methods can be called by platform specific plugins when network is known to be (un)available. This way, connection attempts can be cancelled when no network is available, saving resources (notably battery on mobile devices), or attempts can be restarted immediately when network is known to be available again.
2019-04-06 19:05:57 +02:00
Goffi
5b3aa5c60f core (xmpp): advanced handling of connection termination
factory's clientConnectionFailed and clientConnectionLost methods are monkey patched to allow client to tune termination:
    - a warning when connection is lost in an unclean way
    - connector is saved to allow to disable automatic reconnection and retry manually later
    - new triggers connection_failed and connection_lost allow plugins to tune connection termination workflow
2019-04-06 18:51:20 +02:00
Goffi
9186fd1a3c core (xmpp): use the cleaner stopTrying() instead of setting continueTrying = 0 when connection is not possible due to invalid certificate. 2019-04-05 21:22:05 +02:00
Goffi
1a958d8744 core: minor style improvments 2019-03-27 21:15:25 +01:00
Goffi
e89135b8ae plugin XEP-0384: give feedback to client when encryption failed 2019-03-20 09:08:47 +01:00
Goffi
04f485057b core (log): add traceback when "exc_info" is set 2019-03-03 12:04:55 +01:00
Goffi
6033a0a0cb core: renamed presenceReceived to presence_reveiced + use "client" as first arguments instead of "profile" 2019-03-01 12:12:50 +01:00
Goffi
d8f6620d00 core: added a base menu allowing to set encryption session or show the trust management UI. 2019-02-24 14:11:08 +01:00
Goffi
2e4f4069c5 core (patches): partially fixed jid caching:
jid caching in Twisted use a dict (__internJIDs) which associate a jid as string to its jid.JID instance.
But this caching doesn't handle mutability of the objects, resulting wrong jid returned when a modification is done (e.g. if resource is changed).
This is a temporary workaround until the patch is proposed and merged upstream.

note: this is a partial fix because the caching is also leaking memory (cf. https://twistedmatrix.com/trac/ticket/5122)
2019-02-24 14:09:44 +01:00
Goffi
198db6c2ca plugin XEP-0045: fixed crash when <delay> is used at an unexpected time. 2019-01-26 20:07:45 +01:00
Goffi
8a59034935 plugin mr mercurial, tools(common/utils): moved command protocol to a new module 2019-01-25 09:06:29 +01:00
Goffi
51cd3ce52a core (findByFeatures): fixed services discovery 2019-01-20 18:20:55 +01:00
Goffi
e2ab5e33c8 core, XEP-0315: move XML element handling to sat_tmp:
XML Element is now implemented in sat_tmp, so it can be available also for SàT Pubsub.
The XEP-0315 is thus not needed anymore and have been removed, XEP-0315 namespace has been added to base disco features.
Use the new install() function of sat_tmp to do the patching.
2019-01-16 09:18:16 +01:00
Goffi
8e338bf913 date update 2019-01-12 12:25:31 +01:00
Goffi
c5a17cc9ef core: findByFeatures speed improvments:
- DeferredList are used instead of waiting for each disco individually
- a Timeout of 10 s is set for jids, to avoid waiting for minutes when some entity is unreachable (which leads to terrible user experience while waiting for a discovery page)
2019-01-11 19:44:46 +01:00
Goffi
7a9ee35cfc misc: replaced all "dummy" by the more conventional and readable "__" ("_" being used for gettext) 2019-01-11 11:13:15 +01:00
Goffi
3e63d54e3d plugins XEP-0060, XEP-0313: implemented Order-By protoXEP:
new "order_by" key can be used in extra data, value can be, for now, "creation" or "modification".
2019-01-06 17:36:51 +01:00
Goffi
02dc38762e core (constants): added a constant for "encrypted" 2019-01-04 18:46:02 +01:00
Goffi
ed0312261e core (xmpp): don't add to history a message if there is no message and no subject. 2019-01-04 18:44:43 +01:00
Goffi
1307adcd71 core (xmpp): added "extra" argument to client.feedback 2019-01-04 11:13:31 +01:00
Goffi
e5e0913aec core (xmpp): implemented human friendly __unicode__ for client 2019-01-03 20:51:08 +01:00
Goffi
c2a1ba3793 core (xmpp): don't send message without message or subject to bridge (and log a warning in frontends if such a message is received) 2019-01-02 18:28:30 +01:00
Goffi
24468a9138 core (memory/encryption): new encryptionNamespaceGet and encryptionTrustUIGet methods:
- encryptionNamespaceGet retrieves algorithm namespace from its short name
- encryptionTrustUIGet retrieves trust mangement XMLUI from encryption plugin
- new markAsUntrusted internal helper method, to add untrusted flag to message data
2019-01-02 18:22:30 +01:00
Goffi
93a73aec45 core (log): fixed double call to ansiColors 2018-12-27 11:40:04 +01:00
Goffi
97d655682c core (xmpp): set "to" attribute to <message> element when it's missing:
when missing, profile's full jid is used as "to" attribute. This way, "to" attribute can be retrieved later without having to check if it has been set or not.
2018-12-27 11:40:04 +01:00
Goffi
35e15c664c plugin XEP-0045: MAM implementation for MUC 2018-12-07 19:13:28 +01:00
Goffi
7e79203fa0 core (xmpp): check <message> namespace in parseMessage, and accept empty namespace (happen with Wokkel) 2018-12-07 17:46:50 +01:00
Goffi
39d2409273 plugin XEP-0313: implementation of MAM for messages:
- (core/xmpp): new messageGetBridgeArgs to easily retrieve arguments used in bridge from message data
-            : parseMessage is not static anymore
-            : new "message_parse" trigger point
- (xep-0313) : new "MAMGet" bridge method to retrieve history from MAM instead of local one
-            : on profileConnected, if previous MAM message is found (i.e. message with a stanza_id), message received while offline are retrieved and injected in message workflow.
               In other words, one2one history is synchronised on connection.
-            : new "parseExtra" method which parse MAM (and optionally RSM) option from extra dictionary used in bridge.
2018-12-01 10:33:43 +01:00
Goffi
ed049c7a9d core: removed whitespace ping (not needed anymore as we handle XMPP ping) 2018-11-19 21:08:25 +01:00
Goffi
a8922b0e46 core (xmpp): added NS_X_DATA to disco features 2018-11-18 15:49:59 +01:00