Commit graph

75 commits

Author SHA1 Message Date
Yann Leboulanger
09bcbc0cef Forget all unused streamhosts when we use one of our proposed streamhosts 2017-08-16 23:05:43 +02:00
Yann Leboulanger
21e144d89d use correct SID in Jingle FT to compute hostname of SOCKS5 connection. Fixes #8703 2017-08-16 15:27:35 +02:00
Yann Leboulanger
9ce6299e1a use netifaces to get local IPs if available. Fixes #8666 2017-08-14 18:37:11 +02:00
Yann Leboulanger
d994845212 Revert "use netifaces to get local IPs if available. Fixes #8666"
This reverts commit b9c363e9cd.
2017-08-14 18:36:40 +02:00
Yann Leboulanger
b9c363e9cd use netifaces to get local IPs if available. Fixes #8666 2017-08-14 16:43:44 +02:00
Yann Leboulanger
f8383954e3 Fix socks5 problem:
receive() returns bytes, not str
2017-08-14 14:44:04 +02:00
Yann Leboulanger
bda11b7d39 Merge branch 'master' into 'master'
rework password interface. Fixes #8347

Closes #8347

See merge request !117
2017-08-14 10:15:07 +02:00
Yann Leboulanger
89d3c3af14 rework password interface. Fixes #8347 2017-08-13 14:22:28 +02:00
Yann Leboulanger
43b3d1bd83 unify cid -> candidate_id 2017-08-12 22:55:17 +02:00
Yann Leboulanger
baa54f5010 Merge branch 'use_precis' into 'master'
Use precis instead of stringprep when available. Fixes #8566

See merge request !116
2017-08-12 14:55:08 +02:00
Yann Leboulanger
af547a1827 don't close the socket we're using to tranfer file. Fixes #8657 2017-08-12 14:40:26 +02:00
Yann Leboulanger
b6189a60cf use idna python module to check domainpart when available 2017-08-11 08:12:00 +02:00
Yann Leboulanger
1a2ac87f46 use precis_i18n instead of stringprepare when available to sanitize JIDs 2017-08-11 08:11:52 +02:00
Philipp Hörist
c57af6dade Retract nickname from pubsub correctly 2017-08-08 19:58:20 +02:00
Philipp Hörist
f3bdb596bd Refactor remove_roster()
- Execute as script to save roundtrips
2017-08-08 18:53:25 +02:00
Philipp Hörist
10b0865291 Refactor set_room_last_message_time()
- Dont depend on get_jid_id(), this saves roundtrips
2017-08-08 18:22:29 +02:00
Philipp Hörist
c53e2b1bb9 Dont try to insert if JID is already in DB
- This is added because even an ignored INSERT raises the
autoincrement value of the table.
This means the jid id gets high really fast.
2017-08-08 18:22:29 +02:00
Philipp Hörist
f88e8d835b Remove old DB methods 2017-08-08 18:22:29 +02:00
Philipp Hörist
8c920b35ff Move logging GC messages into connection_handlers
- It should be where all other message received handlers are
- Port to new DB API
2017-08-08 15:24:41 +02:00
Philipp Hörist
608655deed Use new DB API for logging status and errors 2017-08-08 14:41:55 +02:00
Philipp Hörist
413c7f52d7 Add senders attr to Jingle FT
This is a MUST see https://xmpp.org/extensions/xep-0234.html

Fixes #8662
2017-08-07 17:41:32 +02:00
Philipp Hörist
a2e2fb2ed1 Remove useless code
Simplify whats left
2017-08-02 23:40:55 +02:00
Philipp Hörist
9d2898bb35 Log sent messages with new logger method
- also save stanza id to the DB
2017-08-02 23:34:24 +02:00
Philipp Hörist
a01611178d Logger: dont try to parse None with json 2017-08-02 21:32:59 +02:00
Philipp Hörist
0c6002b9ac Zeroconf: handle only zeroconf messages 2017-08-02 21:03:12 +02:00
Philipp Hörist
97f6b84b90 Remove old unused code 2017-08-02 19:24:09 +02:00
Philipp Hörist
6f3c21118f Stay compatible to python 3.4
Fixes #8690
2017-08-02 18:57:02 +02:00
Philipp Hörist
651611b28b Improve timestamp usage for MAM
- Use new parse_datetime() method
- Drop message with error if MAM doesnt supply a timestamp.
- If the user supplys an own timestamp, save it so we can decide in the
future how to display it.
2017-08-01 21:43:28 +02:00
Philipp Hörist
e24d4f8caf Fix receiving MAM Messages from ourself
This is a regression from the refactoring
2017-08-01 21:39:11 +02:00
Philipp Hörist
1f5e927ca6 Use new DB methods for MAM Messages
- also push a new MamDecryptedMessageReceived
event after disco instead of writing directly to the DB
2017-08-01 21:39:11 +02:00
Philipp Hörist
16fd64873e Add new logger methods
Goal is to make the logger module easier to maintain in the future

