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

Add Connman based Context Manager

Initial implementation

https://bugzilla.gnome.org/show_bug.cgi?id=672998
parent 5d6ca451
......@@ -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)
......
......@@ -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 \
......
This diff is collapsed.
/*
* 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__ */
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment