dendrite/src/github.com/matrix-org/dendrite
Andrew Morgan 7736e247b7
Send Application Service Events (#477)
* Prevent sql scanning into nil value in accounts_table

Signed-off-by: Andrew Morgan <andrewm@matrix.org>

* Remove uneccessary logging, null checking

* Don't forget to set the localpart

* Simplify error checking

* Store And Send Application Service Events

* Modify INSTALL.md and dendrite-config.yaml for the new appservice database
* Correct all instances of casing on 'application service' to align with
spec
* Store incoming events that an app service is interested in in the
database to be later read by transaction workers.
* Retrieve these events from transaction workers, one per AS.
* Minimal transaction ID data is stored as well to recover after
server failure.
* Send events to AS and exponentially backoff on failure.

Signed-off-by: Andrew Morgan <andrewm@matrix.org>

* Finish my own sentences.

* Fix up database interaction

* Change to event-based AS sending

* Reduce cyclomatic complexity

* Appease the errcheck gods

* Delete by int ID instead of string.

This was causing some events to not be deleted, as < an eventID doesn't
really make much sense.

* Check if there are more events to send before sleeping

* Send same transaction if last send attempt failed

* Don't backoff on non-200s, tight send loop, 1 event query

* Remove tight send loop. Fix events not being deleted

* Additionally order by event id, track main.go

* Return the last txnID, which our events are using

* Remove old main.go file

* Prevent duplicate events from being sent...

* Strip event content if it doesn't contain anything

Signed-off-by: Andrew Morgan <andrewm@matrix.org>

* Update gomatrixserverlib and use Unsigned AS event prop

* Fixes

* Fix sync server comment
* Remove unnecessary printlns
* Use logrus Fields
* Worker state methods
* Remove sillyness

* Fix up event filtering

* Handle transaction event limit in loop

* Switch to using a sequence for transaction IDs

* Don't verify self-signed AS certificates

* Fix logging

* Use gmsl.Event instead of AS-only event in transactions

Also clear up the logic on lookupStateEvents a little bit.

* Change invalid_txn_id to global (for efficiency)

* Use a bool for EventsReady instead of an int
2018-07-05 09:34:59 -07:00
..
appservice Send Application Service Events (#477) 2018-07-05 09:34:59 -07:00
clientapi Send Application Service Events (#477) 2018-07-05 09:34:59 -07:00
cmd Send Application Service Events (#477) 2018-07-05 09:34:59 -07:00
common Send Application Service Events (#477) 2018-07-05 09:34:59 -07:00
federationapi Remove unused params (#538) 2018-07-04 03:05:20 -07:00
federationsender Factor out component setup from commands (#384) 2018-01-02 10:26:56 +00:00
mediaapi fix probable bugs, package names and keywords used as identifiers (#428) 2018-04-20 15:50:44 +01:00
publicroomsapi Use http.Status* and http.Method* where appropriate (#417) 2018-03-13 15:55:45 +00:00
roomserver [federation] Implement get missing events api (#516) 2018-06-26 15:55:49 +05:30
syncapi Use http.Status* and http.Method* where appropriate (#417) 2018-03-13 15:55:45 +00:00