Merge pull request #3053 from NotAFile/speedup-mxid-check

improve mxid check performance
This commit is contained in:
Richard van der Hoff 2018-04-04 10:19:52 +01:00 committed by GitHub
commit 39ce38b024
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -12,11 +12,11 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import string
from synapse.api.errors import SynapseError from synapse.api.errors import SynapseError
from collections import namedtuple from collections import namedtuple
import re
class Requester(namedtuple("Requester", [ class Requester(namedtuple("Requester", [
@ -214,7 +214,8 @@ class GroupID(DomainSpecificString):
return group_id return group_id
mxid_localpart_allowed_characters = set("_-./=" + string.ascii_lowercase + string.digits) # A regex that matches any valid mxid characters
MXID_LOCALPART_REGEX = re.compile("^[_\-./=a-z0-9]*$")
def contains_invalid_mxid_characters(localpart): def contains_invalid_mxid_characters(localpart):
@ -226,7 +227,7 @@ def contains_invalid_mxid_characters(localpart):
Returns: Returns:
bool: True if there are any naughty characters bool: True if there are any naughty characters
""" """
return any(c not in mxid_localpart_allowed_characters for c in localpart) return not MXID_LOCALPART_REGEX.match(localpart)
class StreamToken( class StreamToken(