The old client will no longer be used, and the newly added files can now be
compiled with the rest of the source. The man page is also installed upon
installation of connman. The update to the configure.ac file checks if readline
is installed.
---
 Makefile.am   |   17 +++-
 client/main.c |  244 ---------------------------------------------------------
 configure.ac  |    3 +
 3 files changed, 16 insertions(+), 248 deletions(-)
 delete mode 100644 client/main.c

diff --git a/Makefile.am b/Makefile.am
index ca0cf0b..e93e612 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -123,7 +123,7 @@ AM_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @XTABLES_CFLAGS@ \
 
 INCLUDES = -I$(builddir)/include -I$(builddir)/src -I$(srcdir)/gdbus
 
-EXTRA_DIST = src/genbuiltin src/connman-dbus.conf src/connman-polkit.conf \
+EXTRA_DIST = src/genbuiltin src/connman-dbusls.conf src/connman-polkit.conf \
                                                plugins/connman-nmcompat.conf
 
 
@@ -134,10 +134,19 @@ script_LTLIBRARIES =
 include Makefile.plugins
 
 if CLIENT
-noinst_PROGRAMS += client/cm
+noinst_PROGRAMS += client/cmn
 
-client_cm_SOURCES = client/main.c
-client_cm_LDADD = @DBUS_LIBS@
+man_MANS = client/cmn.1
+
+client_cmn_SOURCES =  $(gdbus_sources) src/log.c include/log.h src/dbus.c \
+                       include/dbus.h client/data_manager.c \
+                       client/data_manager.h client/services.c \
+                       client/services.h client/technology.c \
+                       client/technology.h client/interactive.c \
+                       client/interactive.h client/monitor.c \
+                       client/monitor.h client/cmn.c
+
+client_cmn_LDADD = @DBUS_LIBS@ @GLIB_LIBS@ -ldbus-glib-1 -lreadline
 endif
 
 if WISPR
