[kupfer] plugin.google_translate: set timeout for http connection



commit a3607df6ee0083d8dc206e422aeaf0eafdfcb041
Author: Karol BÄ?dkowski <karol bedkowsk+gh gmail com>
Date:   Sun Dec 27 11:52:38 2009 +0100

    plugin.google_translate: set timeout for http connection
    
    Fix https://bugs.launchpad.net/bugs/500619

 kupfer/plugin/google_translate.py |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/kupfer/plugin/google_translate.py b/kupfer/plugin/google_translate.py
index 54a06cd..c0547aa 100644
--- a/kupfer/plugin/google_translate.py
+++ b/kupfer/plugin/google_translate.py
@@ -17,6 +17,7 @@ import httplib
 import locale
 import urllib
 import re
+import socket
 
 try:
 	import cjson
@@ -51,6 +52,8 @@ def _translate(text, lang):
 	query_param = urllib.urlencode(dict(tl=lang, text=text.encode('utf-8')))
 	try:
 		conn = httplib.HTTPConnection(_GOOGLE_TRANSLATE_HOST)
+		conn.connect()
+		conn.sock.settimeout(10) # set timeout to 10 sec
 		conn.request("POST", _GOOGLE_TRANSLATE_PATH, query_param, _HEADER)
 		resp = conn.getresponse()
 		if resp.status != 200:
@@ -100,6 +103,8 @@ def _load_languages():
 	pretty.print_debug(__name__, '_load_languages')
 	try:
 		conn = httplib.HTTPConnection(_GOOGLE_TRANSLATE_HOST)
+		conn.connect()
+		conn.sock.settimeout(10) # set timeout to 10 sec
 		headers = {
 			"Accept-Language": "%s, en;q=0.7" % user_language,
 		}
@@ -115,9 +120,8 @@ def _load_languages():
 			for key, name in _RE_GET_LANG.findall(result[0]):
 				yield key, name
 
-	except (httplib.HTTPException, ValueError), err:
+	except (httplib.HTTPException, ValueError, socket.timeout), err:
 		pretty.print_error(__name__, '_load_languages error', type(err), err)
-		yield 'en', 'English'
 
 	finally:
 		conn.close()



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]