On 06/18/15 at 10:44am, Dave Young wrote:
On 06/13/15 at 02:51pm, Minfei Huang wrote:
> The ipv6 address has the special character colon ":", so we can use the
> new function to pick it out.
> We can use the new function to parse the passed parameter. The passed
> parameter is hostname/domain, if it is satisfied with the condition that
> it is without colon ":", and contanis the [a-zA-Z].
>
> Add a new function to simplify to get the ip address, if the specified
> address is a domain/hostname in /etc/kdump.conf.
> The function will parse the passed parameter, and use the "getent ahost"
> to get the ip address, if passed parameter is domain/hostname.
>
> Signed-off-by: Minfei Huang <mhuang(a)redhat.com>
> ---
> dracut-module-setup.sh | 1 +
> kdump-lib.sh | 45 ++++++++++++++++++++++++++++++++++-----------
> 2 files changed, 35 insertions(+), 11 deletions(-)
>
> diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
> index fd60b24..657530b 100755
> --- a/dracut-module-setup.sh
> +++ b/dracut-module-setup.sh
> @@ -668,6 +668,7 @@ install() {
> inst "/bin/dd" "/bin/dd"
> inst "/bin/tail" "/bin/tail"
> inst "/bin/date" "/bin/date"
> + inst "/bin/getent" "/bin/getent"
> inst "/bin/sync" "/bin/sync"
> inst "/bin/cut" "/bin/cut"
> inst "/sbin/makedumpfile" "/sbin/makedumpfile"
> diff --git a/kdump-lib.sh b/kdump-lib.sh
> index 1fa6058..481876b 100755
> --- a/kdump-lib.sh
> +++ b/kdump-lib.sh
> @@ -229,23 +229,46 @@ get_remote_host()
> echo $_config_val
> }
>
> -# check the remote server ip address tpye
> -is_ipv6_target()
> +# Convert hostname to ip address, echo the original value if $1 is already an ip
address.
> +# $1: hostname or ip address
> +get_ip_address()
> {
> - local _server _server_tmp
> + local _ip_address
> +
> + _ip_address=`getent ahosts $1 | head -n 1 | cut -d' ' -f1`
> + _ip_address=${_ip_address:-$1}
> + echo $_ip_address
> +}
> +
> +is_ipv6_host()
> +{
> + local _addr=$(get_ip_address $1)
> + echo $_addr | grep -q ":"
> +}
It is long time ago you posted the last version, I remember we discussed
about the issue no need to handle hostname target, only handle explict
ip address in kdump.conf, right?
Sorry. I forget it about the reason why we do not need to handle
hostname target. Could you explain it?
About getent, is it reliable to always return one type, either ipv4
or
ipv6, or randomly?
We can not confirm which ip type(maybe ipv4, maybe ipv6) will be
returned by command getent. It depends on the configuration of domain
service.
Whatever the command getent returns, I think it is ok. If it is the ipv4
protocol, we can walk through the ipv4 path, otherwise through ipv6 path.
Thanks
Minfei