diff options
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2018-06-28 15:09:02 +0200 |
---|---|---|
committer | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2018-06-28 15:09:02 +0200 |
commit | fbe376b6db019adbcf32a7b869cba600c5503f8e (patch) | |
tree | 7bd3e06f615a742adbaf569201c2ebe985c7764e /poezio/connection.py | |
parent | 7b3a116d7602a25dd71b16133be44a35cb3d7cf1 (diff) | |
download | poezio-fbe376b6db019adbcf32a7b869cba600c5503f8e.tar.gz poezio-fbe376b6db019adbcf32a7b869cba600c5503f8e.tar.bz2 poezio-fbe376b6db019adbcf32a7b869cba600c5503f8e.tar.xz poezio-fbe376b6db019adbcf32a7b869cba600c5503f8e.zip |
Reintroduce the concept of resource, but named device_id and generated.
Diffstat (limited to 'poezio/connection.py')
-rw-r--r-- | poezio/connection.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/poezio/connection.py b/poezio/connection.py index 8a74635d..c97365f8 100644 --- a/poezio/connection.py +++ b/poezio/connection.py @@ -14,6 +14,8 @@ log = logging.getLogger(__name__) import getpass import subprocess import sys +import base64 +import random import slixmpp from slixmpp.xmlstream import ET @@ -38,6 +40,13 @@ class Connection(slixmpp.ClientXMPP): keyfile = config.get('keyfile') certfile = config.get('certfile') + device_id = config.get('device_id') + if not device_id: + rng = random.SystemRandom() + device_id = base64.urlsafe_b64encode( + rng.getrandbits(24).to_bytes(3, 'little')).decode('ascii') + config.set_and_save('device_id', device_id) + if config.get('jid'): # Field used to know if we are anonymous or not. # many features will be handled differently @@ -72,6 +81,7 @@ class Connection(slixmpp.ClientXMPP): jid = config.get('server') password = None jid = safeJID(jid) + jid.resource = '%s-%s' % (jid.resource, device_id) if jid.resource else 'poezio-%s' % device_id # TODO: use the system language slixmpp.ClientXMPP.__init__( self, jid, password, lang=config.get('lang')) |