Mark Haines
dd2cd9312a
Test ratelimiter
2014-09-02 15:16:26 +01:00
Paul "LeoNerd" Evans
aa337f588c
Order matters when adding REST servlets
2014-09-02 12:53:36 +01:00
Erik Johnston
4b8244fbf8
Fix bug where we didn't correctly store the ops power levels event.
2014-09-02 12:12:14 +01:00
David Baker
5c778f2f15
Add rest endpoint for the whole user profile
2014-09-02 11:49:17 +01:00
Paul "LeoNerd" Evans
d9d6fbb085
Safer handling of incoming presence EDUs that may or maynot contain 'presence' or 'state'
2014-09-02 11:17:43 +01:00
Mark Haines
436b3c7d0c
Ratelimiter object
2014-09-02 11:16:21 +01:00
Paul "LeoNerd" Evans
7b56a7a3cb
'continue' to go to the next item in a for loop, not 'break'
2014-09-02 11:15:46 +01:00
Erik Johnston
10e7821461
By default, only room ops can change the name and topic.
2014-09-02 11:11:47 +01:00
Mark Haines
cf890e9d43
Remove option for disabling webclient because it was confusing
2014-09-02 11:09:41 +01:00
Erik Johnston
db02021aba
Implement auth for kicking.
2014-09-02 10:58:33 +01:00
Erik Johnston
ed25abe05f
Add message to assertion
2014-09-02 10:58:33 +01:00
Erik Johnston
08d2f902dd
Default HTTP and HTTPS ports to 8008 and 8448
2014-09-02 10:58:33 +01:00
Mark Haines
45570e4695
os.makedirs is almost but not entirely unlike mkdir -p
2014-09-02 10:58:05 +01:00
Mark Haines
64b341cc10
Fix typo when reading TLS config
2014-09-02 10:54:56 +01:00
Mark Haines
30572e28c2
Make the config directory if the directory doesn't exisit when generating config
2014-09-02 10:52:25 +01:00
Mark Haines
d45f89c95b
More helpful error messages for missing config
2014-09-02 10:49:11 +01:00
Erik Johnston
040d985908
Add support for setting room name and topic when creating rooms
2014-09-02 10:02:14 +01:00
Matthew Hodgson
68a04b9282
given everything's apparently gone https:// by default for c-s, change this hardcoding...
2014-09-01 23:28:43 +01:00
Mark Haines
399e004884
Add unsecure listener port to homeserver
2014-09-01 22:38:52 +01:00
Mark Haines
79650f795f
enable ECDHE ciphers
2014-09-01 22:29:44 +01:00
Paul "LeoNerd" Evans
270d302834
Reënable presence visibility permission checking now it's not used on redundant code paths
2014-09-01 22:15:02 +01:00
Paul "LeoNerd" Evans
32fdf8efd6
No need to test is_presence_visible in _start_polling_local because we know it will be by when it's called
2014-09-01 22:15:02 +01:00
Matthew Hodgson
61e28cdb6f
specify metavars in argparse
2014-09-01 22:11:08 +01:00
Mark Haines
6fd730c96b
Use yaml for config file
2014-09-01 20:44:51 +01:00
Erik Johnston
48142a01dd
Don't set a 'default' key in the creation event
2014-09-01 20:39:43 +01:00
Mark Haines
8b69468e5f
Use pregenerated DH params when generating config
2014-09-01 20:35:18 +01:00
Erik Johnston
bcfaaf7da6
That was a breaking db change. You need to recreate the databases. (In reality, it's enough to just run the im.sql through your db and change the schema version)
2014-09-01 20:34:07 +01:00
Erik Johnston
6d28560626
Don't put required power levels on permission state events
2014-09-01 20:27:45 +01:00
Erik Johnston
f452899fe2
Merge branch 'develop' of github.com:matrix-org/synapse into room_config
2014-09-01 19:57:28 +01:00
Mark Haines
5452a8ee29
Fix SSL for federation http client
2014-09-01 18:43:08 +01:00
Mark Haines
a53946a8a1
Enable SSL for s2s http client
2014-09-01 18:30:00 +01:00
Erik Johnston
b8ab9f1c0a
Add all the necessary checks to make banning work.
2014-09-01 18:24:56 +01:00
Erik Johnston
3faa2ae78c
Merge branch 'develop' of github.com:matrix-org/synapse into room_config
2014-09-01 18:21:29 +01:00
Mark Haines
6200630904
Add server TLS context factory
2014-09-01 17:55:35 +01:00
Mark Haines
46dcb0d890
Merge branch 'develop' into server2server_tls
2014-09-01 16:31:09 +01:00
Mark Haines
ef6a8e4f32
Listen using SSL
2014-09-01 16:30:43 +01:00
Paul "LeoNerd" Evans
1c6ab2d759
Bump a user's presence last_active time every time they send a message to a room
2014-09-01 16:16:35 +01:00
Erik Johnston
db7109c43b
Add beginnings of ban support.
2014-09-01 16:15:34 +01:00
Paul "LeoNerd" Evans
fd696f1243
Perform room unit tests with 'local' users actually in the right domain ;)
2014-09-01 15:58:30 +01:00
Mark Haines
f5755bcadf
Merge branch 'develop' into server2server_tls
2014-09-01 15:51:44 +01:00
Mark Haines
9ea1de432d
Fix homeserver config parsing
2014-09-01 15:51:15 +01:00
Paul "LeoNerd" Evans
468d94c920
Rename API-visible 'mtime' presence field to 'last_active'; slightly different semantics
2014-09-01 15:39:50 +01:00
Paul "LeoNerd" Evans
02f4e3b3ff
Rename 'state' presence key to the much more obvious 'presence'; maintain a legacy 'state' copy for now
2014-09-01 14:45:41 +01:00
Erik Johnston
865469f233
Implement power level lists, default power levels and send_evnet_level/add_state_level events.
2014-09-01 14:39:09 +01:00
Erik Johnston
10efca1a74
Merge branch 'develop' of github.com:matrix-org/synapse into room_config
2014-09-01 13:41:44 +01:00
Mark Haines
a9512d0994
Merge branch 'develop' into server2server_tls
2014-09-01 13:29:17 +01:00
Mark Haines
3eb45eba0e
Merge branch 'develop' into server2server_tls
2014-08-31 16:08:20 +01:00
Mark Haines
d9ebe531ed
Add config tree to synapse. Add support for reading config from a file
2014-08-31 16:06:39 +01:00
Matthew Hodgson
2b7918bd6f
missed a s#/matrix#/_matrix/g
2014-08-31 14:54:58 +01:00
Matthew Hodgson
8fe912d95c
change the world: make the default matrix API URL prefix /_matrix rather than /matrix to make it easier for existing websites to mount a HS in their namespace without collisions.
...
perl -pi -e 's#/matrix#/_matrix#g' ./cmdclient/console.py ./docs/client-server/howto.rst ./docs/client-server/specification.rst ./docs/client-server/swagger_matrix/directory ./docs/client-server/swagger_matrix/events ./docs/client-server/swagger_matrix/login ./docs/client-server/swagger_matrix/presence ./docs/client-server/swagger_matrix/profile ./docs/client-server/swagger_matrix/registration ./docs/client-server/swagger_matrix/rooms ./docs/server-server/specification.rst ./graph/graph.py ./jsfiddles/create_room_send_msg/demo.js ./jsfiddles/event_stream/demo.js ./jsfiddles/example_app/demo.js ./jsfiddles/register_login/demo.js ./jsfiddles/room_memberships/demo.js ./synapse/api/urls.py ./tests/federation/test_federation.py ./tests/handlers/test_presence.py ./tests/handlers/test_typing.py ./tests/rest/test_events.py ./tests/rest/test_presence.py ./tests/rest/test_profile.py ./tests/rest/test_rooms.py ./webclient/components/fileUpload/file-upload-service.js ./webclient/components/matrix/matrix-service.js
2014-08-31 14:51:37 +01:00
Paul "LeoNerd" Evans
93407cf7cf
Bugfixes on presence pushes on user joining:
...
* No need to inform clients of status of remote users; as that will
arrive in due course anyway. We don't -have- the state currently, so
we'd only send an unknown message
* Remember to bump the presence serial for the event source, so the
notifiers will wake up and report it
2014-08-29 19:53:33 +01:00
Paul "LeoNerd" Evans
a8e8d1d06c
Renamed get_current_token_part to get_current_key
2014-08-29 19:15:23 +01:00
Paul "LeoNerd" Evans
eec67a675f
Have EventSource's get_new_events_for_user() API work only on keys within that source, not overall eventstream tokens
2014-08-29 19:13:55 +01:00
Paul "LeoNerd" Evans
6797c7f1b1
TypingNotificationEventSource has to return proper tokens, not int 0
2014-08-29 19:00:55 +01:00
Paul "LeoNerd" Evans
4bfdec1eb2
Rename 'events_key' to 'room_key' so it matches the name of the event source
2014-08-29 19:00:55 +01:00
David Baker
7b79c0f08f
v0.1.2
2014-08-29 18:13:34 +01:00
Paul "LeoNerd" Evans
6dd50da54e
Define a new event stream data source for typing notifications (currently null)
2014-08-29 17:39:33 +01:00
Paul "LeoNerd" Evans
f85a3757cf
Avoid hardcoding names of individual stream token keys in its own implementation; this at least reduces the number of places in source code the individual parts are stored
2014-08-29 17:31:39 +01:00
Paul "LeoNerd" Evans
d4145abd33
Use str.join() properly
2014-08-29 17:17:11 +01:00
Paul "LeoNerd" Evans
20d0db6cfb
Move the *EventSource classes into the handlers they relate to, so it's easier to find the code
2014-08-29 17:10:28 +01:00
Erik Johnston
52203edbce
Version bump for bug fix.
2014-08-29 16:15:20 +01:00
Erik Johnston
f07f538ac7
When notifying listeners, don't do so in a serial fashion
2014-08-29 16:01:01 +01:00
Erik Johnston
463b95f0c2
Bump version and change log
2014-08-29 15:36:53 +01:00
Erik Johnston
1118f02689
Start adding storage for new events.
2014-08-29 15:18:30 +01:00
Erik Johnston
8e2d4c6da5
Merge branch 'develop' of github.com:matrix-org/synapse into room_config
2014-08-29 14:22:04 +01:00
Erik Johnston
ee06023573
Get the equalities right.
2014-08-29 13:28:06 +01:00
Erik Johnston
47fb286184
Merge branch 'presence_logging' into develop
2014-08-29 12:10:00 +01:00
Erik Johnston
5dd38d579b
Fix a couple of bugs in presence handler related to pushing updatesto the correct user. Fix presence tests.
2014-08-29 12:08:33 +01:00
Erik Johnston
8113eb7c79
Turn of trace_function logging
2014-08-28 18:45:00 +01:00
Erik Johnston
aaf4fd98ee
Only poll remote users if they are in our presence list, rather than in a common room
2014-08-28 18:43:03 +01:00
Mark Haines
722c19d033
Fix FederationHandler to event.origin
2014-08-28 18:32:44 +01:00
Mark Haines
d7ae9b90a0
Add store for server certificates and keys
2014-08-28 18:19:47 +01:00
Erik Johnston
1b7686329e
Don't query the rooms members table so much by using the new notifier api that allows you to specify room_ids to notify.
2014-08-28 17:43:15 +01:00
Paul "LeoNerd" Evans
2c7c12bc6e
Initial room event stream token must be s0, not s1, or everyone will miss the very first room event
2014-08-28 17:39:34 +01:00
Erik Johnston
54d0a75573
Merge branch 'develop' of github.com:matrix-org/synapse into presence_logging
...
Conflicts:
synapse/handlers/presence.py
2014-08-28 16:52:46 +01:00
Erik Johnston
a8d318cf82
Up timeout to 10 minutes
2014-08-28 16:44:09 +01:00
Paul "LeoNerd" Evans
efc5f3440d
Only send presence "poll"/"unpoll" EDUs when changing from/to zero remotes
2014-08-28 16:43:55 +01:00
Paul "LeoNerd" Evans
b1da3fa0a7
Avoid AlreadyCalledError from EDU sending failures
2014-08-28 16:19:16 +01:00
Paul "LeoNerd" Evans
c46c806126
Re-enable presence, un-skip presence tests
2014-08-28 16:00:14 +01:00
Erik Johnston
eb3094ed31
And more logging.
2014-08-28 15:58:38 +01:00
Mark Haines
7b079a26a5
Remove get_state_for_room function from federation handler
2014-08-28 15:32:38 +01:00
Mark Haines
bddc1d9fff
use @wraps to set the __name__ __module__ and __doc__ correctly for logged functions
2014-08-28 15:32:38 +01:00
Erik Johnston
e0ba81344c
Add more logging. Up the event stream timer to 10s
2014-08-28 15:30:42 +01:00
Erik Johnston
b8b52ca09d
Add logging to try and figure out what is going on with the presence stuff
2014-08-28 14:58:51 +01:00
Kegan Dougal
8d7d251c35
Support multiple login flows when deciding how to login. Updated cmdclient and spec. Webclient doesn't need updating for this.
2014-08-28 14:56:55 +01:00
Mark Haines
7acede1e42
Fix pyflakes warnings
2014-08-28 13:51:50 +01:00
Mark Haines
15ab5f5ad8
Merge backfill_ and backfill in federation handler
2014-08-28 13:45:35 +01:00
Erik Johnston
b485d622cc
Fix bug where we used UserID objects instead of strigns
2014-08-28 13:40:27 +01:00
Erik Johnston
d2bc5d6f29
Create the correct events with the right configuration when creating a new room.
2014-08-28 10:59:15 +01:00
Erik Johnston
f3f32addca
Fix typo in NullSource.get_pagination_rows. Remove unused import.
2014-08-28 10:57:53 +01:00
Paul "LeoNerd" Evans
407c86c013
Define a NullSource useful for unit-testing
2014-08-27 18:30:09 +01:00
Erik Johnston
c2b4b73751
Split out MessageHandler
2014-08-27 17:59:36 +01:00
Mark Haines
357dd1871d
Merge branch 'develop' into storage_transactions
...
Conflicts:
tests/handlers/test_federation.py
tests/handlers/test_room.py
2014-08-27 17:28:55 +01:00
Erik Johnston
410a74b0f3
If timeout=0, return immediately
2014-08-27 17:21:48 +01:00
Mark Haines
2aeaa7b77c
Merge branch 'develop' into storage_transactions
...
Conflicts:
synapse/handlers/room.py
synapse/storage/stream.py
2014-08-27 17:15:58 +01:00
Erik Johnston
7c89d5e97a
Merge branch 'develop' of github.com:matrix-org/synapse into develop
2014-08-27 17:05:48 +01:00
Erik Johnston
226025e9ca
Comments!
2014-08-27 17:04:47 +01:00
Mark Haines
f54b70520a
Return the store_id from persist_event
2014-08-27 17:03:45 +01:00
Mark Haines
1d95e78759
Merge branch 'develop' into storage_transactions
2014-08-27 16:54:12 +01:00
Mark Haines
b30358f439
add _get_room_member, fix datastore methods
2014-08-27 16:51:54 +01:00
Kegan Dougal
f64887e15c
Added RestServlet for /rooms/$roomid/initialSync
2014-08-27 16:49:01 +01:00
Erik Johnston
52cb5e6324
Remove stale FIXMEs
2014-08-27 16:44:29 +01:00
Kegan Dougal
4e8d19ee2b
Added RestServlet for /rooms/$roomid/state
2014-08-27 16:42:33 +01:00
Erik Johnston
8af5e360d6
Remove store_id from notifier.on_new_room_event calls.
2014-08-27 16:23:33 +01:00
Erik Johnston
7917ff1271
Turn off presence again.
2014-08-27 16:09:48 +01:00
Erik Johnston
08881d808d
Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor
2014-08-27 15:34:01 +01:00
Erik Johnston
bfe9faad5a
Index sources in a nicer fashion.
2014-08-27 15:33:52 +01:00
Erik Johnston
05672a6a8c
Convert get_paginat_rows to use PaginationConfig. This allows people to supply directions.
2014-08-27 15:25:27 +01:00
Mark Haines
a0d1f5a014
Start updating state handling to use snapshots
2014-08-27 15:11:51 +01:00
Kegan Dougal
c585c87c4b
Renamed /ds to /directory
2014-08-27 14:54:29 +01:00
Kegan Dougal
1d9d287c7c
Renamed /public/rooms to /publicRooms
2014-08-27 14:52:07 +01:00
Mark Haines
46a2f6a816
Remove call to get_federation from homeserver
2014-08-27 14:36:20 +01:00
Mark Haines
a03c7f27a8
Fill out prev_events before calling persist_event
2014-08-27 14:32:19 +01:00
Erik Johnston
77a255c7c3
PEP8 tweaks.
2014-08-27 14:19:39 +01:00
Erik Johnston
47519cd8c2
Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor
...
Conflicts:
synapse/handlers/events.py
synapse/rest/events.py
synapse/rest/room.py
2014-08-27 14:13:06 +01:00
Erik Johnston
bd16b93e8f
Implement presence event source. Change the way the notifier indexes listeners
2014-08-27 14:03:27 +01:00
Paul "LeoNerd" Evans
05fa81fee4
A reliable logger.info() message /after/ the TCP port has been opened and is listening; this is essential for avoiding races in wrapper scripts e.g. integration testing
2014-08-27 13:08:55 +01:00
Paul "LeoNerd" Evans
5eff05a4ce
Initial typing notification support - EDU federation, but no timers, and no actual push to clients
2014-08-27 11:45:16 +01:00
Paul "LeoNerd" Evans
d63f775e06
Added parse_roomid() helper
2014-08-27 11:45:16 +01:00
Paul "LeoNerd" Evans
e677a3114e
Use SQLite's PRAGMA user_version to check if the database file really matches the schema we have in mind
2014-08-27 11:45:16 +01:00
Paul "LeoNerd" Evans
648796ef1d
Neater database setup at application startup time; only .connect() it once, not once per schema file; don't build the db_pool twice
2014-08-27 11:45:16 +01:00
Kegan Dougal
135a1aa229
Final url modifications: renamed /presence_list to /presence/list to keep the top-level namespace clean. Updated tests.
2014-08-27 11:37:53 +01:00
Mark Haines
474dcecb11
Remove unused populate_previous_pdus
2014-08-27 11:34:31 +01:00
Kegan Dougal
dd661769e1
Renamed /rooms to /createRoom. Removed ability to PUT raw room IDs, and removed tests which tested that. Updated cmdclient and webclient.
2014-08-27 11:33:56 +01:00
Mark Haines
bf05218c4b
Merge branch 'develop' into storage_transactions
2014-08-27 11:19:37 +01:00
Kegan Dougal
c65885e166
Added support for GET /events/$eventid with auth checks.
2014-08-27 10:33:01 +01:00
Kegan Dougal
dfa0cd1d90
Modified /join/$identifier to support $identifier being a room ID in addition to a room alias.
2014-08-27 09:43:42 +01:00
Mark Haines
d2798de660
Fold federation/handler into handlers/federation
2014-08-26 19:49:42 +01:00
Erik Johnston
67c5f89244
Enable presence again. Fix up api to match old api.
2014-08-26 19:40:29 +01:00
Erik Johnston
c1cf0b334e
Fix exceptions so that the event stream works. Presence like events are turned off currently.
2014-08-26 19:18:11 +01:00
Erik Johnston
93cff1668c
Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor
2014-08-26 18:57:55 +01:00
Erik Johnston
3a2a5b959c
WIP: Completely change how event streaming and pagination work. This reflects the change in the underlying storage model.
2014-08-26 18:57:46 +01:00
Mark Haines
6966971a28
Use store.persist_event rather than pdu_actions.persist_outgoing/pdu_actions.persist_received
2014-08-26 18:57:17 +01:00
Mark Haines
a498df0428
Move new event boilerplate in room handlers into a method on a base clase.
2014-08-26 18:49:51 +01:00
Mark Haines
64e2a5d58e
Move pdu and event persistence into a single persist_event function
2014-08-26 18:01:36 +01:00
Kegan Dougal
f84ddc75cb
Pepper UT TODOs
2014-08-26 17:54:18 +01:00
Kegan Dougal
5a3df1d029
Feedback: Removed FeedbackRestServlet. Modified keys on FeedbackEvent. Expanded the feedback constants to fully explain what type of feedback they are.
2014-08-26 17:49:46 +01:00
Kegan Dougal
5a93bfe1f0
Removed MessageRestServlet, use RoomSendEventRestServlet instead. Updated cmdclient, tests and webclient. All appears to work.
2014-08-26 17:21:48 +01:00
Kegan Dougal
ad6d5ac06c
Added RoomSendEventRestServlet to send generic non-state events. It even appears to work..!
2014-08-26 17:00:24 +01:00
Erik Johnston
8885c8546c
Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor
2014-08-26 16:29:44 +01:00
Erik Johnston
9a93e83d90
Respect 'limit' param in initialSync api
2014-08-26 16:26:30 +01:00
Mark Haines
66a4d33524
Merge branch 'develop' into storage_transactions
2014-08-26 16:20:50 +01:00
Kegan Dougal
d0103400b5
Merge branch 'client_server_url_rename' into develop
2014-08-26 16:19:44 +01:00
Kegan Dougal
2e70de09b9
Renaming: /im/sync >> /initialSync. /rooms/$roomid/members/list >> /rooms/$roomid/members. /rooms$roomid/messages/list >> /room/$roomid/messages. Updated cmdclient, tests and webclient.
2014-08-26 16:19:17 +01:00
Mark Haines
47c1a3d454
Merge branch 'develop' into storage_transactions
2014-08-26 16:15:49 +01:00
Mark Haines
3281fec07a
Use state_key rather than target_user_id
2014-08-26 16:14:54 +01:00
Mark Haines
a29d12a18a
Use state_key rather than target_user_id
2014-08-26 16:13:32 +01:00
Mark Haines
4b63b06cad
Merge branch 'develop' into storage_transactions
...
Conflicts:
synapse/api/auth.py
synapse/handlers/room.py
synapse/storage/__init__.py
2014-08-26 16:07:05 +01:00
Erik Johnston
3df5cb804f
Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor
2014-08-26 16:03:56 +01:00
Mark Haines
ac21dfff6d
Fix pyflakes errors
2014-08-26 16:02:59 +01:00
Mark Haines
32347bfcc9
fix a few pyflakes errors
2014-08-26 16:01:29 +01:00
Erik Johnston
ff3709e577
Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor
2014-08-26 15:45:03 +01:00
Kegan Dougal
27979028b2
Merge branch 'develop' of github.com:matrix-org/synapse into client_server_url_rename
2014-08-26 14:59:54 +01:00
Kegan Dougal
5c0be8fde3
Implemented /rooms/$roomid/[invite|join|leave] with POST / PUT (incl txn ids)
2014-08-26 14:49:44 +01:00
Mark Haines
4b2ad549d5
Move the event storage into a single transaction
2014-08-26 14:36:03 +01:00
Kegan Dougal
732d954f89
Added basic in-memory REST transaction storage. Only the latest transaction for a given path/access_token combo is stored in order to prevent storing ALL request/response pairs.
2014-08-26 14:13:32 +01:00
Erik Johnston
485bb64ddb
Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor
2014-08-26 13:55:37 +01:00
Erik Johnston
1291ac93f3
Add the ability to turn on the twisted manhole telnet service.
2014-08-26 13:43:55 +01:00
Erik Johnston
a664ec20e0
Add a do_users_share_a_room method and use that in the presence handler.
2014-08-26 13:38:26 +01:00
Kegan Dougal
7d79021c42
Added servlet for /rooms/$roomid/[invite|join|leave]
2014-08-26 12:54:43 +01:00
Kegan Dougal
5796232cb1
Adjusted webclient to use new state paths. Updated membership msg template to actually show the person invited. Factored out common membership functions in matrix service.
2014-08-26 10:24:47 +01:00
Kegan Dougal
52b64617f9
Merge branch 'develop' of github.com:matrix-org/synapse into client_server_url_rename
2014-08-26 10:04:26 +01:00
Erik Johnston
fea7b60cf3
Add 'state_key' to valid_keys
2014-08-26 09:40:58 +01:00
Erik Johnston
b52b33acf6
Send down state_key to clients
2014-08-26 09:40:29 +01:00
Kegan Dougal
47c3a089c5
Merge branch 'develop' of github.com:matrix-org/synapse into client_server_url_rename
2014-08-26 09:26:33 +01:00
Kegan Dougal
cab3095803
Removed member list servlet: now using generic state paths.
2014-08-26 09:26:07 +01:00
Erik Johnston
be6abdff19
Order 'get_recent_events_for_room' correctly.
2014-08-26 09:22:58 +01:00
Erik Johnston
2c4908ed26
Ensure that we don't have duplicate hosts in the pdu destinations list
2014-08-24 14:35:13 +01:00
Erik Johnston
0c3b4a1f63
For the content repo, don't just use homeserver.hostname as that might not include the port due to SRV.
2014-08-24 11:56:55 +01:00
Erik Johnston
9d86c8c7a6
Add a unique constraint on the room hosts table
2014-08-24 11:29:29 +01:00
Erik Johnston
a9a5329a11
Encode unicode from json as utf-8. This was required to allow people to register on my laptop
2014-08-24 11:29:29 +01:00
Erik Johnston
cda4ff8519
Oops, we need to use defer.returnValue.
2014-08-22 18:23:02 +01:00
Erik Johnston
5b058a79cb
Make is_presence_visible always return true as it was thrashing the database.
2014-08-22 18:21:21 +01:00
Erik Johnston
b18db63c06
Turn off more spammy logging.
2014-08-22 18:13:50 +01:00
Erik Johnston
537ecd4e99
Turn off spammy logging
2014-08-22 18:12:38 +01:00
Erik Johnston
9f514915af
Add indices to schema
2014-08-22 18:03:39 +01:00
Mark Haines
1379dcae6f
Take a snapshot of the state of the room before performing updates
2014-08-22 17:00:10 +01:00
Kegan Dougal
f690b7b827
Impl: /rooms/roomid/state/eventtype/state_key - Renamed RoomTopicRestServlet to RoomStateEventRestServlet. Support generic state event sending.
2014-08-22 15:59:15 +01:00
Erik Johnston
808f663ed1
Don't return state event outlier's when paginating.
2014-08-22 13:06:07 +01:00
Erik Johnston
c2e983b8db
Bump versions to 0.0.1
2014-08-22 12:06:50 +01:00
Erik Johnston
acf5127604
Make the content repo work with in daemon mode. Return the full url on upload. Update the webclient to use new content repo api.
2014-08-22 10:25:32 +01:00
Matthew Hodgson
1b0d427285
host a webclient by default
2014-08-21 23:35:45 +01:00
Erik Johnston
5670da1c1e
Add ts field to all events.
2014-08-21 17:46:52 +01:00
Erik Johnston
e7ee0b9fc1
Change IM sync api to also return the current presence list.
2014-08-21 16:40:21 +01:00
Erik Johnston
3d1cae0e79
In the initial sync api, return the inviter for rooms in the 'invited' state
2014-08-21 15:07:08 +01:00
Erik Johnston
c6950b18cc
Return the current state in the initial sync api.
2014-08-21 15:06:22 +01:00
Erik Johnston
063e1b22e6
Stop internal keys from getting into SynapseEvents
2014-08-21 15:06:00 +01:00
Erik Johnston
1587ea26fe
Wait for getting a Join in response to an invite/join dance.
2014-08-21 14:38:22 +01:00
Erik Johnston
81a95937de
Use new StreamToken in pagination config
2014-08-21 11:01:33 +01:00
Erik Johnston
7bec359408
Add in StreamToken type
2014-08-21 11:01:33 +01:00
Erik Johnston
ebd3c41ede
Make event stream storage return all membership events about the user, regardless of if they were in the room or not.
2014-08-20 17:09:44 +01:00
Paul "LeoNerd" Evans
583add34fe
Use the "collect_presencelike_data" distributor signal instead of re-implementing its behaviour
2014-08-20 16:06:47 +01:00
Paul "LeoNerd" Evans
50718825bd
Fix exception name in _fill_out_join_content() exception
2014-08-20 16:06:47 +01:00
Paul "LeoNerd" Evans
e01bdf2432
Define __copy__ and __deepcopy__ as identity functions on DomainSpecificString, so that copy.deepcopy() will work on them
2014-08-20 16:06:47 +01:00
Paul "LeoNerd" Evans
9c0e570496
Kill the "_homeserver_" injected messages for room membership changes
2014-08-20 16:06:47 +01:00
Erik Johnston
e8244c23ba
Give the event_id of the failed event
2014-08-20 15:53:07 +01:00
Erik Johnston
5ef0948eaa
Better handle the edge cases of trying to remote join rooms
2014-08-20 14:42:47 +01:00
Erik Johnston
849627b82e
Don't generate room membership messages. Include previous state of in membership messages.
2014-08-20 11:53:57 +01:00
Erik Johnston
d4fb1c8a92
Only hit get_room_events_stream if we have a valid user_id
2014-08-19 17:18:19 +01:00
Erik Johnston
ae493c9418
Fix token to correct format
2014-08-19 16:45:55 +01:00
Erik Johnston
e2b861cc67
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
2014-08-19 16:41:13 +01:00
Erik Johnston
eea2dc7dde
Remove debug logging from token parsing funcs.
2014-08-19 16:40:38 +01:00
Erik Johnston
d94765999d
Add comment about what strorage.stream does
2014-08-19 16:40:25 +01:00
Erik Johnston
7c60905ee7
Default from param to 'END'
2014-08-19 15:52:10 +01:00
Erik Johnston
5c00614aab
PresenceStreamData was expecting *_key to be ints
2014-08-19 15:51:10 +01:00
Paul "LeoNerd" Evans
89cabba3e0
Don't delete OFFLINE users from the presence cache, so we can report on their offline mtime
2014-08-19 14:51:15 +01:00
Erik Johnston
347242a5c4
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
...
Conflicts:
tests/rest/test_presence.py
tests/rest/test_rooms.py
tests/utils.py
2014-08-19 14:48:19 +01:00
Erik Johnston
840771190f
Fix bug where we sometimes set min_token to None.
2014-08-19 14:32:47 +01:00
Erik Johnston
234128586b
Print out stacktrace when we failed to persist event.
2014-08-19 14:30:28 +01:00
Paul "LeoNerd" Evans
992782b9f5
Ensure that federation's .send_edu() returns a Deferred
2014-08-19 14:26:06 +01:00
Erik Johnston
75b6d982a0
Add a 'backfill room' button
2014-08-19 14:20:03 +01:00
Erik Johnston
598a1d8ff9
Change the way pagination works to support out of order events.
2014-08-19 14:19:48 +01:00
Kegan Dougal
caef65d819
More unquotes. Also, don't return the room_id on membership state changes, they already know it.
2014-08-19 12:30:28 +01:00
Kegan Dougal
ece7a6d995
Unquote sender IDs.
2014-08-19 11:50:57 +01:00
Paul "LeoNerd" Evans
88f7482b92
Perform the 'REST'-level tests of Presence against the real Presence handler as well, mocking out the datastore beneath it
2014-08-19 11:16:23 +01:00
Paul "LeoNerd" Evans
83f031207e
Implement and test presence dropping of remote users
2014-08-19 11:16:23 +01:00
Paul "LeoNerd" Evans
6fafa878f6
Deny __iter__ on UserID/RoomID/RoomName instances as it's a subtle bug that will bite you
2014-08-19 11:16:23 +01:00
Kegan Dougal
f48792eec4
Reduce the amount of incredibly spammy stack traces. Expected errors (e.g. SynapseErrors) shouldn't have their full trace logged every time. Don't send responses to disconnected requests.
2014-08-19 10:56:43 +01:00
Kegan Dougal
e37b040bc3
Small amounts of cleanup and bonus round comments.
2014-08-18 17:22:31 +01:00
Kegan Dougal
58548ab557
Implemented GETs for the ContentRepoResource. It all actually appears to be working.
2014-08-18 17:18:54 +01:00
Kegan Dougal
590ab24c85
hs: Make the uploads directory if it doesn't exist. Namespace uploads by the base64 encoded user id of the uploader. Make a reasonable attempt to retry clashing upload paths. Try to guess a sensible file extension depending on the content type.
2014-08-18 17:18:54 +01:00
Kegan Dougal
35da1bf4a3
Auth content uploads. Added a mapping function from request > filename. Added exception handling for content uploads. webclient: Only prefix the client API path on doRequest, not doBaseRequest (this would've broken the identity server auth too). Added matrixService.uploadContent. May not require mFileUpload anymore.
2014-08-18 17:18:54 +01:00
Kegan Dougal
a18b1a649c
Added /matrix/content path, HS resource_for_content_repo attribute and FileUploadResource. Added stub methods.
2014-08-18 17:18:54 +01:00
Erik Johnston
1422a22970
Fix typos in SQL and where we still had rowid's (which no longer exist)
2014-08-18 16:25:18 +01:00
Erik Johnston
4eb8f84aa8
Make snapshot_all_rooms return results in the correct form, including start and end tokens.
2014-08-18 16:20:21 +01:00
Erik Johnston
709a92cee8
SQL doesn't allow AUTOINCREMENT on non PRIMARY KEY columns.
2014-08-18 16:00:46 +01:00
Erik Johnston
b4a1f2ccb5
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
2014-08-18 15:53:40 +01:00
Erik Johnston
fc26275bb3
Add two different columns for ordering the events table, one which can be used for pagination and one which can be as tokens for notifying clients. Also add a 'processed' field which is currently always set to True
2014-08-18 15:50:41 +01:00
Kegan Dougal
b37ced8f63
Update the default longpoll timeout time.
2014-08-18 14:30:07 +01:00
Paul "LeoNerd" Evans
faf25e3a83
Allow room presence visibility between users who share a room
2014-08-18 13:41:43 +01:00
Paul "LeoNerd" Evans
7d324612ec
Precent lack of presence visiblity from causing room /members/list to fail
2014-08-18 13:17:35 +01:00
Erik Johnston
1c2caacd67
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
2014-08-18 11:14:57 +01:00
Erik Johnston
291010f100
Not all event streams returns SynapseEvents
2014-08-18 11:06:59 +01:00
Erik Johnston
2f91d16033
We don't need to do a json.loads here
2014-08-18 11:00:22 +01:00
Erik Johnston
1a1e0384ef
Ensure we have a 'membership' key in RoomMemberEvents
2014-08-18 10:59:57 +01:00
Erik Johnston
dccb2f57be
Disable the ability to GET individualy messages. We need to think about the correct API to do this, as the current one doesn't make much sense.
2014-08-18 10:59:04 +01:00
Matthew Hodgson
98ed3d0222
improve comment
2014-08-16 01:52:03 +01:00
Matthew Hodgson
fc846aa771
emergency bodges to turn off presence ACLs in order to make
...
matrix.org:8080 actually work
2014-08-16 01:47:17 +01:00
Matthew Hodgson
0f9b633af7
retcols is mandatory. i have no idea how this could ever have worked?
2014-08-16 01:46:35 +01:00
Erik Johnston
7f5c7ddea9
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
2014-08-15 17:50:27 +01:00
Paul "LeoNerd" Evans
9c41f635a9
When starting to poll for presence, also include members of all shared rooms
2014-08-15 17:12:07 +01:00
Erik Johnston
40c020ad13
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
2014-08-15 16:48:16 +01:00
Paul "LeoNerd" Evans
ec1fd20e59
Also include users' presence when responding to /rooms/:room_id/members/list
2014-08-15 16:47:50 +01:00
Erik Johnston
0e938b1ff7
Rename method name to not clash with other ones in storage.
2014-08-15 16:47:48 +01:00
Erik Johnston
6efc688917
Fix typo of key name
2014-08-15 16:47:26 +01:00
Erik Johnston
506711749f
We no longer need to special case room config events.
2014-08-15 16:45:16 +01:00
Erik Johnston
d260a42ca2
PEP8 cleanups
2014-08-15 16:17:36 +01:00
Erik Johnston
8fa3cc37f9
Comment.
2014-08-15 16:11:25 +01:00
Erik Johnston
19946509a4
Support generic events.
2014-08-15 16:06:08 +01:00
Erik Johnston
cd2967d271
Fix bug when generating a key when get_room_events_stream returned zero rows
2014-08-15 16:05:46 +01:00
Erik Johnston
86be66c34e
Actually use MAX_STREAM_SIZE constant.
2014-08-15 16:04:54 +01:00
Erik Johnston
8d1f763209
Fix pagination to work with new db schema
2014-08-15 15:53:06 +01:00
Paul "LeoNerd" Evans
3c532314ec
Fix imsync's SELECT query to only find the rooms I'm actually joined in, not every room I have ever joined
2014-08-15 15:44:53 +01:00
Erik Johnston
01f089d9fb
Correctly return new token when returning events. Serialize events correctly.
2014-08-15 15:28:54 +01:00
Erik Johnston
114984a236
Start chagning the events stream to work with the new DB schema
2014-08-15 13:58:28 +01:00
Erik Johnston
d72f897f07
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
...
Conflicts:
synapse/storage/stream.py
2014-08-15 11:50:14 +01:00
Erik Johnston
c5f2da5875
Add a check to make sure that during state conflict res we only request a PDU we don't have.
2014-08-15 11:47:01 +01:00
Erik Johnston
1a26905cc9
Fix pontenial bug in state resolution handler that compared dicts rather than their id's
2014-08-15 11:41:20 +01:00
Paul "LeoNerd" Evans
33d62c2c66
Remember to reflect membership LEAVE events to the leaving member so they know it happened
2014-08-15 11:40:58 +01:00
Erik Johnston
5002efa31b
Reimplement the get public rooms api to work with new DB schema
2014-08-15 10:26:35 +01:00
Erik Johnston
2c46bb6208
Fix up typos and correct sql queries
2014-08-14 18:40:50 +01:00
Erik Johnston
7e681ad778
Update StreamStore
2014-08-14 18:01:39 +01:00
Erik Johnston
661c711765
Start fixing places that use the data store.
2014-08-14 17:34:37 +01:00
Erik Johnston
78b501eba6
Fix typo
2014-08-14 17:09:28 +01:00
Erik Johnston
2529f2bc01
Rename _execute_query
2014-08-14 16:58:51 +01:00
Kegan Dougal
fef3183461
Pass back the user_id in the response to /login in case it has changed. Store and use that on the webclient rather than the input field.
2014-08-14 16:40:15 +01:00
Kegan Dougal
ca3747fb2f
hs: Make /login accept full user IDs or just local parts. webclient: Only enable Register button when both password fields match.
2014-08-14 16:29:51 +01:00
Paul "LeoNerd" Evans
53147e5ae4
Reflect user's messages up to themselves before pushing it to federatoin; also release roomlock before touching federation so we don't halt progress on the world
2014-08-14 16:22:08 +01:00
Paul "LeoNerd" Evans
93a8be7bef
We really don't need debug logging of all the SQL statements we execute; we're quite happy these all work now
2014-08-14 16:15:57 +01:00
Paul "LeoNerd" Evans
657ab9ba9d
Put some DEBUG logging in lockutils.py so we can debug roomlocks
2014-08-14 16:06:05 +01:00
Kegan Dougal
fb93e14e53
Be more helpful when failing to register/login, stating why (communication error, user in user, wrong credentials, etc). Make the HS send M_USER_IN_USE.
2014-08-14 16:03:04 +01:00
Erik Johnston
937c175029
Fix up RoomMemberStore to work with the new schema.
2014-08-14 16:02:10 +01:00
Erik Johnston
6d6a1c3454
Actually encode dicts as json in the DB
2014-08-14 14:30:25 +01:00
Kegan Dougal
5a5f37ca17
Send forbidden codes when doing login attempts.
2014-08-14 14:29:06 +01:00
Paul "LeoNerd" Evans
0fa05ea331
Round Presence mtime and mtime_age to nearest msec; avoids floats for msec values over the wire
2014-08-14 14:16:01 +01:00
Erik Johnston
cbd5d55222
Change relative db paths to absolute paths in case we daemonize.
2014-08-14 14:08:57 +01:00
Erik Johnston
e4061383b8
Change relative db paths to absolute paths in case we daemonize.
2014-08-14 14:07:22 +01:00
Paul "LeoNerd" Evans
e37de2aef3
chmod +x homeserver.py
2014-08-14 14:05:05 +01:00
Kegan Dougal
61933f8e52
Added M_UNKNOWN_TOKEN error code and send it when there is an unrecognised access_token
2014-08-14 13:47:39 +01:00
Kegan Dougal
2a793a6c42
Default error code BAD_PAGINATION for EventStreamErrors
2014-08-14 11:57:25 +01:00
Kegan Dougal
d253a35539
Added web client prefix
2014-08-14 11:54:37 +01:00
Kegan Dougal
c75add6ec8
Added a urls module for keeping client and federation prefixes.
2014-08-14 11:52:56 +01:00
Kegan Dougal
9fd445eb92
If the web client is enabled, automatically redirect root '/' to the web client path.
2014-08-14 11:37:13 +01:00
Kegan Dougal
e543d6a91d
Fixed dynamic resource mapping to clobber dummy Resources with the actual desired Resource in the event of a collision (as is the case for '/matrix/client' and '/matrix/client/api/v1')
2014-08-14 11:18:18 +01:00
Kegan Dougal
de65c34fcf
Honour the -w flag to enable the web client at /matrix/client
2014-08-14 10:24:17 +01:00
Kegan Dougal
9a1638ed21
Removed http_server from HomeServer. Updated unit tests to use either resource_for_federation or resource_for_client depending on what is being tested.
2014-08-14 10:18:54 +01:00
Kegan Dougal
29aa13f0d4
Make federation use resource_for_federation as well.
2014-08-14 10:05:06 +01:00
Erik Johnston
10294b6082
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
...
Conflicts:
synapse/storage/_base.py
2014-08-14 10:01:04 +01:00
Kegan Dougal
9f863d3466
Start phasing out HttpServer: we should be using Resources instead. Added resource_for_client/federation/web_client to the HomeServer and hooked the C-S servlets to operate on resource_for_client. Dynamically construct the Resource tree.
2014-08-14 09:55:16 +01:00
Matthew Hodgson
a4da962bab
fix http client GET parameters; somehow missing named param. how could this have ever worked!?
2014-08-14 02:59:54 +01:00
Matthew Hodgson
aebe5ce08a
fix whitespace
2014-08-14 02:14:15 +01:00
Paul "LeoNerd" Evans
d05aa651f8
An initial hack at storing presence state-change mtimes in database and presenting age durations to clients/federation events
2014-08-13 19:19:15 +01:00
Paul "LeoNerd" Evans
baf04be5cf
Set datastore's .hs field in SQLBaseStore rather than in the toplevel DataStore mixed-in result class
2014-08-13 19:19:15 +01:00
Matthew Hodgson
59dfbaba3b
when we're talking about backfilling data in federation, call it backfilling - not pagination.
2014-08-13 18:17:09 +01:00
Erik Johnston
beaf4384d9
Make feedback table also store sender.
2014-08-13 18:03:41 +01:00
Paul "LeoNerd" Evans
3a1cfe18cf
Implement directory service federation by Federation Queries; avoid local_only hack; add unit tests
2014-08-13 18:03:41 +01:00
Erik Johnston
336987bb8d
Initial stab at refactoring the SQL tables, including rejigging some of the storage layer.
2014-08-13 18:03:41 +01:00
Paul "LeoNerd" Evans
7fb93f2a47
Add a HomeServer.parse_roomalias() to avoid having to RoomAlias.from_sring(..., hs=hs) - similar to parse_userid()
2014-08-13 18:03:41 +01:00
Erik Johnston
3dfa84bec8
Convert im schema to a 'one' table structure
2014-08-13 18:03:41 +01:00
Paul "LeoNerd" Evans
80c056c148
Now that HS->HS Profile lookups use Federation Queries, we don't need the 'local_only' antirecursion hack
2014-08-13 17:23:49 +01:00