diff --git a/client/main.c b/client/main.c
deleted file mode 100644
index 4a88d6e..0000000
--- a/client/main.c
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- *
- *  Connection Manager
- *
- *  Copyright (C) 2007-2012  Intel Corporation. All rights reserved.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License version 2 as
- *  published by the Free Software Foundation.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <dbus/dbus.h>
-
-#define CONNMAN_SERVICE                        "net.connman"
-
-#define CONNMAN_MANAGER_INTERFACE      CONNMAN_SERVICE ".Manager"
-#define CONNMAN_MANAGER_PATH           "/"
-
-struct service_data {
-       const char *path;
-       const char *name;
-       dbus_bool_t favorite;
-};
-
-static DBusMessage *get_services(DBusConnection *connection)
-{
-       DBusMessage *message, *reply;
-       DBusError error;
-
-       message = dbus_message_new_method_call(CONNMAN_SERVICE,
-                                               CONNMAN_MANAGER_PATH,
-                                               CONNMAN_MANAGER_INTERFACE,
-                                                       "GetServices");
-       if (message == NULL)
-               return NULL;
-
-       dbus_error_init(&error);
-
-       reply = dbus_connection_send_with_reply_and_block(connection,
-                                                       message, -1, &error);
-       if (reply == NULL) {
-               if (dbus_error_is_set(&error) == TRUE) {
-                       fprintf(stderr, "%s\n", error.message);
-                       dbus_error_free(&error);
-               } else
-                       fprintf(stderr, "Failed to get properties\n");
-               dbus_message_unref(message);
-               return NULL;
-       }
-
-       dbus_message_unref(message);
-
-       return reply;
-}
-
-static DBusMessage *lookup_service(DBusConnection *connection,
-                                                       const char *pattern)
-{
-       DBusMessage *message, *reply;
-       DBusError error;
-
-       message = dbus_message_new_method_call(CONNMAN_SERVICE,
-                                               CONNMAN_MANAGER_PATH,
-                                               CONNMAN_MANAGER_INTERFACE,
-                                                       "LookupService");
-       if (message == NULL)
-               return NULL;
-
-       dbus_message_append_args(message, DBUS_TYPE_STRING, &pattern,
-                                                       DBUS_TYPE_INVALID);
-
-       dbus_error_init(&error);
-
-       reply = dbus_connection_send_with_reply_and_block(connection,
-                                                       message, -1, &error);
-       if (reply == NULL) {
-               if (dbus_error_is_set(&error) == TRUE) {
-                       fprintf(stderr, "%s\n", error.message);
-                       dbus_error_free(&error);
-               } else
-                       fprintf(stderr, "Failed to get properties\n");
-               dbus_message_unref(message);
-               return NULL;
-       }
-
-       dbus_message_unref(message);
-
-       return reply;
-}
-
-static void extract_properties(DBusMessageIter *dict,
-                                       struct service_data *service)
-{
-       while (dbus_message_iter_get_arg_type(dict) == DBUS_TYPE_DICT_ENTRY) {
-               DBusMessageIter entry, value;
-               const char *key;
-
-               dbus_message_iter_recurse(dict, &entry);
-               dbus_message_iter_get_basic(&entry, &key);
-
-               dbus_message_iter_next(&entry);
-
-               dbus_message_iter_recurse(&entry, &value);
-
-               //type = dbus_message_iter_get_arg_type(&value);
-               //dbus_message_iter_get_basic(&value, &val);
-
-               if (strcmp(key, "Name") == 0)
-                       dbus_message_iter_get_basic(&value, &service->name);
-               else if (strcmp(key, "Favorite") == 0)
-                       dbus_message_iter_get_basic(&value, &service->favorite);
-
-               dbus_message_iter_next(dict);
-       }
-}
-
-static void extract_services(DBusMessage *message)
-{
-       DBusMessageIter iter, array;
-
-       dbus_message_iter_init(message, &iter);
-       dbus_message_iter_recurse(&iter, &array);
-
-       while (dbus_message_iter_get_arg_type(&array) == DBUS_TYPE_STRUCT) {
-               DBusMessageIter entry, dict;
-               struct service_data service;
-               const char *path;
-
-               dbus_message_iter_recurse(&array, &entry);
-               dbus_message_iter_get_basic(&entry, &path);
-
-               service.path = strrchr(path, '/') + 1;
-
-               dbus_message_iter_next(&entry);
-
-               dbus_message_iter_recurse(&entry, &dict);
-               extract_properties(&dict, &service);
-
-               printf("%c %-20s { %-50s }\n",
-                               service.favorite == TRUE ? '*' : ' ',
-                                               service.name, service.path);
-
-               dbus_message_iter_next(&array);
-       }
-}
-
-static int cmd_list_services(DBusConnection *connection)
-{
-       DBusMessage *message;
-
-       message = get_services(connection);
-       if (message == NULL)
-               return -1;
-
-       extract_services(message);
-
-       dbus_message_unref(message);
-
-       return 0;
-}
-
-static int cmd_show_service(DBusConnection *connection, const char *pattern)
-{
-       DBusMessage *message;
-       const char *path;
-
-       message = lookup_service(connection, pattern);
-       if (message == NULL)
-               return -1;
-
-       dbus_message_get_args(message, NULL, DBUS_TYPE_OBJECT_PATH, &path,
-                                                       DBUS_TYPE_INVALID);
-
-       printf("Service: %s\n", path);
-
-       dbus_message_unref(message);
-
-       return 0;
-}
-
-static void usage(const char *program)
-{
-       printf("ConnMan utility ver %s\n\n", VERSION);
-
-       printf("Usage:\n"
-               "\t%s <command> [options]\n\n", program);
-
-       printf("Commands:\n"
-               "\thelp\n"
-               "\tlist\n"
-               "\tshow <service>\n"
-               "\n");
-}
-
-int main(int argc, char *argv[])
-{
-       DBusConnection *conn;
-
-       if (argc > 1 && strcmp(argv[1], "help") == 0) {
-               usage(argv[0]);
-               exit(0);
-       }
-
-       conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-       if (!conn) {
-               fprintf(stderr, "Can't get on system bus\n");
-               exit(1);
-       }
-
-       if (argc > 1) {
-               if (strcmp(argv[1], "list") == 0)
-                       cmd_list_services(conn);
-               else if (strcmp(argv[1], "show") == 0) {
-                       if (argc > 2)
-                               cmd_show_service(conn, argv[2]);
-                       else
-                               usage(argv[0]);
-               }
-       } else
-               usage(argv[0]);
-
-       dbus_connection_unref(conn);
-
-       return 0;
-}
diff --git a/configure.ac b/configure.ac
index 826b3e6..0a47ec2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -415,5 +415,8 @@ AC_ARG_ENABLE(datafiles, 
AC_HELP_STRING([--disable-datafiles],
                                        [enable_datafiles=${enableval}])
 AM_CONDITIONAL(DATAFILES, test "${enable_datafiles}" != "no")
 
+AC_CHECK_HEADERS(readline/readline.h, dummy=yes,
+       AC_MSG_ERROR(readline header files are required))
+
 AC_OUTPUT(Makefile include/version.h src/connman.service
                                scripts/connman doc/version.xml connman.pc)
-- 
1.7.9.5

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to