Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits:
589fd699 by lovetox at 2021-05-27T20:38:15+02:00
AdHoc: Don’t expect session id for one stage commands
- - - - -
1 changed file:
- nbxmpp/modules/adhoc.py
Changes:
=====================================
nbxmpp/modules/adhoc.py
=====================================
@@ -66,18 +66,18 @@ class AdHoc(BaseModule):
yield command_list
@iq_request_task
- def execute_command(self, command, action=None, dataform=None):
+ def execute_command(self, cmd, action=None, dataform=None):
_task = yield
if action is None:
action = AdHocAction.EXECUTE
- attrs = {'node': command.node,
+ attrs = {'node': cmd.node,
'xmlns': Namespace.COMMANDS,
'action': action.value}
- if command.sessionid is not None:
- attrs['sessionid'] = command.sessionid
+ if cmd.sessionid is not None:
+ attrs['sessionid'] = cmd.sessionid
- response = yield _make_command(command, attrs, dataform)
+ response = yield _make_command(cmd, attrs, dataform)
if response.isError():
raise StanzaError(response)
@@ -89,10 +89,6 @@ class AdHoc(BaseModule):
if node is None:
raise MalformedStanzaError('node attribute missing', response)
- sessionid = command.getAttr('sessionid')
- if sessionid is None:
- raise MalformedStanzaError('sessionid attribute missing', response)
-
status = command.getAttr('status')
if status is None:
raise MalformedStanzaError('status attribute missing', response)
@@ -103,6 +99,10 @@ class AdHoc(BaseModule):
status = AdHocStatus(status)
+ sessionid = command.getAttr('sessionid')
+ if sessionid is None and _expect_sessionid(status, cmd.sessionid):
+ raise MalformedStanzaError('sessionid attribute missing', response)
+
try:
notes = _parse_notes(command)
except ValueError as error:
@@ -192,3 +192,9 @@ def _parse_actions(command):
default = actions[0]
return actions, default
+
+
+def _expect_sessionid(status, sent_sessionid):
+ # Session id should only be expected for multiple stage commands
+ # or when we initialize the session (set the session attribute)
+ return status != status.COMPLETED or sent_sessionid is not None
View it on GitLab:
https://dev.gajim.org/gajim/python-nbxmpp/-/commit/589fd69983bac85a6947004e010f3e22b5cb5053
--
View it on GitLab:
https://dev.gajim.org/gajim/python-nbxmpp/-/commit/589fd69983bac85a6947004e010f3e22b5cb5053
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits