Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Format docstring | Erik Johnston | 2018-04-12 | 1 | -2/+3 |
| | |||||
* | Doc we raise on unknown event | Erik Johnston | 2018-04-12 | 1 | -2/+3 |
| | |||||
* | Track last processed event received_ts | Erik Johnston | 2018-04-11 | 1 | -0/+18 |
| | |||||
* | Track where event stream processing have gotten up to | Erik Johnston | 2018-04-11 | 1 | -0/+3 |
| | |||||
* | Merge pull request #2760 from Valodim/pypy | Richard van der Hoff | 2018-04-11 | 2 | -1/+6 |
|\ | | | | | Synapse on PyPy | ||||
| * | Fix pep8 error on psycopg2cffi hack | Richard van der Hoff | 2018-04-10 | 1 | -6/+5 |
| | | |||||
| * | Use psycopg2cffi module instead of psycopg2 if running on pypy | Vincent Breitmoser | 2018-04-10 | 2 | -2/+8 |
| | | | | | | | | | | | | | | The psycopg2 package isn't available for PyPy. This commit adds a check if the runtime is PyPy, and if it is uses psycopg2cffi module in favor of psycopg2. This is almost a drop-in replacement, except for one place where an additional cast to string is required. | ||||
* | | fix typo | Neil Johnson | 2018-04-10 | 1 | -2/+2 |
| | | |||||
* | | remove errant print v0.27.3-rc2 | Neil Johnson | 2018-04-09 | 1 | -1/+1 |
| | | |||||
* | | Fix msec to sec, again | Neil Johnson | 2018-04-09 | 1 | -3/+3 |
| | | |||||
* | | Fix msec to sec | Neil Johnson | 2018-04-09 | 1 | -1/+1 |
| | | |||||
* | | Fix psycopg2 interpolation | Neil Johnson | 2018-04-09 | 1 | -5/+5 |
|/ | |||||
* | Don't use redundant inlineCallbacks | Luke Barnard | 2018-04-06 | 1 | -4/+1 |
| | |||||
* | join_rule -> join_policy | Luke Barnard | 2018-04-06 | 1 | -1/+1 |
| | |||||
* | is_joinable -> join_rule | Luke Barnard | 2018-04-06 | 1 | -4/+1 |
| | |||||
* | pep8 | David Baker | 2018-04-06 | 1 | -1/+2 |
| | |||||
* | Implement group join API | David Baker | 2018-04-06 | 1 | -3/+9 |
| | |||||
* | Merge pull request #3045 from matrix-org/dbkr/group_joinable | Luke Barnard | 2018-04-05 | 3 | -0/+42 |
|\ | | | | | Add joinability for groups | ||||
| * | NON NULL -> NOT NULL | Luke Barnard | 2018-04-05 | 1 | -1/+1 |
| | | |||||
| * | Use DEFAULT join_policy of "invite" in db | Luke Barnard | 2018-04-05 | 1 | -1/+1 |
| | | |||||
| * | Document set_group_join_policy | Luke Barnard | 2018-04-05 | 1 | -0/+6 |
| | | |||||
| * | Use join_policy API instead of joinable | Luke Barnard | 2018-04-03 | 2 | -4/+10 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The API is now under /groups/$group_id/setting/m.join_policy and expects a JSON blob of the shape ```json { "m.join_policy": { "type": "invite" } } ``` where "invite" could alternatively be "open". | ||||
| * | OK, smallint it is then | David Baker | 2018-03-28 | 1 | -1/+1 |
| | | |||||
| * | Grr. Copy the definition from is_admin | David Baker | 2018-03-28 | 1 | -1/+1 |
| | | |||||
| * | Make column definition that works on both dbs | David Baker | 2018-03-28 | 1 | -1/+1 |
| | | |||||
| * | Add schema delta file | David Baker | 2018-03-28 | 1 | -0/+16 |
| | | |||||
| * | Add joinability for groups | David Baker | 2018-03-28 | 2 | -1/+15 |
| | | | | | | | | | | Adds API to set the 'joinable' flag, and corresponding flag in the table. | ||||
* | | Merge pull request #3041 from matrix-org/r30_stats | Neil Johnson | 2018-04-05 | 4 | -7/+111 |
|\ \ | | | | | | | R30 stats | ||||
| * | | Review comments | Neil Johnson | 2018-04-05 | 1 | -4/+5 |
| | | | | | | | | | | | | | | | Use iteritems over item to loop over dict formatting | ||||
| * | | pep8 | Neil Johnson | 2018-03-29 | 1 | -2/+4 |
| | | | |||||
| * | | Remove need for sqlite specific query | Neil Johnson | 2018-03-29 | 1 | -30/+57 |
| | | | |||||
| * | | fix pep8 errors | Neil Johnson | 2018-03-28 | 1 | -3/+0 |
| | | | |||||
| * | | remove twisted deferral cruft | Neil Johnson | 2018-03-28 | 1 | -6/+3 |
| | | | |||||
| * | | bump schema version | Neil Johnson | 2018-03-28 | 1 | -1/+1 |
| | | | |||||
| * | | Support multi client R30 for psql | Neil Johnson | 2018-03-28 | 1 | -8/+28 |
| | | | |||||
| * | | Add user_ips last seen index | Neil Johnson | 2018-03-28 | 2 | -0/+24 |
| | | | |||||
| * | | No need to cast in count_daily_users | Neil Johnson | 2018-03-28 | 1 | -2/+2 |
| | | | |||||
| * | | query and call for r30 stats | Neil Johnson | 2018-03-28 | 1 | -0/+36 |
| | | | |||||
| * | | count_daily_users failed if db was sqlite due to type failure - presumably ↵ | Neil Johnson | 2018-03-28 | 1 | -1/+1 |
| |/ | | | | | | | this prevcented all sqlite homeservers reporting home | ||||
* | | Merge pull request #3060 from matrix-org/rav/kill_event_content | Richard van der Hoff | 2018-04-05 | 3 | -7/+12 |
|\ \ | | | | | | | Remove uses of events.content | ||||
| * | | Remove uses of events.content | Richard van der Hoff | 2018-03-29 | 3 | -7/+12 |
| | | | |||||
* | | | Merge pull request #3049 from matrix-org/rav/use_staticjson | Richard van der Hoff | 2018-04-03 | 1 | -15/+8 |
|\ \ \ | | | | | | | | | Use static JSONEncoders | ||||
| * | | | Use static JSONEncoders | Richard van der Hoff | 2018-03-29 | 1 | -15/+8 |
| |/ / | | | | | | | | | | | | | using json.dumps with custom options requires us to create a new JSONEncoder on each call. It's more efficient to create one upfront and reuse it. | ||||
* / / | Use simplejson throughout | Richard van der Hoff | 2018-03-29 | 1 | -1/+2 |
|/ / | | | | | | | Let's use simplejson rather than json, for consistency. | ||||
* | | Fix search_user_dir multiple sqlite versions do different things | Neil Johnson | 2018-03-28 | 1 | -2/+2 |
| | | |||||
* | | Merge pull request #3029 from matrix-org/erikj/linearize_generate_user_id | Erik Johnston | 2018-03-28 | 1 | -3/+1 |
|\ \ | | | | | | | Linearize calls to _generate_user_id | ||||
| * | | Don't use _cursor_to_dict in find_next_generated_user_id_localpart | Erik Johnston | 2018-03-26 | 1 | -3/+1 |
| |/ | |||||
* | | Merge pull request #3030 from matrix-org/erikj/no_ujson | Erik Johnston | 2018-03-28 | 1 | -1/+1 |
|\ \ | | | | | | | Remove last usage of ujson | ||||
| * | | Remove last usage of ujson | Erik Johnston | 2018-03-26 | 1 | -1/+1 |
| |/ | |||||
* | | Comment | Erik Johnston | 2018-03-27 | 1 | -4/+5 |
| | | |||||
* | | Fix indent | Erik Johnston | 2018-03-27 | 1 | -1/+1 |
| | | |||||
* | | Comment | Erik Johnston | 2018-03-27 | 1 | -0/+7 |
| | | |||||
* | | Add counter metrics for calculating state delta | Erik Johnston | 2018-03-27 | 1 | -1/+30 |
|/ | | | | | | This will allow us to measure how often we calculate state deltas in event persistence that we would have been able to calculate at the same time we calculated the state for the event. | ||||
* | Merge branch 'master' of github.com:matrix-org/synapse into develop | Erik Johnston | 2018-03-19 | 17 | -26/+25 |
|\ | |||||
| * | Remove wrong comment | Erik Johnston | 2018-03-16 | 1 | -1/+0 |
| | | |||||
| * | Replace ujson with simplejson | Erik Johnston | 2018-03-15 | 17 | -26/+26 |
| | | |||||
* | | Replace some ujson with simplejson to make it work | Erik Johnston | 2018-03-16 | 2 | -2/+2 |
| | | |||||
* | | Merge pull request #2988 from matrix-org/erikj/split_profile_store | Erik Johnston | 2018-03-14 | 1 | -24/+26 |
|\ \ | | | | | | | Split up ProfileStore | ||||
| * | | Split up ProfileStore | Erik Johnston | 2018-03-13 | 1 | -24/+26 |
| | | | |||||
* | | | Merge pull request #2993 from matrix-org/erikj/is_blocked | Erik Johnston | 2018-03-14 | 1 | -13/+17 |
|\ \ \ | | | | | | | | | Add is_blocked to worker store | ||||
| * | | | Add is_blocked to worker store | Erik Johnston | 2018-03-13 | 1 | -13/+17 |
| |/ / | |||||
* / / | fix bug #2926 (loading all state for a given type from the DB if the ↵ | Matthew Hodgson | 2018-03-13 | 1 | -7/+27 |
|/ / | | | | | | | | | state_key is None) (#2990) Fixes a regression that had crept in where the caching layer upholds requests for loading state which is filtered by type (but not by state_key), but the DB layer itself would interpret a missing state_key as a request to filter by null state_key rather than returning all state_keys. | ||||
* | | Add Measure block for persist_events | Richard van der Hoff | 2018-03-13 | 1 | -4/+5 |
| | | | | | | | | This seems like a useful thing to measure. | ||||
* | | Fix race in sync when joining room | Erik Johnston | 2018-03-07 | 2 | -2/+27 |
| | | | | | | | | | | | | | | | | | | | | | | The race happens when the user joins a room at the same time as doing a sync. We fetch the current token and then get the rooms the user is in. If the join happens after the current token, but before we get the rooms we end up sending down a partial room entry in the sync. This is fixed by looking at the stream ordering of the membership returned by get_rooms_for_user, and handling the case when that stream ordering is after the current token. | ||||
* | | Merge pull request #2946 from matrix-org/rav/timestamp_to_purge | Richard van der Hoff | 2018-03-06 | 1 | -0/+27 |
|\ \ | | | | | | | Implement purge_history by timestamp | ||||
| * | | Provide a means to pass a timestamp to purge_history | Richard van der Hoff | 2018-03-05 | 1 | -0/+27 |
| | | | |||||
* | | | Merge pull request #2948 from matrix-org/erikj/kill_as_sync | Erik Johnston | 2018-03-06 | 2 | -153/+5 |
|\ \ \ | | | | | | | | | Remove ability for AS users to call /events and /sync | ||||
| * | | | Remove ability for AS users to call /events and /sync | Erik Johnston | 2018-03-05 | 2 | -153/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This functionality has been deprecated for a while as well as being broken for a while. Instead of fixing it lets just remove it entirely. See: https://github.com/matrix-org/matrix-doc/issues/1144 | ||||
* | | | | Merge pull request #2947 from matrix-org/erikj/split_directory_store | Erik Johnston | 2018-03-05 | 1 | -23/+27 |
|\ \ \ \ | |_|/ / |/| | | | Split Directory store | ||||
| * | | | Fix cache invalidation on deletion | Erik Johnston | 2018-03-05 | 1 | -1/+4 |
| | | | | |||||
| * | | | Split Directory store | Erik Johnston | 2018-03-05 | 1 | -22/+23 |
| |/ / | |||||
* | | | Merge pull request #2943 from ↵ | Richard van der Hoff | 2018-03-05 | 1 | -12/+71 |
|\ \ \ | |/ / |/| | | | | | | | | matrix-org/rav/fix_find_first_stream_ordering_after_ts Test and fix find_first_stream_ordering_after_ts | ||||
| * | | Test and fix find_first_stream_ordering_after_ts | Richard van der Hoff | 2018-03-05 | 1 | -15/+53 |
| | | | | | | | | | | | | It seemed to suffer from a bunch of off-by-one errors. | ||||
| * | | Add find_first_stream_ordering_after_ts | Richard van der Hoff | 2018-03-05 | 1 | -0/+21 |
| | | | | | | | | | | | | Expose this as a public function which can be called outside a txn | ||||
* | | | Merge pull request #2934 from matrix-org/erikj/cache_fix | Erik Johnston | 2018-03-05 | 2 | -13/+15 |
|\ \ \ | | | | | | | | | Fix bug with delayed cache invalidation stream | ||||
| * | | | Fix bug with delayed cache invalidation stream | Erik Johnston | 2018-03-02 | 2 | -13/+15 |
| | | | | | | | | | | | | | | | | | | | | | | | | We poked the notifier before updated the current token for the cache invalidation stream. This mean that sometimes the update wouldn't be sent until the next time a cache was invalidated. | ||||
* | | | | Split registration store | Erik Johnston | 2018-03-02 | 1 | -57/+61 |
|/ / / | |||||
* | | | Merge pull request #2925 from matrix-org/erikj/split_sig_fed | Erik Johnston | 2018-03-01 | 2 | -133/+143 |
|\ \ \ | |/ / |/| | | Split out SignatureStore and EventFederationStore | ||||
| * | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/split_sig_fed | Erik Johnston | 2018-03-01 | 4 | -371/+406 |
| |\ \ | |||||
| * | | | Stub out broken function only used for cache | Erik Johnston | 2018-03-01 | 1 | -1/+3 |
| | | | | |||||
| * | | | Split out SignatureStore and EventFederationStore | Erik Johnston | 2018-03-01 | 2 | -132/+140 |
| | | | | |||||
* | | | | Merge pull request #2927 from matrix-org/erikj/read_marker_caches | Erik Johnston | 2018-03-01 | 2 | -2/+39 |
|\ \ \ \ | |_|/ / |/| | | | Improve caching for read_marker API | ||||
| * | | | Fewer lies are better | Erik Johnston | 2018-03-01 | 1 | -2/+2 |
| | | | | |||||
| * | | | Improve caching for read_marker API | Erik Johnston | 2018-03-01 | 1 | -0/+35 |
| | | | | | | | | | | | | | | | | | | | | | | | | We add a new storage function to get a paritcular type of room account data. This allows us to prefill the cache when updating that acount data. | ||||
| * | | | Add some caches to help read marker API | Erik Johnston | 2018-03-01 | 2 | -2/+4 |
| |/ / | |||||
* | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2018-03-01 | 3 | -197/+206 |
|\ \ \ | | | | | | | | | | | | | erikj/split_stream_store | ||||
| * \ \ | Merge pull request #2923 from matrix-org/erikj/stream_ago_worker | Erik Johnston | 2018-03-01 | 2 | -79/+85 |
| |\ \ \ | | | | | | | | | | | Calculate stream_ordering_month_ago correctly on workers | ||||
| | * | | | Default stream_ordering_*_ago to None | Erik Johnston | 2018-03-01 | 1 | -2/+2 |
| | | | | | |||||
| | * | | | Fix comment typo | Erik Johnston | 2018-03-01 | 1 | -1/+1 |
| | | | | | |||||
| | * | | | Calculate stream_ordering_month_ago correctly on workers | Erik Johnston | 2018-03-01 | 2 | -79/+85 |
| | |/ / | |||||
| * / / | Split up RoomStore | Erik Johnston | 2018-03-01 | 1 | -118/+121 |
| |/ / | |||||
* | | | Remove unused variables | Erik Johnston | 2018-03-01 | 1 | -8/+1 |
| | | | |||||
* | | | Document abstract class and method better | Erik Johnston | 2018-03-01 | 1 | -8/+13 |
| | | | |||||
* | | | Split out stream store | Erik Johnston | 2018-03-01 | 2 | -165/+193 |
|/ / | |||||
* | | Move storage functions for push calculations | Erik Johnston | 2018-02-27 | 4 | -87/+99 |
| | | | | | | | | This will allow push actions for an event to be calculated on workers. | ||||
* | | Merge pull request #2904 from matrix-org/erikj/receipt_cache_invalidation | Erik Johnston | 2018-02-27 | 1 | -14/+14 |
|\ \ | | | | | | | Fix missing invalidations for receipt storage | ||||
| * | | Fix missing invalidations for receipt storage | Erik Johnston | 2018-02-21 | 1 | -14/+14 |
| | | | |||||
* | | | Merge pull request #2903 from matrix-org/erikj/split_roommember_store | Erik Johnston | 2018-02-27 | 1 | -179/+182 |
|\ \ \ | | | | | | | | | Split out RoomMemberStore | ||||
| * \ \ | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2018-02-23 | 8 | -501/+607 |
| |\ \ \ | | | | | | | | | | | | | | | | erikj/split_roommember_store | ||||
| * | | | | Update copyright | Erik Johnston | 2018-02-23 | 2 | -0/+2 |
| | | | | | |||||
| * | | | | Split out RoomMemberStore | Erik Johnston | 2018-02-21 | 1 | -179/+181 |
| | | | | | |||||
* | | | | | Merge pull request #2901 from matrix-org/erikj/split_as_stores | Erik Johnston | 2018-02-27 | 1 | -9/+22 |
|\ \ \ \ \ | | | | | | | | | | | | | Split AS stores | ||||
| * | | | | | Add comment | Erik Johnston | 2018-02-27 | 1 | -0/+4 |
| | | | | | | |||||
| * | | | | | Update copyright | Erik Johnston | 2018-02-23 | 1 | -0/+1 |
| | | | | | | |||||
| * | | | | | Split AS stores | Erik Johnston | 2018-02-21 | 1 | -9/+17 |
| |/ / / / | |||||
* | | | | | Merge pull request #2892 from matrix-org/erikj/batch_inserts_push_actions | Erik Johnston | 2018-02-26 | 1 | -17/+36 |
|\ \ \ \ \ | | | | | | | | | | | | | Batch inserts into event_push_actions_staging | ||||
| * | | | | | Batch inserts into event_push_actions_staging | Erik Johnston | 2018-02-20 | 1 | -17/+36 |
| | | | | | | |||||
* | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2018-02-26 | 9 | -560/+700 |
|\ \ \ \ \ \ | | |_|/ / / | |/| | | | | | | | | | | erikj/handle_unpersisted_events_push | ||||
| * | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2018-02-23 | 7 | -424/+532 |
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | erikj/split_event_push_actions | ||||
| | * \ \ \ \ | Merge pull request #2902 from matrix-org/erikj/split_events_store | Erik Johnston | 2018-02-23 | 2 | -359/+402 |
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | Split out get_events and co into a worker store | ||||
| | | * | | | | | Split EventsWorkerStore into separate file | Erik Johnston | 2018-02-23 | 2 | -360/+400 |
| | | | | | | | | |||||
| | | * | | | | | Update copyright | Erik Johnston | 2018-02-23 | 1 | -0/+1 |
| | | | | | | | | |||||
| | | * | | | | | Remove redundant clock | Erik Johnston | 2018-02-23 | 1 | -3/+0 |
| | | | | | | | | |||||
| | | * | | | | | _event_persist_queue shouldn't be in worker store | Erik Johnston | 2018-02-23 | 1 | -4/+4 |
| | | | |/ / / | | | |/| | | | |||||
| | | * | | | | Split out get_events and co into a worker store | Erik Johnston | 2018-02-21 | 1 | -345/+350 |
| | | | |/ / | | | |/| | | |||||
| | * | | | | Merge pull request #2899 from matrix-org/erikj/split_pushers | Erik Johnston | 2018-02-23 | 1 | -4/+7 |
| | |\ \ \ \ | | | | | | | | | | | | | | | Split PusherStore | ||||
| | | * | | | | Update copyright | Erik Johnston | 2018-02-23 | 1 | -0/+1 |
| | | | | | | | |||||
| | | * | | | | Split PusherStore | Erik Johnston | 2018-02-21 | 1 | -4/+6 |
| | | |/ / / | |||||
| | * | | | | Merge pull request #2898 from matrix-org/erikj/split_push_rules_store | Erik Johnston | 2018-02-23 | 2 | -28/+57 |
| | |\ \ \ \ | | | | | | | | | | | | | | | Split PushRulesStore | ||||
| | | * | | | | Update copyright | Erik Johnston | 2018-02-23 | 2 | -0/+2 |
| | | | | | | | |||||
| | | * | | | | Split PushRulesStore | Erik Johnston | 2018-02-21 | 2 | -28/+55 |
| | | |/ / / | |||||
| | * | | | | Update copyright | Erik Johnston | 2018-02-23 | 2 | -0/+2 |
| | | | | | | |||||
| | * | | | | Use absolute imports | Erik Johnston | 2018-02-23 | 2 | -3/+3 |
| | | | | | | |||||
| | * | | | | Split AccountDataStore and TagStore | Erik Johnston | 2018-02-21 | 3 | -33/+65 |
| | |/ / / | |||||
| * | | | | Update copyright | Erik Johnston | 2018-02-23 | 2 | -0/+2 |
| | | | | | |||||
| * | | | | Split out EventPushActionWorkerStore | Erik Johnston | 2018-02-21 | 1 | -71/+73 |
| |/ / / | |||||
| * | | | Raise exception in abstract method | Erik Johnston | 2018-02-20 | 1 | -1/+1 |
| | | | | |||||
| * | | | Fix comment | Erik Johnston | 2018-02-20 | 1 | -1/+1 |
| | | | | |||||
| * | | | Use abstract base class to access stream IDs | Erik Johnston | 2018-02-20 | 1 | -15/+27 |
| | | | | |||||
| * | | | Split ReceiptsStore | Erik Johnston | 2018-02-20 | 2 | -48/+64 |
| |/ / | |||||
* | | | Actually use new param | Erik Johnston | 2018-02-21 | 1 | -1/+3 |
| | | | |||||
* | | | Ensure all push actions are deleted from staging | Erik Johnston | 2018-02-20 | 2 | -2/+19 |
| | | | |||||
* | | | Refactor _set_push_actions_for_event_and_users_txn to use events_and_contexts | Erik Johnston | 2018-02-20 | 2 | -33/+41 |
|/ / | |||||
* | | (Really) fix tablescan of event_push_actions on purge | Richard van der Hoff | 2018-02-16 | 1 | -1/+0 |
| | | | | | | | | | | commit 278d21b5 added new code to avoid the tablescan, but didn't remove the old :/ | ||||
* | | Fix typo of double is_highlight | Erik Johnston | 2018-02-16 | 1 | -1/+1 |
| | | |||||
* | | Comments | Erik Johnston | 2018-02-16 | 2 | -1/+6 |
| | | |||||
* | | Ensure that we delete staging push actions on errors | Erik Johnston | 2018-02-15 | 1 | -0/+16 |
| | | |||||
* | | Remove context.push_actions | Erik Johnston | 2018-02-15 | 1 | -4/+3 |
| | | |||||
* | | Update event_push_actions table from staging table | Erik Johnston | 2018-02-15 | 2 | -22/+39 |
| | | |||||
* | | Store push actions in staging area | Erik Johnston | 2018-02-15 | 2 | -0/+51 |
| | | |||||
* | | Don't serialize current state over replication | Erik Johnston | 2018-02-15 | 1 | -0/+14 |
| | | |||||
* | | Fix state group storage bug in workers | Erik Johnston | 2018-02-15 | 1 | -41/+41 |
| | | | | | | | | | | We needed to move `_count_state_group_hops_txn` to the StateGroupWorkerStore. | ||||
* | | Merge pull request #2867 from matrix-org/rav/rework_purge | Richard van der Hoff | 2018-02-15 | 1 | -35/+83 |
|\ \ | | | | | | | purge_history cleanups | ||||
| * | | purge_history: fix sqlite syntax error | Richard van der Hoff | 2018-02-14 | 1 | -1/+4 |
| | | | | | | | | | | | | apparently sqlite insists on indexes being named | ||||
| * | | purge_history: handle sqlite asshattery | Richard van der Hoff | 2018-02-14 | 1 | -19/+27 |
| | | | | | | | | | | | | | | | apparently creating a temporary table commits the transaction. because that's a useful thing. | ||||
| * | | purge_history: fix index use | Richard van der Hoff | 2018-02-14 | 1 | -0/+14 |
| | | | | | | | | | | | | | | | event_push_actions doesn't have an index on event_id, so we need to specify room_id. | ||||
| * | | Rework event purge to use a temporary table | Richard van der Hoff | 2018-02-14 | 1 | -35/+58 |
| | | | | | | | | | | | | | | | ... which should speed things up by reducing the amount of data being shuffled across the connection | ||||
* | | | Merge pull request #2769 from matrix-org/matthew/hit_the_gin | Richard van der Hoff | 2018-02-14 | 5 | -20/+110 |
|\ \ \ | | | | | | | | | switch back from GIST to GIN indexes | ||||
| * | | | remove overzealous exception handling | Richard van der Hoff | 2018-02-14 | 1 | -18/+10 |
| | | | | |||||
| * | | | Merge branch 'matthew/gin_work_mem' into matthew/hit_the_gin | Richard van der Hoff | 2018-02-13 | 13 | -312/+605 |
| |\ \ \ | |||||
| | * \ \ | Merge branch 'develop' into matthew/gin_work_mem | Richard van der Hoff | 2018-02-13 | 8 | -223/+390 |
| | |\ \ \ | |||||
| | * | | | | Factor out common code for search insert | Richard van der Hoff | 2018-02-04 | 1 | -33/+56 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | we can reuse the same code as is used for event insert, for doing the background index population. | ||||
| | * | | | | Clean up work_mem handling | Richard van der Hoff | 2018-02-03 | 1 | -11/+41 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add some comments and improve exception handling when twiddling work_mem for the search update | ||||
| | * | | | | Move store_event_search_txn to SearchStore | Richard van der Hoff | 2018-02-03 | 2 | -37/+43 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... as a precursor to making event storing and doing the bg update share some code. | ||||
| | * | | | | Merge branch 'develop' into matthew/gin_work_mem | Richard van der Hoff | 2018-02-03 | 7 | -39/+100 |
| | |\ \ \ \ | |||||
| | * | | | | | oops | hera | 2018-01-09 | 2 | -2/+2 |
| | | | | | | | |||||
| | * | | | | | oops, tweak work_mem when actually storing | Matthew Hodgson | 2018-01-09 | 1 | -0/+2 |
| | | | | | | | |||||
| | * | | | | | avoid 80s GIN inserts by tweaking work_mem | Matthew Hodgson | 2018-01-09 | 1 | -0/+4 |
| | | |_|_|/ | | |/| | | | | | | | | | | | | | | | see https://github.com/matrix-org/synapse/issues/2753 for details | ||||
| * | | | | | move search reindex to schema 47 | Richard van der Hoff | 2018-02-13 | 2 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're up to schema v47 on develop now, so this will have to go in there to have an effect. This might cause an error if somebody has already run it in the v46 guise, and runs it again in the v47 guise, because it will cause a duplicate entry in the bbackground_updates table. On the other hand, the entry is removed once it is complete, and it is unlikely that anyone other than matrix.org has run it on v46. The update itself is harmless to re-run because it deliberately copes with the index already existing. | ||||
| * | | | | | GIN reindex: Fix syntax errors, improve exception handling | Richard van der Hoff | 2018-02-13 | 1 | -13/+27 |
| | | | | | | |||||
| * | | | | | Reinstate event_search_postgres_gist handler | Richard van der Hoff | 2018-02-02 | 3 | -6/+31 |
| | | | | | | | | | | | | | | | | | | | | | | | | People may have queued updates for this, so we can't just delete it. | ||||
| * | | | | | fix GIST->GIN switch | Matthew Hodgson | 2018-01-09 | 3 | -14/+37 |
| | | | | | | |||||
| * | | | | | switch back from GIST to GIN indexes | Matthew Hodgson | 2018-01-09 | 1 | -8/+13 |
| |/ / / / | |||||
* | | | | | Merge pull request #2854 from matrix-org/erikj/event_create_worker | Erik Johnston | 2018-02-13 | 1 | -0/+13 |
|\ \ \ \ \ | |_|_|_|/ |/| | | | | Create a worker for event creation | ||||
| * | | | | Add replication http endpoint for event sending | Erik Johnston | 2018-02-07 | 1 | -0/+13 |
| | | | | | |||||
* | | | | | Fix log message in purge_history | Richard van der Hoff | 2018-02-13 | 1 | -2/+1 |
| | | | | | | | | | | | | | | | | | | | | (we don't just remove remote events) | ||||
* | | | | | Merge pull request #2864 from matrix-org/rav/persist_event_caching | Richard van der Hoff | 2018-02-13 | 1 | -56/+40 |
|\ \ \ \ \ | |_|_|_|/ |/| | | | | Use StateResolutionHandler to resolve state in persist_events | ||||
| * | | | | style nit | Richard van der Hoff | 2018-02-13 | 1 | -1/+1 |
| | | | | | |||||
| * | | | | Use StateResolutionHandler to resolve state in persist events | Richard van der Hoff | 2018-02-05 | 1 | -48/+24 |
| | | | | | | | | | | | | | | | | | | | | ... and thus benefit (hopefully) from its cache. | ||||
| * | | | | Flatten _get_new_state_after_events | Richard van der Hoff | 2018-02-05 | 1 | -44/+46 |
| | | | | | | | | | | | | | | | | | | | | rejig the if statements to simplify the logic and reduce indentation | ||||
| * | | | | Check that events being persisted have state_group | Richard van der Hoff | 2018-02-05 | 1 | -4/+9 |
| | | | | | |||||
| * | | | | Add event_map param to resolve_state_groups | Richard van der Hoff | 2018-02-05 | 1 | -0/+1 |
| | | | | | |||||
* | | | | | Merge pull request #2858 from matrix-org/rav/purge_updates | Richard van der Hoff | 2018-02-09 | 1 | -33/+61 |
|\ \ \ \ \ | |_|/ / / |/| | | | | delete_local_events for purge_room_history | ||||
| * | | | | purge: move room_depth update to end | Richard van der Hoff | 2018-02-09 | 1 | -6/+12 |
| | | | | | | | | | | | | | | | | | | | | ... to avoid locking the table for too long | ||||
| * | | | | delete_local_events for purge_history | Richard van der Hoff | 2018-02-09 | 1 | -7/+28 |
| | | | | | | | | | | | | | | | | | | | | Add a flag which makes the purger delete local events | ||||
| * | | | | purge: Move cache invalidation to more appropriate place | Richard van der Hoff | 2018-02-09 | 1 | -4/+4 |
| | | | | | | | | | | | | | | | | | | | | it was a bit of a non-sequitur there | ||||
| * | | | | bump purge logging to info | Richard van der Hoff | 2018-02-09 | 1 | -13/+14 |
| | | | | | | | | | | | | | | | | | | | | | | | | | this thing takes ages and the only sign of any progress is the logs, so having some logs is useful. | ||||
| * | | | | rename delete_old_state -> purge_history | Richard van der Hoff | 2018-02-09 | 1 | -7/+7 |
| | | | | | | | | | | | | | | | | | | | | (beacause it deletes more than state) | ||||
* | | | | | Store state groups separately from events (#2784) | Erik Johnston | 2018-02-06 | 6 | -103/+166 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Split state group persist into seperate storage func * Add per database engine code for state group id gen * Move store_state_group to StateReadStore This allows other workers to use it, and so resolve state. * Hook up store_state_group * Fix tests * Rename _store_mult_state_groups_txn * Rename StateGroupReadStore * Remove redundant _have_persisted_state_group_txn * Update comments * Comment compute_event_context * Set start val for state_group_id_seq ... otherwise we try to recreate old state groups * Update comments * Don't store state for outliers * Update comment * Update docstring as state groups are ints | ||||
* | | | | | Merge pull request #2849 from matrix-org/rav/clean_up_state_delta | Richard van der Hoff | 2018-02-05 | 1 | -10/+23 |
|\ \ \ \ \ | | |/ / / | |/| | | | Remove redundant return value from _calculate_state_delta | ||||
| * | | | | Remove redundant return value from _calculate_state_delta | Richard van der Hoff | 2018-02-05 | 1 | -10/+23 |
| | | | | | | | | | | | | | | | | | | | | | | | | | we already have the state from _get_new_state_after_events, so returning it from _calculate_state_delta is just confusing. | ||||
* | | | | | Factor out common code for search insert | Richard van der Hoff | 2018-02-05 | 1 | -33/+62 |
| | | | | | | | | | | | | | | | | | | | | | | | | | we can reuse the same code as is used for event insert, for doing the background index population. | ||||
* | | | | | Move store_event_search_txn to SearchStore | Richard van der Hoff | 2018-02-05 | 2 | -35/+41 |
|/ / / / | | | | | | | | | | | | | | | | | ... as a precursor to making event storing and doing the bg update share some code. | ||||
* | | | | Merge pull request #2841 from matrix-org/rav/refactor_calc_state_delta | Richard van der Hoff | 2018-02-02 | 1 | -18/+39 |
|\ \ \ \ | | | | | | | | | | | factor _get_new_state_after_events out of _calculate_state_delta | ||||
| * | | | | factor _get_new_state_after_events out of _calculate_state_delta | Richard van der Hoff | 2018-01-31 | 1 | -18/+39 |
| | | | | | | | | | | | | | | | | | | | | This reduces the scope of a bunch of variables | ||||
* | | | | | Merge branch 'develop' into travis/admin-list-media | Travis Ralston | 2018-02-01 | 3 | -11/+11 |
|\ \ \ \ \ | | |_|_|/ | |/| | | | |||||
| * | | | | Merge pull request #2837 from matrix-org/rav/fix_quarantine_media | Richard van der Hoff | 2018-02-01 | 1 | -1/+1 |
| |\ \ \ \ | | |/ / / | |/| | | | Fix sql error in quarantine_media | ||||
| | * | | | Fix sql error in quarantine_media | Richard van der Hoff | 2018-01-30 | 1 | -1/+1 |
| | | | | | |||||
| * | | | | Improve exception handling in persist_event | Richard van der Hoff | 2018-01-29 | 1 | -3/+3 |
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. use `deferred.errback()` instead of `deferred.errback(e)`, which means that a Failure object will be constructed using the current exception state, *including* its stack trace - so the stack trace is saved in the Failure, leading to better exception reports. 2. Set `consumeErrors=True` on the ObservableDeferred, because we know that there will always be at least one observer - which avoids a spurious "CRITICAL: unhandled exception in Deferred" error in the logs | ||||
| * / / | Fix SQL for user search | Richard van der Hoff | 2018-01-27 | 1 | -7/+7 |
| |/ / | | | | | | | | | | | | | | | | fix some syntax errors for user search when search_all_users is enabled fixes #2801, hopefully | ||||
* | | | pep8 | Travis Ralston | 2018-01-31 | 1 | -9/+12 |
| | | | | | | | | | Signed-off-by: Travis Ralston <travpc@gmail.com> | ||||
* | | | Documentation and naming | Travis Ralston | 2018-01-31 | 1 | -7/+26 |
| | | | | | | | | | Signed-off-by: Travis Ralston <travpc@gmail.com> | ||||
* | | | Appease the linter | Travis Ralston | 2018-01-20 | 1 | -5/+5 |
| | | | | | | | | | | | | | | | These are ids anyways, not mxc uris. Signed-off-by: Travis Ralston <travpc@gmail.com> | ||||
* | | | Add an admin route to get all the media in a room | Travis Ralston | 2018-01-20 | 1 | -56/+75 |
|/ / | | | | | | | | | This is intended to be used by administrators to monitor the media that is passing through their server, if they wish. Signed-off-by: Travis Ralston <travpc@gmail.com> | ||||
* | | Merge pull request #2805 from matrix-org/rav/log_state_res | Richard van der Hoff | 2018-01-17 | 1 | -0/+6 |
|\ \ | | | | | | | Log room when doing state resolution | ||||
| * | | Log room when doing state resolution | Richard van der Hoff | 2018-01-17 | 1 | -0/+6 |
| | | | | | | | | | | | | Mostly because it helps figure out what is prompting the resolution | ||||
* | | | Merge pull request #2783 from matrix-org/erikj/media_last_accessed | Erik Johnston | 2018-01-17 | 3 | -4/+37 |
|\ \ \ | | | | | | | | | Keep track of last access time for local media | ||||
| * | | | Remove lost comment | Erik Johnston | 2018-01-17 | 1 | -3/+0 |
| | | | | |||||
| * | | | Keep track of last access time for local media | Erik Johnston | 2018-01-17 | 3 | -4/+40 |
| | | | | |||||
* | | | | Merge pull request #2803 from matrix-org/matthew/fix-userdir-sql | Matthew Hodgson | 2018-01-17 | 1 | -2/+7 |
|\ \ \ \ | | | | | | | | | | | fix SQL when searching all users | ||||
| * | | | | fix SQL when searching all users | Matthew Hodgson | 2018-01-17 | 1 | -2/+7 |
| | | | | | |||||
* | | | | | Split resolve_events into two functions | Richard van der Hoff | 2018-01-17 | 1 | -2/+2 |
|/ / / / | | | | | | | | | | | | | ... so that the return type doesn't depend on the arg types | ||||
* | | | | Track DB scheduling delay per-request | Richard van der Hoff | 2018-01-16 | 1 | -1/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | For each request, track the amount of time spent waiting for a db connection. This entails adding it to the LoggingContext and we may as well add metrics for it while we are passing. | ||||
* | | | | rework runInteraction in terms of runConnection | Richard van der Hoff | 2018-01-16 | 1 | -20/+31 |
|/ / / | | | | | | | | | | ... so that we can share the code | ||||
* / / | Fix a logcontext leak in persist_events | Richard van der Hoff | 2018-01-16 | 1 | -1/+8 |
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | ObserveableDeferred expects its callbacks to be called without any logcontexts, whereas it turns out we were calling them with the logcontext of the request which initiated the persistence loop. It seems wrong that we are attributing work done in the persistence loop to the request that happened to initiate it, so let's solve this by dropping the logcontext for it. (I'm not sure this actually causes any real problems other than messages in the debug log, but let's clean it up anyway) | ||||
* / | Remove dead code related to default thumbnails | Erik Johnston | 2018-01-09 | 1 | -3/+0 |
|/ | |||||
* | fix StoreError syntax | Matthew Hodgson | 2017-12-05 | 1 | -1/+1 |
| | |||||
* | fix pep8 and tests | Matthew Hodgson | 2017-12-04 | 1 | -4/+3 |
| | |||||
* | switch to a simpler 'search_all_users' button as per review feedback | Matthew Hodgson | 2017-12-04 | 1 | -24/+16 |
| | |||||
* | Merge branch 'develop' into matthew/search-all-local-users | Matthew Hodgson | 2017-11-30 | 7 | -55/+143 |
|\ | |||||
| * | Remove pushers when deleting access tokens | Richard van der Hoff | 2017-11-29 | 1 | -5/+5 |
| | | | | | | | | | | Whenever an access token is invalidated, we should remove the associated pushers. | ||||
| * | Merge pull request #2697 from matrix-org/rav/fix_urlcache_index_error | Richard van der Hoff | 2017-11-27 | 5 | -14/+82 |
| |\ | | | | | | | Fix error on sqlite 3.7 | ||||
| | * | fix sql fails | Richard van der Hoff | 2017-11-22 | 1 | -1/+1 |
| | | | |||||
| | * | Check database in has_completed_background_updates | Richard van der Hoff | 2017-11-22 | 2 | -11/+32 |
| | | | | | | | | | | | | so that the right thing happens on workers. | ||||
| | * | Fix error on sqlite 3.7 | Richard van der Hoff | 2017-11-21 | 4 | -5/+52 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create the url_cache index on local_media_repository as a background update, so that we can detect whether we are on sqlite or not and create a partial or complete index accordingly. To avoid running the cleanup job before we have built the index, add a bailout which will defer the cleanup if the bg updates are still running. Fixes https://github.com/matrix-org/synapse/issues/2572. | ||||
| * | | Avoid retrying forever on IntegrityError | Richard van der Hoff | 2017-11-27 | 1 | -0/+7 |
| | | | |||||
| * | | Merge pull request #2689 from matrix-org/rav/unlock_account_data_upsert | Richard van der Hoff | 2017-11-21 | 1 | -36/+49 |
| |\ \ | | |/ | |/| | Avoid locking account_data tables for upserts | ||||
| | * | Avoid locking account_data tables for upserts | Richard van der Hoff | 2017-11-16 | 1 | -36/+49 |
| | | | |||||
* | | | remove null constraint on user_dir.room_id | Matthew Hodgson | 2017-11-30 | 1 | -0/+35 |
| | | | |||||
* | | | fix alternation operator for FTS4 - how did this ever work!? | Matthew Hodgson | 2017-11-30 | 1 | -1/+1 |
| | | | |||||
* | | | fix thinkos galore | Matthew Hodgson | 2017-11-30 | 2 | -16/+35 |
| | | | |||||
* | | | untested WIP but might actually work | Matthew Hodgson | 2017-11-29 | 3 | -13/+38 |
| | | | |||||
* | | | Add user_directory_include_pattern config param to expand search results to ↵ | Matthew Hodgson | 2017-11-29 | 1 | -4/+12 |
|/ / | | | | | | | | | | | | | | | | | | | additional users Initial commit; this doesn't work yet - the LIKE filtering seems too aggressive. It also needs _do_initial_spam to be aware of prepopulating the whole user_directory_search table with all users... ...and it needs a handle_user_signup() or something to be added so that new signups get incrementally added to the table too. Committing it here as a WIP | ||||
* / | Avoid locking for upsert on pushers tables | Richard van der Hoff | 2017-11-16 | 2 | -5/+51 |
|/ | | | | | * replace the upsert into deleted_pushers with an insert * no need to lock for upsert on pusher_throttle | ||||
* | Fix broken ref to IntegrityError | Richard van der Hoff | 2017-11-16 | 1 | -1/+1 |
| | |||||
* | Avoid locking `pushers` table on upsert | Richard van der Hoff | 2017-11-16 | 1 | -27/+28 |
| | | | | | Now that _simple_upsert will retry on IntegrityError, we don't need to lock the table. | ||||
* | _simple_upsert: retry on IntegrityError | Richard van der Hoff | 2017-11-16 | 1 | -6/+29 |
| | | | | | | wrap the call to _simple_upsert_txn in a loop so that we retry on an integrityerror: this means we can avoid locking the table provided there is an unique index. | ||||
* | Cleanup in _simple_upsert_txn | Richard van der Hoff | 2017-11-16 | 1 | -16/+17 |
| | | | | Bail out early to reduce indentation | ||||
* | Merge pull request #2661 from matrix-org/rav/statereadstore | Richard van der Hoff | 2017-11-15 | 2 | -216/+231 |
|\ | | | | | Pull out bits of StateStore to a mixin | ||||
| * | Pull out bits of StateStore to a mixin | Richard van der Hoff | 2017-11-14 | 1 | -204/+220 |
| | | | | | | | | | | | | | | | | | | ... so that we don't need to secretly gut-wrench it for use in the slaved stores. I haven't done the other stores yet, but we should. I'm tired of the workers breaking every time we tweak the stores because I forgot to gut-wrench the right method. fixes https://github.com/matrix-org/synapse/issues/2655. | ||||
| * | Revert "Revert "move _state_group_cache to statestore"" | Richard van der Hoff | 2017-11-14 | 2 | -13/+12 |
| | | | | | | | | | | | | | | We're going to fix this properly on this branch, so that the _state_group_cache can end up in StateGroupReadStore. This reverts commit ab335edb023d66cd0be439e045b10ca104b73cb5. | ||||
* | | Merge pull request #2675 from matrix-org/rav/remove_broken_logcontext_funcs | Richard van der Hoff | 2017-11-15 | 1 | -2/+2 |
|\ \ | |/ |/| | Remove preserve_context_over_{fn, deferred} | ||||
| * | Remove preserve_context_over_{fn, deferred} | Richard van der Hoff | 2017-11-14 | 1 | -2/+2 |
| | | | | | | | | | | Both of these functions ae known to leak logcontexts. Replace the remaining calls to them and kill them off. | ||||
* | | Make __init__ consitstent across Store heirarchy | Richard van der Hoff | 2017-11-13 | 16 | -32/+32 |
|/ | | | | | | Add db_conn parameters to the `__init__` methods of the *Store classes, so that they are all consistent, which makes the multiple inheritance work correctly (and so that we can later extract mixins which can be used in the slavedstores) | ||||
* | Revert "move _state_group_cache to statestore" | Erik Johnston | 2017-11-13 | 2 | -12/+13 |
| | | | | This reverts commit f5cf3638e9c6086e1c33ddad8eda9298cf53a58e. | ||||
* | Up cache size of get_global_account_data_by_type_for_user | Erik Johnston | 2017-11-13 | 1 | -1/+1 |
| | |||||
* | Fix typo | Erik Johnston | 2017-11-09 | 1 | -1/+1 |
| | |||||
* | Merge pull request #2656 from matrix-org/rav/fix_deactivate | Richard van der Hoff | 2017-11-09 | 1 | -2/+1 |
|\ | | | | | Fix 'NoneType' not iterable in /deactivate | ||||
| * | Fix 'NoneType' not iterable in /deactivate | Richard van der Hoff | 2017-11-09 | 1 | -2/+1 |
| | | | | | | | | make sure we actually return a value from user_delete_access_tokens | ||||
* | | Have an explicit API to update room config | Erik Johnston | 2017-11-08 | 1 | -0/+13 |
| | | |||||
* | | Revert "Modify group room association API to allow modification of is_public" | Erik Johnston | 2017-11-08 | 1 | -13/+7 |
| | | |||||
* | | Merge pull request #2637 from spantaleev/avoid-noop-media-deletes | Erik Johnston | 2017-11-08 | 1 | -0/+6 |
|\ \ | | | | | | | Avoid no-op media deletes | ||||
| * | | Avoid no-op media deletes | Slavi Pantaleev | 2017-11-04 | 1 | -0/+6 |
| | | | | | | | | | | | | | | | | | | | | | | | | If there are no media entries to delete, avoid creating transactions, prepared statements and unnecessary log entries. Signed-off-by: Slavi Pantaleev <slavi@devture.com> | ||||
* | | | Merge pull request #2649 from matrix-org/rav/fix_delta_on_state_res | Richard van der Hoff | 2017-11-08 | 2 | -13/+12 |
|\ \ \ | | | | | | | | | Fix bug in state group storage | ||||
| * | | | move _state_group_cache to statestore | Richard van der Hoff | 2017-11-07 | 2 | -13/+12 |
| | |/ | |/| | | | | | | | this is internal to statestore, so let's keep it there. | ||||
* | | | Merge pull request #2643 from matrix-org/matthew/user_dir_typos | Matthew Hodgson | 2017-11-07 | 4 | -12/+36 |
|\ \ \ | |/ / |/| | | Fix various embarrassing typos around user_directory and add some doc. | ||||
| * | | create new indexes before dropping old ones to keep safetynet in place | Matthew Hodgson | 2017-11-07 | 1 | -2/+4 |
| | | | |||||
| * | | s/users_in_pubic_room/users_in_public_rooms/g | Matthew Hodgson | 2017-11-04 | 1 | -2/+2 |
| | | | |||||
| * | | s/users_in_pubic_room/users_in_public_rooms/g | Matthew Hodgson | 2017-11-04 | 2 | -10/+32 |
| | | | |||||
| * | | fix copyright.... | Matthew Hodgson | 2017-11-04 | 1 | -1/+1 |
| | | |