diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2008-11-19 07:40:37 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2008-11-19 07:40:37 +0100 |
commit | e204b1b0150df1d5904e509a1fbf5c12a66ed6f8 (patch) | |
tree | dc97234ab98d34dba25c7ba9b67414284e59883c /src/resolver.c | |
parent | 9f5fe30d3ba7b2f1d3965859c822dca2201b2a3f (diff) | |
download | connman-e204b1b0150df1d5904e509a1fbf5c12a66ed6f8.tar.gz connman-e204b1b0150df1d5904e509a1fbf5c12a66ed6f8.tar.bz2 connman-e204b1b0150df1d5904e509a1fbf5c12a66ed6f8.zip |
Add support for resolver modules
Diffstat (limited to 'src/resolver.c')
-rw-r--r-- | src/resolver.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/resolver.c b/src/resolver.c new file mode 100644 index 00000000..404bc3dd --- /dev/null +++ b/src/resolver.c @@ -0,0 +1,67 @@ +/* + * + * 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 + * + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "connman.h" + +static GStaticRWLock resolver_lock = G_STATIC_RW_LOCK_INIT; +static GSList *resolver_list = NULL; + +/** + * connman_resolver_register: + * @resolver: resolver module + * + * Register a new resolver module + * + * Returns: %0 on success + */ +int connman_resolver_register(struct connman_resolver *resolver) +{ + DBG("resolver %p name %s", resolver, resolver->name); + + g_static_rw_lock_writer_lock(&resolver_lock); + + resolver_list = g_slist_append(resolver_list, resolver); + + g_static_rw_lock_writer_unlock(&resolver_lock); + + return 0; +} + +/** + * connman_resolver_unregister: + * @resolver: resolver module + * + * Remove a previously registered resolver module + */ +void connman_resolver_unregister(struct connman_resolver *resolver) +{ + DBG("resolver %p name %s", resolver, resolver->name); + + g_static_rw_lock_writer_lock(&resolver_lock); + + resolver_list = g_slist_remove(resolver_list, resolver); + + g_static_rw_lock_writer_unlock(&resolver_lock); +} |