Commit Graph

405 Commits

Author SHA1 Message Date
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