RHEL 9.0.0 Alpha bootstrap
The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/curl#3c950d55416b900db1a4bd1720769de977c56ac1
This commit is contained in:
parent
ac5e667c8a
commit
c3f9b577a5
2
.gitignore
vendored
2
.gitignore
vendored
@ -0,0 +1,2 @@
|
|||||||
|
/curl-[0-9.]*.tar.lzma
|
||||||
|
/curl-[0-9.]*.tar.xz
|
91
0101-curl-7.32.0-multilib.patch
Normal file
91
0101-curl-7.32.0-multilib.patch
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
From 2a4754a3a7cf60ecc36d83cbe50b8c337cb87632 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kamil Dudka <kdudka@redhat.com>
|
||||||
|
Date: Fri, 12 Apr 2013 12:04:05 +0200
|
||||||
|
Subject: [PATCH] prevent multilib conflicts on the curl-config script
|
||||||
|
|
||||||
|
---
|
||||||
|
curl-config.in | 23 +++++------------------
|
||||||
|
docs/curl-config.1 | 4 +++-
|
||||||
|
libcurl.pc.in | 1 +
|
||||||
|
3 files changed, 9 insertions(+), 19 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/curl-config.in b/curl-config.in
|
||||||
|
index 150004d..95d0759 100644
|
||||||
|
--- a/curl-config.in
|
||||||
|
+++ b/curl-config.in
|
||||||
|
@@ -76,7 +76,7 @@ while test $# -gt 0; do
|
||||||
|
;;
|
||||||
|
|
||||||
|
--cc)
|
||||||
|
- echo "@CC@"
|
||||||
|
+ echo "gcc"
|
||||||
|
;;
|
||||||
|
|
||||||
|
--prefix)
|
||||||
|
@@ -155,32 +155,19 @@ while test $# -gt 0; do
|
||||||
|
;;
|
||||||
|
|
||||||
|
--libs)
|
||||||
|
- if test "X@libdir@" != "X/usr/lib" -a "X@libdir@" != "X/usr/lib64"; then
|
||||||
|
- CURLLIBDIR="-L@libdir@ "
|
||||||
|
- else
|
||||||
|
- CURLLIBDIR=""
|
||||||
|
- fi
|
||||||
|
- if test "X@ENABLE_SHARED@" = "Xno"; then
|
||||||
|
- echo ${CURLLIBDIR}-lcurl @LIBCURL_LIBS@
|
||||||
|
- else
|
||||||
|
- echo ${CURLLIBDIR}-lcurl
|
||||||
|
- fi
|
||||||
|
+ echo -lcurl
|
||||||
|
;;
|
||||||
|
--ssl-backends)
|
||||||
|
echo "@SSL_BACKENDS@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
--static-libs)
|
||||||
|
- if test "X@ENABLE_STATIC@" != "Xno" ; then
|
||||||
|
- echo @libdir@/libcurl.@libext@ @LDFLAGS@ @LIBCURL_LIBS@
|
||||||
|
- else
|
||||||
|
- echo "curl was built with static libraries disabled" >&2
|
||||||
|
- exit 1
|
||||||
|
- fi
|
||||||
|
+ echo "curl was built with static libraries disabled" >&2
|
||||||
|
+ exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
--configure)
|
||||||
|
- echo @CONFIGURE_OPTIONS@
|
||||||
|
+ pkg-config libcurl --variable=configure_options | sed 's/^"//;s/"$//'
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
diff --git a/docs/curl-config.1 b/docs/curl-config.1
|
||||||
|
index 14a9d2b..ffcc004 100644
|
||||||
|
--- a/docs/curl-config.1
|
||||||
|
+++ b/docs/curl-config.1
|
||||||
|
@@ -70,7 +70,9 @@ no, one or several names. If more than one name, they will appear
|
||||||
|
comma-separated. (Added in 7.58.0)
|
||||||
|
.IP "--static-libs"
|
||||||
|
Shows the complete set of libs and other linker options you will need in order
|
||||||
|
-to link your application with libcurl statically. (Added in 7.17.1)
|
||||||
|
+to link your application with libcurl statically. Note that Fedora/RHEL libcurl
|
||||||
|
+packages do not provide any static libraries, thus cannot be linked statically.
|
||||||
|
+(Added in 7.17.1)
|
||||||
|
.IP "--version"
|
||||||
|
Outputs version information about the installed libcurl.
|
||||||
|
.IP "--vernum"
|
||||||
|
diff --git a/libcurl.pc.in b/libcurl.pc.in
|
||||||
|
index 2ba9c39..f8f8b00 100644
|
||||||
|
--- a/libcurl.pc.in
|
||||||
|
+++ b/libcurl.pc.in
|
||||||
|
@@ -29,6 +29,7 @@ libdir=@libdir@
|
||||||
|
includedir=@includedir@
|
||||||
|
supported_protocols="@SUPPORT_PROTOCOLS@"
|
||||||
|
supported_features="@SUPPORT_FEATURES@"
|
||||||
|
+configure_options=@CONFIGURE_OPTIONS@
|
||||||
|
|
||||||
|
Name: libcurl
|
||||||
|
URL: https://curl.haxx.se/
|
||||||
|
--
|
||||||
|
2.5.0
|
||||||
|
|
61
0102-curl-7.36.0-debug.patch
Normal file
61
0102-curl-7.36.0-debug.patch
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
From 3602ee9dcc74683f91fe4f9ca228aa17a6474403 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kamil Dudka <kdudka@redhat.com>
|
||||||
|
Date: Wed, 31 Oct 2012 11:38:30 +0100
|
||||||
|
Subject: [PATCH] prevent configure script from discarding -g in CFLAGS
|
||||||
|
(#496778)
|
||||||
|
|
||||||
|
---
|
||||||
|
m4/curl-compilers.m4 | 26 ++++++--------------------
|
||||||
|
1 file changed, 6 insertions(+), 20 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4
|
||||||
|
index c64db4bc6..d115a4aed 100644
|
||||||
|
--- a/m4/curl-compilers.m4
|
||||||
|
+++ b/m4/curl-compilers.m4
|
||||||
|
@@ -106,18 +106,11 @@ AC_DEFUN([CURL_CHECK_COMPILER_CLANG], [
|
||||||
|
clangvhi=`echo $clangver | cut -d . -f1`
|
||||||
|
clangvlo=`echo $clangver | cut -d . -f2`
|
||||||
|
compiler_num=`(expr $clangvhi "*" 100 + $clangvlo) 2>/dev/null`
|
||||||
|
- flags_dbg_all="-g -g0 -g1 -g2 -g3"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -ggdb"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -gstabs"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -gstabs+"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -gcoff"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -gxcoff"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -gdwarf-2"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -gvms"
|
||||||
|
+ flags_dbg_all=""
|
||||||
|
flags_dbg_yes="-g"
|
||||||
|
flags_dbg_off=""
|
||||||
|
- flags_opt_all="-O -O0 -O1 -O2 -Os -O3 -O4"
|
||||||
|
- flags_opt_yes="-Os"
|
||||||
|
+ flags_opt_all=""
|
||||||
|
+ flags_opt_yes=""
|
||||||
|
flags_opt_off="-O0"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
@@ -175,18 +168,11 @@ AC_DEFUN([CURL_CHECK_COMPILER_GNU_C], [
|
||||||
|
gccvhi=`echo $gccver | cut -d . -f1`
|
||||||
|
gccvlo=`echo $gccver | cut -d . -f2`
|
||||||
|
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
|
||||||
|
- flags_dbg_all="-g -g0 -g1 -g2 -g3"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -ggdb"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -gstabs"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -gstabs+"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -gcoff"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -gxcoff"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -gdwarf-2"
|
||||||
|
- flags_dbg_all="$flags_dbg_all -gvms"
|
||||||
|
+ flags_dbg_all=""
|
||||||
|
flags_dbg_yes="-g"
|
||||||
|
flags_dbg_off=""
|
||||||
|
- flags_opt_all="-O -O0 -O1 -O2 -O3 -Os -Og -Ofast"
|
||||||
|
- flags_opt_yes="-O2"
|
||||||
|
+ flags_opt_all=""
|
||||||
|
+ flags_opt_yes=""
|
||||||
|
flags_opt_off="-O0"
|
||||||
|
CURL_CHECK_DEF([_WIN32], [], [silent])
|
||||||
|
else
|
||||||
|
--
|
||||||
|
1.7.1
|
||||||
|
|
65
0104-curl-7.73.0-localhost6.patch
Normal file
65
0104-curl-7.73.0-localhost6.patch
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
From 70734612c0f2f6f864e771ab4d2509c903342739 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kamil Dudka <kdudka@redhat.com>
|
||||||
|
Date: Wed, 14 Oct 2020 09:41:28 +0200
|
||||||
|
Subject: [PATCH] use localhost6 instead of ip6-localhost in the curl
|
||||||
|
test-suite
|
||||||
|
|
||||||
|
---
|
||||||
|
tests/data/test1083 | 6 +++---
|
||||||
|
tests/data/test241 | 8 ++++----
|
||||||
|
2 files changed, 7 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/data/test1083 b/tests/data/test1083
|
||||||
|
index e441278..b0958b6 100644
|
||||||
|
--- a/tests/data/test1083
|
||||||
|
+++ b/tests/data/test1083
|
||||||
|
@@ -33,13 +33,13 @@ ipv6
|
||||||
|
http-ipv6
|
||||||
|
</server>
|
||||||
|
<name>
|
||||||
|
-HTTP-IPv6 GET with ip6-localhost --interface
|
||||||
|
+HTTP-IPv6 GET with localhost6 --interface
|
||||||
|
</name>
|
||||||
|
<command>
|
||||||
|
--g "http://%HOST6IP:%HTTP6PORT/1083" --interface ip6-localhost
|
||||||
|
+-g "http://%HOST6IP:%HTTP6PORT/1083" --interface localhost6
|
||||||
|
</command>
|
||||||
|
<precheck>
|
||||||
|
-perl -e "if ('%CLIENT6IP' ne '[::1]') {print 'Test requires default test client host address';} else {exec './server/resolve --ipv6 ip6-localhost'; print 'Cannot run precheck resolve';}"
|
||||||
|
+perl -e "if ('%CLIENT6IP' ne '[::1]') {print 'Test requires default test client host address';} else {exec './server/resolve --ipv6 localhost6'; print 'Cannot run precheck resolve';}"
|
||||||
|
</precheck>
|
||||||
|
</client>
|
||||||
|
|
||||||
|
diff --git a/tests/data/test241 b/tests/data/test241
|
||||||
|
index 46eae1f..4e1632c 100644
|
||||||
|
--- a/tests/data/test241
|
||||||
|
+++ b/tests/data/test241
|
||||||
|
@@ -30,13 +30,13 @@ ipv6
|
||||||
|
http-ipv6
|
||||||
|
</server>
|
||||||
|
<name>
|
||||||
|
-HTTP-IPv6 GET (using ip6-localhost)
|
||||||
|
+HTTP-IPv6 GET (using localhost6)
|
||||||
|
</name>
|
||||||
|
<command>
|
||||||
|
--g "http://ip6-localhost:%HTTP6PORT/241"
|
||||||
|
+-g "http://localhost6:%HTTP6PORT/241"
|
||||||
|
</command>
|
||||||
|
<precheck>
|
||||||
|
-./server/resolve --ipv6 ip6-localhost
|
||||||
|
+./server/resolve --ipv6 localhost6
|
||||||
|
</precheck>
|
||||||
|
</client>
|
||||||
|
|
||||||
|
@@ -45,7 +45,7 @@ HTTP-IPv6 GET (using ip6-localhost)
|
||||||
|
<verify>
|
||||||
|
<protocol>
|
||||||
|
GET /241 HTTP/1.1
|
||||||
|
-Host: ip6-localhost:%HTTP6PORT
|
||||||
|
+Host: localhost6:%HTTP6PORT
|
||||||
|
User-Agent: curl/%VERSION
|
||||||
|
Accept: */*
|
||||||
|
|
||||||
|
--
|
||||||
|
2.25.4
|
||||||
|
|
39
0105-curl-7.63.0-lib1560-valgrind.patch
Normal file
39
0105-curl-7.63.0-lib1560-valgrind.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
From f55cca0e86f59ec11ffafd5c0503c39ca3723e2e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kamil Dudka <kdudka@redhat.com>
|
||||||
|
Date: Mon, 4 Feb 2019 17:32:56 +0100
|
||||||
|
Subject: [PATCH] libtest: compile lib1560.c with -fno-builtin-strcmp
|
||||||
|
|
||||||
|
... to prevent valgrind from reporting false positives on x86_64:
|
||||||
|
|
||||||
|
Conditional jump or move depends on uninitialised value(s)
|
||||||
|
at 0x10BCAA: part2id (lib1560.c:489)
|
||||||
|
by 0x10BCAA: updateurl (lib1560.c:521)
|
||||||
|
by 0x10BCAA: set_parts (lib1560.c:630)
|
||||||
|
by 0x10BCAA: test (lib1560.c:802)
|
||||||
|
by 0x4923412: (below main) (in /usr/lib64/libc-2.28.9000.so)
|
||||||
|
|
||||||
|
Conditional jump or move depends on uninitialised value(s)
|
||||||
|
at 0x10BCC3: part2id (lib1560.c:491)
|
||||||
|
by 0x10BCC3: updateurl (lib1560.c:521)
|
||||||
|
by 0x10BCC3: set_parts (lib1560.c:630)
|
||||||
|
by 0x10BCC3: test (lib1560.c:802)
|
||||||
|
by 0x4923412: (below main) (in /usr/lib64/libc-2.28.9000.so)
|
||||||
|
---
|
||||||
|
tests/libtest/Makefile.inc | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
|
||||||
|
index 080421b..ea3b806 100644
|
||||||
|
--- a/tests/libtest/Makefile.inc
|
||||||
|
+++ b/tests/libtest/Makefile.inc
|
||||||
|
@@ -586,6 +586,7 @@ lib1559_SOURCES = lib1559.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
|
||||||
|
lib1559_LDADD = $(TESTUTIL_LIBS)
|
||||||
|
|
||||||
|
lib1560_SOURCES = lib1560.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
|
||||||
|
+lib1560_CFLAGS = $(AM_CFLAGS) -fno-builtin-strcmp
|
||||||
|
lib1560_LDADD = $(TESTUTIL_LIBS)
|
||||||
|
|
||||||
|
lib1564_SOURCES = lib1564.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
|
||||||
|
--
|
||||||
|
2.17.2
|
||||||
|
|
11
curl-7.73.0.tar.xz.asc
Normal file
11
curl-7.73.0.tar.xz.asc
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl+GkkYACgkQXMkI/bce
|
||||||
|
EsI5vwf+NwIw3Jmn9lW7/VHNgFWB1Qa0gB4KlDISM2qG9CHzeIW8K50g2JiIAuLa
|
||||||
|
CVOfuMi/jg1r2INRLErZzdGDtD71TzjaEv6A/dxWL+k5/ieFxmH5iC80rYWi8EE9
|
||||||
|
sv/bx8vEq8ikIqqV7KxYPlX8xMJBMfCs+TNQbzYM3WUDMLYJLpuNiWrzS6h8+mPq
|
||||||
|
4w8qYyrNI5x/J3HSJuzyoJy0ueQOQ6CaZwV/ViGBLmFkMKgsAXJu9ImRMmJXKAk5
|
||||||
|
MLiVUKI1KpHJNHZS5pLIP5wrjIN3z7FIRxThJ6f/IqUF1mIc6MNnqcER6lBtxeq4
|
||||||
|
SuRq9Dx5W2en/g+I5iic8GwkDD+U6A==
|
||||||
|
=W3Yh
|
||||||
|
-----END PGP SIGNATURE-----
|
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
|||||||
|
SHA512 (curl-7.73.0.tar.xz) = 95330bac2d6bc5306d47723b3c7bdb754fabe2ba2df7b2a8027453a40286f1c7caaee69333f0715e59fbc7fdf09080968ea624398c995cabf3d57493973867bd
|
63
tests/non-root-user-download/Makefile
Normal file
63
tests/non-root-user-download/Makefile
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Makefile of /CoreOS/curl/Sanity/non-root-user-download
|
||||||
|
# Description: various download methods with non-root user
|
||||||
|
# Author: Karel Srot <ksrot@redhat.com>
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
|
||||||
|
#
|
||||||
|
# This copyrighted material is made available to anyone wishing
|
||||||
|
# to use, modify, copy, or redistribute it subject to the terms
|
||||||
|
# and conditions of the GNU General Public License version 2.
|
||||||
|
#
|
||||||
|
# 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 Street, Fifth Floor,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
export TEST=/CoreOS/curl/Sanity/non-root-user-download
|
||||||
|
export TESTVERSION=1.0
|
||||||
|
|
||||||
|
BUILT_FILES=
|
||||||
|
|
||||||
|
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
||||||
|
|
||||||
|
.PHONY: all install download clean
|
||||||
|
|
||||||
|
run: $(FILES) build
|
||||||
|
./runtest.sh
|
||||||
|
|
||||||
|
build: $(BUILT_FILES)
|
||||||
|
test -x runtest.sh || chmod a+x runtest.sh
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *~ $(BUILT_FILES)
|
||||||
|
|
||||||
|
|
||||||
|
include /usr/share/rhts/lib/rhts-make.include
|
||||||
|
|
||||||
|
$(METADATA): Makefile
|
||||||
|
@echo "Owner: Karel Srot <ksrot@redhat.com>" > $(METADATA)
|
||||||
|
@echo "Name: $(TEST)" >> $(METADATA)
|
||||||
|
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||||
|
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||||
|
@echo "Description: various download methods with non-root user" >> $(METADATA)
|
||||||
|
@echo "Type: Sanity" >> $(METADATA)
|
||||||
|
@echo "TestTime: 5m" >> $(METADATA)
|
||||||
|
@echo "RunFor: curl" >> $(METADATA)
|
||||||
|
@echo "Requires: curl" >> $(METADATA)
|
||||||
|
@echo "Priority: Normal" >> $(METADATA)
|
||||||
|
@echo "License: GPLv2" >> $(METADATA)
|
||||||
|
@echo "Confidential: no" >> $(METADATA)
|
||||||
|
@echo "Destructive: no" >> $(METADATA)
|
||||||
|
|
||||||
|
rhts-lint $(METADATA)
|
3
tests/non-root-user-download/PURPOSE
Normal file
3
tests/non-root-user-download/PURPOSE
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PURPOSE of /CoreOS/curl/Sanity/non-root-user-download
|
||||||
|
Description: various download methods with non-root user
|
||||||
|
Author: Karel Srot <ksrot@redhat.com>
|
92
tests/non-root-user-download/runtest.sh
Normal file
92
tests/non-root-user-download/runtest.sh
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# runtest.sh of /CoreOS/curl/Sanity/non-root-user-download
|
||||||
|
# Description: various download methods with non-root user
|
||||||
|
# Author: Karel Srot <ksrot@redhat.com>
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
|
||||||
|
#
|
||||||
|
# This copyrighted material is made available to anyone wishing
|
||||||
|
# to use, modify, copy, or redistribute it subject to the terms
|
||||||
|
# and conditions of the GNU General Public License version 2.
|
||||||
|
#
|
||||||
|
# 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 Street, Fifth Floor,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# Include Beaker environment
|
||||||
|
. /usr/bin/rhts-environment.sh || exit 1
|
||||||
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||||
|
|
||||||
|
PACKAGE="curl"
|
||||||
|
|
||||||
|
FTP_URL=ftp://ftp.scientificlinux.org/linux/fedora/releases/18/Live/x86_64/Fedora-18-x86_64-Live-CHECKSUM
|
||||||
|
HTTP_URL=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/18/Live/x86_64/Fedora-18-x86_64-Live-CHECKSUM
|
||||||
|
CONTENT=a276e06d244e04b765f0a35532d9036ad84f340b0bdcc32e0233a8fbc31d5bed
|
||||||
|
PASSWORD=pAssw0rd
|
||||||
|
OPTIONS=""
|
||||||
|
rlIsRHEL 7 && OPTIONS="--insecure"
|
||||||
|
|
||||||
|
rlJournalStart
|
||||||
|
rlPhaseStartSetup
|
||||||
|
rlAssertRpm $PACKAGE
|
||||||
|
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
||||||
|
rlRun "pushd $TmpDir"
|
||||||
|
rlRun "useradd -m curltester" 0 "Adding the test user"
|
||||||
|
rlRun "echo $PASSWORD | passwd --stdin curltester" 0 "Setting the password for the test user"
|
||||||
|
rlRun "su - curltester -c 'echo $CONTENT > ~/testfile'" 0 "Creating ~curltester/testfile"
|
||||||
|
[ -d $HOME/.ssh ] || ( mkdir $HOME/.ssh && restorecon HOME/.ssh )
|
||||||
|
rlFileBackup $HOME/.ssh/known_hosts /etc/hosts
|
||||||
|
ssh-keygen -F localhost -f $HOME/.ssh/known_hosts || rlRun "ssh-keyscan localhost >> $HOME/.ssh/known_hosts"
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "http download"
|
||||||
|
rlRun "su - curltester -c 'curl $HTTP_URL' &> http.log"
|
||||||
|
cat http.log
|
||||||
|
rlAssertGrep "$CONTENT" http.log
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "ftp download"
|
||||||
|
rlRun "su - curltester -c 'curl $FTP_URL' &> ftp.log"
|
||||||
|
cat ftp.log
|
||||||
|
rlAssertGrep "$CONTENT" ftp.log
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
if ! rlIsRHEL 5; then
|
||||||
|
# scp sftp not supported on RHEL5
|
||||||
|
|
||||||
|
rlPhaseStartTest "scp download"
|
||||||
|
rlRun "curl -u curltester:$PASSWORD $OPTIONS scp://localhost/home/curltester/testfile &> scp.log"
|
||||||
|
cat scp.log
|
||||||
|
rlAssertGrep "$CONTENT" scp.log
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "sftp download"
|
||||||
|
rlRun "curl -u curltester:$PASSWORD $OPTIONS sftp://localhost/home/curltester/testfile &> sftp.log"
|
||||||
|
cat sftp.log
|
||||||
|
rlAssertGrep "$CONTENT" sftp.log
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
rlPhaseStartCleanup
|
||||||
|
rlRun "rm -f $HOME/.ssh/known_hosts"
|
||||||
|
rlFileRestore
|
||||||
|
rlRun "popd"
|
||||||
|
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
||||||
|
rlRun "userdel -r --force curltester"
|
||||||
|
rlPhaseEnd
|
||||||
|
rlJournalPrintText
|
||||||
|
rlJournalEnd
|
64
tests/non-root-user-download/runtest.yml
Normal file
64
tests/non-root-user-download/runtest.yml
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
- hosts: '{{ hosts | default("localhost") }}'
|
||||||
|
vars:
|
||||||
|
package: "curl"
|
||||||
|
tasks:
|
||||||
|
- name: "Set Content variables"
|
||||||
|
set_fact:
|
||||||
|
content: "a276e06d244e04b765f0a35532d9036ad84f340b0bdcc32e0233a8fbc31d5bed"
|
||||||
|
password: "pAssw0rd"
|
||||||
|
crypt_password: "$6$/5GE87XLYLLfB3qx$w84Kct34UZG/4buTSXWkaaVIsw2xGXSAdmnS2QYdG8TtRgTsBnHdFdSkhoy.tKIE6A6LKlxczIZjQbpB19k7B1"
|
||||||
|
- name: "Create user curltester"
|
||||||
|
user:
|
||||||
|
name: "curltester"
|
||||||
|
password: "{{ crypt_password }}"
|
||||||
|
- name: "Copy testfile"
|
||||||
|
copy:
|
||||||
|
dest: "/home/curltester/testfile"
|
||||||
|
content: "{{ content }}"
|
||||||
|
- block:
|
||||||
|
- name: "http download"
|
||||||
|
command: "curl https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/18/Live/x86_64/Fedora-18-x86_64-Live-CHECKSUM"
|
||||||
|
args:
|
||||||
|
warn: false
|
||||||
|
register: http
|
||||||
|
become: yes
|
||||||
|
become_user: curltester
|
||||||
|
- name: "Compare http output"
|
||||||
|
fail:
|
||||||
|
msg: "{{ content }} not in {{ http.stdout }}"
|
||||||
|
when: content not in http.stdout
|
||||||
|
- name: "ftp download"
|
||||||
|
command: "curl ftp://ftp.scientificlinux.org/linux/fedora/releases/18/Live/x86_64/Fedora-18-x86_64-Live-CHECKSUM"
|
||||||
|
args:
|
||||||
|
warn: false
|
||||||
|
register: ftp
|
||||||
|
become: yes
|
||||||
|
become_user: curltester
|
||||||
|
- name: "Compare ftp output"
|
||||||
|
fail:
|
||||||
|
msg: "{{ content }} not in {{ ftp.stdout }}"
|
||||||
|
when: content not in ftp.stdout
|
||||||
|
- name: "scp download"
|
||||||
|
command: "curl -u curltester:{{ password }} --insecure scp://localhost/home/curltester/testfile"
|
||||||
|
args:
|
||||||
|
warn: false
|
||||||
|
register: scp
|
||||||
|
- name: "Compare scp output"
|
||||||
|
fail:
|
||||||
|
msg: "{{ content }} not in {{ scp.stdout }}"
|
||||||
|
when: content not in scp.stdout
|
||||||
|
- name: "sftp download"
|
||||||
|
command: "curl -u curltester:{{ password }} --insecure sftp://localhost/home/curltester/testfile"
|
||||||
|
args:
|
||||||
|
warn: false
|
||||||
|
register: sftp
|
||||||
|
- name: "Compare sftp output"
|
||||||
|
fail:
|
||||||
|
msg: "{{ content }} not in {{ sftp.stdout }}"
|
||||||
|
when: content not in sftp.stdout
|
||||||
|
always:
|
||||||
|
- name: "Remove user curltester"
|
||||||
|
user:
|
||||||
|
name: "curltester"
|
||||||
|
remove: yes
|
||||||
|
state: absent
|
63
tests/scp-and-sftp-download-test/Makefile
Normal file
63
tests/scp-and-sftp-download-test/Makefile
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Makefile of /CoreOS/curl/Sanity/scp-and-sftp-download-test
|
||||||
|
# Description: downloads test file through scp and sftp
|
||||||
|
# Author: Karel Srot <ksrot@redhat.com>
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Copyright (c) 2012 Red Hat, Inc. All rights reserved.
|
||||||
|
#
|
||||||
|
# This copyrighted material is made available to anyone wishing
|
||||||
|
# to use, modify, copy, or redistribute it subject to the terms
|
||||||
|
# and conditions of the GNU General Public License version 2.
|
||||||
|
#
|
||||||
|
# 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 Street, Fifth Floor,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
export TEST=/CoreOS/curl/Sanity/scp-and-sftp-download-test
|
||||||
|
export TESTVERSION=1.0
|
||||||
|
|
||||||
|
BUILT_FILES=
|
||||||
|
|
||||||
|
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
||||||
|
|
||||||
|
.PHONY: all install download clean
|
||||||
|
|
||||||
|
run: $(FILES) build
|
||||||
|
./runtest.sh
|
||||||
|
|
||||||
|
build: $(BUILT_FILES)
|
||||||
|
test -x runtest.sh || chmod a+x runtest.sh
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *~ $(BUILT_FILES)
|
||||||
|
|
||||||
|
|
||||||
|
include /usr/share/rhts/lib/rhts-make.include
|
||||||
|
|
||||||
|
$(METADATA): Makefile
|
||||||
|
@echo "Owner: Karel Srot <ksrot@redhat.com>" > $(METADATA)
|
||||||
|
@echo "Name: $(TEST)" >> $(METADATA)
|
||||||
|
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||||
|
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||||
|
@echo "Description: downloads test file through scp and sftp" >> $(METADATA)
|
||||||
|
@echo "Type: Sanity" >> $(METADATA)
|
||||||
|
@echo "TestTime: 10m" >> $(METADATA)
|
||||||
|
@echo "RunFor: curl" >> $(METADATA)
|
||||||
|
@echo "Requires: curl openssh" >> $(METADATA)
|
||||||
|
@echo "Priority: Normal" >> $(METADATA)
|
||||||
|
@echo "License: GPLv2" >> $(METADATA)
|
||||||
|
@echo "Confidential: no" >> $(METADATA)
|
||||||
|
@echo "Destructive: no" >> $(METADATA)
|
||||||
|
|
||||||
|
rhts-lint $(METADATA)
|
12
tests/scp-and-sftp-download-test/PURPOSE
Normal file
12
tests/scp-and-sftp-download-test/PURPOSE
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
PURPOSE of /CoreOS/curl/Sanity/scp-and-sftp-download-test
|
||||||
|
Description: downloads test file through scp and sftp
|
||||||
|
Author: Karel Srot <ksrot@redhat.com>
|
||||||
|
|
||||||
|
Test scenario:
|
||||||
|
- scp download
|
||||||
|
- sftp download
|
||||||
|
- scp upload
|
||||||
|
- sftp upload
|
||||||
|
|
||||||
|
When PUBKEY_PARAM global variable is set to 'empty' or 'none', scenarios are executed
|
||||||
|
with empty --pubkey parameter (--pubkey "") or with the paramiter omitted
|
130
tests/scp-and-sftp-download-test/runtest.sh
Normal file
130
tests/scp-and-sftp-download-test/runtest.sh
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# runtest.sh of /CoreOS/curl/Sanity/scp-and-sftp-download-test
|
||||||
|
# Description: downloads test file through scp and sftp
|
||||||
|
# Author: Karel Srot <ksrot@redhat.com>
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Copyright (c) 2012 Red Hat, Inc. All rights reserved.
|
||||||
|
#
|
||||||
|
# This copyrighted material is made available to anyone wishing
|
||||||
|
# to use, modify, copy, or redistribute it subject to the terms
|
||||||
|
# and conditions of the GNU General Public License version 2.
|
||||||
|
#
|
||||||
|
# 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 Street, Fifth Floor,
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# Include Beaker environment
|
||||||
|
. /usr/bin/rhts-environment.sh
|
||||||
|
. /usr/lib/beakerlib/beakerlib.sh
|
||||||
|
|
||||||
|
PACKAGE="curl"
|
||||||
|
|
||||||
|
# GLOBAL/ENVIRONMENT VARIABLE:
|
||||||
|
# PUBKEY_PARAM
|
||||||
|
|
||||||
|
if [ "$PUBKEY_PARAM" == 'none' ]; then
|
||||||
|
PUBKEY_PARAM=""
|
||||||
|
elif [ "$PUBKEY_PARAM" == 'empty' ]; then
|
||||||
|
PUBKEY_PARAM="--pubkey ''"
|
||||||
|
else
|
||||||
|
PUBKEY_PARAM='--pubkey /root/.ssh/id_rsa.pub'
|
||||||
|
fi
|
||||||
|
|
||||||
|
FILESIZE=200 #MB
|
||||||
|
OPTIONS=""
|
||||||
|
rlIsRHEL 7 && OPTIONS="--insecure"
|
||||||
|
|
||||||
|
rlJournalStart
|
||||||
|
rlPhaseStartSetup
|
||||||
|
rlAssertRpm $PACKAGE
|
||||||
|
rlFileBackup --clean /root/.ssh/known_hosts /root/.ssh
|
||||||
|
rlFileBackup --clean /etc/ssh/sshd_config
|
||||||
|
rlRun "useradd -m curltestuser"
|
||||||
|
|
||||||
|
# In FIPS-140 we need to explicitly allow one of libssh2-implemented
|
||||||
|
# Kex algorithms (eg. DH14-SHA1).
|
||||||
|
rlRun "echo 'KexAlgorithms +diffie-hellman-group14-sha1' >> /etc/ssh/sshd_config" 0
|
||||||
|
rlServiceStop "sshd"
|
||||||
|
rlRun "service sshd start && sleep 5" 0
|
||||||
|
|
||||||
|
# file for download test
|
||||||
|
rlRun "su - curltestuser -c 'dd if=/dev/zero of=testfile bs=1M count=200'" 0 "Creating $FILESIZE MB large test file"
|
||||||
|
SUM=`sha256sum /home/curltestuser/testfile | cut -d ' ' -f 1`
|
||||||
|
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
||||||
|
rlRun "pushd $TmpDir"
|
||||||
|
rlRun "rm -vf /root/.ssh/*"
|
||||||
|
rlRun "ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''" 0 "Generate ssh key"
|
||||||
|
rlRun "mkdir /home/curltestuser/.ssh && cat /root/.ssh/id_rsa.pub > /home/curltestuser/.ssh/authorized_keys && chown -R curltestuser.curltestuser /home/curltestuser/.ssh/" 0 "Save the key to .ssh/authorized_keys"
|
||||||
|
|
||||||
|
# this is a workaround as libssh2 is not able to use newer hashes
|
||||||
|
#rlRun "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/root/.ssh/known_hosts curltestuser@localhost 'exit'" 0 "First ssh login to add localhost to known_hosts"
|
||||||
|
rlRun "ssh-keyscan localhost >>/root/.ssh/known_hosts"
|
||||||
|
|
||||||
|
# files for upload test
|
||||||
|
rlRun "dd if=/dev/zero of=uploadfile1 bs=1M count=50" 0 "Creating 50 MB large test file"
|
||||||
|
UPSUM1=`sha256sum uploadfile1 | cut -d ' ' -f 1`
|
||||||
|
rlRun "dd if=/dev/zero of=uploadfile2 bs=1M count=20" 0 "Creating 20 MB large test file"
|
||||||
|
UPSUM2=`sha256sum uploadfile2 | cut -d ' ' -f 1`
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "scp download test"
|
||||||
|
rlRun "curl -o ./scp_file -u curltestuser: --key /root/.ssh/id_rsa $PUBKEY_PARAM $OPTIONS scp://localhost/home/curltestuser/testfile" 0 "Initiate curl scp download"
|
||||||
|
rlAssertExists scp_file
|
||||||
|
SCPSUM=`sha256sum ./scp_file | cut -d ' ' -f 1`
|
||||||
|
rlAssertEquals "Checking that whole file was properly downloaded" $SUM $SCPSUM
|
||||||
|
rm -f ./scp_file
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "sftp download test"
|
||||||
|
rlRun "curl -o ./sftp_file -u curltestuser: --key /root/.ssh/id_rsa $PUBKEY_PARAM $OPTIONS sftp://localhost/home/curltestuser/testfile" 0 "Initiate curl scp download"
|
||||||
|
rlAssertExists sftp_file
|
||||||
|
SFTPSUM=`sha256sum ./sftp_file | cut -d ' ' -f 1`
|
||||||
|
rlAssertEquals "Checking that whole file was properly downloaded" $SUM $SFTPSUM
|
||||||
|
rm -f ./sftp_file
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "scp upload test"
|
||||||
|
rlRun "curl -T '{uploadfile1,uploadfile2}' scp://localhost/home/curltestuser/ -u curltestuser: --key /root/.ssh/id_rsa $PUBKEY_PARAM $OPTIONS" 0 "Initiate curl scp upload"
|
||||||
|
rlAssertExists /home/curltestuser/uploadfile1
|
||||||
|
rlAssertExists /home/curltestuser/uploadfile2
|
||||||
|
SCPUPSUM1=`sha256sum /home/curltestuser/uploadfile1 | cut -d ' ' -f 1`
|
||||||
|
SCPUPSUM2=`sha256sum /home/curltestuser/uploadfile2 | cut -d ' ' -f 1`
|
||||||
|
rlAssertEquals "Checking that 1st file was properly uploaded" ${UPSUM1} ${SCPUPSUM1}
|
||||||
|
rlAssertEquals "Checking that 2nd file was properly uploaded" ${UPSUM2} ${SCPUPSUM2}
|
||||||
|
rm -f /home/curltestuser/uploadfile1 /home/curltestuser/uploadfile2
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "sftp upload test"
|
||||||
|
rlRun "curl -T '{uploadfile1,uploadfile2}' sftp://localhost/home/curltestuser/ -u curltestuser: --key /root/.ssh/id_rsa $PUBKEY_PARAM $OPTIONS" 0 "Initiate curl sftp upload"
|
||||||
|
rlAssertExists /home/curltestuser/uploadfile1
|
||||||
|
rlAssertExists /home/curltestuser/uploadfile2
|
||||||
|
SFTPUPSUM1=`sha256sum /home/curltestuser/uploadfile1 | cut -d ' ' -f 1`
|
||||||
|
SFTPUPSUM2=`sha256sum /home/curltestuser/uploadfile2 | cut -d ' ' -f 1`
|
||||||
|
rlAssertEquals "Checking that 1st file was properly uploaded" ${UPSUM1} ${SFTPUPSUM1}
|
||||||
|
rlAssertEquals "Checking that 2nd file was properly uploaded" ${UPSUM2} ${SFTPUPSUM2}
|
||||||
|
rm -f /home/curltestuser/uploadfile1 /home/curltestuser/uploadfile2
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
|
||||||
|
rlPhaseStartCleanup
|
||||||
|
rlRun "userdel -r --force curltestuser"
|
||||||
|
rlRun "popd"
|
||||||
|
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
||||||
|
rlFileRestore
|
||||||
|
rlServiceRestore "sshd"
|
||||||
|
rlPhaseEnd
|
||||||
|
rlJournalPrintText
|
||||||
|
rlJournalEnd
|
26
tests/tests.yml
Normal file
26
tests/tests.yml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
# Tests for Classic
|
||||||
|
- hosts: localhost
|
||||||
|
roles:
|
||||||
|
- role: standard-test-beakerlib
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
tests:
|
||||||
|
- scp-and-sftp-download-test
|
||||||
|
- non-root-user-download
|
||||||
|
required_packages:
|
||||||
|
- findutils # non-root-user-download needs find command
|
||||||
|
# scp-and-sftp-download-test needs find command
|
||||||
|
- passwd # non-root-user-download needs passwd command
|
||||||
|
- openssh-clients # non-root-user-download needs ssh-keyscan command
|
||||||
|
|
||||||
|
# Tests for Atomic
|
||||||
|
- hosts: localhost
|
||||||
|
roles:
|
||||||
|
- role: standard-test-beakerlib
|
||||||
|
tags:
|
||||||
|
- atomic
|
||||||
|
tests:
|
||||||
|
- scp-and-sftp-download-test
|
||||||
|
- non-root-user-download
|
||||||
|
|
Loading…
Reference in New Issue
Block a user