diff --git a/frontends/jp/jp b/frontends/jp/jp
index e5fe57e6..8d8383d8 100755
--- a/frontends/jp/jp
+++ b/frontends/jp/jp
@@ -55,7 +55,7 @@ from optparse import OptionParser
import pdb
from tools.jid import JID
import gobject
-from sat_bridge_frontend.DBus import DBusBridgeFrontend
+from sat_bridge_frontend.DBus import DBusBridgeFrontend,BridgeExceptionNoService
import tarfile
try:
from progressbar import ProgressBar, Percentage, Bar, ETA, FileTransferSpeed
@@ -69,7 +69,12 @@ except ImportError, e:
class JP():
def __init__(self):
- self.bridge=DBusBridgeFrontend()
+ try:
+ self.bridge=DBusBridgeFrontend()
+ except BridgeExceptionNoService:
+ print(_(u"Can't connect to SàT backend, are you sure it's launched ?"))
+ import sys
+ sys.exit(1)
self.transfert_id = None
def check_options(self):
diff --git a/frontends/quick_frontend/quick_app.py b/frontends/quick_frontend/quick_app.py
index 3da37338..7336628e 100644
--- a/frontends/quick_frontend/quick_app.py
+++ b/frontends/quick_frontend/quick_app.py
@@ -21,7 +21,7 @@ along with this program. If not, see .
from logging import debug, info, error
from tools.jid import JID
-from sat_bridge_frontend.DBus import DBusBridgeFrontend
+from sat_bridge_frontend.DBus import DBusBridgeFrontend,BridgeExceptionNoService
from optparse import OptionParser
import pdb
@@ -38,7 +38,12 @@ class QuickApp():
self.check_options()
## bridge ##
- self.bridge=DBusBridgeFrontend()
+ try:
+ self.bridge=DBusBridgeFrontend()
+ except BridgeExceptionNoService:
+ print(_(u"Can't connect to SàT backend, are you sure it's launched ?"))
+ import sys
+ sys.exit(1)
self.bridge.register("connected", self.connected)
self.bridge.register("disconnected", self.disconnected)
self.bridge.register("newContact", self.newContact)
diff --git a/frontends/sat_bridge_frontend/DBus.py b/frontends/sat_bridge_frontend/DBus.py
index 42d960a0..4ba420ca 100755
--- a/frontends/sat_bridge_frontend/DBus.py
+++ b/frontends/sat_bridge_frontend/DBus.py
@@ -22,16 +22,24 @@ along with this program. If not, see .
from bridge_frontend import BridgeFrontend
import dbus, dbus.glib
+class BridgeExceptionNoService(Exception):
+ pass
class DBusBridgeFrontend(BridgeFrontend):
def __init__(self):
- self.sessions_bus = dbus.SessionBus()
- self.db_object = self.sessions_bus.get_object('org.goffi.SAT',
- '/org/goffi/SAT/bridge')
- self.db_comm_iface = dbus.Interface(self.db_object,
- dbus_interface='org.goffi.SAT.communication')
- self.db_req_iface = dbus.Interface(self.db_object,
- dbus_interface='org.goffi.SAT.request')
+ try:
+ self.sessions_bus = dbus.SessionBus()
+ self.db_object = self.sessions_bus.get_object('org.goffi.SAT',
+ '/org/goffi/SAT/bridge')
+ self.db_comm_iface = dbus.Interface(self.db_object,
+ dbus_interface='org.goffi.SAT.communication')
+ self.db_req_iface = dbus.Interface(self.db_object,
+ dbus_interface='org.goffi.SAT.request')
+ except dbus.exceptions.DBusException,e:
+ if e._dbus_error_name=='org.freedesktop.DBus.Error.ServiceUnknown':
+ raise BridgeExceptionNoService
+ else:
+ raise e
#props = self.db_comm_iface.getProperties()
def register(self, functionName, handler, iface="communication"):