Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:Update
pacemaker
bug-976271_pacemaker-ping-fping6.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bug-976271_pacemaker-ping-fping6.patch of Package pacemaker
commit 2ae880b0417c7e4ab78756b2af709d00717fe640 Author: Michal Koutný <mkoutny@suse.com> Date: Wed Apr 20 11:05:00 2016 +0200 Fix: ping resource: Use fping6 for IPv6 hosts diff --git a/extra/resources/ping b/extra/resources/ping index b57db4b..e2c5e9e 100755 --- a/extra/resources/ping +++ b/extra/resources/ping @@ -218,6 +218,15 @@ ping_validate() { exit $OCF_ERR_CONFIGURED fi + # For fping allow only same IP versions or hostnames + if use_fping; then + hosts_family + if [ $? -eq 99 ]; then + ocf_log err "host_list can contain only host with same IP versions for fping" + exit $OCF_ERR_CONFIGURED + fi + fi + check_binary ping return $OCF_SUCCESS @@ -225,6 +234,13 @@ ping_validate() { fping_check() { + p_exe=fping + hosts_family + case $? in + 6) p_exe=fping6 ;; + 99) ocf_log err "Ambiguous IP versions in host_list: '$OCF_RESKEY_host_list'"; exit $OCF_ERR_CONFIGURED;; + esac + active=0 f_out=`mktemp` f_err=`mktemp` @@ -232,7 +248,7 @@ fping_check() { n=$OCF_RESKEY_attempts timeout=`expr $OCF_RESKEY_timeout \* 1000 / $OCF_RESKEY_attempts` - cmd="fping -r $OCF_RESKEY_attempts -t $timeout -B 1.0 $OCF_RESKEY_options $OCF_RESKEY_host_list" + cmd="$p_exe -r $OCF_RESKEY_attempts -t $timeout -B 1.0 $OCF_RESKEY_options $OCF_RESKEY_host_list" $cmd>$f_out 2>$f_err; rc=$? active=`grep alive $f_out|wc -l` @@ -281,7 +297,7 @@ ping_check() { ping_update() { - if ocf_is_true "$OCF_RESKEY_use_fping" && have_binary fping; then + if use_fping; then fping_check active=$? else @@ -311,6 +327,39 @@ ping_update() { return 0 } +use_fping() { + ocf_is_true "$OCF_RESKEY_use_fping" && have_binary fping; +} + +# return values: +# 4 IPv4 +# 6 IPv6 +# 0 indefinite (i.e. hostname) +host_family() { + case $1 in + *[0-9].*[0-9].*[0-9].*[0-9]) return 4 ;; + *:*) return 6 ;; + *) return 0 ;; + esac +} + +# return values same as host_family plus +# 99 ambiguous families +hosts_family() { + # For fping allow only same IP versions or hostnames + family=0 + for host in $OCF_RESKEY_host_list; do + host_family $host + f=$? + if [ $family -ne 0 -a $f -ne 0 -a $f -ne $family ] ; then + family=99 + break + fi + [ $f -ne 0 ] && family=$f + done + return $family +} + : ${OCF_RESKEY_name:="pingd"} : ${OCF_RESKEY_dampen:="5s"} : ${OCF_RESKEY_attempts:="3"}
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor