Dendrite is a second-generation Matrix homeserver written in Go!
Find a file
Andrew Morgan 33a1392541
Encode URLs properly (#728)
We were escaping the URL before performing any pattern matching on it.
This meant that if you sent data that URLdecoded to a "/", it would count as
a "/" in the URL, potentially causing a 404. This was causing some flaky tests
with some randomly-generated query parameters.

Now, we keep URLs encoded while doing the pattern matching, and only afterwards
do we URL decode each query parameter individually before passing them to their
respective handler functions.

github.com/gorilla/mux was also updated to v1.7.3 to fix a bug with URL encoding and subrouters.
2019-07-03 16:38:50 +01:00
.buildkite Fix pipeline, emoji and syntax (#713) 2019-06-19 14:05:03 +01:00
.circleci Run CircleCI on pull request branches (#710) 2019-05-29 11:34:36 +01:00
.github Add SyTest support to CI (#704) 2019-05-24 15:00:03 +01:00
appservice Encode URLs properly (#728) 2019-07-03 16:38:50 +01:00
clientapi Encode URLs properly (#728) 2019-07-03 16:38:50 +01:00
cmd Fix pipeline, emoji and syntax (#713) 2019-06-19 14:05:03 +01:00
common Encode URLs properly (#728) 2019-07-03 16:38:50 +01:00
docker Update Docker files and remove references to gb (#703) 2019-05-22 10:44:25 +01:00
docs Fix testfile path hardcoded in show-expected-fail-tests.sh (#719) 2019-06-25 11:50:19 +01:00
federationapi Encode URLs properly (#728) 2019-07-03 16:38:50 +01:00
federationsender Don't print Sending EDU if there is noone to send to (#721) 2019-07-01 16:04:49 +01:00
hooks run commit hook on what we're committing (#356) 2017-11-27 12:19:04 +00:00
mediaapi Encode URLs properly (#728) 2019-07-03 16:38:50 +01:00
publicroomsapi Encode URLs properly (#728) 2019-07-03 16:38:50 +01:00
roomserver rommserver/alias: Do not call appserviceAPI in GetRoomIDForAlias if local alias found #631 (#702) 2019-06-25 13:43:18 +01:00
scripts Fix pipeline, emoji and syntax (#713) 2019-06-19 14:05:03 +01:00
syncapi Encode URLs properly (#728) 2019-07-03 16:38:50 +01:00
typingserver Fix pipeline, emoji and syntax (#713) 2019-06-19 14:05:03 +01:00
.editorconfig Add .editorconfig (#179) 2017-08-05 02:25:40 +01:00
.gitignore use go module for dependencies (#594) 2019-05-21 21:56:55 +01:00
.golangci.yml Fix pipeline, emoji and syntax (#713) 2019-06-19 14:05:03 +01:00
build.sh Not all systems have bash (#720) 2019-06-24 13:35:29 +01:00
CODE_STYLE.md Code Style: Prefer WithFields over Infof (#349) 2017-11-22 09:35:25 +00:00
CONTRIBUTING.md Update Docker files and remove references to gb (#703) 2019-05-22 10:44:25 +01:00
dendrite-config.yaml Remove riot.im from the list of trusted ID servers in the default config (#688) 2019-01-31 10:06:11 +00:00
DESIGN.md Clean up README a bit (#289) 2017-10-10 09:33:41 +01:00
go.mod Encode URLs properly (#728) 2019-07-03 16:38:50 +01:00
go.sum Encode URLs properly (#728) 2019-07-03 16:38:50 +01:00
INSTALL.md use go module for dependencies (#594) 2019-05-21 21:56:55 +01:00
LICENSE Add Apache Version 2.0 license and headers to all golang files 2017-04-21 00:40:52 +02:00
README.md Fix pipeline, emoji and syntax (#713) 2019-06-19 14:05:03 +01:00
show-expected-fail-tests.sh Fix testfile path hardcoded in show-expected-fail-tests.sh (#719) 2019-06-25 11:50:19 +01:00
testfile Refine config and docs for sytest (#714) 2019-06-21 16:49:37 +01:00
WIRING.md Document internal APIs and Application Services component (#499) 2018-07-06 02:33:53 -07:00

Dendrite Build Status CircleCI Dendrite Dev on Matrix Dendrite on Matrix

Dendrite will be a matrix homeserver written in go.

It's still very much a work in progress, but installation instructions can be found in INSTALL.md

An overview of the design can be found in DESIGN.md

Contributing

Everyone is welcome to help out and contribute! See CONTRIBUTING.md to get started!

We aim to try and make it as easy as possible to jump in.

Discussion

For questions about Dendrite we have a dedicated room on Matrix #dendrite:matrix.org. Development discussion should happen in #dendrite-dev:matrix.org.

Progress

There's plenty still to do to make Dendrite usable! We're tracking progress in a project board.