summaryrefslogtreecommitdiffstats
path: root/google-appengine/google/appengine/api/urlfetch_stub.py
diff options
context:
space:
mode:
Diffstat (limited to 'google-appengine/google/appengine/api/urlfetch_stub.py')
-rwxr-xr-xgoogle-appengine/google/appengine/api/urlfetch_stub.py21
1 files changed, 16 insertions, 5 deletions
diff --git a/google-appengine/google/appengine/api/urlfetch_stub.py b/google-appengine/google/appengine/api/urlfetch_stub.py
index 0684c7c..a7775f2 100755
--- a/google-appengine/google/appengine/api/urlfetch_stub.py
+++ b/google-appengine/google/appengine/api/urlfetch_stub.py
@@ -45,10 +45,6 @@ REDIRECT_STATUSES = frozenset([
httplib.TEMPORARY_REDIRECT,
])
-PORTS_ALLOWED_IN_PRODUCTION = (
- None, '80', '443', '4443', '8080', '8081', '8082', '8083', '8084', '8085',
- '8086', '8087', '8088', '8089', '8188', '8444', '8990')
-
_API_CALL_DEADLINE = 5.0
@@ -60,6 +56,21 @@ _UNTRUSTED_REQUEST_HEADERS = frozenset([
'x-forwarded-for',
])
+
+def _IsAllowedPort(port):
+ if port is None:
+ return True
+ try:
+ port = int(port)
+ except ValueError, e:
+ return False
+ if ((port >= 80 and port <= 90) or
+ (port >= 440 and port <= 450) or
+ port >= 1024):
+ return True
+ return False
+
+
class URLFetchServiceStub(apiproxy_stub.APIProxyStub):
"""Stub version of the urlfetch API to be used with apiproxy_stub_map."""
@@ -151,7 +162,7 @@ class URLFetchServiceStub(apiproxy_stub.APIProxyStub):
port = urllib.splitport(urllib.splituser(host)[1])[1]
- if port not in PORTS_ALLOWED_IN_PRODUCTION:
+ if not _IsAllowedPort(port):
logging.warning(
'urlfetch received %s ; port %s is not allowed in production!' %
(url, port))