From: Marcel Holtmann Date: Thu, 16 Oct 2008 23:35:44 +0000 (+0200) Subject: Preparation for network abstraction X-Git-Tag: 0.1~128 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6b9edbbacdade5e0ccad762d6c848a9bef426114;p=platform%2Fupstream%2Fconnman.git Preparation for network abstraction --- diff --git a/include/Makefile.am b/include/Makefile.am index 74a8cb7..7097870 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -2,7 +2,7 @@ includedir = @includedir@/connman include_HEADERS = log.h plugin.h security.h driver.h element.h property.h \ - device.h rtnl.h dbus.h + device.h network.h rtnl.h dbus.h MAINTAINERCLEANFILES = Makefile.in diff --git a/include/network.h b/include/network.h new file mode 100644 index 0000000..da7b67f --- /dev/null +++ b/include/network.h @@ -0,0 +1,33 @@ +/* + * + * Connection Manager + * + * Copyright (C) 2007-2008 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 + * + */ + +#ifndef __CONNMAN_NETWORK_H +#define __CONNMAN_NETWORK_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __CONNMAN_NETWORK_H */ diff --git a/src/Makefile.am b/src/Makefile.am index afa1ce9..120bad2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -12,7 +12,7 @@ DISTCLEANFILES = $(service_DATA) sbin_PROGRAMS = connmand connmand_SOURCES = main.c connman.h log.c error.c plugin.c profile.c \ - element.c device.c security.c storage.c \ + element.c device.c network.c security.c storage.c \ manager.c agent.c rtnl.c connmand_LDADD = @GDBUS_LIBS@ @GLIB_LIBS@ @GTHREAD_LIBS@ -ldl diff --git a/src/network.c b/src/network.c index 1264d2d..715e8c4 100644 --- a/src/network.c +++ b/src/network.c @@ -23,162 +23,4 @@ #include #endif -#include - #include "connman.h" - -static DBusConnection *connection = NULL; -static unsigned int index = 0; - -static GSList *networks = NULL; - -void __connman_iface_network_list(struct connman_iface *iface, - DBusMessageIter *iter) -{ - GSList *list; - - DBG(""); - - for (list = networks; list; list = list->next) { - struct connman_network *network = list->data; - - if (network->iface != iface) - continue; - - dbus_message_iter_append_basic(iter, - DBUS_TYPE_OBJECT_PATH, &network->path); - } -} - -struct connman_network *__connman_iface_find_network(struct connman_iface *iface, - const char *path) -{ - GSList *list; - - DBG(""); - - for (list = networks; list; list = list->next) { - struct connman_network *network = list->data; - - if (network->iface == iface && - g_str_equal(network->path, path) == TRUE) - return network; - } - - return NULL; -} - -int __connman_iface_remove_network(struct connman_iface *iface, const char *path) -{ - g_dbus_unregister_interface(connection, path, - CONNMAN_NETWORK_INTERFACE); - - return 0; -} - -static DBusMessage *get_identifier(DBusConnection *conn, - DBusMessage *msg, void *data) -{ - struct connman_network *network = data; - DBusMessage *reply; - - DBG("conn %p", conn); - - reply = dbus_message_new_method_return(msg); - if (reply == NULL) - return NULL; - - dbus_message_append_args(reply, DBUS_TYPE_STRING, &network->identifier, - DBUS_TYPE_INVALID); - - return reply; -} - -static DBusMessage *get_passphrase(DBusConnection *conn, - DBusMessage *msg, void *data) -{ - struct connman_network *network = data; - DBusMessage *reply; - - DBG("conn %p", conn); - - reply = dbus_message_new_method_return(msg); - if (reply == NULL) - return NULL; - - dbus_message_append_args(reply, DBUS_TYPE_STRING, &network->passphrase, - DBUS_TYPE_INVALID); - - return reply; -} - -static GDBusMethodTable network_methods[] = { - { "GetIdentifier", "", "s", get_identifier }, - { "GetPassphrase", "", "s", get_passphrase }, - { }, -}; - -static void network_free(void *data) -{ - struct connman_network *network = data; - - DBG(""); - - networks = g_slist_remove(networks, network); - - g_free(network->path); - g_free(network->identifier); - g_free(network->passphrase); - g_free(network); -} - -const char *__connman_iface_add_network(struct connman_iface *iface, - const char *identifier, const char *passphrase) -{ - struct connman_network *network; - gchar *path; - - DBG("iface %p", iface); - - network = g_try_new0(struct connman_network, 1); - if (network == NULL) - return NULL; - - path = g_strdup_printf("%s/net_%d", iface->path, index++); - if (path == NULL) { - g_free(network); - return NULL; - } - - network->iface = iface; - - network->path = path; - network->identifier = g_strdup(identifier); - network->passphrase = g_strdup(passphrase ? passphrase : ""); - - networks = g_slist_append(networks, network); - - g_dbus_register_interface(connection, path, CONNMAN_NETWORK_INTERFACE, - network_methods, NULL, NULL, - network, network_free); - - return path; -} - -int __connman_network_init(DBusConnection *conn) -{ - DBG("conn %p", conn); - - connection = dbus_connection_ref(conn); - if (connection == NULL) - return -1; - - return 0; -} - -void __connman_network_cleanup(void) -{ - DBG("conn %p", connection); - - dbus_connection_unref(connection); -}