Erik Johnston
14975ce5bc
Fix bug where we relied on the current_state_events being updated when we are handling type specific persistence
2014-09-12 17:57:02 +01:00
Erik Johnston
667e747ed1
Fix bug where we no longer stored user_id on Pdus
2014-09-12 17:56:21 +01:00
Paul "LeoNerd" Evans
1c51c8ab7d
Merge remote-tracking branch 'origin/develop' into test-sqlite-memory
...
Conflicts:
synapse/storage/pdu.py
2014-09-12 17:20:06 +01:00
Erik Johnston
39e3fc69e5
Make the state resolution use actual power levels rather than taking them from a Pdu key.
2014-09-12 17:11:09 +01:00
Erik Johnston
b42fe05c51
Fix bug where we incorrectly removed a remote host from the list of hosts in a room when any user from that host left that room even if they weren't the last user from that host in that room
2014-09-12 17:11:09 +01:00
Erik Johnston
ca1ae7cf9b
Fix bug where we didn't return a tuple when expected.
2014-09-12 17:11:09 +01:00
Paul "LeoNerd" Evans
aa525e4a63
More accurate docs / clearer paramter names in RoomMemberStore
2014-09-12 16:43:49 +01:00
Paul "LeoNerd" Evans
a87eac4308
Revert recent changes to RoomMemberStore
2014-09-12 15:51:51 +01:00
Paul "LeoNerd" Evans
a840ff8f3f
Now don't need the other logger.debug() call in _execute
2014-09-12 14:38:27 +01:00
Paul "LeoNerd" Evans
1c20249884
Logging of all SQL queries via the 'synapse.storage.SQL' logger
2014-09-12 14:37:55 +01:00
Paul "LeoNerd" Evans
e53d77b501
Add a .runInteraction() method on SQLBaseStore itself to wrap the .db_pool
2014-09-12 14:28:07 +01:00
Paul "LeoNerd" Evans
249e8f2277
Add a better _store_room_member_txn() method that takes separated fields instead of an event object; also add FIXME comment about a big bug in the logic
2014-09-11 18:52:35 +01:00
Paul "LeoNerd" Evans
aaf9ab68c6
Rename _store_room_member_txn to _store_room_member_from_event_txn so we can create another, more sensible function of that name
2014-09-11 18:44:04 +01:00
Paul "LeoNerd" Evans
55397f6347
prepare_database() on db_conn, not plain name, so we can pass in the connection from outside
2014-09-10 16:23:58 +01:00
Paul "LeoNerd" Evans
2faffc52ee
Make sure not to open our TCP ports until /after/ the DB is nicely prepared ready for use
2014-09-10 16:16:24 +01:00
Paul "LeoNerd" Evans
6c1f0055dc
No need for a tiny run() function any more, just use reactor.run() directly
2014-09-10 16:07:44 +01:00
Paul "LeoNerd" Evans
ce55a8cc4b
Move database preparing code out of homserver.py into storage where it belongs
2014-09-10 15:42:15 +01:00
Erik Johnston
a75f8686ba
Fix bug where we used an unbound local variable if we ended up rolling back the persist_event transaction
2014-09-09 16:27:59 +01:00
Erik Johnston
e062f2dfa8
Apparently we can't do txn.rollback(), so raise and catch an exception instead.
2014-09-08 22:37:19 +01:00
Kegan Dougal
76fe7d4eba
Added num_joined_users key to /publicRooms for each room. Show this information in the webclient.
2014-09-08 12:15:29 -07:00
Erik Johnston
942d8412c4
Handle the case where we don't have a common ancestor
2014-09-08 20:13:27 +01:00
Erik Johnston
83ce57302d
Fix bug in state handling where we incorrectly identified a missing pdu. Update tests to catch this case.
2014-09-08 19:50:59 +01:00
Erik Johnston
c0577ea87a
Rollback if we try and insert duplicate events
2014-09-08 18:34:18 +01:00
Erik Johnston
768ff1a850
Fix race in presence handler where we evicted things from cache while handling a key therein
2014-09-08 11:28:50 +02:00
Erik Johnston
7735aad9d6
Bump version and changelog
2014-09-08 11:28:50 +02:00
Erik Johnston
2205aba3ed
Fix bug where we used an event_id as a pdu_id
2014-09-06 07:41:51 +01:00
Kegan Dougal
1a298aad9c
Added captcha support on both the HS and web client.
...
Merge branch 'captcha' of github.com:matrix-org/synapse into develop
2014-09-05 23:32:51 -07:00
Kegan Dougal
b5749c75d9
Reload captchas when they fail. Cleanup on success.
2014-09-05 23:08:39 -07:00
Kegan Dougal
3ea6f01b4e
80 chars please
2014-09-05 22:55:29 -07:00
Kegan Dougal
37e53513b6
Add config opion for XFF headers when performing ReCaptcha auth.
2014-09-05 22:51:11 -07:00
Kegan Dougal
1829b55bb0
Captchas now work on registration. Missing x-forwarded-for config arg support. Missing reloading a new captcha on the web client / displaying a sensible error message.
2014-09-05 19:18:23 -07:00
Erik Johnston
6d19fe1481
Fix generation of event ids so that they are consistent between local and remote ids
2014-09-06 02:48:13 +01:00
Erik Johnston
781ff713ba
When getting a state event also include the previous content
2014-09-06 02:23:36 +01:00
Kegan Dougal
0b9e1e7b56
Added a captcha config to the HS, to enable registration captcha checking and for the recaptcha private key.
2014-09-05 17:58:06 -07:00
Erik Johnston
f47f42090d
Add support for inviting people when you create a room
2014-09-06 01:10:07 +01:00
Erik Johnston
480438eee6
Validate power levels event changes. Change error messages to be more helpful. Fix bug where we checked the wrong power levels
2014-09-05 21:54:16 +01:00
Erik Johnston
9dd4570b68
Generate m.room.aliases event when the HS creates a room alias
2014-09-05 21:35:56 +01:00
Erik Johnston
982604fbf2
Empty string is not a valid JSON object, so don't return them in HTTP responses.
2014-09-05 17:13:26 +01:00
Erik Johnston
250ee2ea7d
AUth the contents of power level events
2014-09-05 17:13:19 +01:00
Erik Johnston
95037d8d9d
Change the default power levels to be 0, 50 and 100
2014-09-05 17:13:03 +01:00
Erik Johnston
300816ffa1
Bump versions. Update change logs.
2014-09-03 19:39:45 +01:00
Paul "LeoNerd" Evans
4c3512a45c
Added a TODO note about YAML modeline for editors
2014-09-03 19:30:48 +01:00
Erik Johnston
bcaea74352
Error code must be an integer
2014-09-03 19:19:24 +01:00
Erik Johnston
c9d1ee24ca
Import SynapseError
2014-09-03 19:15:55 +01:00
Erik Johnston
9b18151104
Handle timeouts slightly nicer.
2014-09-03 19:13:41 +01:00
Erik Johnston
5b645f9d34
Don't do auth for change_membership in federation handler, it doesn't work and federation doesn't do auth in general either. Add a hacky timeout when trying to join a remote room.
2014-09-03 19:08:39 +01:00
Erik Johnston
dce6395395
When creating a room and a user supplies a room_alias but no name, use the room_alias as the name.
2014-09-03 18:52:34 +01:00
David Baker
d72ce4da64
Merge branch 'develop' of github.com:matrix-org/synapse into develop
...
Conflicts:
synapse/http/client.py
2014-09-03 18:25:17 +01:00
David Baker
d6ecbbdf0a
Add support for registering with a threepid to the HS (get credentials from the client and check them against an ID server).
2014-09-03 18:22:27 +01:00
Paul "LeoNerd" Evans
d703e712f7
Add support to _simple_insert() to do INSERT OR REPLACE
2014-09-03 18:18:41 +01:00
Erik Johnston
1b491e50c9
Implement a kick api
2014-09-03 17:46:52 +01:00
Paul "LeoNerd" Evans
4081413876
Default PID file should be 'homeserver.pid' to match the other 'homeserver.*' naming convention
2014-09-03 17:34:07 +01:00
Matthew Hodgson
8a7c1d6a00
fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org hasn't been incorporated in time for launch.
2014-09-03 17:31:57 +01:00
Mark Haines
ee2bcdec65
Limit the size of uploads
2014-09-03 17:04:16 +01:00
Kegan Dougal
beaf50f5c6
Bubble up SynapseErrors so expected failures aren't masked.
2014-09-03 16:31:01 +01:00
Kegan Dougal
581c54bebe
Add exception handling to directory servlet, so we don't 500. Mark directory API as volatile in the api docs.
2014-09-03 16:27:01 +01:00
Erik Johnston
30bcbc433a
Fix up directory server to not require uploading room hosts. Update the room hosts table with the current room hosts (if we have them) on GET.
2014-09-03 16:04:27 +01:00
Erik Johnston
b5f9d47c89
Handle new state events which don't have a common ancestor
2014-09-03 15:50:05 +01:00
Erik Johnston
e4c40158c5
Snapshot prev_state for generic events
2014-09-03 15:48:51 +01:00
Paul "LeoNerd" Evans
cda31fb755
Kill the state
...
... key from all the Presence messages
2014-09-03 15:37:10 +01:00
Paul "LeoNerd" Evans
dada11dc5f
Bugfix for back-pagination of presence
2014-09-03 15:28:03 +01:00
Kegan Dougal
7fc84c7019
Make retrying requests on DNS failures configurable, and turn off retrying only in directory.get_association
2014-09-03 14:26:52 +01:00
Paul "LeoNerd" Evans
756e171ad0
Store SQL DDL deltas as well; attempt to upgrade the database on startup if it's too old
2014-09-03 14:14:39 +01:00
Kegan Dougal
b1195c125f
hs: Updated synapse.http.client to handle DNSLookupErrors and bail immediately.
2014-09-03 13:51:17 +01:00
Paul "LeoNerd" Evans
da31b96b55
Implement presence state visibilty limiting when polling eventsource for stream
2014-09-03 13:46:52 +01:00
Paul "LeoNerd" Evans
86d6232236
Don't eat federation transmit errors during unit tests; fix remote presence EDU-sending test because of this
2014-09-03 13:46:52 +01:00
Paul "LeoNerd" Evans
061e814195
Make sure to print exceptions properly from notifier failures
2014-09-03 13:46:52 +01:00
Kegan Dougal
cd0afb85c4
Updated feedback api docs and fixed feedback content template bug
2014-09-03 13:08:17 +01:00
Kegan Dougal
dfea1730dc
apidocs: mtime_age > last_active_ago. Presence REST: Sanity check values in invite/drop arrays.
2014-09-03 12:09:20 +01:00
Erik Johnston
b50ea730b1
Merge branch 'develop' of github.com:matrix-org/synapse into develop
...
Conflicts:
synapse/http/server.py
synapse/http/content_repository.py
2014-09-03 12:01:14 +01:00
Erik Johnston
bc21350298
Add option to change content repo location
2014-09-03 11:57:23 +01:00
Kegan Dougal
10afd895c4
Edited /presence REST servlet to raise SynapseErrors to return a standard error response, rather than a string.
2014-09-03 11:56:47 +01:00
Kegan Dougal
c54d8df504
Update API docs to use 'presence' key not 'state'. Fixed error messages when setting presence.
2014-09-03 11:45:30 +01:00
Kegan Dougal
acfabfff9c
Fixed /presence APIs to urldecode user IDs.
2014-09-03 11:31:48 +01:00
Kegan Dougal
65693e9e15
Fixed GET /events/$id to be not broken.
2014-09-03 11:24:45 +01:00
Mark Haines
bf10cf5f1a
move contentrepo class to it's own file
2014-09-03 11:10:44 +01:00
Kegan Dougal
2385d396c3
URL decode user IDs for /profile REST path segments.
2014-09-03 11:05:29 +01:00
Paul "LeoNerd" Evans
da3e04df8b
Rename the 'do_users_share_a_room' to something slightly less verb-sounding
2014-09-03 10:40:48 +01:00
Paul "LeoNerd" Evans
967b45bc1a
Allow optional non-suppression of exceptions through the Distributor
2014-09-03 10:40:21 +01:00
Paul "LeoNerd" Evans
ddf3ca7ab3
Neater is_presence_visible() code
2014-09-03 10:40:21 +01:00
Erik Johnston
ddc16d8642
Merge branch 'master' into develop
2014-09-03 09:46:39 +01:00
Kegan Dougal
c77add6d21
Add ban support: /rooms/$roomid/ban with { user_id : foo }
2014-09-03 09:43:32 +01:00
Mark Haines
c6eafdfbaf
Add copyright notices and fix pyflakes errors
2014-09-03 09:43:11 +01:00
Mark Haines
112c7ea315
Set status message for ratelimit error responses
2014-09-03 09:37:44 +01:00
Mark Haines
30ad0c5674
Merge branch 'ratelimiting' into develop
2014-09-03 09:15:52 +01:00
Mark Haines
683596f91e
Raise LimitExceedError when the ratelimiting is throttling requests
2014-09-03 08:58:48 +01:00
Mark Haines
780548b577
rate limiting for message sending
2014-09-02 18:22:15 +01:00
Mark Haines
0a1260b03a
Add ratelimiting config
2014-09-02 18:00:15 +01:00
Mark Haines
c7a7cdf734
Add ratelimiting function to basehandler
2014-09-02 17:57:04 +01:00
Erik Johnston
e166e29e87
Bump version and changelog
2014-09-02 16:57:10 +01:00
Erik Johnston
235f686da9
Update default endpoint port to match the default ports in the config
2014-09-02 16:56:57 +01:00
Erik Johnston
464e1fcfa5
Merge branch 'master' of github.com:matrix-org/synapse into release-v0.2.0
...
Conflicts:
synapse/notifier.py
webclient/room/room-controller.js
webclient/room/room.html
2014-09-02 15:26:11 +01:00
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