From cce9d6f9ad95204227a71a738d26aa69b459bf55 Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Wed, 1 Jan 2020 23:22:26 -0500 Subject: [PATCH] update errno 103 catch Update errno103 catch to work if the error message sent is in a different format. - Should work for Ozmo601 and Ozmo930 now - possibly others as well. --- bumper/xmppserver.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/bumper/xmppserver.py b/bumper/xmppserver.py index be932a9..697c201 100644 --- a/bumper/xmppserver.py +++ b/bumper/xmppserver.py @@ -307,15 +307,21 @@ class XMPPAsyncClient: ctl_to = xml.get("to") if not "from" in xml.attrib: xml.attrib["from"] = "{}".format(self.bumper_jid) + if "errno" in data: + xmppserverlog.error(f"Error from bot - {data}") if ( - "errno='103' error='permission denied," in data - ): # No permissions, usually if bot was last on Ecovac network + "errno='103'" in data + ): # No permissions, usually if bot was last on Ecovac network, Bumper will try to add fuid user as owner if self.type == self.BOT: + xmppserverlog.info("Bot reported user has no permissions, Bumper will attempt to add user to bot. This is typical if bot was last on Ecovacs Network.") xquery = xml.getchildren() ctl = xquery[0].getchildren() - ctlerr = ctl[0].attrib["error"] - adminuser = ctlerr.replace("permission denied, please contact ", "") - adminuser = adminuser.replace(" ", "") + if "error" in ctl[0].attrib: + ctlerr = ctl[0].attrib["error"] + adminuser = ctlerr.replace("permission denied, please contact ", "") + adminuser = adminuser.replace(" ", "") + elif "admin" in ctl[0].attrib: + adminuser = ctl[0].attrib["admin"] if not ( adminuser.startswith("fuid_") or adminuser.startswith("fusername_") @@ -328,14 +334,14 @@ class XMPPAsyncClient: adduser = ''.format( uuid.uuid4(), adminuser, self.bumper_jid, newuser ) - xmppserverlog.debug("Add User: {}".format(adduser)) + xmppserverlog.debug("Adding User to bot - {}".format(adduser)) self.send(adduser) # Add user ACs - Manage users, settings, and clean (full access) adduseracs = ''.format( uuid.uuid4(), adminuser, self.bumper_jid, newuser ) - xmppserverlog.debug("Add User ACs: {}".format(adduseracs)) + xmppserverlog.debug("Add User ACs to bot - {}".format(adduseracs)) self.send(adduseracs) # GetUserInfo - Just to confirm it set correctly -- 2.39.5