Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge pull request #1021 from matrix-org/erikj/mediasecurity_policy | Erik Johnston | 2016-08-17 | 1 | -0/+1 |
|\ | | | | | Set `Content-Security-Policy` on media repo | ||||
| * | Set `Content-Security-Policy` on media repo | Erik Johnston | 2016-08-17 | 1 | -0/+1 |
| | | | | | | | | | | This is to inform browsers that they should sandbox the returned media. This is particularly cruical for javascript/HTML files. | ||||
* | | Merge pull request #1011 from matrix-org/dbkr/contains_display_name_override | David Baker | 2016-08-17 | 2 | -16/+37 |
|\ \ | |/ |/| | Move display name rule | ||||
| * | Empty commit to trigger re-test | David Baker | 2016-08-17 | 0 | -0/+0 |
| | | |||||
| * | Add migration script | David Baker | 2016-08-16 | 1 | -0/+17 |
| | | | | | | | | To port existing rule actions & enable entries to the new name | ||||
| * | Merge remote-tracking branch 'origin/develop' into ↵ | David Baker | 2016-08-16 | 11 | -212/+324 |
| |\ | | | | | | | | | | dbkr/contains_display_name_override | ||||
| * | | s/underride/override/ in the rule_id too | David Baker | 2016-08-16 | 1 | -1/+1 |
| | | | |||||
| * | | Move display name rule | David Baker | 2016-08-15 | 1 | -16/+20 |
| | | | | | | | | | | | | As per https://github.com/matrix-org/matrix-doc/pull/373 and comment | ||||
* | | | Add None check to _iterate_over_text | Erik Johnston | 2016-08-17 | 1 | -1/+1 |
| | | | |||||
* | | | Change name of metric | Matrix | 2016-08-17 | 1 | -1/+1 |
| | | | |||||
* | | | Move Measure block inside loop | Erik Johnston | 2016-08-17 | 1 | -9/+9 |
| | | | |||||
* | | | Merge pull request #1019 from matrix-org/erikj/appservice_clean | Erik Johnston | 2016-08-17 | 2 | -32/+31 |
|\ \ \ | | | | | | | | | Clean up _ServiceQueuer | ||||
| * | | | Clean up _ServiceQueuer | Erik Johnston | 2016-08-17 | 2 | -32/+31 |
| | | | | |||||
* | | | | Merge pull request #1018 from matrix-org/erikj/dead_appservice | Erik Johnston | 2016-08-17 | 1 | -39/+2 |
|\ \ \ \ | |/ / / |/| | | | Remove dead appservice code | ||||
| * | | | Remove dead appservice code | Erik Johnston | 2016-08-17 | 1 | -39/+2 |
|/ / / | |||||
* | | | Merge pull request #1017 from matrix-org/erikj/appservice_measure | Erik Johnston | 2016-08-17 | 2 | -19/+24 |
|\ \ \ | | | | | | | | | Measure notify_interested_services | ||||
| * | | | Update unit tests | Erik Johnston | 2016-08-17 | 1 | -0/+2 |
| | | | | |||||
| * | | | Measure notify_interested_services | Erik Johnston | 2016-08-17 | 1 | -19/+22 |
| | | | | |||||
* | | | | Merge pull request #1016 from matrix-org/erikj/short_circuit_cache | Erik Johnston | 2016-08-17 | 1 | -0/+3 |
|\| | | | |_|/ |/| | | Don't update caches replication stream if tokens haven't advanced | ||||
| * | | Do it in storage function | Erik Johnston | 2016-08-16 | 2 | -1/+4 |
| | | | |||||
| * | | Don't update caches replication stream if tokens haven't advanced | Erik Johnston | 2016-08-16 | 1 | -1/+1 |
|/ / | |||||
* | | Merge pull request #1015 from matrix-org/erikj/preview_url_fixes | Erik Johnston | 2016-08-16 | 3 | -160/+275 |
|\ \ | | | | | | | Fix up preview URL API. Add tests. | ||||
| * | | Add lxml to jenkins-unittests.sh | Erik Johnston | 2016-08-16 | 1 | -0/+1 |
| | | | |||||
| * | | Flake8 | Erik Johnston | 2016-08-16 | 1 | -4/+1 |
| | | | |||||
| * | | Fix up preview URL API. Add tests. | Erik Johnston | 2016-08-16 | 2 | -158/+275 |
|/ / | | | | | | | | | | | | | | | | | This includes: - Splitting out methods of a class into stand alone functions, to make them easier to test. - Adding unit tests to split out functions, testing HTML -> preview. - Handle the fact that elements in lxml may have tail text. | ||||
* | | Merge pull request #1012 from matrix-org/erikj/limit_backfill_uri | Erik Johnston | 2016-08-16 | 1 | -4/+5 |
|\ \ | | | | | | | Limit number of extremeties in backfill request | ||||
| * | | Limit number of extremeties in backfill request | Erik Johnston | 2016-08-16 | 1 | -4/+5 |
| | | | | | | | | | | | | | | | This works around a bug where if we make a backfill request with too many extremeties it causes the request URI to be too long. | ||||
* | | | Merge pull request #1010 from matrix-org/erikj/refactor_deletions | Erik Johnston | 2016-08-16 | 6 | -47/+42 |
|\ \ \ | |/ / |/| | | Refactor user_delete_access_tokens. Invalidate get_user_by_access_token to slaves. | ||||
| * | | Use cached get_user_by_access_token in slaves | Erik Johnston | 2016-08-16 | 3 | -2/+3 |
| | | | |||||
| * | | Refactor user_delete_access_tokens. Invalidate get_user_by_access_token to ↵ | Erik Johnston | 2016-08-15 | 3 | -45/+39 |
| |/ | | | | | | | slaves. | ||||
* | | Merge branch 'fix_integrity_retry' of https://github.com/Ralith/synapse into ↵ | Erik Johnston | 2016-08-16 | 1 | -1/+2 |
|\ \ | |/ |/| | | | Ralith-fix_integrity_retry | ||||
| * | Add missing database corruption recovery case | Benjamin Saunders | 2016-08-14 | 1 | -1/+2 |
| | | | | | | | | Signed-off-by: Benjamin Saunders <ben.e.saunders@gmail.com> | ||||
* | | Merge pull request #1009 from matrix-org/erikj/event_split | Erik Johnston | 2016-08-15 | 24 | -92/+367 |
|\ \ | | | | | | | Split out /events to synchrotron | ||||
| * | | Doc get_next() context manager usage | Erik Johnston | 2016-08-15 | 1 | -0/+4 |
| | | | |||||
| * | | Rename table. Add docs. | Erik Johnston | 2016-08-15 | 4 | -6/+16 |
| | | | |||||
| * | | Remove broken cache stuff | Erik Johnston | 2016-08-15 | 2 | -21/+0 |
| | | | |||||
| * | | Use cached version of get_aliases_for_room | Erik Johnston | 2016-08-15 | 1 | -1/+1 |
| | | | |||||
| * | | Implement cache replication stream | Erik Johnston | 2016-08-15 | 5 | -30/+92 |
| | | | |||||
| * | | Add some invalidations to a cache_stream | Erik Johnston | 2016-08-15 | 7 | -31/+117 |
| | | | |||||
| * | | Always run txn.after_callbacks | Erik Johnston | 2016-08-15 | 1 | -7/+8 |
| | | | |||||
| * | | Make synchrotron accept /events | Erik Johnston | 2016-08-12 | 5 | -18/+66 |
| | | | |||||
| * | | Dont invoke get_handlers fromClientV1RestServlet | Erik Johnston | 2016-08-12 | 9 | -1/+86 |
| | | | | | | | | | | | | | | | | | | hs.get_handlers() can not be invoked from split out processes. Moving the invocations down a level means that we can slowly split out individual servlets. | ||||
* | | | Merge pull request #1007 from sargon/develop | Erik Johnston | 2016-08-14 | 1 | -2/+2 |
|\ \ \ | | | | | | | | | Fix some bugs in the auth/ldap handler | ||||
| * | | | Log the value which is observed in the first place. | Daniel Ehlers | 2016-08-14 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The name 'result' is of bool type and has no len property, resulting in a TypeError. Futhermore in the flow control conn.response is observed and hence should be reported. Signed-off-by: Daniel Ehlers <sargon@toppoint.de> | ||||
| * | | | Fix AttributeError when bind_dn is not defined. | Daniel Ehlers | 2016-08-14 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case one does not define bind_dn in ldap configuration, filter attribute is not declared. Since auth code only uses ldap_filter attribute when according LDAP mode is selected, it is safe to only declare the attribute in that case. Signed-off-by: Daniel Ehlers <sargon@toppoint.de> | ||||
* | | | | Merge pull request #1005 from matrix-org/erikj/linearize_joins | Erik Johnston | 2016-08-12 | 1 | -1/+1 |
|\| | | | |/ / |/| | | Only process one local membership event per room at a time | ||||
| * | | Only process one local membership event per room at a time | Erik Johnston | 2016-08-12 | 1 | -1/+1 |
|/ / | |||||
* | | Merge pull request #997 from Half-Shot/develop | Erik Johnston | 2016-08-11 | 3 | -5/+8 |
|\ \ | | | | | | | Don't change status_msg on /sync | ||||
| * | | Synced up synchrotron set_state with PresenceHandler set_state | Will Hunt | 2016-08-11 | 1 | -1/+1 |
| | | | |||||
| * | | Don't change status_msg on /sync | Will Hunt | 2016-08-10 | 2 | -4/+7 |
| | | | |||||
* | | | Merge pull request #1003 from matrix-org/erikj/redaction_prev_content | Erik Johnston | 2016-08-11 | 1 | -0/+2 |
|\ \ \ | | | | | | | | | Include prev_content in redacted state events | ||||
| * | | | Include prev_content in redacted state events | Erik Johnston | 2016-08-11 | 1 | -0/+2 |
|/ / / | |||||
* | | | Merge pull request #1000 from matrix-org/erikj/contexts | Erik Johnston | 2016-08-11 | 4 | -221/+164 |
|\ \ \ | | | | | | | | | Clean up TransactionQueue | ||||
| * | | | PEP8 | Erik Johnston | 2016-08-10 | 1 | -1/+3 |
| | | | | |||||
| * | | | Clean up TransactionQueue | Erik Johnston | 2016-08-10 | 4 | -221/+162 |
|/ / / | |||||
* | | | Merge pull request #999 from matrix-org/erikj/measure_more | Erik Johnston | 2016-08-10 | 2 | -5/+21 |
|\ \ \ | | | | | | | | | Measure federation send transaction resources | ||||
| * | | | Measure federation send transaction resources | Erik Johnston | 2016-08-10 | 2 | -5/+21 |
| |/ / | |||||
* | | | Merge pull request #998 from matrix-org/erikj/pdu_fail_cache | Erik Johnston | 2016-08-10 | 2 | -21/+53 |
|\ \ \ | |/ / |/| | | Various federation /event/ improvements | ||||
| * | | Don't stop on 4xx series errors | Erik Johnston | 2016-08-10 | 1 | -11/+1 |
| | | | |||||
| * | | Also check if server is in the room | Erik Johnston | 2016-08-10 | 1 | -2/+7 |
| | | | |||||
| * | | Also pull out rejected events | Erik Johnston | 2016-08-10 | 1 | -1/+1 |
| | | | |||||
| * | | Correctly auth /event/ requests | Erik Johnston | 2016-08-10 | 1 | -5/+6 |
| | | | |||||
| * | | Only resign our own events | Erik Johnston | 2016-08-10 | 1 | -9/+10 |
| | | | |||||
| * | | Store if we fail to fetch an event from a destination | Erik Johnston | 2016-08-10 | 1 | -1/+36 |
|/ / | |||||
* | | Merge pull request #996 from matrix-org/erikj/tls_error | Erik Johnston | 2016-08-10 | 2 | -13/+19 |
|\ \ | | | | | | | Don't print stack traces when failing to get remote keys | ||||
| * | | Don't print stack traces when failing to get remote keys | Erik Johnston | 2016-08-10 | 2 | -13/+19 |
| | | | |||||
* | | | /login: Respond with a 403 when we get an invalid m.login.token | Richard van der Hoff | 2016-08-09 | 1 | -3/+3 |
|/ / | |||||
* | | Merge pull request #995 from matrix-org/rav/clean_up_cas_login | David Baker | 2016-08-09 | 1 | -125/+33 |
|\ \ | | | | | | | Clean up CAS login code | ||||
| * | | Clean up CAS login code | Richard van der Hoff | 2016-08-08 | 1 | -125/+33 |
| |/ | | | | | | | | | | | | | Remove some apparently unused code. Clean up parse_cas_response, mostly to catch the exception if the CAS response isn't valid XML. | ||||
* | | Merge pull request #994 from matrix-org/rav/fix_cas_login | David Baker | 2016-08-08 | 1 | -0/+1 |
|\ \ | | | | | | | Fix CAS login | ||||
| * | | Fix CAS login | Richard van der Hoff | 2016-08-08 | 1 | -0/+1 |
| |/ | | | | | | | Attempting to log in with CAS was giving a 500 error. | ||||
* | | Merge pull request #993 from matrix-org/rav/fix_token_login | Richard van der Hoff | 2016-08-08 | 4 | -31/+87 |
|\ \ | |/ |/| | Fix token login | ||||
| * | PEP8 | Richard van der Hoff | 2016-08-08 | 1 | -0/+1 |
| | | |||||
| * | Fix login with m.login.token | Richard van der Hoff | 2016-08-08 | 4 | -32/+87 |
| | | | | | | | | | | login with token (as used by CAS auth) was broken by 067596d, such that it always returned a 401. | ||||
* | | Merge branch 'release-v0.17.0' of github.com:matrix-org/synapse v0.17.0 | Erik Johnston | 2016-08-08 | 136 | -1642/+5931 |
|\ \ | |||||
| * | | Capatailize HTML | Erik Johnston | 2016-08-08 | 1 | -1/+1 |
| | | | |||||
| * | | Be bolder | Erik Johnston | 2016-08-08 | 1 | -1/+1 |
| | | | |||||
| * | | Update changelog | Erik Johnston | 2016-08-08 | 1 | -3/+7 |
| | | | |||||
| * | | Update changelog | Erik Johnston | 2016-08-08 | 1 | -1/+1 |
| | | | |||||
| * | | Bump changelog and version | Erik Johnston | 2016-08-08 | 2 | -1/+16 |
| | | | |||||
| * | | Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.17.0 | Erik Johnston | 2016-08-08 | 13 | -68/+124 |
| |\| | |||||
| | * | Merge pull request #992 from matrix-org/erikj/psutil_conditional | Erik Johnston | 2016-08-08 | 3 | -6/+16 |
| | |\ | | | | | | | | | Make psutil optional | ||||
| | | * | Make psutil optional | Erik Johnston | 2016-08-08 | 3 | -6/+16 |
| | |/ | |||||
| | * | Merge pull request #991 from matrix-org/erikj/retry_make | Erik Johnston | 2016-08-05 | 1 | -11/+24 |
| | |\ | | | | | | | | | Retry joining via other servers if first one failed. Fix some other bugs. | ||||
| | | * | Fix a couple of python bugs | Erik Johnston | 2016-08-05 | 1 | -6/+8 |
| | | | | |||||
| | | * | Retry joining via other servers if first one failed | Erik Johnston | 2016-08-05 | 1 | -5/+16 |
| | | | | |||||
| | * | | Merge pull request #990 from matrix-org/erikj/fed_vers | Erik Johnston | 2016-08-05 | 6 | -49/+80 |
| | |\ \ | | | |/ | | |/| | Add federation /version API | ||||
| | | * | Add federation /version API | Erik Johnston | 2016-08-05 | 6 | -9/+25 |
| | | | | |||||
| | | * | Change the way we specify if we require auth or not | Erik Johnston | 2016-08-05 | 1 | -40/+55 |
| | | | | |||||
| | * | | Print newline after result in federation_client script | Erik Johnston | 2016-08-05 | 1 | -0/+1 |
| | | | | |||||
| | * | | Merge pull request #989 from matrix-org/erikj/raise_404 | Erik Johnston | 2016-08-05 | 1 | -1/+1 |
| | |\ \ | | | | | | | | | | | Raise 404 when couldn't find event | ||||
| | | * | | Raise 404 when couldn't find event | Erik Johnston | 2016-08-05 | 1 | -1/+1 |
| | | |/ | |||||
| | * | | Merge pull request #988 from matrix-org/erikj/ignore_comments_preview | Erik Johnston | 2016-08-05 | 1 | -1/+2 |
| | |\ \ | | | |/ | | |/| | Don't include html comments in description | ||||
| | | * | Don't include html comments in description | Erik Johnston | 2016-08-05 | 1 | -1/+2 |
| | |/ | |||||
| * | | Update changelog v0.17.0-rc4 | Erik Johnston | 2016-08-05 | 1 | -2/+2 |
| | | | |||||
| * | | Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.17.0 | Erik Johnston | 2016-08-05 | 1 | -21/+50 |
| |\| | |||||
| | * | Merge pull request #987 from matrix-org/erikj/fix_backfill_auth | Erik Johnston | 2016-08-05 | 1 | -21/+50 |
| | |\ | | | | | | | | | Fix backfill auth events | ||||
| | | * | Fix backfill auth events | Erik Johnston | 2016-08-05 | 1 | -21/+50 |
| | |/ | |||||
| * | | Bump version and changelog | Erik Johnston | 2016-08-05 | 2 | -1/+17 |
| | | | |||||
| * | | Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.17.0 | Erik Johnston | 2016-08-05 | 25 | -369/+1070 |
| |\| | |||||
| | * | Merge pull request #986 from matrix-org/erikj/state | Erik Johnston | 2016-08-05 | 1 | -2/+16 |
| | |\ | | | | | | | | | Check if we already have the events returned by /state/ | ||||
| | | * | Fix typo | Erik Johnston | 2016-08-05 | 1 | -1/+1 |
| | | | | |||||
| | | * | Check if we already have the events returned by /state/ | Erik Johnston | 2016-08-05 | 1 | -2/+16 |
| | | | | |||||
| | * | | Merge pull request #985 from matrix-org/erikj/fix_integrity_retry | Erik Johnston | 2016-08-05 | 2 | -1/+9 |
| | |\| | | | | | | | | | Tweak integrity error recovery to work as intended | ||||
| | | * | Delete more tables | Erik Johnston | 2016-08-05 | 1 | -0/+5 |
| | | | | |||||
| | | * | Fallback to /state/ on both 400 and 404 | Erik Johnston | 2016-08-05 | 1 | -1/+1 |
| | | | | |||||
| | | * | Tweak integrity error recovery to work as intended | Benjamin Saunders | 2016-08-04 | 2 | -1/+4 |
| | |/ | |||||
| | * | Merge pull request #973 from matrix-org/erikj/xpath_fix | Erik Johnston | 2016-08-04 | 2 | -14/+211 |
| | |\ | | | | | | | | | Change the way we summarize URLs | ||||
| | | * | Typo | Erik Johnston | 2016-08-04 | 1 | -1/+1 |
| | | | | |||||
| | | * | Test summarization | Erik Johnston | 2016-08-04 | 2 | -52/+193 |
| | | | | |||||
| | | * | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/xpath_fix | Erik Johnston | 2016-08-04 | 23 | -349/+769 |
| | | |\ | |||||
| | | * | | Don't infer paragrahs from newlines | Erik Johnston | 2016-08-02 | 1 | -2/+1 |
| | | | | | |||||
| | | * | | Comment on why we clone | Erik Johnston | 2016-08-02 | 1 | -0/+1 |
| | | | | | |||||
| | | * | | Spelling. | Erik Johnston | 2016-08-02 | 1 | -3/+3 |
| | | | | | |||||
| | | * | | Make it actually compile | Erik Johnston | 2016-08-02 | 1 | -1/+1 |
| | | | | | |||||
| | | * | | Change the way we summarize URLs | Erik Johnston | 2016-08-02 | 1 | -11/+67 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using XPath is slow on some machines (for unknown reasons), so use a different approach to get a list of text nodes. Try to generate a summary that respect paragraph and then word boundaries, adding ellipses when appropriate. | ||||
| | * | | | Merge pull request #983 from matrix-org/erikj/retry_on_integrity_error | Erik Johnston | 2016-08-04 | 1 | -4/+66 |
| | |\ \ \ | | | |_|/ | | |/| | | Retry event persistence on IntegrityError | ||||
| | | * | | Fix typo | Erik Johnston | 2016-08-04 | 1 | -3/+4 |
| | | | | | |||||
| | | * | | Retry event persistence on IntegrityError | Erik Johnston | 2016-08-04 | 1 | -4/+65 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to a bug in the porting script some backfilled events were not correctly persisted, causing irrecoverable IntegrityErrors on future attempts to persist those events. This commit adds a retry mechanism invoked upon IntegrityError, where when retried the tables are purged for all references to the events being persisted. | ||||
| | * | | | Merge pull request #979 from matrix-org/erikj/state_ids_api | Erik Johnston | 2016-08-04 | 4 | -1/+151 |
| | |\ \ \ | | | |/ / | | |/| | | Add /state_ids federation API | ||||
| | | * | | Fix typos. | Erik Johnston | 2016-08-04 | 1 | -3/+3 |
| | | | | | |||||
| | | * | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/state_ids_api | Erik Johnston | 2016-08-04 | 18 | -305/+572 |
| | | |\ \ | | | |/ / | | |/| | | |||||
| | * | | | Merge pull request #982 from matrix-org/erikj/fix_port_script | Erik Johnston | 2016-08-04 | 1 | -43/+132 |
| | |\ \ \ | | | | | | | | | | | | | Port script: Handle the fact that some tables have negative rowid rows | ||||
| | | * | | | Allow upgrading from old port_from_sqlite3 format | Erik Johnston | 2016-08-04 | 1 | -0/+21 |
| | | | | | | |||||
| | | * | | | Handle the fact that some tables have negative rowid rows | Erik Johnston | 2016-08-04 | 1 | -43/+111 |
| | | | | | | |||||
| | * | | | | Merge pull request #981 from matrix-org/rav/omit_device_displayname_if_null | Richard van der Hoff | 2016-08-04 | 1 | -3/+4 |
| | |\ \ \ \ | | | | | | | | | | | | | | | keys/query: Omit device displayname if null | ||||
| | | * | | | | keys/query: Omit device displayname if null | Richard van der Hoff | 2016-08-04 | 1 | -3/+4 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... which makes it more consistent with user displaynames. | ||||
| | * | | | | | Factor out more common code from the jenkins scripts (#980) | Mark Haines | 2016-08-04 | 4 | -138/+44 |
| | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Factor out more common code from the jenkins scripts * Fix install_and_run path * Poke jenkins * Poke jenkins | ||||
| | * | | | | Merge pull request #978 from matrix-org/rav/device_name_in_e2e_devices | Richard van der Hoff | 2016-08-03 | 3 | -20/+141 |
| | |\ \ \ \ | | | | | | | | | | | | | | | Include device name in /keys/query response | ||||
| | | * | | | | PEP8 | Richard van der Hoff | 2016-08-03 | 2 | -12/+10 |
| | | | | | | | |||||
| | | * | | | | Include device name in /keys/query response | Richard van der Hoff | 2016-08-03 | 3 | -20/+143 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an 'unsigned' section which includes the device display name. | ||||
| | * | | | | | Merge pull request #977 from matrix-org/rav/return_all_devices | Richard van der Hoff | 2016-08-03 | 2 | -3/+52 |
| | |\| | | | | | | |/ / / | | |/| | | | keys/query: return all users which were asked for | ||||
| | | * | | | keys/query: return all users which were asked for | Richard van der Hoff | 2016-08-03 | 2 | -3/+52 |
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | In the situation where all of a user's devices get deleted, we want to indicate this to a client, so we want to return an empty dictionary, rather than nothing at all. | ||||
| | * | | | Merge branch 'rav/null_default_device_displayname' into develop | Richard van der Hoff | 2016-08-03 | 4 | -5/+23 |
| | |\ \ \ | |||||
| | | * | | | PEP8 | Richard van der Hoff | 2016-08-03 | 1 | -1/+1 |
| | | | | | | |||||
| | | * | | | Default device_display_name to null | Richard van der Hoff | 2016-08-03 | 4 | -5/+23 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It turns out that it's more useful to return a null device display name (and let clients decide how to handle it: eg, falling back to device_id) than using a constant string like "unknown device". | ||||
| | * | | | | Merge branch 'rav/refactor_device_query' into develop | Richard van der Hoff | 2016-08-03 | 6 | -82/+167 |
| | |\ \ \ \ | |||||
| | | * | | | | E2eKeysHandler: minor tweaks | Richard van der Hoff | 2016-08-03 | 1 | -5/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR feedback | ||||
| | | * | | | | Merge branch 'develop' into rav/refactor_device_query | Mark Haines | 2016-08-03 | 22 | -139/+507 |
| | | |\| | | | |||||
| | | * | | | | E2E keys: Make federation query share code with client query | Richard van der Hoff | 2016-08-02 | 3 | -47/+92 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor the e2e query handler to separate out the local query, and then make the federation handler use it. | ||||
| | | * | | | | Move e2e query logic into a handler | Richard van der Hoff | 2016-08-01 | 4 | -60/+102 |
| | | | | | | | |||||
| | * | | | | | Merge pull request #975 from matrix-org/erikj/multi_event_persist | Erik Johnston | 2016-08-03 | 1 | -20/+18 |
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | Ensure we only persist an event once at a time | ||||
| | | * | | | | | Remove other bit of deduplication | Erik Johnston | 2016-08-03 | 1 | -19/+0 |
| | | | | | | | | |||||
| | | * | | | | | Ensure we only persist an event once at a time | Erik Johnston | 2016-08-03 | 1 | -1/+18 |
| | | | |_|_|/ | | | |/| | | | |||||
| | | | | | * | Tidy up get_events | Erik Johnston | 2016-08-04 | 1 | -12/+10 |
| | | | | | | | |||||
| | | | | | * | Rename fields to _ids | Erik Johnston | 2016-08-03 | 2 | -4/+4 |
| | | | | | | | |||||
| | | | | | * | Fix copy + paste fails | Erik Johnston | 2016-08-03 | 2 | -6/+11 |
| | | | | | | | |||||
| | | | | | * | Actually call get_room_state | Erik Johnston | 2016-08-03 | 1 | -0/+4 |
| | | | | | | | |||||
| | | | | | * | Fix syntax error | Erik Johnston | 2016-08-03 | 1 | -1/+8 |
| | | | | | | | |||||
| | | | | | * | Comment | Erik Johnston | 2016-08-03 | 1 | -0/+14 |
| | | | | | | | |||||
| | | | | | * | Add /state_ids federation API | Erik Johnston | 2016-08-03 | 4 | -3/+125 |
| | | |_|_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | The new API only returns the event_ids for the state, as most requesters will already have the vast majority of the events already. | ||||
| | * | | | | Print status code in federation_client.py | Erik Johnston | 2016-08-03 | 1 | -0/+1 |
| | | |_|/ | | |/| | | |||||
| | * | | | Factor out some of the code shared between the sytest scripts (#974) | Mark Haines | 2016-08-02 | 6 | -69/+71 |
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Factor out some of the code shared between the different sytest jenkins scripts * Exclude jenkins from the MANIFEST * Fix dendron build * Missing new line * Poke jenkins * Export the PORT_BASE and PORT_COUNT * Poke jenkins | ||||
| * | | | Bump version and changelog v0.17.0-rc3 | Erik Johnston | 2016-08-02 | 2 | -2/+8 |
| | | | | |||||
| * | | | Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.17.0 | Erik Johnston | 2016-08-02 | 27 | -122/+745 |
| |\| | | |||||
| | * | | Merge pull request #971 from matrix-org/erikj/fed_state | Erik Johnston | 2016-08-02 | 1 | -3/+3 |
| | |\ \ | | | | | | | | | | | Fix response cache | ||||
| | | * | | Don't double wrap 200 | Erik Johnston | 2016-08-02 | 1 | -2/+2 |
| | | | | | |||||
| | | * | | Fix response cache | Erik Johnston | 2016-08-02 | 1 | -1/+1 |
| | |/ / | |||||
| | * | | Merge pull request #940 from matrix-org/erikj/fed_state_cache | Erik Johnston | 2016-08-02 | 5 | -32/+60 |
| | |\ \ | | | | | | | | | | | Cache federation state responses | ||||
| | | * | | Cache federation state responses | Erik Johnston | 2016-07-21 | 5 | -32/+60 |
| | | | | | |||||
| | * | | | Print authorization header for federation_client.py | Erik Johnston | 2016-08-02 | 1 | -5/+6 |
| | | | | | |||||
| | * | | | Merge pull request #967 from matrix-org/erikj/fed_reader | Erik Johnston | 2016-08-02 | 10 | -24/+350 |
| | |\ \ \ | | | | | | | | | | | | | Split out the federation reading portions into a separate. | ||||
| | | * | | | Change default jenkins port base and count | Erik Johnston | 2016-08-02 | 3 | -6/+7 |
| | | | | | | |||||
| | | * | | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/fed_reader | Erik Johnston | 2016-08-02 | 4 | -4/+24 |
| | | |\ \ \ | |||||
| | | * | | | | Make jenkins dendron test federation read apis | Erik Johnston | 2016-07-29 | 1 | -0/+1 |
| | | | | | | | |||||
| | | * | | | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/fed_reader | Erik Johnston | 2016-07-29 | 1 | -4/+31 |
| | | |\ \ \ \ | |||||
| | | * \ \ \ \ | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/fed_reader | Erik Johnston | 2016-07-29 | 54 | -345/+1250 |
| | | |\ \ \ \ \ | |||||
| | | * | | | | | | Add destination retry to slave store | Erik Johnston | 2016-07-28 | 2 | -0/+32 |
| | | | | | | | | | |||||
| | | * | | | | | | Add slace storage functions for public room list | Erik Johnston | 2016-07-28 | 3 | -0/+48 |
| | | | | | | | | | |||||
| | | * | | | | | | Add get_auth_chain to slave store | Erik Johnston | 2016-07-28 | 1 | -0/+4 |
| | | | | | | | | | |||||
| | | * | | | | | | Add more key storage funcs into slave store | Erik Johnston | 2016-07-28 | 2 | -24/+26 |
| | | | | | | | | | |||||
| | | * | | | | | | Split out a FederationReader process | Erik Johnston | 2016-07-21 | 4 | -0/+238 |
| | | | | | | | | | |||||
| | * | | | | | | | Merge pull request #968 from matrix-org/dbkr/fix_add_email_on_register | David Baker | 2016-08-02 | 1 | -9/+7 |
| | |\ \ \ \ \ \ \ | | | |_|_|_|/ / / | | |/| | | | | | | Fix adding emails on registration | ||||
| | | * | | | | | | Merge branch 'develop' into dbkr/fix_add_email_on_register | Mark Haines | 2016-08-02 | 4 | -4/+24 |
| | | |\ \ \ \ \ \ | | | |/ / / / / / | | |/| | | | | | | |||||
| | * | | | | | | | Merge pull request #970 from matrix-org/erikj/clock | Erik Johnston | 2016-08-02 | 2 | -3/+16 |
| | |\ \ \ \ \ \ \ | | | |_|_|_|_|_|/ | | |/| | | | | | | Ignore AlreadyCalled errors on timer cancel | ||||
| | | * | | | | | | Ignore AlreadyCalled errors on timer cancel | Erik Johnston | 2016-07-31 | 2 | -3/+16 |
| | | | | | | | | | |||||
| | * | | | | | | | missing --upgrade | Matthew Hodgson | 2016-08-01 | 1 | -1/+1 |
| | |/ / / / / / | |||||
| | * | | | | | | Merge pull request #958 from matrix-org/paul/SYN-738 | Paul Evans | 2016-07-29 | 1 | -0/+7 |
| | |\ \ \ \ \ \ | | | |_|_|_|/ / | | |/| | | | | | Forbid non-ASes from registering users whose names begin with '_' | ||||
| | | * | | | | | Forbid non-ASes from registering users whose names begin with '_' (SYN-738) | Paul "LeoNerd" Evans | 2016-07-27 | 1 | -0/+7 |
| | | | | | | | | |||||
| | | | * | | | | Fix adding emails on registration | David Baker | 2016-07-29 | 1 | -9/+7 |
| | | |/ / / / | | |/| | | | | | | | | | | | | | | | | | | Synapse was not adding email addresses to accounts registered with an email address, due to too many different variables called 'result'. Rename both of them. Also remove the defer.returnValue() with no params because that's not a thing. | ||||
| | * | | | | | Merge pull request #964 from matrix-org/erikj/fed_join_fix | Erik Johnston | 2016-07-29 | 1 | -4/+31 |
| | |\ \ \ \ \ | | | |_|_|/ / | | |/| | | | | Handle the case of missing auth events when joining a room | ||||
| | | * | | | | Mention that func will fetch auth events | Erik Johnston | 2016-07-29 | 1 | -0/+2 |
| | | | | | | | |||||
| | | * | | | | Update docstring | Erik Johnston | 2016-07-29 | 1 | -0/+6 |
| | | | | | | | |||||
| | | * | | | | Handle the case of missing auth events when joining a room | Erik Johnston | 2016-07-28 | 1 | -4/+23 |
| | | | | | | | |||||
| | * | | | | | Merge pull request #966 from matrix-org/markjh/fix_push | Mark Haines | 2016-07-29 | 5 | -52/+205 |
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | Create separate methods for getting messages to push | ||||
| | | * | | | | | Fix SQL to supply arguments in the same order | Mark Haines | 2016-07-29 | 1 | -1/+1 |
| | | | | | | | | |||||
| | | * | | | | | Create separate methods for getting messages to push | Mark Haines | 2016-07-28 | 5 | -51/+204 |
| | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for the email and http pushers rather than trying to make a single method that will work with their conflicting requirements. The http pusher needs to get the messages in ascending stream order, and doesn't want to miss a message. The email pusher needs to get the messages in descending timestamp order, and doesn't mind if it misses messages. | ||||
| | * | | | | | Merge pull request #965 from matrix-org/kegan/comment-push-actions-fn | Kegsay | 2016-07-28 | 1 | -2/+26 |
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | Comment get_unread_push_actions_for_user_in_range function | ||||
| | | * | | | | | Comment get_unread_push_actions_for_user_in_range function | Kegan Dougal | 2016-07-28 | 1 | -2/+26 |
| | |/ / / / / | |||||
| | * | | | | | Merge pull request #963 from matrix-org/erikj/admin_docs | Erik Johnston | 2016-07-28 | 3 | -0/+46 |
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | Add some basic admin API docs | ||||
| | | * | | | | | Use correct path | Erik Johnston | 2016-07-28 | 1 | -1/+1 |
| | | | | | | | | |||||
| | | * | | | | | Add some basic admin API docs | Erik Johnston | 2016-07-28 | 3 | -0/+46 |
| | | |/ / / / | |||||
| | * | | | | | Merge branch 'release-v0.17.0' of github.com:matrix-org/synapse into develop | Erik Johnston | 2016-07-28 | 2 | -1/+65 |
| | |\| | | | | |||||
| | * | | | | | Merge pull request #962 from matrix-org/markjh/retry | Mark Haines | 2016-07-28 | 1 | -1/+1 |
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | Fix retry utils to check if the exception is a subclass of CME | ||||
| | | * | | | | | Fix retry utils to check if the exception is a subclass of CME | Mark Haines | 2016-07-28 | 1 | -1/+1 |
| | | | | | | | | |||||
| | * | | | | | | Merge pull request #941 from matrix-org/erikj/key_client_fix | Erik Johnston | 2016-07-28 | 1 | -3/+9 |
| | |\ \ \ \ \ \ | | | |/ / / / / | | |/| | | | | | Send the correct host header when fetching keys | ||||
| * | | | | | | | Typo v0.17.0-rc2 | Erik Johnston | 2016-08-02 | 1 | -1/+1 |
| | | | | | | | | |||||
| * | | | | | | | Change wording | Erik Johnston | 2016-08-02 | 1 | -2/+2 |
| | | | | | | | | |||||
| * | | | | | | | Bump changeog and version | Erik Johnston | 2016-08-02 | 2 | -1/+18 |
| | |_|/ / / / | |/| | | | | | |||||
| * | | | | | | Add authors to changelog v0.17.0-rc1 | Erik Johnston | 2016-07-28 | 1 | -4/+5 |
| | | | | | | | |||||
| * | | | | | | Update changelog | Erik Johnston | 2016-07-28 | 1 | -0/+4 |
| | | | | | | | |||||
| * | | | | | | Merge branch 'erikj/key_client_fix' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2016-07-28 | 1 | -3/+9 |
| |\ \ \ \ \ \ | | | |/ / / / | | |/| | | | | | | | | | | | release-v0.17.0 | ||||
| | * | | | | | Cache getPeer | Erik Johnston | 2016-07-21 | 1 | -2/+5 |
| | | | | | | | |||||
| | * | | | | | Set host not path | Erik Johnston | 2016-07-21 | 1 | -1/+1 |
| | | | | | | | |||||
| | * | | | | | Send the correct host header when fetching keys | Erik Johnston | 2016-07-21 | 1 | -3/+6 |
| | | |_|_|/ | | |/| | | | |||||
| * | | | | | Bump version and changelog | Erik Johnston | 2016-07-28 | 2 | -3/+6 |
| | | | | | | |||||
| * | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.17.0 | Erik Johnston | 2016-07-28 | 7 | -14/+85 |
| |\ \ \ \ \ | | | |/ / / | | |/| | | | |||||
| | * | | | | Merge pull request #961 from matrix-org/dbkr/fix_push_invite_name | Erik Johnston | 2016-07-28 | 1 | -1/+4 |
| | |\ \ \ \ | | | | | | | | | | | | | | | Don't include name of room for invites in push | ||||
| | | * | | | | Don't include name of room for invites in push | David Baker | 2016-07-28 | 1 | -1/+4 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoids insane pushes like, "Bob invited you to invite from Bob" | ||||
| | * | | | | | Merge pull request #960 from matrix-org/rav/support_r0.2 | Richard van der Hoff | 2016-07-28 | 1 | -1/+5 |
| | |\ \ \ \ \ | | | |/ / / / | | |/| | | | | Add r0.2.0 to the "supported versions" list | ||||
| | | * | | | | Add r0.1.0 to the "supported versions" list | Richard van der Hoff | 2016-07-28 | 1 | -0/+1 |
| | | | | | | | |||||
| | | * | | | | Add r0.2.0 to the "supported versions" list | Richard van der Hoff | 2016-07-28 | 1 | -1/+4 |
| | | | | | | | |||||
| | * | | | | | Typo | David Baker | 2016-07-28 | 1 | -1/+1 |
| | |/ / / / | |||||
| | * | | | | Merge pull request #956 from matrix-org/rav/check_device_id_on_key_upload | Richard van der Hoff | 2016-07-27 | 4 | -11/+75 |
| | |\ \ \ \ | | | |_|/ / | | |/| | | | Make the device id on e2e key upload optional | ||||
| | | * | | | key upload tweaks | Richard van der Hoff | 2016-07-27 | 1 | -7/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Add v2_alpha URL back in, since things seem to be using it. 2. Don't reject the request if the device_id in the upload request fails to match that in the access_token. | ||||
| | | * | | | SQL syntax fix | Richard van der Hoff | 2016-07-27 | 1 | -1/+1 |
| | | | | | | |||||
| | | * | | | Delete e2e keys on device delete | Richard van der Hoff | 2016-07-27 | 3 | -4/+28 |
| | | | | | | |||||
| | | * | | | Make the device id on e2e key upload optional | Richard van der Hoff | 2016-07-26 | 2 | -12/+54 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We should now be able to get our device_id from the access_token, so the device_id on the upload request is optional. Where it is supplied, we should check that it matches. For active access_tokens without an associated device_id, we ought to register the device in the devices table. Also update the table on upgrade so that all of the existing e2e keys are associated with real devices. | ||||
| * | | | | | Bump CHANGES and version | Erik Johnston | 2016-07-27 | 2 | -1/+57 |
| |/ / / / | |||||
| * | | | | Merge pull request #957 from matrix-org/markjh/verify | Mark Haines | 2016-07-27 | 1 | -74/+80 |
| |\ \ \ \ | | | | | | | | | | | | | Clean up verify_json_objects_for_server | ||||
| | * \ \ \ | Merge branch 'develop' into markjh/verify | Mark Haines | 2016-07-27 | 2 | -3/+11 |
| | |\ \ \ \ | | |/ / / / | |/| | | | | | | | | | | | | | | | | Conflicts: synapse/crypto/keyring.py | ||||
| * | | | | | Merge pull request #955 from matrix-org/markjh/only_from2 | Mark Haines | 2016-07-27 | 1 | -2/+9 |
| |\ \ \ \ \ | | | | | | | | | | | | | | | Add a couple more checks to the keyring | ||||
| | * | | | | | Add a couple more checks to the keyring | Mark Haines | 2016-07-26 | 1 | -2/+9 |
| | | | | | | | |||||
| * | | | | | | Merge pull request #954 from matrix-org/markjh/even_more_fixes | Mark Haines | 2016-07-27 | 2 | -9/+11 |
| |\ \ \ \ \ \ | | |/ / / / / | |/| | | | | | Fix a couple of bugs in the transaction and keyring code | ||||
| | * | | | | | Fix a couple of bugs in the transaction and keyring code | Mark Haines | 2016-07-26 | 2 | -9/+11 |
| | | |/ / / | | |/| | | | |||||
| | | * | | | Clean up verify_json_objects_for_server | Mark Haines | 2016-07-27 | 1 | -68/+75 |
| | |/ / / | |/| | | | |||||
| * | | | | Merge pull request #952 from matrix-org/markjh/more_fixes | Mark Haines | 2016-07-26 | 1 | -0/+4 |
| |\ \ \ \ | | |/ / / | |/| | | | Check if the user is banned when handling 3pid invites | ||||
| | * | | | Check if the user is banned when handling 3pid invites | Mark Haines | 2016-07-26 | 1 | -0/+4 |
| | | | | | |||||
| * | | | | Merge pull request #953 from matrix-org/rav/requester | Richard van der Hoff | 2016-07-26 | 11 | -75/+101 |
| |\ \ \ \ | | |/ / / | |/| | | | Add `create_requester` function | ||||
| | * | | | Add `create_requester` function | Richard van der Hoff | 2016-07-26 | 11 | -75/+101 |
| |/ / / | | | | | | | | | | | | | | | | | Wrap the `Requester` constructor with a function which provides sensible defaults, and use it throughout | ||||
| * | | | Fix typo | Richard van der Hoff | 2016-07-26 | 1 | -1/+1 |
| | | | | |||||
| * | | | Merge branch 'develop' into rav/delete_refreshtoken_on_delete_device | Richard van der Hoff | 2016-07-26 | 3 | -59/+115 |
| |\ \ \ | |||||
| | * \ \ | Merge pull request #951 from matrix-org/rav/flake8 | Richard van der Hoff | 2016-07-26 | 2 | -9/+5 |
| | |\ \ \ | | | | | | | | | | | | | Fix flake8 noise | ||||
| | | * | | | Fix flake8 violation | Richard van der Hoff | 2016-07-26 | 1 | -5/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apparently flake8 v3 puts the error on a different line to v2. Easiest way to make sure that happens is by putting the whole statement on one line :) | ||||
| | | * | | | Fix flake8 configuration | Richard van der Hoff | 2016-07-26 | 1 | -4/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apparently flake8 v3 doesn't like trailing comments on config settings. Also remove the pep8 config, which didn't work (because it was missing W503) and duplicated the flake8 config. We don't use pep8 on its own, so the config was duplicative. | ||||
| | * | | | | Merge pull request #948 from matrix-org/markjh/auth_fixes | Mark Haines | 2016-07-26 | 1 | -50/+110 |
| | |\ \ \ \ | | | |/ / / | | |/| | | | Don't add rejections to the state_group, persist all rejections | ||||
| | | * | | | Fix how push_actions are redacted. | Mark Haines | 2016-07-26 | 1 | -8/+10 |
| | | | | | | |||||
| | | * | | | Don't add rejected events if we've seen them befrore. Add some comments to ↵ | Mark Haines | 2016-07-26 | 1 | -5/+48 |
| | | | | | | | | | | | | | | | | | | | | | | | | explain what the code is doing mechanically | ||||
| | | * | | | Only update the events and event_json tables for rejected events | Mark Haines | 2016-07-25 | 2 | -52/+63 |
| | | | | | | |||||
| | | * | | | Don't add the events to forward extremities if the event is rejected | Mark Haines | 2016-07-25 | 1 | -3/+6 |
| | | | | | | |||||
| | | * | | | Don't add rejections to the state_group, persist all rejections | Mark Haines | 2016-07-25 | 2 | -5/+6 |
| | | | | | | |||||
| * | | | | | Delete refresh tokens when deleting devices | Richard van der Hoff | 2016-07-26 | 3 | -15/+83 |
| |/ / / / | |||||
| * | | | | Merge pull request #949 from matrix-org/rav/update_devices | David Baker | 2016-07-26 | 13 | -28/+295 |
| |\ \ \ \ | | | | | | | | | | | | | Implement updates and deletes for devices | ||||
| | * | | | | Implement updating devices | Richard van der Hoff | 2016-07-26 | 5 | -8/+119 |
| | | | | | | | | | | | | | | | | | | | | | | | | You can update the displayname of devices now. | ||||
| | * | | | | Implement deleting devices | Richard van der Hoff | 2016-07-26 | 11 | -21/+176 |
| | | | | | | |||||
| | * | | | | Log when adding listeners | Richard van der Hoff | 2016-07-25 | 1 | -0/+1 |
| | | | | | | |||||
| * | | | | | federation doesn't work over ipv6 yet thanks to twisted | Matthew Hodgson | 2016-07-26 | 1 | -1/+1 |
| | | | | | | |||||
| * | | | | | typo | Matthew Hodgson | 2016-07-26 | 1 | -1/+1 |
| |/ / / / | |||||
| * | | | | Merge pull request #946 from matrix-org/dbkr/log_recaptcha_hostname | David Baker | 2016-07-25 | 1 | -2/+11 |
| |\ \ \ \ | | |/ / / | |/| | | | Log the hostname the reCAPTCHA was completed on | ||||
| | * | | | Use get to avoid KeyErrors | David Baker | 2016-07-22 | 1 | -1/+1 |
| | | | | |