Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Parrellize fetching of events | Erik Johnston | 2015-02-12 | 1 | -3/+11 |
| | |||||
* | Correctly handle all the places that can throw exceptions | Erik Johnston | 2015-02-12 | 3 | -13/+32 |
| | |||||
* | Bump version | Erik Johnston | 2015-02-12 | 1 | -1/+1 |
| | |||||
* | Merge branch 'fix' of github.com:matrix-org/synapse into hotfixes-v0.7.0a | Erik Johnston | 2015-02-12 | 1 | -7/+6 |
|\ | |||||
| * | Get an auth query one at a time | Erik Johnston | 2015-02-12 | 1 | -7/+6 |
| | | |||||
* | | Bump webclient version | Erik Johnston | 2015-02-12 | 1 | -3/+3 |
| | | |||||
* | | Set database schema version in delta | Erik Johnston | 2015-02-12 | 1 | -0/+2 |
| | | |||||
* | | Bump version | Erik Johnston | 2015-02-12 | 1 | -1/+1 |
|/ | |||||
* | Convert get_rooms to use runInteraction so the transacion has a more helpful ↵ | Erik Johnston | 2015-02-11 | 1 | -30/+37 |
| | | | | description | ||||
* | Use encode_canonical_json for http client | Erik Johnston | 2015-02-11 | 1 | -1/+3 |
| | |||||
* | Use encode_canonical_json for pushes | Erik Johnston | 2015-02-11 | 1 | -1/+3 |
| | |||||
* | Update dependency links | Erik Johnston | 2015-02-11 | 1 | -2/+2 |
| | |||||
* | Merge pull request #61 from matrix-org/timeout-federation-requests | Erik Johnston | 2015-02-11 | 3 | -2/+63 |
|\ | | | | | Timeout federation requests | ||||
| * | Fix so timing out connections to actually work. | Erik Johnston | 2015-02-11 | 2 | -9/+45 |
| | | |||||
| * | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2015-02-11 | 6 | -6/+151 |
| |\ | | | | | | | | | | timeout-federation-requests | ||||
| * \ | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2015-02-11 | 100 | -2099/+6821 |
| |\ \ | | | | | | | | | | | | | timeout-federation-requests | ||||
| * | | | PEP8 | Erik Johnston | 2015-02-11 | 1 | -1/+0 |
| | | | | |||||
| * | | | Move time_bound_deferred into Clock | Erik Johnston | 2015-02-11 | 3 | -24/+22 |
| | | | | |||||
| * | | | Time out HTTP federation requests | Erik Johnston | 2015-02-10 | 2 | -2/+29 |
| | | | | |||||
* | | | | Merge pull request #62 from matrix-org/state-chache | Erik Johnston | 2015-02-11 | 2 | -3/+101 |
|\ \ \ \ | | | | | | | | | | | State chache | ||||
| * \ \ \ | Merge branch 'develop' of github.com:matrix-org/synapse into state-chache | Erik Johnston | 2015-02-11 | 10 | -18/+17 |
| |\ \ \ \ | |||||
| * \ \ \ \ | Merge branch 'develop' of github.com:matrix-org/synapse into state-chache | Erik Johnston | 2015-02-10 | 12 | -38/+64 |
| |\ \ \ \ \ | |||||
| * \ \ \ \ \ | Merge branch 'develop' of github.com:matrix-org/synapse into state-chache | Erik Johnston | 2015-02-10 | 1 | -0/+11 |
| |\ \ \ \ \ \ | |||||
| * | | | | | | | Remove unnecessary logging | Erik Johnston | 2015-02-10 | 1 | -6/+1 |
| | | | | | | | | |||||
| * | | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into state-chache | Erik Johnston | 2015-02-10 | 1 | -26/+62 |
| |\ \ \ \ \ \ \ | |||||
| * \ \ \ \ \ \ \ | Merge branch 'develop' of github.com:matrix-org/synapse into state-chache | Erik Johnston | 2015-02-10 | 1 | -1/+3 |
| |\ \ \ \ \ \ \ \ | |||||
| * \ \ \ \ \ \ \ \ | Merge branch 'develop' of github.com:matrix-org/synapse into state-chache | Erik Johnston | 2015-02-10 | 16 | -73/+206 |
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: synapse/app/homeserver.py synapse/state.py | ||||
| * | | | | | | | | | | Oops, we do want to defer.return regardless of whether we are caching or not | Erik Johnston | 2015-02-10 | 1 | -1/+1 |
| | | | | | | | | | | | |||||
| * | | | | | | | | | | Move construction of object within if block | Erik Johnston | 2015-02-10 | 1 | -6/+6 |
| | | | | | | | | | | | |||||
| * | | | | | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into state-chache | Erik Johnston | 2015-02-06 | 1 | -1/+3 |
| |\ \ \ \ \ \ \ \ \ \ | |||||
| * | | | | | | | | | | | Bug fixes. | Erik Johnston | 2015-02-06 | 2 | -27/+57 |
| | | | | | | | | | | | | |||||
| * | | | | | | | | | | | Bugfix cache layer | Erik Johnston | 2015-02-06 | 2 | -11/+22 |
| | | | | | | | | | | | | |||||
| * | | | | | | | | | | | Add cache layer to state group resolution | Erik Johnston | 2015-02-06 | 2 | -1/+72 |
| | | | | | | | | | | | | |||||
* | | | | | | | | | | | | Bump syutil version | Erik Johnston | 2015-02-11 | 1 | -1/+1 |
| | | | | | | | | | | | | |||||
* | | | | | | | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into use-simplejson | Erik Johnston | 2015-02-11 | 7 | -23/+201 |
|\ \ \ \ \ \ \ \ \ \ \ \ | |||||
| * | | | | | | | | | | | | Allow newer versions of syutil | Mark Haines | 2015-02-11 | 1 | -1/+1 |
| | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | Merge branch 'bugs/SYN-264' into develop | Paul "LeoNerd" Evans | 2015-02-11 | 1 | -18/+50 |
| |\ \ \ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|_|_|_|_|_|/ | |/| | | | | | | | | | | | |||||
| | * | | | | | | | | | | | Added another TODO note | Paul "LeoNerd" Evans | 2015-02-11 | 1 | -0/+3 |
| | | | | | | | | | | | | | |||||
| | * | | | | | | | | | | | Cache the result of a get_rooms_for_user query, to make ↵ | Paul "LeoNerd" Evans | 2015-02-11 | 1 | -7/+34 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | user_rooms_intersect() much lighter in the read-common case | ||||
| | * | | | | | | | | | | | First step of making user_rooms_intersect() faster - implement in ↵ | Paul "LeoNerd" Evans | 2015-02-11 | 1 | -18/+20 |
| | | |_|_|_|_|_|_|/ / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | intersection logic in Python code terms of a DB query that is cacheable per user | ||||
| * | | | | | | | | | | | Invalidate the cache for an event if it is redacted | Mark Haines | 2015-02-11 | 1 | -0/+2 |
| | | | | | | | | | | | | |||||
| * | | | | | | | | | | | Fix formatting | Mark Haines | 2015-02-11 | 1 | -2/+0 |
| | | | | | | | | | | | | |||||
| * | | | | | | | | | | | Add a cache for get_event | Mark Haines | 2015-02-11 | 4 | -3/+39 |
| | | | | | | | | | | | | |||||
| * | | | | | | | | | | | Add a lru cache class | Mark Haines | 2015-02-11 | 1 | -0/+110 |
| |/ / / / / / / / / / | |||||
* | | | | | | | | | | | pyflakes | Erik Johnston | 2015-02-11 | 2 | -2/+1 |
| | | | | | | | | | | | |||||
* | | | | | | | | | | | Remove more debug logging | Erik Johnston | 2015-02-11 | 1 | -2/+0 |
| | | | | | | | | | | | |||||
* | | | | | | | | | | | Remove debug logging | Erik Johnston | 2015-02-11 | 2 | -12/+0 |
| | | | | | | | | | | | |||||
* | | | | | | | | | | | Don't unfreeze when using FreezeEvent.get_dict, as we are using a ↵ | Erik Johnston | 2015-02-11 | 6 | -13/+36 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JSONEncoder that understands FrozenDict | ||||
* | | | | | | | | | | | Blunty replace json with simplejson | Erik Johnston | 2015-02-11 | 21 | -21/+21 |
|/ / / / / / / / / / | |||||
* | | | | | | | | / | Fix bug where variable was not always defined | Erik Johnston | 2015-02-11 | 1 | -2/+1 |
| |_|_|_|_|_|_|_|/ |/| | | | | | | | | |||||
* | | | | | | | | | Merge branch 'master' of github.com:matrix-org/synapse into develop | Erik Johnston | 2015-02-11 | 1 | -1/+1 |
|\ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|_|/ | |/| | | | | | | | |||||
| * | | | | | | | | Bump version | Erik Johnston | 2015-02-10 | 1 | -1/+1 |
| | | | | | | | | | |||||
| * | | | | | | | | Fix prune_events to work with nested dicts | Erik Johnston | 2015-02-10 | 1 | -2/+4 |
| | | | | | | | | | |||||
| * | | | | | | | | Ver bump | Erik Johnston | 2015-02-04 | 1 | -1/+1 |
| | | | | | | | | | |||||
| * | | | | | | | | Pull in python_dependencies.py from develop | Erik Johnston | 2015-02-04 | 1 | -0/+122 |
| | | | | | | | | | |||||
* | | | | | | | | | Merge branch 'develop' into single_source_version_and_dependencies | Mark Haines | 2015-02-10 | 7 | -12/+12 |
|\ \ \ \ \ \ \ \ \ | |||||
| * | | | | | | | | | Fix code-style | Mark Haines | 2015-02-10 | 7 | -12/+12 |
| | |_|_|_|_|_|_|/ | |/| | | | | | | | |||||
* / | | | | | | | | Single source version and python dependencies, prevent people accidentally ↵ | Mark Haines | 2015-02-10 | 1 | -3/+3 |
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | installing with easy_install, use scripts rather than entry_points to install synctl | ||||
* | | | | | | | | Log all the exits from _attempt_new_transaction | Erik Johnston | 2015-02-10 | 1 | -2/+7 |
| | | | | | | | | |||||
* | | | | | | | | Code-style fixes | Mark Haines | 2015-02-10 | 11 | -36/+57 |
| |_|_|_|_|_|/ |/| | | | | | | |||||
* | | | | | | | Sign auth_chains when returned by /state/ requests | Erik Johnston | 2015-02-10 | 1 | -0/+11 |
| |_|_|_|_|/ |/| | | | | | |||||
* | | | | | | Merge pull request #58 from matrix-org/get_event_counters | Mark Haines | 2015-02-10 | 1 | -26/+62 |
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | | Add performance counters for different stages of loading events | ||||
| * | | | | | Fix pyflakes | Mark Haines | 2015-02-10 | 1 | -3/+3 |
| | | | | | | |||||
| * | | | | | Add performance counters for different stages of loading events | Mark Haines | 2015-02-10 | 1 | -24/+60 |
| | | | | | | |||||
* | | | | | | yaml.load expects strings to be a yaml rather than file | Erik Johnston | 2015-02-10 | 1 | -1/+2 |
| | | | | | | |||||
* | | | | | | Use yaml logging config format because it is much nicer | Erik Johnston | 2015-02-10 | 1 | -1/+2 |
| |_|_|_|/ |/| | | | | |||||
* | | | | | Merge branch 'release-v0.6.2' of github.com:matrix-org/synapse into develop | Erik Johnston | 2015-02-10 | 1 | -1/+6 |
|\ \ \ \ \ | |/ / / / |/| | | | | |||||
| * | | | | SYN-258: get_recent_events_for_room only accepts stream tokens, convert the ↵ | Mark Haines | 2015-02-06 | 1 | -1/+3 |
| | |/ / | |/| | | | | | | | | | | topological token to a stream token before passing it to get_recent_events_for_room | ||||
| * | | | Explicitly list the RejectedReasons that we can prove | Erik Johnston | 2015-02-06 | 1 | -1/+6 |
| | | | | |||||
* | | | | Convert directory paths to absolute paths before daemonizing | Mark Haines | 2015-02-09 | 1 | -2/+3 |
| | | | | |||||
* | | | | Merge pull request #56 from matrix-org/room_initial_sync_perf | Mark Haines | 2015-02-09 | 4 | -21/+43 |
|\ \ \ \ | | | | | | | | | | | During room intial sync, only calculate current state once. | ||||
| * | | | | During room intial sync, only calculate current state once. | Erik Johnston | 2015-02-09 | 4 | -21/+43 |
| | | | | | |||||
* | | | | | Merge pull request #57 from matrix-org/transaction_counters | Erik Johnston | 2015-02-09 | 1 | -2/+31 |
|\ \ \ \ \ | | | | | | | | | | | | | Transaction counters | ||||
| * | | | | | Use the transaction 'desc' rather than 'name', increment the txn_ids in | Mark Haines | 2015-02-09 | 1 | -3/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | txn names | ||||
| * | | | | | Formatting | Mark Haines | 2015-02-09 | 1 | -1/+0 |
| | | | | | | |||||
| * | | | | | Performance counters for database transaction names | Mark Haines | 2015-02-09 | 1 | -1/+31 |
| |/ / / / | |||||
* | | | | | Need to use re.search if looking for matches not at the start of the string. ↵ | David Baker | 2015-02-09 | 1 | -3/+3 |
| | | | | | | | | | | | | | | | | | | | | Also comparisons with None should be 'is'. | ||||
* | | | | | oops | Matthew Hodgson | 2015-02-09 | 1 | -1/+1 |
| | | | | | |||||
* | | | | | oops | Matthew Hodgson | 2015-02-09 | 1 | -1/+1 |
| | | | | | |||||
* | | | | | only do word-boundary patches on bodies for now | Matthew Hodgson | 2015-02-09 | 2 | -2/+5 |
|/ / / / | |||||
* | | | | Merge pull request #55 from matrix-org/profiling | Erik Johnston | 2015-02-09 | 6 | -6/+60 |
|\ \ \ \ | | | | | | | | | | | Profiling | ||||
| * | | | | Fix typo | Erik Johnston | 2015-02-09 | 1 | -1/+1 |
| | | | | | |||||
| * | | | | Add looping_call to Clock | Erik Johnston | 2015-02-09 | 1 | -1/+9 |
| | | | | | |||||
| * | | | | Log database time every 10s and log as percentage | Erik Johnston | 2015-02-09 | 1 | -2/+2 |
| | | | | | |||||
| * | | | | Time how long we're spending on the database thread | Erik Johnston | 2015-02-09 | 2 | -0/+27 |
| | | | | | |||||
| * | | | | Log when we receive a request, when we send a response and how long it took ↵ | Erik Johnston | 2015-02-09 | 4 | -5/+24 |
| | | | | | | | | | | | | | | | | | | | | to process it. | ||||
* | | | | | Fix server default rule injection (downwards, not upwards!) | David Baker | 2015-02-09 | 1 | -6/+6 |
|/ / / / | |||||
* | | | | glob *s should probably be non-greedy | Matthew Hodgson | 2015-02-08 | 1 | -1/+1 |
| | | | | |||||
* | | | | oops | Matthew Hodgson | 2015-02-08 | 1 | -1/+1 |
| | | | | |||||
* | | | | kill off fnmatch in favour of word-boundary based push alerts (untested) | Matthew Hodgson | 2015-02-08 | 1 | -12/+20 |
| | | | | |||||
* | | | | don't give up if we can't create default avatars during tests | Matthew Hodgson | 2015-02-07 | 1 | -9/+12 |
| | | | | |||||
* | | | | ...and here's the actual impl. git fail. | Matthew Hodgson | 2015-02-07 | 2 | -25/+46 |
| | | | | |||||
* | | | | thou shalt specify a content-length | Matthew Hodgson | 2015-02-07 | 1 | -0/+1 |
| | | | | |||||
* | | | | i hate weakly typed languages | Matthew Hodgson | 2015-02-07 | 1 | -1/+1 |
| |_|/ |/| | | |||||
* | | | SYN-258: get_recent_events_for_room only accepts stream tokens, convert the ↵ | Mark Haines | 2015-02-06 | 1 | -1/+3 |
|/ / | | | | | | | topological token to a stream token before passing it to get_recent_events_for_room | ||||
* | | Move delta/v13.sql to delta/v12.sql | Erik Johnston | 2015-02-06 | 2 | -24/+11 |
| | | |||||
* | | Don't query auth if the only difference is events that were rejected due to ↵ | Erik Johnston | 2015-02-06 | 1 | -56/+72 |
| | | | | | | | | auth. | ||||
* | | Make seen_ids a set | Erik Johnston | 2015-02-06 | 1 | -1/+3 |
| | | |||||
* | | Return body of response in HttpResponseException | Erik Johnston | 2015-02-06 | 1 | -1/+2 |
| | | |||||
* | | Handle the fact the list.remove raises if element doesn't exist | Erik Johnston | 2015-02-06 | 1 | -4/+10 |
| | | |||||
* | | priority class now dealt with in namespaced rule_id | David Baker | 2015-02-05 | 1 | -4/+0 |
| | | |||||
* | | Give server default rules the 'default' attribute and fix various brokenness. | David Baker | 2015-02-05 | 3 | -3/+9 |
| | | |||||
* | | Server default rules now of all kinds rather than all being at lowest prio. | David Baker | 2015-02-05 | 4 | -51/+98 |
| | | |||||
* | | namespace rule IDs to be unique within their scope and rule type. | David Baker | 2015-02-05 | 1 | -123/+129 |
| | | |||||
* | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2015-02-05 | 1 | -5/+12 |
|\ \ | | | | | | | | | | federation_client_retries | ||||
| * | | SYN-202: Log as WARN the 404 'Presence information not visible' errors ↵ | Erik Johnston | 2015-02-05 | 1 | -5/+12 |
| | | | | | | | | | | | | instead of as ERROR since they were spamming the logs | ||||
* | | | Connection errors in twisted aren't RuntimeErrors | Erik Johnston | 2015-02-05 | 1 | -2/+2 |
| | | | |||||
* | | | Pass through list of room hosts from room alias query to federation so that ↵ | Erik Johnston | 2015-02-05 | 3 | -15/+22 |
| | | | | | | | | | | | | it can retry against different room hosts | ||||
* | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2015-02-04 | 13 | -45/+141 |
|\| | | | | | | | | | | | federation_client_retries | ||||
| * | | More s/instance_handle/profile_tag/ | David Baker | 2015-02-04 | 1 | -5/+5 |
| | | | |||||
| * | | s/instance_handle/profile_tag/ | David Baker | 2015-02-03 | 8 | -37/+37 |
| | | | |||||
| * | | Use set_tweak instead of set_sound | David Baker | 2015-02-03 | 2 | -3/+4 |
| | | | |||||
| * | | Merge pull request #46 from matrix-org/identicons | Mark Haines | 2015-02-02 | 3 | -0/+54 |
| |\ \ | | | | | | | | | Add a media/v1/identicon resource for generating identicons | ||||
| | * | | Add pydenticon to python_dependencies | Mark Haines | 2015-02-02 | 1 | -0/+1 |
| | | | | |||||
| | * | | Add Cache-Control header to identicon | Mark Haines | 2015-02-02 | 1 | -0/+3 |
| | | | | |||||
| | * | | Fix setting identicon width and height | Mark Haines | 2015-02-02 | 1 | -2/+2 |
| | | | | |||||
| | * | | Spell height more correctly | Mark Haines | 2015-02-02 | 1 | -1/+1 |
| | | | | |||||
| | * | | Add a media/v1/identicon resource for generating identicons using pydenticon | Mark Haines | 2015-02-02 | 2 | -0/+50 |
| | | | | |||||
| * | | | Generate a list of dependencies from synapse/python_dependencies.py | Mark Haines | 2015-02-02 | 1 | -0/+41 |
| |/ / | |||||
| * | | Merge master into develop | Mark Haines | 2015-02-02 | 1 | -1/+1 |
| |\| | | | | | | | | | | | | | | | | Conflicts: README.rst setup.py | ||||
| | * | Bump version to 0.6.1d | Mark Haines | 2015-02-02 | 1 | -1/+1 |
| | | | |||||
| | * | Bump version | Erik Johnston | 2015-02-02 | 1 | -1/+1 |
| | | | |||||
* | | | Merge branch 'signature_failures' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2015-02-04 | 3 | -9/+15 |
|\ \ \ | | | | | | | | | | | | | federation_client_retries | ||||
| * | | | Change context.auth_events to what the auth_events would be bases on ↵ | Erik Johnston | 2015-02-04 | 3 | -9/+15 |
| | | | | | | | | | | | | | | | | context.current_state, rather than based on the auth_events from the event. | ||||
* | | | | Apply sanity to the transport client interface. Convert 'make_join' and ↵ | Erik Johnston | 2015-02-04 | 6 | -71/+130 |
| | | | | | | | | | | | | | | | | 'send_join' to accept iterables of destinations | ||||
* | | | | When returning lists of servers from alias lookups, put the current server ↵ | Erik Johnston | 2015-02-04 | 1 | -1/+10 |
| | | | | | | | | | | | | | | | | first in the list | ||||
* | | | | Retry make_join | Erik Johnston | 2015-02-04 | 1 | -7/+12 |
|/ / / | |||||
* | | | Brief comment on why we do some things on every call to persist_event and ↵ | Erik Johnston | 2015-02-04 | 1 | -0/+6 |
| | | | | | | | | | | | | not others | ||||
* | | | Fix state resolution to remember join_rules is a type of auth event. | Erik Johnston | 2015-02-04 | 1 | -1/+13 |
| | | | |||||
* | | | Rearrange persist_event so that do all the queries that need to be done ↵ | Erik Johnston | 2015-02-04 | 3 | -72/+77 |
| | | | | | | | | | | | | before returning early if we have already persisted that event. | ||||
* | | | Add doc to get_event | Erik Johnston | 2015-02-03 | 1 | -0/+15 |
| | | | |||||
* | | | New line | Erik Johnston | 2015-02-03 | 1 | -1/+1 |
| | | | |||||
* | | | Neaten the handling of state and auth_chain up a bit | Erik Johnston | 2015-02-03 | 1 | -27/+30 |
| | | | |||||
* | | | Actually, the old prune_event function was non-deterministic, so no point ↵ | Erik Johnston | 2015-02-03 | 2 | -91/+4 |
| | | | | | | | | | | | | keeping it around :( | ||||
* | | | Remove unused imports | Erik Johnston | 2015-02-03 | 1 | -5/+0 |
| | | | |||||
* | | | Add new FederationBase | Erik Johnston | 2015-02-03 | 1 | -0/+126 |
| | | | |||||
* | | | Keep around the old (buggy) version of the prune_event function so that we ↵ | Erik Johnston | 2015-02-03 | 4 | -137/+92 |
| | | | | | | | | | | | | can use it to check signatures for events on old servers | ||||
* | | | Don't completely die if get auth_chain or querying auth_chain requests fail | Erik Johnston | 2015-02-03 | 1 | -63/+72 |
| | | | |||||
* | | | Set combinations is | and not + | Erik Johnston | 2015-02-03 | 1 | -2/+2 |
| | | | |||||
* | | | Spelling | Erik Johnston | 2015-02-03 | 1 | -1/+1 |
| | | | |||||
* | | | Give exception better message | Erik Johnston | 2015-02-03 | 1 | -1/+1 |
| | | | |||||
* | | | Add FIXME note. | Erik Johnston | 2015-02-03 | 1 | -0/+2 |
| | | | |||||
* | | | PEP8 | Erik Johnston | 2015-02-03 | 1 | -1/+0 |
| | | | |||||
* | | | Return rejected events if asked for it over federation. | Erik Johnston | 2015-02-03 | 1 | -0/+1 |
| | | | |||||
* | | | Try to ensure we don't persist an event we have already persisted. In ↵ | Erik Johnston | 2015-02-03 | 2 | -18/+64 |
| | | | | | | | | | | | | persist_event check if we already have the event, if so then update instead of replacing so that we don't cause a bump of the stream_ordering. | ||||
* | | | Don't bother requesting PDUs with bad signatures from the same server | Erik Johnston | 2015-02-02 | 1 | -16/+17 |
| | | | |||||
* | | | Don't fail an entire request if one of the returned events fails a signature ↵ | Erik Johnston | 2015-02-02 | 2 | -34/+94 |
|/ / | | | | | | | check. If an event does fail a signature check, look in the local database and request it from the originator. | ||||
* | | Ignore empty strings for display names & room names in notifications | David Baker | 2015-01-31 | 1 | -2/+2 |
| | | |||||
* | | Again, don't assume all member events have displayname. | David Baker | 2015-01-30 | 1 | -1/+1 |
| | | |||||
* | | Don't assume all member events have a display nme. | David Baker | 2015-01-30 | 1 | -4/+5 |
| | | |||||
* | | Resign events when we return them via /query_auth/ | Erik Johnston | 2015-01-30 | 1 | -0/+9 |
| | | |||||
* | | Return empty list rather than None when there are no emphemeral events for a ↵ | Mark Haines | 2015-01-30 | 1 | -1/+1 |
| | | | | | | | | room | ||||
* | | Fix bug where accepting invite over federation didn't work. Add logging. | Erik Johnston | 2015-01-30 | 1 | -8/+49 |
| | | |||||
* | | Merge pull request #43 from matrix-org/rejections | Erik Johnston | 2015-01-30 | 15 | -172/+706 |
|\ \ | | | | | | | Rejections | ||||
| * | | Briefly doc structure of query_auth API. | Erik Johnston | 2015-01-30 | 1 | -0/+18 |
| | | | |||||
| * | | Only auth_events with event if event in event.auth_events | Erik Johnston | 2015-01-30 | 1 | -1/+3 |
| | | | |||||
| * | | Remove debug logging | Erik Johnston | 2015-01-30 | 1 | -9/+0 |
| | | | |||||
| * | | Merge branch 'develop' of github.com:matrix-org/synapse into rejections | Erik Johnston | 2015-01-30 | 16 | -22/+552 |
| |\ \ | | | | | | | | | | | | | | | | | Conflicts: synapse/storage/schema/im.sql | ||||
| * \ \ | Merge branch 'replication_split' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2015-01-30 | 3 | -9/+6 |
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rejections Conflicts: synapse/storage/schema/delta/v12.sql | ||||
| * | | | | Fix bug where we superfluously asked for current state. Change API of ↵ | Erik Johnston | 2015-01-30 | 5 | -49/+43 |
| | | | | | | | | | | | | | | | | | | | | /query_auth/ so that we don't duplicate events in the response. | ||||
| * | | | | Fix bad merge fo python_dependencies.py | Erik Johnston | 2015-01-30 | 1 | -1/+0 |
| | | | | | |||||
| * | | | | Merge branch 'develop' of github.com:matrix-org/synapse into rejections | Erik Johnston | 2015-01-30 | 43 | -115/+2105 |
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: synapse/storage/__init__.py synapse/storage/schema/delta/v12.sql | ||||
| * | | | | | Update the current state of an event if we update auth events. | Erik Johnston | 2015-01-30 | 1 | -1/+3 |
| | | | | | | |||||
| * | | | | | Fix bug in timeout handling in keyclient | Erik Johnston | 2015-01-30 | 1 | -3/+4 |
| | | | | | | |||||
| * | | | | | Fix regression where we no longer correctly handled the case of gaps in our ↵ | Erik Johnston | 2015-01-30 | 2 | -2/+9 |
| | | | | | | | | | | | | | | | | | | | | | | | | event graph | ||||
| * | | | | | Fix bug where we changes in outlier in metadata dict propogated to other events | Erik Johnston | 2015-01-30 | 3 | -4/+8 |
| | | | | | | |||||
| * | | | | | Initial implementation of auth conflict resolution | Erik Johnston | 2015-01-29 | 7 | -81/+208 |
| | | | | | | |||||
| * | | | | | Make post_json(...) actually send data. | Erik Johnston | 2015-01-29 | 1 | -1/+1 |
| | | | | | | |||||
| * | | | | | Add post_json(...) method to federation client | Erik Johnston | 2015-01-29 | 1 | -0/+37 |
| | | | | | | |||||
| * | | | | | Start implementing auth conflict res | Erik Johnston | 2015-01-28 | 6 | -52/+253 |
| | | | | | | |||||
| * | | | | | Make it the responsibility of the replication layer to check signature and ↵ | Erik Johnston | 2015-01-26 | 3 | -26/+173 |
| | | | | | | | | | | | | | | | | | | | | | | | | hashes. | ||||
* | | | | | | Spit out server default rules too. | David Baker | 2015-01-30 | 2 | -10/+17 |
| | | | | | | |||||
* | | | | | | Merge pull request #41 from matrix-org/client_v2_sync | Mark Haines | 2015-01-30 | 7 | -46/+794 |
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | | Client v2 sync | ||||
| * | | | | | Add doc string for __nonzero__ overrides for sync results, raise not ↵ | Mark Haines | 2015-01-30 | 1 | -1/+8 |
| | | | | | | | | | | | | | | | | | | | | | | | | implemented if the client attempts to do a gapless sync | ||||
| * | | | | | Merge branch 'client_v2_filter' into client_v2_sync | Mark Haines | 2015-01-30 | 2 | -10/+2 |
| |\ \ \ \ \ | |||||
| * | | | | | | Check if the user has joined the room between incremental syncs | Mark Haines | 2015-01-30 | 1 | -4/+27 |
| | | | | | | | |||||
| * | | | | | | Pass client info to the sync_config | Mark Haines | 2015-01-30 | 2 | -3/+4 |
| | | | | | | | |||||
| * | | | | | | Fix token formatting | Mark Haines | 2015-01-30 | 2 | -5/+5 |
| | | | | | | | |||||
| * | | | | | | Filter the recent events before applying the limit when doing an initial sync | Mark Haines | 2015-01-30 | 1 | -11/+10 |
| | | | | | | | |||||
| * | | | | | | Filter the recent events before applying the limit when doing an incremental ↵ | Mark Haines | 2015-01-30 | 4 | -24/+54 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | sync with a gap | ||||
| * | | | | | | Update todo for the filtering on sync | Mark Haines | 2015-01-29 | 1 | -1/+2 |
| | | | | | | | |||||
| * | | | | | | Add basic filtering support | Mark Haines | 2015-01-29 | 1 | -5/+14 |
| | | | | | | | |||||
| * | | | | | | Merge branch 'client_v2_filter' into client_v2_sync | Mark Haines | 2015-01-29 | 2 | -113/+109 |
| |\ \ \ \ \ \ | |||||
| * | | | | | | | Fix indent | Mark Haines | 2015-01-29 | 1 | -1/+1 |
| | | | | | | | | |||||
| * | | | | | | | Move typing notifs to an "emphermal" event list on the room object | Mark Haines | 2015-01-29 | 2 | -7/+9 |
| | | | | | | | | |||||
| * | | | | | | | Fix check for empty room update | Mark Haines | 2015-01-29 | 1 | -1/+1 |
| | | | | | | | | |||||
| * | | | | | | | Fix v2 initial sync | Mark Haines | 2015-01-29 | 1 | -1/+2 |
| | | | | | | | | |||||
| * | | | | | | | Merge branch 'client_v2_filter' into client_v2_sync | Mark Haines | 2015-01-29 | 9 | -40/+54 |
| |\ \ \ \ \ \ \ | |||||
| * \ \ \ \ \ \ \ | Merge branch 'client_v2_filter' into client_v2_sync | Mark Haines | 2015-01-29 | 1 | -2/+2 |
| |\ \ \ \ \ \ \ \ | |||||
| * \ \ \ \ \ \ \ \ | Merge branch 'client_v2_filter' into client_v2_sync | Mark Haines | 2015-01-29 | 12 | -17/+493 |
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: synapse/rest/client/v2_alpha/__init__.py | ||||
| * | | | | | | | | | | Use get_room_events_stream to get changes to the rooms if the number of ↵ | Mark Haines | 2015-01-29 | 2 | -11/+52 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | changes is small | ||||
| * | | | | | | | | | | Remove typing TODO | Mark Haines | 2015-01-29 | 1 | -1/+0 |
| | | | | | | | | | | | |||||
| * | | | | | | | | | | Add typing notifications to sync | Mark Haines | 2015-01-29 | 2 | -19/+29 |
| | | | | | | | | | | | |||||
| * | | | | | | | | | | Include transaction ids in unsigned section of events in the sync results ↵ | Mark Haines | 2015-01-29 | 2 | -12/+22 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for the clients that made those requests | ||||
| * | | | | | | | | | | Add support for formatting events in the way a v2 client expects | Mark Haines | 2015-01-29 | 1 | -39/+52 |
| | | | | | | | | | | | |||||
| * | | | | | | | | | | Add ports back to demo/start.sh | Mark Haines | 2015-01-28 | 1 | -1/+1 |
| | | | | | | | | | | | |||||
| * | | | | | | | | | | Merge branch 'develop' into client_v2_sync | Mark Haines | 2015-01-28 | 35 | -91/+1822 |
| |\ \ \ \ \ \ \ \ \ \ | |||||
| * | | | | | | | | | | | Fix Formatting | Mark Haines | 2015-01-27 | 4 | -14/+9 |
| | | | | | | | | | | | | |||||
| * | | | | | | | | | | | Wait for events if the incremental sync is empty and a timeout is given | Mark Haines | 2015-01-27 | 2 | -7/+60 |
| | | | | | | | | | | | | |||||
| * | | | | | | | | | | | Start implementing incremental initial sync | Mark Haines | 2015-01-27 | 3 | -34/+241 |
| | | | | | | | | | | | | |||||
| * | | | | | | | | | | | Start implementing the non-incremental sync portion of the v2 /sync API | Mark Haines | 2015-01-26 | 4 | -54/+146 |
| | | | | | | | | | | | | |||||
| * | | | | | | | | | | | Merge branch 'develop' into client_v2_sync | Mark Haines | 2015-01-26 | 7 | -21/+45 |
| |\ \ \ \ \ \ \ \ \ \ \ | |||||
| * | | | | | | | | | | | | Add handler for /sync API | Mark Haines | 2015-01-26 | 1 | -0/+110 |
| | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | Merge branch 'develop' into client_v2_sync | Mark Haines | 2015-01-26 | 1 | -1/+1 |
| |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: synapse/rest/client/v2_alpha/__init__.py | ||||
| * | | | | | | | | | | | | | Add client v2_alpha resource to synapse server resource tree | Mark Haines | 2015-01-23 | 2 | -1/+7 |
| | | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | | Start implementing the v2_alpha sync API | Mark Haines | 2015-01-23 | 5 | -0/+272 |
| | | | | | | | | | | | | | | |||||
* | | | | | | | | | | | | | | Merge pull request #42 from matrix-org/replication_split | Mark Haines | 2015-01-30 | 5 | -886/+993 |
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|_|_|_|_|_|/ / | |/| | | | | | | | | | | | | Replication split | ||||
| * | | | | | | | | | | | | | Merge branch 'rejections_storage' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2015-01-30 | 44 | -123/+2104 |
| |\ \ \ \ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|_|_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | replication_split | ||||
| * | | | | | | | | | | | | | Split up replication_layer module into client, server and transaction queue | Erik Johnston | 2015-01-26 | 5 | -603/+654 |
| | | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into rejections | Erik Johnston | 2015-01-23 | 40 | -199/+229 |
| |\ \ \ \ \ \ \ \ \ \ \ \ \ | | | |/ / / / / / / / / / / | | |/| | | | | | | | | | | | |||||
| * | | | | | | | | | | | | | Add storage method have_events | Erik Johnston | 2015-01-23 | 1 | -0/+29 |
| | | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | | Split out TransactionQueue from replication layer | Erik Johnston | 2015-01-22 | 2 | -289/+316 |
| | | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | | Merge branch 'new_state_resolution' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2015-01-22 | 1 | -1/+1 |
| |\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rejections | ||||
* | | | | | | | | | | | | | | | Add glob asterisks when running rules. | David Baker | 2015-01-30 | 2 | -4/+6 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Means that now you can't do exact matches even in override rules, but I think we can live with that. Advantage is that you'll now always get back what was put in to the API. | ||||
* | | | | | | | | | | | | | | | Remove merge conflict | Erik Johnston | 2015-01-30 | 1 | -3/+0 |
| | | | | | | | | | | | | | | | |||||
* | | | | | | | | | | | | | | | Remember to add schema file to list | Erik Johnston | 2015-01-30 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | |||||
* | | | | | | | | | | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into rejections_storage | Erik Johnston | 2015-01-30 | 11 | -8/+526 |
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: synapse/storage/__init__.py | ||||
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ | Merge pull request #37 from matrix-org/client_v2_filter | Erik Johnston | 2015-01-30 | 8 | -2/+458 |
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | |_|_|_|_|_|_|_|_|_|_|/ / / | | |/| | | | | | | | | | | | | | Client v2 filter | ||||
| | * | | | | | | | | | | | | | | Use 'in' to test if the key exists, remove unused _filters_for_user | Mark Haines | 2015-01-30 | 2 | -10/+2 |
| | | | | | | | | | | | | | | | | |||||
| | * | | | | | | | | | | | | | | Unused import | Mark Haines | 2015-01-30 | 1 | -2/+0 |
| | | |_|_|_|_|_|_|_|_|_|/ / / | | |/| | | | | | | | | | | | | |||||
| | * | | | | | | | | | | | | | Create a separate filter object to do the actual filtering, so that we can | Mark Haines | 2015-01-29 | 2 | -113/+109 |
| | | |_|_|_|_|_|_|_|_|/ / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | split the storage and management of filters from the actual filter code and don't have to load a filter from the db each time we filter an event | ||||
| | * | | | | | | | | | | | | Merge branch 'develop' into client_v2_filter | Mark Haines | 2015-01-29 | 8 | -27/+48 |
| | |\ \ \ \ \ \ \ \ \ \ \ \ | |||||
| | * | | | | | | | | | | | | | Fix code-style | Mark Haines | 2015-01-29 | 1 | -13/+6 |
| | | |_|_|_|_|_|_|_|_|/ / / | | |/| | | | | | | | | | | | |||||
| | * | | | | | | | | | | | | Merge in auth changes from develop | Mark Haines | 2015-01-29 | 1 | -2/+2 |
| | | |_|_|_|_|_|_|_|/ / / | | |/| | | | | | | | | | | |||||
| | * | | | | | | | | | | | Merge changes from develop | Mark Haines | 2015-01-29 | 36 | -93/+1827 |
| | |\ \ \ \ \ \ \ \ \ \ \ | |||||
| | * | | | | | | | | | | | | Move bump schema delta | Mark Haines | 2015-01-29 | 1 | -0/+0 |
| | | | | | | | | | | | | | | |||||
| | * | | | | | | | | | | | | Add basic filtering public API unit tests. Use defers in the right places. | Kegan Dougal | 2015-01-29 | 1 | -4/+7 |
| | | | | | | | | | | | | | | |||||
| | * | | | | | | | | | | | | Implement filter algorithm. Add basic event type unit tests to assert it works. | Kegan Dougal | 2015-01-29 | 1 | -0/+49 |
| | | | | | | | | | | | | | | |||||
| | * | | | | | | | | | | | | Add filtering public API; outline filtering algorithm. | Kegan Dougal | 2015-01-29 | 1 | -8/+52 |
| | | | | | | | | | | | | | | |||||
| | * | | | | | | | | | | | | Add filtering.filter_events function, with stub passes_filter function. | Kegan Dougal | 2015-01-29 | 1 | -0/+15 |
| | | | | | | | | | | | | | | |||||
| | * | | | | | | | | | | | | Also edit the filter column on the delta SQL | Kegan Dougal | 2015-01-29 | 1 | -1/+1 |
| | | | | | | | | | | | | | | |||||
| | * | | | | | | | | | | | | s/definition/filter_json/ since definition is now used to mean a component ↵ | Kegan Dougal | 2015-01-28 | 2 | -3/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of the filter, rather than the complete json | ||||
| | * | | | | | | | | | | | | Add filter JSON sanity checks. | Kegan Dougal | 2015-01-28 | 3 | -7/+108 |
| | | | | | | | | | | | | | | |||||
| | * | | | | | | | | | | | | Created schema delta | Paul "LeoNerd" Evans | 2015-01-27 | 2 | -1/+25 |
| | | | | | | | | | | | | | | |||||
| | * | | | | | | | | | | | | Initial stab at real SQL storage implementation of user filter definitions | Paul "LeoNerd" Evans | 2015-01-27 | 3 | -14/+60 |
| | | | | | | | | | | | | | | |||||
| | * | | | | | | | | | | | | Move storage of user filters into real datastore layer; now have to mock it ↵ | Paul "LeoNerd" Evans | 2015-01-27 | 3 | -24/+52 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | out in the REST-level tests | ||||
| | * | | | | | | | | | | | | Have the Filtering API return Deferreds, so we can do the Datastore ↵ | Paul "LeoNerd" Evans | 2015-01-27 | 2 | -5/+19 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | implementation nicely | ||||
| | * | | | | | | | | | | | | Initial trivial implementation of an actual 'Filtering' object; move storage ↵ | Paul "LeoNerd" Evans | 2015-01-27 | 3 | -13/+58 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of user filters into there | ||||
| | * | | | | | | | | | | | | Merge branch 'develop' into client_v2_filter | Paul "LeoNerd" Evans | 2015-01-27 | 7 | -21/+45 |
| | |\ \ \ \ \ \ \ \ \ \ \ \ | | | | |_|_|_|_|_|_|/ / / / | | | |/| | | | | | | | | | | |||||
| | * | | | | | | | | | | | | Initial minimal attempt at /user/:user_id/filter API - in-memory storage, no ↵ | Paul "LeoNerd" Evans | 2015-01-26 | 2 | -1/+109 |
| | | |_|_|_|_|_|_|/ / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | actual filter implementation | ||||
| * | | | | | | | | | | | | Add room member count condition and default rule to make a noise on rooms of ↵ | David Baker | 2015-01-30 | 3 | -6/+63 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | only 2 people. | ||||
| * | | | | | | | | | | | | Add a slightly more helpful comment | Erik Johnston | 2015-01-30 | 1 | -1/+2 |
| | | | | | | | | | | | | | |||||
| * | | | | | | | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2015-01-30 | 65 | -368/+2394 |
| |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | new_state_resolution | ||||
* | | | | | | | | | | | | | | Be more specific in naming columns in selects. | Erik Johnston | 2015-01-30 | 1 | -1/+1 |
| | | | | | | | | | | | | | | |||||
* | | | | | | | | | | | | | | Put CREATE rejections into seperate .sql | Erik Johnston | 2015-01-30 | 2 | -7/+21 |
| |_|_|_|_|_|_|_|_|/ / / / |/| | | | | | | | | | | | | |||||
* | | | | | | | | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into rejections_storage | Erik Johnston | 2015-01-30 | 65 | -367/+2380 |
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: synapse/storage/__init__.py synapse/storage/schema/delta/v12.sql | ||||
| * | | | | | | | | | | | | We do need Twisted 14, not 15: we use internal Twisted things that have been ↵ | David Baker | 2015-01-30 | 1 | -1/+1 |
| | |_|_|_|_|_|_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | removed in 15. | ||||
| * | | | | | | | | | | | Include content in notification pokes | David Baker | 2015-01-29 | 1 | -0/+2 |
| | | | | | | | | | | | | |||||
| * | | | | | | | | | | | Change 'from' in notification pokes to 'sender' to match client API v2. Send ↵ | David Baker | 2015-01-29 | 2 | -5/+14 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sender display names where they exist. | ||||
| * | | | | | | | | | | | Add default push rules including setting a sound for messages mentioning ↵ | David Baker | 2015-01-29 | 2 | -8/+74 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | your username / display name |