[OE-core] [PATCH] scripts/send-error-report: simple hack to use proxy from the enviroment
Stefan Stanacar
stefanx.stanacar at intel.com
Fri Apr 11 15:54:55 UTC 2014
People behind a proxy couldn't send an error report to an upstream server,
this should fix the issue if they use a proxy that doesn't require authentication,
and it's correctly exported in the enviroment.
There are probbaly better ways to fix this (urllib2, proxy connect,
a command line option for proxy) but those require more changes than
I feel confortable doing now.
Signed-off-by: Stefan Stanacar <stefanx.stanacar at intel.com>
---
scripts/send-error-report | 27 +++++++++++++++++++++------
1 file changed, 21 insertions(+), 6 deletions(-)
diff --git a/scripts/send-error-report b/scripts/send-error-report
index 3734b61..0bce8b6 100755
--- a/scripts/send-error-report
+++ b/scripts/send-error-report
@@ -8,6 +8,24 @@
import httplib, urllib, os, sys, json
+from urllib2 import _parse_proxy as parseproxy
+
+
+def handle_connection(server, data):
+ params = urllib.urlencode({'data': data})
+ headers = {"Content-type": "application/json"}
+
+ if os.environ.get("http_proxy") or os.environ.get("HTTP_PROXY"):
+ proxy = parseproxy(os.environ.get("http_proxy") or os.environ.get("HTTP_PROXY"))
+ if proxy[1] or proxy[2]:
+ raise Exception("http proxies that require authentication are not supported for now.")
+ conn = httplib.HTTPConnection(proxy[3])
+ conn.request("POST", "http://%s/ClientPost/" % server, params, headers)
+ else:
+ conn = httplib.HTTPConnection(server)
+ conn.request("POST", "/ClientPost/", params, headers)
+
+ return conn
def sendData(json_file, server):
@@ -45,10 +63,7 @@ def sendData(json_file, server):
return
try:
- params = urllib.urlencode({'data': data})
- headers = {"Content-type": "application/json"}
- conn = httplib.HTTPConnection(server)
- conn.request("POST", "/ClientPost/", params, headers)
+ conn = handle_connection(server, data)
response = conn.getresponse()
print response.status, response.reason
res = response.read()
@@ -59,8 +74,8 @@ def sendData(json_file, server):
with open("%s.response.html" % json_file, "w") as f:
f.write(res)
conn.close()
- except:
- print("Server connection failed")
+ except Exception as e:
+ print("Server connection failed: %s" % e)
else:
print("No data file found.")
--
1.9.0
More information about the Openembedded-core
mailing list