summary refs log tree commit diff
path: root/synapse/storage
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2014-11-18 15:48:30 +0000
committerPaul "LeoNerd" Evans <paul@matrix.org>2014-11-18 15:48:30 +0000
commite9f587ecbaf5b60183d7c56108d76bb5f76a98f4 (patch)
tree5cf7df273b613b88902016722ca8f2d1c222cf19 /synapse/storage
parentInclude room members' presence in room initialSync (diff)
parentNull check when determining default power levels (diff)
downloadsynapse-e9f587ecbaf5b60183d7c56108d76bb5f76a98f4.tar.xz
Merge remote-tracking branch 'origin/develop' into room-initial-sync
Diffstat (limited to 'synapse/storage')
-rw-r--r--synapse/storage/directory.py24
1 files changed, 17 insertions, 7 deletions
diff --git a/synapse/storage/directory.py b/synapse/storage/directory.py

index d6a7113b9c..2be9c41374 100644 --- a/synapse/storage/directory.py +++ b/synapse/storage/directory.py
@@ -14,10 +14,15 @@ # limitations under the License. from ._base import SQLBaseStore + +from synapse.api.errors import SynapseError + from twisted.internet import defer from collections import namedtuple +import sqlite3 + RoomAliasMapping = namedtuple( "RoomAliasMapping", @@ -75,13 +80,18 @@ class DirectoryStore(SQLBaseStore): Returns: Deferred """ - yield self._simple_insert( - "room_aliases", - { - "room_alias": room_alias.to_string(), - "room_id": room_id, - }, - ) + try: + yield self._simple_insert( + "room_aliases", + { + "room_alias": room_alias.to_string(), + "room_id": room_id, + }, + ) + except sqlite3.IntegrityError: + raise SynapseError( + 409, "Room alias %s already exists" % room_alias.to_string() + ) for server in servers: # TODO(erikj): Fix this to bulk insert