This email list is read-only. Emails sent to this list will be discarded ---------------------------------- bootstrap-configure | 1 + configure.ac | 21 +++++++++-- plugins/Makefile.am | 10 +++-- plugins/resolvfile.c | 92 -------------------------------------------------- src/connman.h | 3 ++ src/main.c | 8 +--- src/resolver.c | 62 +++++++++++++++++++++++++++++++++ 7 files changed, 91 insertions(+), 106 deletions(-)
New commits: commit 18a1d464eceb21cfb1956f4991fa6d5ddc7b31c2 Author: Marcel Holtmann <[email protected]> Date: Sat Jan 3 12:01:18 2009 +0100 Fix minor spelling mistake commit d8d3470ebc609dd702a1bce7b1ab07b105f9e4ca Author: Marcel Holtmann <[email protected]> Date: Sat Jan 3 11:58:22 2009 +0100 Use correct flags for PPP plugin commit 264e2b2c025b44104ac97f084ba3ad2ff3ed67c9 Author: Marcel Holtmann <[email protected]> Date: Sat Jan 3 11:57:07 2009 +0100 Add option for selecting resolvconf support commit 136ce2c05ed1fdd3033215bd9f15867c56b6dc4f Author: Marcel Holtmann <[email protected]> Date: Sat Jan 3 11:49:58 2009 +0100 Make /etc/resolv.conf modification part of the daemon commit ef15fdd2b73da041cb3cd623ca0b4ce0c856644a Author: Marcel Holtmann <[email protected]> Date: Sat Jan 3 11:41:53 2009 +0100 Remove some empty lines to make it more readable Diff in this email is a maximum of 400 lines. diff --git a/bootstrap-configure b/bootstrap-configure index c9d8ebe..5abeb4b 100755 --- a/bootstrap-configure +++ b/bootstrap-configure @@ -20,6 +20,7 @@ fi --enable-wifi \ --enable-udhcp \ --enable-dhclient \ + --enable-resolvconf \ --enable-novatel \ --enable-huawei \ --enable-hso \ diff --git a/configure.ac b/configure.ac index 2a4900c..39dbced 100644 --- a/configure.ac +++ b/configure.ac @@ -57,7 +57,7 @@ fi AM_CONDITIONAL(WIFI, test "${enable_wifi}" = "yes") AC_ARG_WITH(udhcpc, AC_HELP_STRING([--with-udhcpc=PROGRAM], - [specific location of udhcpc binary]), [path_udhcpc=${withval}]) + [specify location of udhcpc binary]), [path_udhcpc=${withval}]) AC_ARG_ENABLE(UDHCP, AC_HELP_STRING([--enable-udhcp], [enable uDHCP support]), [enable_udhcp=${enableval}]) @@ -72,7 +72,7 @@ fi AM_CONDITIONAL(UDHCP, test "${enable_udhcp}" = "yes") AC_ARG_WITH(dhclient, AC_HELP_STRING([--with-dhclient=PROGRAM], - [specific location of dhclient binary]), [path_dhclient=${withval}]) + [specify location of dhclient binary]), [path_dhclient=${withval}]) AC_ARG_ENABLE(DHCLIENT, AC_HELP_STRING([--enable-dhclient], [enable dhclient support]), [enable_dhclient=${enableval}]) @@ -86,7 +86,20 @@ if (test "${enable_dhclient}" = "yes"); then fi AM_CONDITIONAL(DHCLIENT, test "${enable_dhclient}" = "yes") -AC_PATH_PROG(RESOLVCONF, [resolvconf], [], $PATH:/sbin:/usr/sbin) +AC_ARG_WITH(resolvconf, AC_HELP_STRING([--with-resolvconf=PROGRAM], + [specify location of resolvconf binary]), [path_resolvconf=${withval}]) + +AC_ARG_ENABLE(RESOLVCONF, AC_HELP_STRING([--enable-resolvconf], + [enable resolvconf support]), [enable_resolvconf=${enableval}]) +if (test "${enable_resolvconf}" = "yes"); then + if (test -z "${path_resolvconf}"); then + AC_PATH_PROG(RESOLVCONF, [resolvconf], [], $PATH:/sbin:/usr/sbin) + else + UDHCPC="${path_resolvconf}" + AC_SUBST(RESOLVCONF) + fi +fi +AM_CONDITIONAL(RESOLVCONF, test "${enable_resolvconf}" = "yes") AC_ARG_ENABLE(novatel, AC_HELP_STRING([--enable-novatel], [enable Novatel support]), [enable_novatel=${enableval}]) @@ -101,7 +114,7 @@ AC_ARG_ENABLE(hso, AC_HELP_STRING([--enable-hso], AM_CONDITIONAL(HSO, test "${enable_hso}" = "yes") AC_ARG_WITH(pppd, AC_HELP_STRING([--with-pppd=PROGRAM], - [specific location of pppd binary]), [path_pppd=${withval}]) + [specify location of pppd binary]), [path_pppd=${withval}]) AC_ARG_ENABLE(ppp, AC_HELP_STRING([--enable-ppp], [enable PPP support]), [enable_ppp=${enableval}]) diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 597da4b..f2b280c 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -1,8 +1,7 @@ plugindir = $(libdir)/connman/plugins -plugin_LTLIBRARIES = ethernet.la bluetooth.la \ - ipv4.la dnsproxy.la resolvconf.la resolvfile.la +plugin_LTLIBRARIES = ethernet.la bluetooth.la ipv4.la dnsproxy.la if LOOPBACK plugin_LTLIBRARIES += loopback.la @@ -62,14 +61,17 @@ if PPPD plugin_LTLIBRARIES += pppd.la pppd_la_SOURCES = pppd.c +pppd_la_CFLAGS = @GLIB_CFLAGS@ -DPPPD=\"@p...@\" endif dnsproxy_la_SOURCES = dnsproxy.c +if RESOLVCONF +plugin_LTLIBRARIES += resolvconf.la + resolvconf_la_SOURCES = resolvconf.c resolvconf_la_CFLAGS = @GLIB_CFLAGS@ -DRESOLVCONF=\"@resolvc...@\" - -resolvfile_la_SOURCES = resolvfile.c +endif if POLKIT plugin_LTLIBRARIES += polkit.la diff --git a/plugins/resolvfile.c b/plugins/resolvfile.c deleted file mode 100644 index e89b2ca..0000000 --- a/plugins/resolvfile.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * - * Connection Manager - * - * Copyright (C) 2007-2009 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 <fcntl.h> -#include <unistd.h> -#include <string.h> -#include <sys/stat.h> - -#define CONNMAN_API_SUBJECT_TO_CHANGE -#include <connman/plugin.h> -#include <connman/resolver.h> -#include <connman/log.h> - -#include <glib.h> - -static int resolvfile_append(const char *interface, const char *domain, - const char *server) -{ - char *cmd; - int fd, len, err; - - DBG("server %s", server); - - fd = open("/etc/resolv.conf", O_RDWR | O_CREAT, - S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); - if (fd < 0) - return errno; - - err = ftruncate(fd, 0); - - cmd = g_strdup_printf("nameserver %s\n", server); - - len = write(fd, cmd, strlen(cmd)); - - g_free(cmd); - - close(fd); - - return 0; -} - -static int resolvfile_remove(const char *interface, const char *domain, - const char *server) -{ - DBG("server %s", server); - - return 0; -} - -static struct connman_resolver resolvfile_resolver = { - .name = "resolvfile", - .priority = CONNMAN_RESOLVER_PRIORITY_LOW, - .append = resolvfile_append, - .remove = resolvfile_remove, -}; - -static int resolvfile_init(void) -{ - return connman_resolver_register(&resolvfile_resolver); -} - -static void resolvfile_exit(void) -{ - connman_resolver_unregister(&resolvfile_resolver); -} - -CONNMAN_PLUGIN_DEFINE(resolvfile, "Name resolver plugin", VERSION, - resolvfile_init, resolvfile_exit) diff --git a/src/connman.h b/src/connman.h index e410ac1..cb5f72a 100644 --- a/src/connman.h +++ b/src/connman.h @@ -77,6 +77,9 @@ enum connman_ipv4_method __connman_ipv4_string2method(const char *method); #include <connman/resolver.h> +int __connman_resolver_init(void); +void __connman_resolver_cleanup(void); + int __connman_resolver_selftest(void); #include <connman/driver.h> diff --git a/src/main.c b/src/main.c index 65cc9d4..971359d 100644 --- a/src/main.c +++ b/src/main.c @@ -153,15 +153,13 @@ int main(int argc, char *argv[]) __connman_dbus_init(conn); __connman_storage_init(); - __connman_element_init(conn, option_device); __connman_agent_init(conn); - __connman_manager_init(conn, option_compat); - __connman_profile_init(conn); + __connman_resolver_init(); __connman_rtnl_init(); __connman_udev_init(); @@ -184,15 +182,13 @@ int main(int argc, char *argv[]) __connman_udev_cleanup(); __connman_rtnl_cleanup(); + __connman_resolver_cleanup(); __connman_profile_cleanup(); - __connman_manager_cleanup(); - __connman_agent_cleanup(); __connman_element_cleanup(); - __connman_storage_cleanup(); __connman_dbus_cleanup(); diff --git a/src/resolver.c b/src/resolver.c index 0f35188..de60cf1 100644 --- a/src/resolver.c +++ b/src/resolver.c @@ -23,6 +23,13 @@ #include <config.h> #endif +#include <stdio.h> +#include <errno.h> +#include <fcntl.h> +#include <unistd.h> +#include <string.h> +#include <sys/stat.h> + #include "connman.h" struct entry_data { @@ -231,3 +238,58 @@ int __connman_resolver_selftest(void) return 0; } + +static int resolvfile_append(const char *interface, const char *domain, + const char *server) +{ + char *cmd; + int fd, len, err; + + DBG("interface %s server %s", interface, server); + + fd = open("/etc/resolv.conf", O_RDWR | O_CREAT, + S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); + if (fd < 0) + return errno; + + err = ftruncate(fd, 0); + + cmd = g_strdup_printf("nameserver %s\n", server); + + len = write(fd, cmd, strlen(cmd)); + + g_free(cmd); + + close(fd); + + return 0; +} + +static int resolvfile_remove(const char *interface, const char *domain, + const char *server) +{ + DBG("interface %s server %s", interface, server); + + return 0; +} + +static struct connman_resolver resolvfile_resolver = { + .name = "resolvfile", + .priority = CONNMAN_RESOLVER_PRIORITY_LOW, + .append = resolvfile_append, + .remove = resolvfile_remove, +}; + +int __connman_resolver_init(void) +{ + DBG(""); + + return connman_resolver_register(&resolvfile_resolver); +} + +void __connman_resolver_cleanup(void) +{ + DBG(""); + + connman_resolver_unregister(&resolvfile_resolver); +} _______________________________________________ Commits mailing list [email protected] https://lists.moblin.org/mailman/listinfo/commits
