summary refs log tree commit diff
path: root/synapse/rest/media/v1/preview_url_resource.py
diff options
context:
space:
mode:
authorBrendan Abolivier <babolivier@matrix.org>2019-05-14 11:43:03 +0100
committerBrendan Abolivier <babolivier@matrix.org>2019-05-14 11:43:03 +0100
commitf608ddbe5c58f35b76c5b1199c60a6c17a684d19 (patch)
treecfc254400db8c0d3d9cdcef7942e935b09ba4f1d /synapse/rest/media/v1/preview_url_resource.py
parentMerge pull request #5115 from matrix-org/babolivier/lookup_path (diff)
parent0.99.4rc1 (diff)
downloadsynapse-f608ddbe5c58f35b76c5b1199c60a6c17a684d19.tar.xz
Merge branch 'release-v0.99.4' into dinsic dinsic_2019-05-14
Diffstat (limited to 'synapse/rest/media/v1/preview_url_resource.py')
-rw-r--r--synapse/rest/media/v1/preview_url_resource.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/synapse/rest/media/v1/preview_url_resource.py b/synapse/rest/media/v1/preview_url_resource.py

index ba3ab1d37d..acf87709f2 100644 --- a/synapse/rest/media/v1/preview_url_resource.py +++ b/synapse/rest/media/v1/preview_url_resource.py
@@ -31,6 +31,7 @@ from six.moves import urllib_parse as urlparse from canonicaljson import json from twisted.internet import defer +from twisted.internet.error import DNSLookupError from twisted.web.resource import Resource from twisted.web.server import NOT_DONE_YET @@ -328,9 +329,18 @@ class PreviewUrlResource(Resource): # handler will return a SynapseError to the client instead of # blank data or a 500. raise + except DNSLookupError: + # DNS lookup returned no results + # Note: This will also be the case if one of the resolved IP + # addresses is blacklisted + raise SynapseError( + 502, "DNS resolution failure during URL preview generation", + Codes.UNKNOWN + ) except Exception as e: # FIXME: pass through 404s and other error messages nicely logger.warn("Error downloading %s: %r", url, e) + raise SynapseError( 500, "Failed to download content: %s" % ( traceback.format_exception_only(sys.exc_info()[0], e),