diff --git a/CHANGES b/CHANGES index 28ab3e5..d43b4f4 100644 --- a/CHANGES +++ b/CHANGES @@ -72,6 +72,8 @@ Building: Porting: Fix for old FreeBSD. + Fixes for old Debian + Testing: test.sh produces file results.txt with columns of test numbers, names, and results. diff --git a/config.h.in b/config.h.in index 682913e..410576b 100644 --- a/config.h.in +++ b/config.h.in @@ -333,6 +333,9 @@ /* Define if you have the <readline/history.h> header file. */ #undef HAVE_READLINE_HISTORY_H +/* Define if you have the <mqueue.h> header file. */ +#undef HAVE_MQUEUE_H + /* Define if you have the readline library. */ #undef HAVE_LIBREADLINE diff --git a/configure.ac b/configure.ac index b0227ec..0b35dd1 100644 --- a/configure.ac +++ b/configure.ac @@ -489,6 +489,13 @@ AC_ARG_ENABLE(posixmq, [ --disable-posixmq disable POSIX MQ support], *) WITH_POSIXMQ=1; AC_MSG_RESULT(yes);; esac], [WITH_POSIXMQ=1; AC_MSG_RESULT(yes)]) +if test "$WITH_POSIXMQ"; then + AC_CHECK_HEADERS(mqueue.h) + if test "x$ac_cv_header_mqueue_h" != xyes; then + AC_MSG_WARN([Header mqueue.h not found, disabling POSIX MQ]) + WITH_POSIXMQ= + fi +fi if test "$WITH_POSIXMQ"; then case "`uname`" in Linux) AC_DEFINE(WITH_POSIXMQ) diff --git a/sysincludes.h b/sysincludes.h index f51e368..25a2309 100644 --- a/sysincludes.h +++ b/sysincludes.h @@ -182,7 +182,7 @@ #if WITH_NAMESPACES && HAVE_SCHED_H #include <sched.h> #endif -#if WITH_POSIXMQ +#if WITH_POSIXMQ && HAVE_MQUEUE_H #include <mqueue.h> /* POSIX MQ */ #endif #if WITH_READLINE diff --git a/test.sh b/test.sh index d6ce591..272e1d8 100755 --- a/test.sh +++ b/test.sh @@ -291,89 +291,6 @@ SIZE_T=$($PROCAN |grep "^[^[:space:]]*size_t" |awk '{print($3);}') #AI_ADDRCONFIG=; if [ "$($SOCAT -hhh |grep ai-addrconfig)" ]; then AI_ADDRCONFIG="ai-addrconfig=0"; fi #[ "$DEFS" ] && echo "AI_ADDRCONFIG=\"$AI_ADDRCONFIG\"" >&2 -# SSL certificate contents -TESTCERT_CONF=testcert.conf -TESTCERT6_CONF=testcert6.conf -TESTALT_CONF=testalt.conf -# -TESTCERT_COMMONNAME="$LOCALHOST" -TESTCERT_COMMONNAME6="$LOCALHOST6" -TESTCERT_COUNTRYNAME="XY" -TESTCERT_LOCALITYNAME="Lunar Base" -TESTCERT_ORGANIZATIONALUNITNAME="socat" -TESTCERT_ORGANIZATIONNAME="dest-unreach" -TESTCERT_SUBJECT="C = $TESTCERT_COUNTRYNAME, CN = $TESTCERT_COMMONNAME, O = $TESTCERT_ORGANIZATIONNAME, OU = $TESTCERT_ORGANIZATIONALUNITNAME, L = $TESTCERT_LOCALITYNAME" -TESTCERT_ISSUER="C = $TESTCERT_COUNTRYNAME, CN = $TESTCERT_COMMONNAME, O = $TESTCERT_ORGANIZATIONNAME, OU = $TESTCERT_ORGANIZATIONALUNITNAME, L = $TESTCERT_LOCALITYNAME" -RSABITS=2048 # Ubuntu-20.04 with OpenSSL-1.1.1f does not work with 1024 nor 1536 -DSABITS=2048 -cat >$TESTCERT_CONF <<EOF -prompt=no - -[ req ] -default_bits = $RSABITS -distinguished_name=Test - -[ Test ] -countryName=$TESTCERT_COUNTRYNAME -commonName=$TESTCERT_COMMONNAME -O=$TESTCERT_ORGANIZATIONNAME -OU=$TESTCERT_ORGANIZATIONALUNITNAME -L=$TESTCERT_LOCALITYNAME - -EOF - -cat >$TESTCERT6_CONF <<EOF -prompt=no - -[ req ] -default_bits = $RESBITS -distinguished_name=Test - -[ Test ] -countryName=$TESTCERT_COUNTRYNAME -commonName=$TESTCERT_COMMONNAME6 -O=$TESTCERT_ORGANIZATIONNAME -OU=$TESTCERT_ORGANIZATIONALUNITNAME -L=$TESTCERT_LOCALITYNAME - -EOF - -cat >$TESTALT_CONF <<EOF -# config for generation of self signed certificate with IP addresses in -# SubjectAltNames -prompt=no - -[ req ] -default_bits = $RSABITS -distinguished_name = subject -x509_extensions = x509_ext - -[ subject ] -countryName=$TESTCERT_COUNTRYNAME -commonName=servername -O=$TESTCERT_ORGANIZATIONNAME -OU=$TESTCERT_ORGANIZATIONALUNITNAME -L=$TESTCERT_LOCALITYNAME - -[ x509_ext ] -subjectAltName = @alternate_names - -[ alternate_names ] -DNS.1 = localhost -DNS.2 = localhost4 -DNS.3 = localhost6 -IP.1 = 127.0.0.1 -IP.2 = ::1 - -EOF - -# clean up from previous runs - no, only with -C -#rm -f testcli.{crt,key,pem} -#rm -f testsrv.{crt,key,pem} -#rm -f testcli6.{crt,key,pem} -#rm -f testsrv6.{crt,key,pem} -#rm -f testalt.{crt,key,pem} - CAT="cat" OD_C="od -c" @@ -554,7 +471,7 @@ fi # need output like "644" case "$UNAME" in - Linux) fileperms() { stat -L --print "%a\n" "$1" 2>/dev/null; } ;; + #Linux) fileperms() { stat -L --print "%a\n" "$1" 2>/dev/null; } ;; FreeBSD) fileperms() { stat -L -x "$1" |grep ' Mode:' |sed 's/.* Mode:[[:space:]]*([0-9]\([0-7][0-7][0-7]\).*/\1/'; } ;; *) fileperms() { local p s=0 c @@ -692,42 +609,6 @@ if [ -x /usr/xpg4/bin/id ]; then PATH="/usr/xpg4/bin:$PATH" fi -OPENSSL_S_CLIENT_4= -OPENSSL_S_CLIENT_DTLS= -init_openssl_s_client () { - if openssl s_client -help 2>&1 |grep -q ' -4 '; then - OPENSSL_S_CLIENT_4="-4" - else - OPENSSL_S_CLIENT_4=" " - fi - if openssl s_client -help 2>&1 | grep -q ' -dtls '; then - OPENSSL_S_CLIENT_DTLS=-dtls - else - OPENSSL_S_CLIENT_DTLS=-dtls1 - fi -} - -OPENSSL_S_SERVER_4= -OPENSSL_S_SERVER_DTLS= -OPENSSL_S_SERVER_NO_IGN_EOF= -init_openssl_s_server () { - if openssl s_server -help 2>&1 |grep -q ' -4 '; then - OPENSSL_S_SERVER_4="-4" - else - OPENSSL_S_SERVER_4=" " - fi - if openssl s_server -help 2>&1 | grep -q ' -dtls '; then - OPENSSL_S_SERVER_DTLS="-dtls" - else - OPENSSL_S_SERVER_DTLS="-dtls1" - fi - if openssl s_server -help 2>&1 | grep -q ' -no-ign_eof '; then - OPENSSL_S_SERVER_NO_IGN_EOF="-no-ign_eof" - else - OPENSSL_S_SERVER_NO_IGN_EOF=" " - fi -} - [ -z "$TESTS" ] && TESTS="consistency functions filan" # use '%' as separation char @@ -968,6 +849,20 @@ testod () { fi # NUMCOND } +# bash before version 3 aborts scripts that contain unquoted '=~' +# Therefore we create a shell script and quotedly fill it with '=~' for newer +# bashes +mkdir -p $td/bin +rm -f $td/bin/re_match +if [ "${BASH_VERSION%%[.]*}" -le 2 ]; then + echo '[ -n "$(echo "$1" |sed -n "/$2/ p")" ]' >$td/bin/re_match +else + echo '[[ "$1" =~ $2 ]]' >$td/bin/re_match +fi +chmod a+x $td/bin/re_match +PATH=$PATH:$td/bin + + # test if the socat executable has these features compiled in # print the first missing address type testfeats () { @@ -985,7 +880,8 @@ testfeats () { fi fi if SOCAT_MAIN_WAIT= $SOCAT -V |grep "#define WITH_$A 1\$" >/dev/null; then - if [[ "$A" =~ OPENSSL.* ]]; then +# if [[ "$A" =~ OPENSSL.* ]]; then + if re_match "$A" "OPENSSL.*"; then gentestcert testsrv gentestcert testcli fi @@ -1165,9 +1061,9 @@ runsip6 () { AIX) l=$($IFCONFIG lo0 |grep 'inet6 ::1[/%]') ;; HP-UX) l=$($IFCONFIG lo0 |grep ' inet6 ') ;; Linux) if [ "$IP" ]; then - l=$($IP address |$GREP_E 'inet6 ::1/128') + l="$($IP address |$GREP_E 'inet6 ::1/128')" else - l=$($IFCONFIG |$GREP_E 'inet6 (addr: )?::1/?') + l="$($IFCONFIG |$GREP_E 'inet6 (addr: )?::1/?')" fi ;; NetBSD)l=$($IFCONFIG -a |grep 'inet6 ::1\>');; OSF1) l=$($IFCONFIG -a |grep ' inet6 ') ;; @@ -1277,6 +1173,141 @@ routesip6 () { } +# SSL needs runsip6(), thus moved down + +# SSL certificate contents +TESTCERT_CONF=testcert.conf +TESTCERT6_CONF=testcert6.conf +TESTALT_CONF=testalt.conf +# +TESTCERT_COMMONNAME="$LOCALHOST" +TESTCERT_COMMONNAME6="$LOCALHOST6" +TESTCERT_COUNTRYNAME="XY" +TESTCERT_LOCALITYNAME="Lunar Base" +TESTCERT_ORGANIZATIONALUNITNAME="socat" +TESTCERT_ORGANIZATIONNAME="dest-unreach" +TESTCERT_SUBJECT="C = $TESTCERT_COUNTRYNAME, CN = $TESTCERT_COMMONNAME, O = $TESTCERT_ORGANIZATIONNAME, OU = $TESTCERT_ORGANIZATIONALUNITNAME, L = $TESTCERT_LOCALITYNAME" +TESTCERT_ISSUER="C = $TESTCERT_COUNTRYNAME, CN = $TESTCERT_COMMONNAME, O = $TESTCERT_ORGANIZATIONNAME, OU = $TESTCERT_ORGANIZATIONALUNITNAME, L = $TESTCERT_LOCALITYNAME" +RSABITS=2048 # Ubuntu-20.04 with OpenSSL-1.1.1f does not work with 1024 nor 1536 +DSABITS=2048 +cat >$TESTCERT_CONF <<EOF +prompt=no + +[ req ] +default_bits = $RSABITS +distinguished_name=Test + +[ Test ] +countryName=$TESTCERT_COUNTRYNAME +commonName=$TESTCERT_COMMONNAME +O=$TESTCERT_ORGANIZATIONNAME +OU=$TESTCERT_ORGANIZATIONALUNITNAME +L=$TESTCERT_LOCALITYNAME + +EOF + +cat >$TESTCERT6_CONF <<EOF +prompt=no + +[ req ] +default_bits = $RESBITS +distinguished_name=Test + +[ Test ] +countryName=$TESTCERT_COUNTRYNAME +commonName=$TESTCERT_COMMONNAME6 +O=$TESTCERT_ORGANIZATIONNAME +OU=$TESTCERT_ORGANIZATIONALUNITNAME +L=$TESTCERT_LOCALITYNAME + +EOF + +cat >$TESTALT_CONF <<EOF +# config for generation of self signed certificate with IP addresses in +# SubjectAltNames +prompt=no + +[ req ] +default_bits = $RSABITS +distinguished_name = subject +x509_extensions = x509_ext + +[ subject ] +countryName=$TESTCERT_COUNTRYNAME +commonName=servername +O=$TESTCERT_ORGANIZATIONNAME +OU=$TESTCERT_ORGANIZATIONALUNITNAME +L=$TESTCERT_LOCALITYNAME + +[ x509_ext ] +subjectAltName = @alternate_names + +[ alternate_names ] +DNS.1 = localhost +DNS.2 = localhost4 +DNS.3 = localhost6 +IP.1 = 127.0.0.1 +EOF + +if runsip6; then + cat >>$TESTALT_CONF <<EOF +IP.2 = ::1 +EOF +fi + + +# clean up from previous runs +rm -f testcli.{crt,key,pem} +rm -f testsrv.{crt,key,pem} +rm -f testcli6.{crt,key,pem} +rm -f testsrv6.{crt,key,pem} +rm -f testalt.{crt,key,pem} + +OPENSSL_S_CLIENT_4= +OPENSSL_S_CLIENT_DTLS= +init_openssl_s_client () { + if openssl s_client -help 2>&1 |grep -q ' -4 '; then + OPENSSL_S_CLIENT_4="-4" + else + OPENSSL_S_CLIENT_4=" " + fi + if openssl s_client -help 2>&1 | grep -q ' -dtls1_2 '; then + OPENSSL_S_CLIENT_DTLS="-dtls1_2" + elif openssl s_client -help 2>&1 | grep -q ' -dtls1 '; then + OPENSSL_S_CLIENT_DTLS="-dtls1" + elif openssl s_client -help 2>&1 | grep -q ' -dtls '; then + OPENSSL_S_CLIENT_DTLS="-dtls" + else + OPENSSL_S_CLIENT_DTLS= + fi +} + +OPENSSL_S_SERVER_4= +OPENSSL_S_SERVER_DTLS= +OPENSSL_S_SERVER_NO_IGN_EOF= +init_openssl_s_server () { + if openssl s_server -help 2>&1 |grep -q ' -4 '; then + OPENSSL_S_SERVER_4="-4" + else + OPENSSL_S_SERVER_4=" " + fi + if openssl s_server -help 2>&1 | grep -q ' -dtls1_2 '; then + OPENSSL_S_SERVER_DTLS="-dtls1_2" + elif openssl s_server -help 2>&1 | grep -q ' -dtls1 '; then + OPENSSL_S_SERVER_DTLS="-dtls1" + elif openssl s_server -help 2>&1 | grep -q ' -dtls '; then + OPENSSL_S_SERVER_DTLS="-dtls" + else + OPENSSL_S_SERVER_DTLS= + fi + if openssl s_server -help 2>&1 | grep -q ' -no-ign_eof '; then + OPENSSL_S_SERVER_NO_IGN_EOF="-no-ign_eof" + else + OPENSSL_S_SERVER_NO_IGN_EOF=" " + fi +} + + # Perform a couple of checks to make sure the test has a chance of a useful # result: # platform is supported, features compiled in, addresses and options @@ -11016,7 +11047,7 @@ elif ! testfeats openssl >/dev/null; then elif ! type openssl >/dev/null 2>&1; then $PRINTF "test $F_n $TEST... ${YELLOW}openssl executable not available${NORMAL}\n" $N cant -elif ! [[ $(echo $OPENSSL_VERSION |awk '{print($2);}') =~ [01].* ]]; then +elif ! re_match "$(echo $OPENSSL_VERSION |awk '{print($2);}')" '[01].*'; then # openssl s_client apparently provides renegotiation only up to version 1.2 $PRINTF "test $F_n $TEST... ${YELLOW}not with OpenSSL $OPENSSL_VERSION${NORMAL}\n" $N cant @@ -11029,7 +11060,6 @@ tf="$td/test$N.stdout" te="$td/test$N.stderr" tdiff="$td/test$N.diff" da="test$N $(date) $RANDOM" -init_openssl_s_client newport tcp4 CMD0="$TRACE $SOCAT $opts OPENSSL-LISTEN:$PORT,pf=ip4,$REUSEADDR,cert=testsrv.crt,key=testsrv.key,verify=0 PIPE" #CMD1="openssl s_client -port $PORT -verify 0" # not with openssl 1.1.0g @@ -11089,7 +11119,7 @@ elif ! testfeats openssl >/dev/null; then elif ! type openssl >/dev/null 2>&1; then $PRINTF "test $F_n $TEST... ${YELLOW}openssl executable not available${NORMAL}\n" $N cant -elif ! [[ $(echo $OPENSSL_VERSION |awk '{print($2);}') =~ [01].* ]]; then +elif ! re_match "$(echo $OPENSSL_VERSION |awk '{print($2);}')" '[01].*'; then # openssl s_client apparently provides renegotiation only up to version 1.2 $PRINTF "test $F_n $TEST... ${YELLOW}not with OpenSSL $OPENSSL_VERSION${NORMAL}\n" $N cant @@ -11704,7 +11734,8 @@ te="$td/test$N.stderr" tdiff="$td/test$N.diff" da="test$N $(date) $RANDOM" RLIMIT_NOFILE="$(ulimit -n)" -if ! [[ "$RLIMIT_NOFILE" =~ ^[0-9][0-9]*$ ]]; then +#if ! [[ "$RLIMIT_NOFILE" =~ ^[0-9][0-9]*$ ]]; then +if ! re_match "$RLIMIT_NOFILE" '^[0-9][0-9]*$'; then $PRINTF "${YELLOW}cannot determine ulimit -n${NORMAL}" else if [ $RLIMIT_NOFILE -gt 1024 ]; then @@ -12606,7 +12637,8 @@ tf="$td/test$N.stdout" te="$td/test$N.stderr" tdiff="$td/test$N.diff" da="test$N $(date) $RANDOM" -if [[ "$method" =~ DTLS* ]]; then +#if [[ "$method" =~ DTLS* ]]; then +if re_match "$method" '^DTLS.*'; then newport udp4 else newport tcp4 @@ -12620,7 +12652,8 @@ if [ "$method" = DTLS1 -a "$(echo -e "$OPENSSL_VERSION\n1.0.2" |sort |tail -n 1) else $CMD0 >/dev/null 2>"${te}0" & pid0=$! -if [[ "$method" =~ DTLS* ]]; then +#if [[ "$method" =~ DTLS* ]]; then +if re_match "$method" '^DTLS.*'; then waitudp4port $PORT 1 else waittcp4port $PORT 1 @@ -13522,6 +13555,9 @@ elif ! runsip4 >/dev/null; then elif ! type openssl >/dev/null 2>&1; then $PRINTF "test $F_n $TEST... ${YELLOW}openssl executable not found${NORMAL}\n" $N cant +elif init_openssl_s_server; re_match "$method" '^DTLS.*' && [ -z "$OPENSSL_S_SERVER_DTLS" ]; then + $PRINTF "test $F_n $TEST... ${YELLOW}DTLS not available in s_server${NORMAL}\n" $N + cant else gentestcert testsrv tf="$td/test$N.stdout" @@ -13576,7 +13612,10 @@ elif ! runsip4 >/dev/null; then elif ! type openssl >/dev/null 2>&1; then $PRINTF "test $F_n $TEST... ${YELLOW}openssl executable not found${NORMAL}\n" $N cant -elif [[ $(openssl version |awk '{print($2);}') =~ 0.9.8[a-ce] ]]; then +elif init_openssl_s_client; re_match "$method" '^DTLS.*' && [ -z "$OPENSSL_S_CLIENT_DTLS" ]; then + $PRINTF "test $F_n $TEST... ${YELLOW}DTLS not available in s_client${NORMAL}\n" $N + cant +elif re_match "$(openssl version |awk '{print($2);}')" '^0\.9\.8[a-ce]'; then # also on NetBSD-4 with openssl-0.9.8e $PRINTF "test $F_n $TEST... ${YELLOW}openssl s_client might hang${NORMAL}\n" $N cant @@ -14081,7 +14120,7 @@ kill $pid0 2>/dev/null; wait if [ $rc1 -ne 0 ] && [ "$UNAME" != Linux ]; then $PRINTF "${YELLOW}works only on Linux?${NORMAL}\n" $N cant -elif [ $rc1 -ne 0 ] && [ "$UNAME" = Linux ] && ! [[ $UNAME_R =~ ^[6-9]\.* ]] && ! [[ $UNAME_R =~ ^5\.[6-]\.* ]] && ! [[ $UNAME_R =~ ^5\.[1-9][0-9].* ]]; then +elif [ $rc1 -ne 0 ] && [ "$UNAME" = Linux ] && ! re_match "$UNAME_R" '^[6-9]\..*' && ! re_match "$UNAME_R" '^5\.[6-]\..*' && ! re_match "$UNAME_R" '^5\.[1-9][0-9].*'; then $PRINTF "${YELLOW}works only on Linux from 5.6${NORMAL}\n" $N cant elif grep -q "No such device" "${te}1"; then @@ -14263,7 +14302,7 @@ elif ! a=$(testaddrs openssl-dtls-listen openssl-dtls-connect); then elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N cant -elif [[ $(openssl version |awk '{print($2);}') =~ 0.9.8[a-ce] ]]; then +elif re_match "$(openssl version |awk '{print($2);}')" '^0.9.8[a-ce]'; then # also on NetBSD-4 with openssl-0.9.8e $PRINTF "test $F_n $TEST... ${YELLOW}openssl s_client might hang${NORMAL}\n" $N cant @@ -14332,7 +14371,7 @@ elif ! a=$(testaddrs openssl-dtls-listen openssl-dtls-connect); then elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N cant -elif [[ $(openssl version |awk '{print($2);}') =~ 0.9.8[a-ce] ]]; then +elif re_match "$(openssl version |awk '{print($2);}')" '^0.9.8[a-ce]'; then # also on NetBSD-4 with openssl-0.9.8e $PRINTF "test $F_n $TEST... ${YELLOW}openssl s_client might hang${NORMAL}\n" $N cant @@ -14453,6 +14492,9 @@ elif ! testfeats openssl >/dev/null; then elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N cant +elif ! runsip6 >/dev/null; then + $PRINTF "test $F_n $TEST... ${YELLOW}Cannot generate cert with IPv6 address${NORMAL}\n" $N + cant else gentestcert testsrv gentestaltcert testalt @@ -14844,7 +14886,8 @@ rc1=$? LOWPORT=$(grep '[DE] bind(.*:' $te |sed 's/.*:\([0-9][0-9]*\)[}]*,.*/\1/' |head -n 1) #echo "LOWPORT=\"$LOWPORT\"" >&2 #type socat >&2 -if [[ $LOWPORT =~ [0-9][0-9]* ]] && [ "$LOWPORT" -ge 640 -a "$LOWPORT" -le 1023 ]; then +#if [[ $LOWPORT =~ [0-9][0-9]* ]] && [ "$LOWPORT" -ge 640 -a "$LOWPORT" -le 1023 ]; then +if re_match "$LOWPORT" '^[0-9][0-9]*' ]] && [ "$LOWPORT" -ge 640 -a "$LOWPORT" -le 1023 ]; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi @@ -17542,7 +17585,8 @@ TEST="$NAME: Option unix-bind-tempname" # log "Transport endpoint is not connected" and the TCP service does not fail # with "Address already in use"), the test succeeded. if ! eval $NUMCOND; then :; -elif [[ $CLI_ =~ ABSTRACT-* ]] && ! feat=$(testfeats abstract-unixsocket); then +#elif [[ $CLI_ =~ ABSTRACT-* ]] && ! feat=$(testfeats abstract-unixsocket); then +elif re_match "$CLI_" 'ABSTRACT-*' && ! feat=$(testfeats abstract-unixsocket); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N cant elif ! o=$(testoptions unix-bind-tempname) >/dev/null; then @@ -18376,7 +18420,7 @@ elif ! cond=$(checkconds \ "tcp4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N cant -elif [[ $BASH_VERSION =~ ^[1-3]\. ]]; then +elif re_match "$BASH_VERSION" '^[1-3]\.'; then $PRINTF "test $F_n $TEST... ${YELLOW}requires bash 4 or higher${NORMAL}\n" $N cant else diff --git a/xio-unix.c b/xio-unix.c index 0febdc6..67d2b7a 100644 --- a/xio-unix.c +++ b/xio-unix.c @@ -788,7 +788,7 @@ _xioopen_unix_client( opts, pf, SOCK_SEQPACKET, protocol, needtemp, E_INFO)) == 0) break; - if (errno != EPROTOTYPE && errno != EPROTONOSUPPORT/*AIX*/ + if (errno != EPROTOTYPE && errno != EPROTONOSUPPORT/*AIX*/ && errno != ESOCKTNOSUPPORT/*Debian3*/ #if WITH_ABSTRACT_UNIXSOCKET && !(abstract && errno == ECONNREFUSED) #endif