Kegsay
917c433fd2
Minor refactoring ( #106 )
...
- `s/Server/OutputRoomEvent/` in `consumers` to accurately reflect what is being consumed.
- `s/set/userIDSet/` in `notifier.go` for clarity.
- Removed lying comments.
2017-05-17 17:29:26 +01:00
Kegsay
c8c5a40ebd
Update README.md
2017-05-17 16:37:58 +01:00
Kegsay
0457a3bb69
State of the union update
2017-05-17 16:36:17 +01:00
Kegsay
ccd0eb2851
/sync bugfix: Check transitions to 'leave' do not leak events afterwards ( #105 )
2017-05-17 16:21:27 +01:00
Kegsay
d5a44fd3e8
Only wake up /sync requests which the event is for ( #101 )
2017-05-17 15:38:24 +01:00
Kegsay
0a3d44a80a
Handle room transitions to 'leave' in incremental /sync requests ( #104 )
...
* Add test for transition to leave
* Add test for join/leave in the same /sync response
2017-05-17 10:25:59 +01:00
Kegsay
675759c192
Add invites to /sync responses ( #103 )
2017-05-15 17:41:54 +01:00
Kegsay
94e1c62745
Remove intermediary /sync response struct ( #102 )
...
The logic required to populate the right bits of `RoomData` tends towards
the complete `/sync` response struct, so just use the actual response struct
and save the hassle of mapping between the two. It may not make much difference
in its current form, but the next PR will make use of this.
This PR has no functional changes.
2017-05-15 15:18:08 +01:00
Kegsay
cc7117392f
Send the entire room state down when transitioning to 'join' on a /sync response ( #100 )
...
This is only 'mostly' correct currently, because what should be no-op dupe
joins will actually trigger the entire room state to be re-sent.
Bizarrely, it's significantly easier to just do that than work out if we should,
and there are no client-visible effects to doing so, so we just do it for now.
2017-05-12 16:56:17 +01:00
Kegsay
2a9abefd92
Add more syncserver tests ( #99 )
...
Fixed exactly the same bug as before, but this time for incremental
sync. Yay tests!
2017-05-11 15:51:35 +01:00
Kegsay
a506985a66
Allow multiple sync server test requests ( #98 )
...
- Test data for the sync server is now in its own file.
- Rejig the sync server tests to support multiple /sync requests and corresponding
assertions.
- Fixed a minor bug which resulted in state events to appear twice in /sync
responses when syncing without a `since` parameter.
2017-05-10 17:48:35 +01:00
Kegsay
04f3c154b8
Split out notifying /sync requests and calculating sync responses ( #96 )
...
* Split out notifying /sync requests and calculating sync responses
The logic for notifying /sync requests is about to get really
complicated as we optimise when to wake up requests, so split
out that code into a separate struct to isolate it and make
it easier to unit test.
2017-05-10 10:42:00 +01:00
Kegsay
e226d564ec
Fix a race with sync server integration tests ( #95 )
2017-05-09 15:58:31 +01:00
Kegsay
42564e8ed6
Factor out creating/deleting/writing to kafka topics ( #94 )
2017-05-09 09:05:05 +01:00
Kegsay
801b9246ce
Add basic sync server integration test ( #91 )
2017-05-05 17:59:45 +01:00
Mark Haines
a56f609b74
Update gomatrixserverlib ( #90 )
2017-05-05 17:43:42 +01:00
Mark Haines
0309035aad
Update gomatrixserverlib ( #89 )
2017-05-05 16:19:48 +01:00
Robert Swain
9b7defd375
common/log: Always log to stderr
2017-04-21 02:11:24 +02:00
Robert Swain
27beb8a2b3
common/log: Re-colorize terminal log output
2017-04-21 02:06:06 +02:00
Robert Swain
9b7bf8cba8
common/log: Add license header
2017-04-21 01:45:18 +02:00
Robert Swain
b33ed93dd6
Merge branch 'master' into rob/common-logging
2017-04-21 01:43:36 +02:00
Robert Swain
d09a65abbe
Add Apache Version 2.0 license and headers to all golang files
2017-04-21 00:40:52 +02:00
Robert Swain
e281fc4530
syncserver: Rename to syncapi
2017-04-20 19:21:15 +02:00
Robert Swain
d8b98cec44
client-api-proxy: roomserver-integration-tests: Fix renamed references
2017-04-20 19:21:15 +02:00
Robert Swain
0939ae3686
Rename dendrite-syncserver to dendrite-sync-api-server
2017-04-20 19:21:15 +02:00
Robert Swain
209ba3f6a3
Rename dendrite-roomserver to dendrite-room-server
2017-04-20 19:21:15 +02:00
Robert Swain
2278848922
Rename dendrite-clientapi to dendrite-client-api-server
2017-04-20 19:21:15 +02:00
Kegan Dougal
2a264db85e
Don't tightloop if currentPos is 0
2017-04-20 18:01:45 +01:00
Kegsay
cb5081b332
Yank out clientapi config options to env vars for now ( #77 )
2017-04-20 17:15:34 +01:00
Kegsay
2fadb9e409
Make it possible to point Riot at Dendrite ( #74 )
2017-04-20 17:11:53 +01:00
Mark Haines
43d1e94e75
Rename dendrite-sync-server to dendrite-syncserver for consistency ( #76 )
2017-04-20 16:54:22 +01:00
Robert Swain
be47984c43
common/log: Always output timestamps as UTC
2017-04-20 17:16:16 +02:00
Robert Swain
f65e26bc2a
cmd: Configure logging before any log messages
2017-04-20 16:28:15 +02:00
Robert Swain
254e61f727
common/log: Switch to RFC3339 format with nanoseconds and trailing zeros
2017-04-20 16:28:15 +02:00
Robert Swain
e8d2d61cc2
cmd: common/log: Always configure logging
...
When LOG_DIR or so is not specified, just configure the formatter.
2017-04-20 16:27:48 +02:00
Robert Swain
8010083026
dendrite/common: Move logrus configuration to common
2017-04-20 16:27:44 +02:00
Kegsay
db428174d2
tool: Add client-api-proxy ( #73 )
2017-04-20 14:00:34 +01:00
Kegsay
fad7e9541b
/sync: Handle missing state events and return events in the correct order ( #72 )
2017-04-20 11:18:26 +01:00
Kegsay
92a0325266
Implement incremental sync ( #71 )
...
This has the following known shortcomings:
- It doesn't handle missing events not in the from/to range.
- It doesn't order events in the timeline correctly.
- It doesn't handle invited/left rooms at all.
- There is no intelligent wakeup logic: events for Bob will wake up Alice's stream.
2017-04-19 16:04:01 +01:00
Kegsay
f18d935134
Factor out syncRequest parsing to its own file ( #70 )
...
Also ensure every sync response has a `next_batch` token by forcing
it in the constructor, as previously timeouts would not have a token.
2017-04-18 10:32:32 +01:00
Kegsay
53ec4a255b
Calculate the complete /sync response ( #69 )
2017-04-13 16:56:46 +01:00
Kegsay
203e706b99
Move syncserver to its own directory ( #66 )
2017-04-12 16:06:26 +01:00
Kegsay
da0fffcc19
Add /sync API response structs ( #58 )
2017-04-11 11:52:26 +01:00
Kegsay
9a266762b4
Return events based on 'since' value ( #57 )
2017-04-10 15:12:18 +01:00
Kegsay
de9e3e5417
Add structs for HTTP long-polling ( #56 )
2017-04-07 14:32:42 +01:00
Kegsay
c1c837516a
Store current room state ( #55 )
2017-04-05 10:30:13 +01:00
Kegsay
a3c66f7fa0
Write OutputRoomEvents into the database and remember the arrival order ( #54 )
2017-03-30 15:29:23 +01:00
Kegsay
2d2c7e7169
sync-server config: Read from a YAML file rather than hard-coded variables ( #53 )
2017-03-29 14:09:27 +01:00
Kegsay
a423008987
Read roomserver output log and remember position across restarts ( #52 )
2017-03-29 14:05:43 +01:00
Kegsay
a974b90ee9
Factor out Consumer from the roomserver ( #50 )
2017-03-27 10:00:28 +01:00