aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@frugalware.org>2008-01-12 22:18:21 +0100
committerMiklos Vajna <vmiklos@frugalware.org>2008-01-12 22:18:21 +0100
commiteeeb30e43cdc2b3f648040404bebb557e0075422 (patch)
tree90c77e6c0fd72b5d6b3360d620717467d69d26cc
parent10a42d94c44b245588ee24ac87fb81666ce6007e (diff)
skyped: catch KeyboardInterrupts everywhere
-rw-r--r--skype/skyped.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/skype/skyped.py b/skype/skyped.py
index 0966efdd..15c67dce 100644
--- a/skype/skyped.py
+++ b/skype/skyped.py
@@ -37,12 +37,22 @@ import threading
import sha
from ConfigParser import ConfigParser
from OpenSSL import SSL
+from traceback import print_exception
+#from exceptions import KeyboardInterrupt
__version__ = "0.1.1"
SKYPE_SERVICE = 'com.Skype.API'
CLIENT_NAME = 'SkypeApiPythonShell'
+def eh(type, value, tb):
+ if type == KeyboardInterrupt:
+ sys.exit("Exiting.")
+ print_exception(type, value, tb)
+ sys.exit(1)
+
+sys.excepthook = eh
+
def input_handler(fd, io_condition):
global options
if options.buf:
@@ -60,10 +70,7 @@ def idle_handler(skype):
skype.skype.SendCommand(skype.skype.Command(-1, "PING"))
except Skype4Py.SkypeAPIError, s:
dprint("Warning, pinging Skype failed (%s)." % (s))
- try:
time.sleep(2)
- except KeyboardInterrupt:
- sys.exit("Exiting.")
return True
def server(host, port):