Hi, Compilation still fails...
Patrik On Thu, 2015-06-11 at 15:20 +0530, Saurav Babu wrote: > This patch handles MoveBefore() method from Service API in connman client. > This can be used to move any VPN service before any other VPN Service. For > Connman services this won't be much useful as the order is not remembered > after service list sort. > --- > client/commands.c | 64 > +++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 64 insertions(+) > > diff --git a/client/commands.c b/client/commands.c > index 9208016..5e342a5 100644 > --- a/client/commands.c > +++ b/client/commands.c > @@ -725,6 +725,67 @@ static int cmd_disconnect(char *args[], int num, struct > connman_option *options) > disconnect_return, path, NULL, NULL); > } > > +struct move_service { > + char *service; > + char *target; > +}; > + > +static int move_before_return(DBusMessageIter *iter, const char *error, > + void *user_data) > +{ > + struct move_service *services = user_data; > + > + if (!error) { > + char *service = strrchr(services->service, '/'); > + service++; > + char *target = strrchr(services->target, '/'); > + target++; > + fprintf(stdout, "Moved %s before %s\n", service, target); > + } else > + fprintf(stderr, "Error %s: %s\n", services->service, error); > + > + g_free(services->service); > + g_free(services->target); > + g_free(user_data); > + > + return 0; > +} > + > +static void move_before_append_args(DBusMessageIter *iter, void *user_data) > +{ > + char *path = user_data; > + > + dbus_message_iter_append_basic(iter, > + DBUS_TYPE_OBJECT_PATH, &path); > + > + return; > +} > + > +static int cmd_service_move_before(char *args[], int num, > + struct connman_option *options) > +{ > + const char *iface = "net.connman.Service"; > + struct move_service *services = g_new(struct move_service, 1); > + > + if (num > 3) > + return -E2BIG; > + > + if (num < 3) > + return -EINVAL; > + > + if (check_dbus_name(args[1]) == false) > + return -EINVAL; > + > + services->service = g_strdup_printf("/net/connman/service/%s", args[1]); > + services->target = g_strdup_printf("/net/connman/service/%s", args[2]); > + > + return __connmanctl_dbus_method_call(connection, CONNMAN_SERVICE, > + services->service, iface, "MoveBefore", > + move_before_return, services, > + move_before_append_args, > + services->target); > +} > + > static int config_return(DBusMessageIter *iter, const char *error, > void *user_data) > { > @@ -2398,6 +2459,9 @@ static const struct { > "Connect a given service or peer", lookup_service_arg }, > { "disconnect", "<service/peer>", NULL, cmd_disconnect, > "Disconnect a given service or peer", lookup_service_arg }, > + { "move-before", "<service> <target service> ", NULL, > + cmd_service_move_before, "Move a service before another service", > + lookup_service_arg }, > { "config", "<service>", config_options, cmd_config, > "Set service configuration options", lookup_config }, > { "monitor", "[off]", monitor_options, cmd_monitor, _______________________________________________ connman mailing list connman@connman.net https://lists.connman.net/mailman/listinfo/connman