NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: bin/58581 (ftp(1) should allow specifying header fields in http requests)



The following reply was made to PR bin/58581; it has been noted by GNATS.

From: Sunil Nimmagadda <sunil%nimmagadda.net@localhost>
To: riastradh%NetBSD.org@localhost
Cc: gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost,
 campbell+netbsd%mumble.net@localhost,  gnats-bugs%netbsd.org@localhost
Subject: Re: bin/58581 (ftp(1) should allow specifying header fields in http
 requests)
Date: Mon, 30 Sep 2024 13:10:23 +0530

 --=-=-=
 Content-Type: text/plain
 
 riastradh%NetBSD.org@localhost writes:
 
 > Synopsis: ftp(1) should allow specifying header fields in http requests
 >
 > State-Changed-From-To: open->needs-pullups
 > State-Changed-By: riastradh%NetBSD.org@localhost
 > State-Changed-When: Fri, 27 Sep 2024 16:34:22 +0000
 > State-Changed-Why:
 > Cool, thanks, Sunil!  Would also be nice if we had automatic tests for
 > this, maybe with bozohttpd and a simple cgi script run under atf.
 >
 > Anyway, let's get this pulled up to 10.
 
 Sure, the attached diff has a testcase for the custom headers feature
 using atf...
 
 --=-=-=
 Content-Type: text/x-patch
 Content-Disposition: attachment; filename=custom_headers_tests.diff
 
 diff --git a/tests/usr.bin/Makefile b/tests/usr.bin/Makefile
 index d0456d50235b..3d30e6157de5 100644
 --- a/tests/usr.bin/Makefile
 +++ b/tests/usr.bin/Makefile
 @@ -6,7 +6,7 @@
  TESTSDIR=       ${TESTSBASE}/usr.bin
  
  TESTS_SUBDIRS=	awk basename bzip2 cc cmp compress config cpio col cut \
 -		diff dirname error find fstat gdb grep gzip id indent \
 +		diff dirname error find fstat ftp gdb grep gzip id indent \
  		infocmp jot ld locale m4 make mixerctl mkdep mtree nbperf \
  		netpgpverify patch pkill pr printf pwhash realpath rump_server \
  		shmif_dumpbus shmif_pcapin sdiff sed sort stat tar tmux tr \
 diff --git a/tests/usr.bin/ftp/Makefile b/tests/usr.bin/ftp/Makefile
 new file mode 100644
 index 000000000000..b66e9fdeefde
 --- /dev/null
 +++ b/tests/usr.bin/ftp/Makefile
 @@ -0,0 +1,8 @@
 +# $NetBSD: Makefile,v 1.1 2020/06/24 10:05:07 jruoho Exp $
 +
 +.include <bsd.own.mk>
 +
 +TESTSDIR=	${TESTSBASE}/usr.bin/ftp
 +TESTS_SH=	t_custom_headers
 +
 +.include <bsd.test.mk>
 diff --git a/tests/usr.bin/ftp/t_custom_headers.sh b/tests/usr.bin/ftp/t_custom_headers.sh
 new file mode 100644
 index 000000000000..03eddee22e54
 --- /dev/null
 +++ b/tests/usr.bin/ftp/t_custom_headers.sh
 @@ -0,0 +1,34 @@
 +atf_test_case custom_headers cleanup
 +custom_headers_head()
 +{
 +	atf_require_prog ftp
 +	atf_set "descr" "Check for custom HTTP headers"
 +}
 +
 +HTTPD_PID=./.__httpd.pid
 +custom_headers_body()
 +{
 +	# start httpd in daemon mode
 +	atf_check -s exit:0 \
 +	    /usr/libexec/httpd -P $HTTPD_PID -I 8080 -b -C .sh /bin/sh \
 +	    -c $(atf_get_srcdir)/www/cgi-bin $(atf_get_srcdir)/www
 +
 +	atf_check -o inline:"example.com\n1000\n" \
 +	    -x "ftp -Vo- -H X-Origin:example.com  \
 +		-H X-Rate-Limit:1000 \
 +	        http://127.0.0.1:8080/cgi-bin/custom_headers.sh";
 +}
 +
 +custom_headers_cleanup()
 +{
 +	if [ -f $HTTPD_PID ]; then
 +		kill -9 $(cat $HTTPD_PID)
 +		rm -f $HTTPD_PID
 +		sleep 1
 +	fi
 +}
 +
 +atf_init_test_cases()
 +{
 +	atf_add_test_case custom_headers
 +}
 diff --git a/tests/usr.bin/ftp/www/cgi-bin/custom_headers.sh b/tests/usr.bin/ftp/www/cgi-bin/custom_headers.sh
 new file mode 100755
 index 000000000000..65428b79c352
 --- /dev/null
 +++ b/tests/usr.bin/ftp/www/cgi-bin/custom_headers.sh
 @@ -0,0 +1,11 @@
 +#! /bin/sh
 +
 +echo "Content-type: text/html; charset=utf-8"
 +echo ""
 +if [ "$HTTP_X_ORIGIN" ]; then
 +	echo "$HTTP_X_ORIGIN"
 +fi
 +
 +if [ "$HTTP_X_RATE_LIMIT" ]; then
 +	echo "$HTTP_X_RATE_LIMIT"
 +fi
 
 --=-=-=--
 


Home | Main Index | Thread Index | Old Index