- extract deduplication out into a own method, so we can use it
on its own in some other places.

- add new insert_into_logs() method
the DB fields we want to write to are passed as arguments, this makes
it so we dont have to change the method when we add or remove DB fields
in the future.

- instead of using get_jid_id() all around gajim to get the jid_id
before we write to the DB, we only have to pass the jid to
insert_into_logs(), it makes sure to get the correct jid_id or add
one in case it doesnt exist.
2017-08-01 21:39:06 +02:00
Philipp Hörist
6925ce0628 Merge branch 'master' into 'master'
Add a new XEP-0082 parsing method

See merge request !111
2017-08-01 20:57:15 +02:00
Philipp Hörist
0fee27928d Add a new XEP-0082 parsing method
This handles every possible XEP-0082 timestamp

It has some additional options:

- Check if a timestring is a valid UTC timestamp, as required by some
XEPs (for example: XEP-0203)
- Return timestamp as datetime in UTC
- Return timestamp as datetime in localtime
- Return timestamp as epoch
2017-08-01 20:53:00 +02:00
Philipp Hörist
e493606070 Fix typo 2017-07-31 19:30:18 +02:00
Yann Leboulanger
6a95fe79ae Merge branch 'xep-0319' into 'master'
Xep 0319

See merge request !110
2017-07-31 19:16:27 +02:00
Yann Leboulanger
28917aaf56 Do not use XEP-0012 anymore to know idle time. Use XEP-0319 2017-07-31 19:14:12 +02:00
Philipp Hörist
81566df8a1 Fix some regressions with MAM
- On single messages use the bare JID for DB querys
- Add more debug logging
- Some light refactoring
2017-07-30 23:04:50 +02:00
Philipp Hörist
c1decf682b Adapt to latest nbxmpp changes 2017-07-29 21:35:45 +02:00
Philipp Hörist
9bca51eb69 Implement XEP-0359 Stable Stanza IDs
- This allows us to better deduplicate Messages on MAM syncs
2017-07-28 14:03:14 +02:00
Philipp Hörist
8558a43651 Update config setting description
We dont use 0136 anymore
2017-07-28 00:34:18 +02:00
Philipp Hörist
9ff601d03b Remove XEP-0136 support 2017-07-28 00:07:49 +02:00
Philipp Hörist
1e313cc7e2 Improve getting own jid
We get our full JID on the bind event.
After that it is saved in the `registered_name` attr on the Connection
Object.

In case the bind never occured we get the bare JID from config.
2017-07-27 22:14:29 +02:00
Philipp Hörist
f449acd815 Refactor MamDecryptedMessageReceivedEvent
- Condition type = groupchat is not needed because we drop messages
type groupchat that come from the user archive. To get these messages
we will query the MUC.

- Because of this the logging method save_if_not_exists() can be much
simpler
2017-07-27 21:46:19 +02:00
Philipp Hörist
cb90f9decd Merge branch 'logger' into 'master'
Refactor Logger

See merge request !108
2017-07-27 11:57:09 +02:00
Philipp Hörist
fe1f2c0103 Dont drop MAM Message on missing stanza-id
A missing stanza ID means, we will have to take some measures to make
sure we get no duplicates in the Database later on.

Also fix getting the origin-id. Third time is a charm.
2017-07-27 03:33:19 +02:00
Philipp Hörist
9d6e3f4323 Get the ID attr of origin-id instead of the Node 2017-07-26 02:41:08 +02:00
Philipp Hörist
7f0bcbb5bf Correctly set stanza-id for received MAM messages
The gaol why we need to determine what ID should be used as stanza-id,
is so we can use the stanza-id in the future for deduplication.

Case we are the sender:

Either we look for a origin-id element, which we will include in the
Future in all messages we send, or until then the ID we set on the
message as attr.

Case we are the receiver:

If our server supports mam:2 we take the ID of the result element,
because mam:2 injects the archive ID live into every message we
receive. If we dont have mam:2 we fall back to the ID of the message
attr.
2017-07-26 02:35:34 +02:00
Philipp Hörist
a5480eb167 Add ServerInfo Dialog 2017-07-26 00:07:43 +02:00
Philipp Hörist
33a51f3180 Preparation for MUC Archive querys
- Refactor and clean up code around MamMessageReceivedEvent
- Goal is to add a GcMamMessageReceivedEvent later on
- For that cause added a raw-mam-message-received base event
2017-07-25 21:01:18 +02:00
Philipp Hörist
aefb571168 Add new NetworkEvents method
This lets us attach all attributes of the base event to the
new event. Often Events trigger other Events. When that happens
we often want to keep all attr from the previous Event, and just
continue under a new Event. Until now all attr had to be pulled
out of `self.base_event` again.
2017-07-25 21:00:20 +02:00