Commit b4fd0681 authored by Ludovic Ferrandis's avatar Ludovic Ferrandis Committed by Jens Georg
Browse files

Add Connman based Context Manager

parent 5d6ca451
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -47,7 +47,7 @@ case "$target_os" in
        ;;
esac

PKG_CHECK_MODULES(LIBGUPNP, glib-2.0 >= 2.24.0 \
PKG_CHECK_MODULES(LIBGUPNP, glib-2.0 >= 2.28.0 \
                            gio-2.0 \
                            gmodule-2.0 \
                            gssdp-1.0 >= 0.11.2 \
@@ -59,7 +59,7 @@ PKG_CHECK_MODULES(GTHREAD, gthread-2.0)

AC_ARG_WITH([context_manager],
            AS_HELP_STRING(
                        [--with-context-manager=@<:@network-manager/unix/linux@:>@],
                        [--with-context-manager=@<:@network-manager/connman/unix/linux@:>@],
                        [Context Manager backend to use]),,
            [with_context_manager="unix"])

@@ -69,6 +69,13 @@ AC_MSG_RESULT([${with_context_manager}])
AM_CONDITIONAL([USE_NETWORK_MANAGER],
               [test "x$with_context_manager" = "xnetwork-manager"])

AM_CONDITIONAL([USE_CONNMAN],
               [test "x$with_context_manager" = "xconnman"])

if test "x$with_context_manager" = "xconnman"; then
        PKG_CHECK_MODULES(CONNMAN, connman >= 0.80)
fi

USE_NETLINK=no
if test "x$with_context_manager" = "xlinux"; then
       dnl check for netlink (Linux)
+8 −0
Original line number Diff line number Diff line
@@ -6,6 +6,12 @@ if USE_NETWORK_MANAGER
CONTEXT_MANAGER_IMPL += gupnp-network-manager.c  \
		        gupnp-network-manager.h
CONTEXT_MANAGER_CFLAGS = -DUSE_NETWORK_MANAGER
else
if USE_CONNMAN
CONTEXT_MANAGER_IMPL += gupnp-connman-manager.c  \
			gupnp-connman-manager.h
CONTEXT_MANAGER_CFLAGS = -DUSE_CONNMAN
endif
endif

if USE_NETLINK
@@ -96,6 +102,8 @@ libgupnp_1_0_la_LIBADD = $(LIBGUPNP_LIBS) $(DBUS_GLIB_LIBS) $(LIBCONIC_LIBS)
EXTRA_DIST = gupnp-marshal.list 	   \
	     gupnp-network-manager.c   	   \
	     gupnp-network-manager.h       \
	     gupnp-connman-manager.c   	   \
	     gupnp-connman-manager.h       \
	     gupnp-linux-context-manager.c \
	     gupnp-linux-context-manager.h \
	     gupnp-unix-context-manager.c  \
+774 −0

File added.

Preview size limit exceeded, changes collapsed.

+74 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2012 Intel Corporation. All rights reserved.
 * Copyright (C) 2009 Nokia Corporation.
 *
 * Author: Ludovic Ferrandis <ludovic.ferrandis@intel.com>
 * Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
 *                               <zeeshan.ali@nokia.com>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library 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
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */

#ifndef __GUPNP_CONNMAN_MANAGER_H__
#define __GUPNP_CONNMAN_MANAGER_H__

#include "gupnp-context-manager.h"

G_BEGIN_DECLS

G_GNUC_INTERNAL GType
gupnp_connman_manager_get_type (void) G_GNUC_CONST;

#define GUPNP_TYPE_CONNMAN_MANAGER \
                (gupnp_connman_manager_get_type ())
#define GUPNP_CONNMAN_MANAGER(obj) \
                (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
                 GUPNP_TYPE_CONNMAN_MANAGER, \
                 GUPnPConnmanManager))
#define GUPNP_CONNMAN_MANAGER_CLASS(obj) \
                (G_TYPE_CHECK_CLASS_CAST ((obj), \
                 GUPNP_TYPE_CONNMAN_MANAGER, \
                 GUPnPConnmanManagerClass))
#define GUPNP_IS_CONNMAN_MANAGER(obj) \
                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
                 GUPNP_TYPE_CONNMAN_MANAGER))
#define GUPNP_IS_CONNMAN_MANAGER_CLASS(obj) \
                (G_TYPE_CHECK_CLASS_TYPE ((obj), \
                 GUPNP_TYPE_CONNMAN_MANAGER))
#define GUPNP_CONNMAN_MANAGER_GET_CLASS(obj) \
                (G_TYPE_INSTANCE_GET_CLASS ((obj), \
                 GUPNP_TYPE_CONNMAN_MANAGER, \
                 GUPnPConnmanManagerClass))

typedef struct _GUPnPConnmanManagerPrivate GUPnPConnmanManagerPrivate;

typedef struct {
        GUPnPContextManager             parent;
        GUPnPConnmanManagerPrivate      *priv;

} GUPnPConnmanManager;

typedef struct {
        GUPnPContextManagerClass parent_class;

} GUPnPConnmanManagerClass;

G_GNUC_INTERNAL gboolean
gupnp_connman_manager_is_available      (void);

G_END_DECLS

#endif /* __GUPNP_CONNMAN_MANAGER_H__ */
+6 −0
Original line number Diff line number Diff line
@@ -335,6 +335,12 @@ gupnp_context_manager_create (guint port)

        if (gupnp_network_manager_is_available ())
                impl_type = GUPNP_TYPE_NETWORK_MANAGER;
#elif USE_CONNMAN
#include "gupnp-connman-manager.h"

       if (gupnp_connman_manager_is_available ())
                impl_type = GUPNP_TYPE_CONNMAN_MANAGER;

#elif USE_NETLINK
#include "gupnp-linux-context-manager.h"
        impl_type = GUPNP_TYPE_LINUX_CONTEXT_MANAGER;