summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Huang <shawn.p.huang@gmail.com>2009-02-25 11:11:24 +0800
committerPeng Huang <shawn.p.huang@gmail.com>2009-02-25 11:11:24 +0800
commite21e45aee092fa6681aafeea9c30013977a88deb (patch)
treeb59deaa3a96f238382b53b877f957d91be52f095
parent957b778d361fa270e37bc403c2640698f4718e29 (diff)
downloadibus-e21e45aee092fa6681aafeea9c30013977a88deb.tar.gz
ibus-e21e45aee092fa6681aafeea9c30013977a88deb.tar.xz
ibus-e21e45aee092fa6681aafeea9c30013977a88deb.zip
Give out more information when server listens failed.
-rw-r--r--bus/server.c16
-rw-r--r--src/ibusserver.c15
2 files changed, 20 insertions, 11 deletions
diff --git a/bus/server.c b/bus/server.c
index 3a957db..0557861 100644
--- a/bus/server.c
+++ b/bus/server.c
@@ -87,13 +87,21 @@ bus_server_listen (BusServer *server)
// const gchar *address = "unix:abstract=/tmp/ibus-c"
const gchar *address;
gchar *path;
+ gboolean retval;
path = g_strdup_printf("/tmp/ibus-%s", ibus_get_user_name ());
mkdir (path, 0775);
- g_free(path);
address = ibus_get_address ();
- return ibus_server_listen (IBUS_SERVER (server), address);
+ retval = ibus_server_listen (IBUS_SERVER (server), address);
+
+ if (!retval) {
+ g_printerr ("Can not listen on %s! Please try remove directory %s and run again.", address, path);
+ exit (-1);
+ }
+
+ g_free(path);
+ return retval;
}
void
@@ -128,8 +136,8 @@ static void
bus_server_init (BusServer *server)
{
server->loop = g_main_loop_new (NULL, FALSE);
- server->dbus = bus_dbus_impl_get_default ();
- server->ibus = bus_ibus_impl_get_default ();
+ server->dbus = bus_dbus_impl_get_default ();
+ server->ibus = bus_ibus_impl_get_default ();
}
static void
diff --git a/src/ibusserver.c b/src/ibusserver.c
index cd4e1e4..2299856 100644
--- a/src/ibusserver.c
+++ b/src/ibusserver.c
@@ -56,7 +56,7 @@ static void ibus_server_get_property(IBusServer *server,
guint prop_id,
GValue *value,
GParamSpec *pspec);
-static void ibus_server_listen_internal
+static gboolean ibus_server_listen_internal
(IBusServer *server,
const gchar *address);
static void ibus_server_new_connection
@@ -107,9 +107,8 @@ ibus_server_listen (IBusServer *server,
{
g_assert (IBUS_IS_SERVER (server));
g_assert (address != NULL);
- ibus_server_listen_internal (server, address);
- return TRUE;
+ return ibus_server_listen_internal (server, address);
}
static void
@@ -236,7 +235,7 @@ _new_connection_cb (DBusServer *dbus_server,
g_object_unref (connection);
}
-static void
+static gboolean
ibus_server_listen_internal (IBusServer *server,
const gchar *address)
{
@@ -254,9 +253,10 @@ ibus_server_listen_internal (IBusServer *server,
priv->server = dbus_server_listen (address, &error);
if (priv->server == NULL) {
- g_error ("Can not listen on '%s':\n"
- " %s:%s",
- address, error.name, error.message);
+ g_warning ("Can not listen on '%s':\n"
+ " %s:%s",
+ address, error.name, error.message);
+ return FALSE;
}
dbus_server_set_new_connection_function (priv->server,
@@ -266,6 +266,7 @@ ibus_server_listen_internal (IBusServer *server,
dbus_server_set_auth_mechanisms (priv->server, NULL);
dbus_server_setup (priv->server, NULL);
+ return TRUE;
}
void