mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-17 02:53:11 -06:00
Issue: matrix room id does not always resolve to spaceId or channelId correctly. Root cause: The clientApi routing endpoint and the syncapi routing endpoint uses different stores to query for the current room states. One is correct, the other has incomplete events. Fix the issue by using the correct store in both routing code paths. |
||
|---|---|---|
| .. | ||
| api | ||
| auth | ||
| authorization | ||
| httputil | ||
| jsonerror | ||
| producers | ||
| routing | ||
| threepid | ||
| userutil | ||
| clientapi.go | ||
| README.md | ||
This component roughly corresponds to "Client Room Send" and "Client Sync" on the WIRING diagram. This component produces multiple binaries.
Internals
- HTTP routing is done using
gorilla/muxand the routing paths are in theroutingpackage.
Writers
- Each HTTP "write operation" (
/createRoom,/rooms/$room_id/send/$type, etc) is contained entirely to a single file in thewriterspackage. - This file contains the request and response
structdefinitions, as well as aValidate() boolfunction to validate incoming requests. - The entry point for each write operation is a stand-alone function as this makes testing easier. All dependencies should be injected into this function, including server keys/name, etc.