summaryrefslogtreecommitdiff
path: root/slixmpp/xmlstream/matcher/idsender.py
diff options
context:
space:
mode:
Diffstat (limited to 'slixmpp/xmlstream/matcher/idsender.py')
-rw-r--r--slixmpp/xmlstream/matcher/idsender.py23
1 files changed, 18 insertions, 5 deletions
diff --git a/slixmpp/xmlstream/matcher/idsender.py b/slixmpp/xmlstream/matcher/idsender.py
index 8f5d0303..572f9d87 100644
--- a/slixmpp/xmlstream/matcher/idsender.py
+++ b/slixmpp/xmlstream/matcher/idsender.py
@@ -4,7 +4,19 @@
# Part of Slixmpp: The Slick XMPP Library
# :copyright: (c) 2011 Nathanael C. Fritz
# :license: MIT, see LICENSE for more details
+
from slixmpp.xmlstream.matcher.base import MatcherBase
+from slixmpp.xmlstream.stanzabase import StanzaBase
+from slixmpp.jid import JID
+from slixmpp.types import TypedDict
+
+from typing import Dict
+
+
+class CriteriaType(TypedDict):
+ self: JID
+ peer: JID
+ id: str
class MatchIDSender(MatcherBase):
@@ -14,25 +26,26 @@ class MatchIDSender(MatcherBase):
interface value as the desired ID, and that the 'from' value is one
of a set of approved entities that can respond to a request.
"""
+ _criteria: CriteriaType
- def match(self, xml):
+ def match(self, xml: StanzaBase) -> bool:
"""Compare the given stanza's ``'id'`` attribute to the stored
``id`` value, and verify the sender's JID.
- :param xml: The :class:`~slixmpp.xmlstream.stanzabase.ElementBase`
+ :param xml: The :class:`~slixmpp.xmlstream.stanzabase.StanzaBase`
stanza to compare against.
"""
selfjid = self._criteria['self']
peerjid = self._criteria['peer']
- allowed = {}
+ allowed: Dict[str, bool] = {}
allowed[''] = True
allowed[selfjid.bare] = True
- allowed[selfjid.host] = True
+ allowed[selfjid.domain] = True
allowed[peerjid.full] = True
allowed[peerjid.bare] = True
- allowed[peerjid.host] = True
+ allowed[peerjid.domain] = True
_from = xml['from']