start service by name requires one more parameter (flags).
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 8 Jun 2009 14:32:17 +0000 (14:32 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 8 Jun 2009 14:32:17 +0000 (14:32 +0000)
The dbus api has a "flags" parameter that is now unused but may be in
future, it was missing and dbus was giving method mismatch.

I forgot to commit this but changed Ethumb_Client, then Viktor "fixed"
it by reverting such change. Now going back to my code and adding "0"
as flag.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/e_dbus@40968 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/dbus/E_DBus.h
src/lib/dbus/e_dbus_methods.c

index 1534512..427f806 100644 (file)
@@ -130,7 +130,7 @@ extern "C" {
    EAPI DBusPendingCall *e_dbus_name_has_owner(E_DBus_Connection *conn, const char *name,
                                               E_DBus_Method_Return_Cb cb_return,
                                               const void *data);
-   EAPI DBusPendingCall *e_dbus_start_service_by_name(E_DBus_Connection *conn, const char *name,
+   EAPI DBusPendingCall *e_dbus_start_service_by_name(E_DBus_Connection *conn, const char *name, unsigned int flags,
                                                      E_DBus_Method_Return_Cb cb_return,
                                                      const void *data);
 
index a3f70e2..c9de2f7 100644 (file)
@@ -122,7 +122,30 @@ e_dbus_name_has_owner(E_DBus_Connection *conn, const char *name, E_DBus_Method_R
 
 
 EAPI DBusPendingCall *
-e_dbus_start_service_by_name(E_DBus_Connection *conn, const char *name, E_DBus_Method_Return_Cb cb_return, const void *data)
+e_dbus_start_service_by_name(E_DBus_Connection *conn, const char *name, unsigned int flags, E_DBus_Method_Return_Cb cb_return, const void *data)
 {
-   return _dbus_call__str(conn, "StartServiceByName", name, cb_return, data);
+   const char method_name[] = "StartServiceByName";
+   DBusMessage *msg;
+   DBusPendingCall *ret;
+
+   if (!conn)
+     {
+       fprintf(stderr, "ERROR: no connection for call of %s\n", method_name);
+       return NULL;
+     }
+
+   msg = _dbus_message_method_call(method_name);
+   if (!msg)
+     return NULL;
+   dbus_message_append_args(msg,
+                           DBUS_TYPE_STRING, &name,
+                           DBUS_TYPE_UINT32, &flags,
+                           DBUS_TYPE_INVALID);
+   ret = e_dbus_message_send(conn, msg, cb_return, -1, (void *)data);
+   dbus_message_unref(msg);
+
+   if (!ret)
+     fprintf(stderr, "ERROR: failed to call %s(\"%s\")\n", method_name, name);
+
+   return ret;
 }