mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-18 10:35:55 +00:00
Fix a bug in HTTP checking/fetching.
Fix a bug in HTTP checking/fetching. Add Main Site to HTTP menu. Add new example script browse_packages_http.sh and move existing example script browse_packages.sh -> browse_packages_ftp.sh Reviewed by: gjb, brd Approved by: re (gjb), clusteradm (brd) MFC after: 3 days
This commit is contained in:
parent
8d795806e9
commit
cda7fc92b7
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=255818
@ -3,7 +3,7 @@
|
||||
NO_OBJ=
|
||||
|
||||
FILESDIR= ${SHAREDIR}/examples/bsdconfig
|
||||
FILES= browse_packages.sh bsdconfigrc
|
||||
FILES= browse_packages_ftp.sh browse_packages_http.sh bsdconfigrc
|
||||
|
||||
beforeinstall:
|
||||
mkdir -p ${DESTDIR}${FILESDIR}
|
||||
|
25
usr.sbin/bsdconfig/examples/browse_packages_http.sh
Executable file
25
usr.sbin/bsdconfig/examples/browse_packages_http.sh
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
# $FreeBSD$
|
||||
#
|
||||
# This sample downloads the package INDEX file from HTTP to /tmp (if it doesn't
|
||||
# already exist) and then displays the package configuration/management screen
|
||||
# using the local INDEX file (results in faster browsing of packages from-start
|
||||
# since the INDEX can be loaded from local media).
|
||||
#
|
||||
# NOTE: Packages cannot be installed unless staged to /tmp/packages/All
|
||||
#
|
||||
. /usr/share/bsdconfig/script.subr
|
||||
nonInteractive=1
|
||||
TMPDIR=/tmp
|
||||
if [ ! -e "$TMPDIR/packages/INDEX" ]; then
|
||||
[ -d "$TMPDIR/packages" ] || mkdir -p "$TMPDIR/packages" || exit 1
|
||||
_httpPath=http://ftp.freebsd.org
|
||||
# For older releases, use http://ftp-archive.freebsd.org
|
||||
mediaSetHTTP
|
||||
mediaOpen
|
||||
f_show_info "Downloading packages/INDEX from\n %s" "$_httpPath"
|
||||
f_device_get media packages/INDEX > $TMPDIR/packages/INDEX
|
||||
fi
|
||||
_directoryPath=$TMPDIR
|
||||
mediaSetDirectory
|
||||
configPackages
|
@ -77,7 +77,8 @@ f_dialog_menu_media_http()
|
||||
f_dialog_title_restore
|
||||
local prompt="$msg_please_select_the_site_closest_to_you_or_other"
|
||||
local menu_list="
|
||||
'URL' '$msg_specify_some_other_http_site'
|
||||
'$msg_main_site' 'ftp.freebsd.org'
|
||||
'URL' '$msg_specify_some_other_http_site'
|
||||
" # END-QUOTE
|
||||
local hline="$msg_select_a_site_thats_close"
|
||||
|
||||
@ -390,8 +391,12 @@ f_http_check_access()
|
||||
f_show_info "$msg_checking_access_to" "$http_path"
|
||||
|
||||
local rx
|
||||
case "$http_path" in
|
||||
http://*|/*) : valid request ;;
|
||||
*) http_path="/$http_path" # full URI requests only
|
||||
esac
|
||||
if ! rx=$(
|
||||
printf "GET /%s/ HTTP/1.0\r\n\r\n" "${http_path%/}" |
|
||||
printf "GET %s/ HTTP/1.0\r\n\r\n" "${http_path%/}" |
|
||||
nc -n "$host" "$http_port"
|
||||
); then
|
||||
f_show_msg "$msg_couldnt_connect_to_server http://%s:%s/" \
|
||||
@ -583,8 +588,12 @@ f_media_get_http()
|
||||
|
||||
local http_path
|
||||
f_getvar $VAR_HTTP_PATH%/ http_path
|
||||
local url="/$http_path/$file" rx
|
||||
case "$http_path" in
|
||||
http://*|/*) : valid request ;;
|
||||
*) http_path="/$http_path" # full URI requests only
|
||||
esac
|
||||
|
||||
local url="$http_path/$file" rx
|
||||
f_dprintf "sending http request for: %s" "$url"
|
||||
printf "GET %s HTTP/1.0\r\n\r\n" "$url" | nc -n "$host" "$http_port" |
|
||||
(
|
||||
|
Loading…
Reference in New Issue
Block a user