From: Saul Wold <saul.wold@intel.com>
To: Hongxu Jia <hongxu.jia@windriver.com>,
openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/2] dhclient-script: let resolv.conf and resolv.conf.dhclient on the same direcotry
Date: Mon, 09 Dec 2013 20:41:30 -0800 [thread overview]
Message-ID: <52A69B7A.50409@intel.com> (raw)
In-Reply-To: <ae7e0f907b72ad9af0a078bdf317a7eb10315c7f.1386078157.git.hongxu.jia@windriver.com>
On 12/03/2013 05:46 AM, Hongxu Jia wrote:
> Even though '/etc' is on the readonly partition, it's possible that
> /etc/resolv.conf is on a separate writable partition.
>
> In this situation, we should make sure the temp file resolv.conf.dhclient
> on the same direcotry.
>
> [YOCTO #5624]
>
> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ---
> meta/recipes-connectivity/dhcp/dhcp.inc | 1 +
> ...ript-let-resolv.conf-and-resolv.conf.dhcl.patch | 74 ++++++++++++++++++++++
These new scripts are doing alot of out calling from the shell script,
and can cause additional fork/execs during the critical path of system
startup, is there any way to reduce this?
Sau!
> 2 files changed, 75 insertions(+)
> create mode 100644 meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch
>
> diff --git a/meta/recipes-connectivity/dhcp/dhcp.inc b/meta/recipes-connectivity/dhcp/dhcp.inc
> index ad82b57..d8376aa 100644
> --- a/meta/recipes-connectivity/dhcp/dhcp.inc
> +++ b/meta/recipes-connectivity/dhcp/dhcp.inc
> @@ -16,6 +16,7 @@ SRC_URI = "ftp://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \
> file://site.h \
> file://init-relay file://default-relay \
> file://init-server file://default-server \
> + file://dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch \
> file://dhclient.conf file://dhcpd.conf"
>
> inherit autotools
> diff --git a/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch b/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch
> new file mode 100644
> index 0000000..db56f70
> --- /dev/null
> +++ b/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch
> @@ -0,0 +1,74 @@
> +dhclient-script: let resolv.conf and resolv.conf.dhclient on the same direcotry
> +
> +Even though '/etc' is on the readonly partition, it's possible that
> +/etc/resolv.conf is on a separate writable partition.
> +
> +In this situation, we should make sure the temp file resolv.conf.dhclient
> +on the same direcotry.
> +
> +Upstream-Status: Pending
> +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> +---
> + client/scripts/linux | 24 +++++++++++++-----------
> + 1 file changed, 13 insertions(+), 11 deletions(-)
> +
> +diff --git a/client/scripts/linux b/client/scripts/linux
> +index 6f8ea4b..fbc6324 100755
> +--- a/client/scripts/linux
> ++++ b/client/scripts/linux
> +@@ -27,27 +27,29 @@ ip=/sbin/ip
> +
> + make_resolv_conf() {
> + if [ x"$new_domain_name_servers" != x ]; then
> +- cat /dev/null > /etc/resolv.conf.dhclient
> +- chmod 644 /etc/resolv.conf.dhclient
> ++ sysconfdir=`dirname $(readlink -f '/etc/resolv.conf')`
> ++ cat /dev/null > $sysconfdir/resolv.conf.dhclient
> ++ chmod 644 $sysconfdir/resolv.conf.dhclient
> + if [ x"$new_domain_search" != x ]; then
> +- echo search $new_domain_search >> /etc/resolv.conf.dhclient
> ++ echo search $new_domain_search >> $sysconfdir/esolv.conf.dhclient
> + elif [ x"$new_domain_name" != x ]; then
> + # Note that the DHCP 'Domain Name Option' is really just a domain
> + # name, and that this practice of using the domain name option as
> + # a search path is both nonstandard and deprecated.
> +- echo search $new_domain_name >> /etc/resolv.conf.dhclient
> ++ echo search $new_domain_name >> $sysconfdir/resolv.conf.dhclient
> + fi
> + for nameserver in $new_domain_name_servers; do
> +- echo nameserver $nameserver >>/etc/resolv.conf.dhclient
> ++ echo nameserver $nameserver >>$sysconfdir/resolv.conf.dhclient
> + done
> +
> +- mv /etc/resolv.conf.dhclient /etc/resolv.conf
> ++ mv $sysconfdir/resolv.conf.dhclient $sysconfdir/resolv.conf
> + elif [ "x${new_dhcp6_name_servers}" != x ] ; then
> +- cat /dev/null > /etc/resolv.conf.dhclient6
> +- chmod 644 /etc/resolv.conf.dhclient6
> ++ sysconfdir=`dirname $(readlink -f '/etc/resolv.conf')`
> ++ cat /dev/null > $sysconfdir/resolv.conf.dhclient6
> ++ chmod 644 $sysconfdir/resolv.conf.dhclient6
> +
> + if [ "x${new_dhcp6_domain_search}" != x ] ; then
> +- echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
> ++ echo search ${new_dhcp6_domain_search} >> $sysconfdir/resolv.conf.dhclient6
> + fi
> + shopt -s nocasematch
> + for nameserver in ${new_dhcp6_name_servers} ; do
> +@@ -59,11 +61,11 @@ make_resolv_conf() {
> + else
> + zone_id=
> + fi
> +- echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
> ++ echo nameserver ${nameserver}$zone_id >> $sysconfdir/resolv.conf.dhclient6
> + done
> + shopt -u nocasematch
> +
> +- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
> ++ mv $sysconfdir/resolv.conf.dhclient6 $sysconfdir/resolv.conf
> + fi
> + }
> +
> +--
> +1.7.9.5
> +
>
next prev parent reply other threads:[~2013-12-10 4:41 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-03 13:46 [PATCH V2 0/2] dhcp-client: fix invoke dhclient-script failed on Read-only file system Hongxu Jia
2013-12-03 13:46 ` [PATCH 1/2] dhclient-script: let resolv.conf and resolv.conf.dhclient on the same direcotry Hongxu Jia
2013-12-03 22:09 ` Phil Blundell
2013-12-04 2:00 ` Hongxu Jia
2013-12-10 4:41 ` Saul Wold [this message]
2013-12-10 10:25 ` Hongxu Jia
2013-12-03 13:46 ` [PATCH 2/2] dhclient-script: override make_resolv_conf for read-only fs Hongxu Jia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52A69B7A.50409@intel.com \
--to=saul.wold@intel.com \
--cc=hongxu.jia@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox