From owner-svn-src-head@FreeBSD.ORG Mon Sep 23 16:47:54 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 38FA02A7; Mon, 23 Sep 2013 16:47:54 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 16C452A4E; Mon, 23 Sep 2013 16:47:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r8NGlrPr025953; Mon, 23 Sep 2013 16:47:53 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r8NGlrZa025949; Mon, 23 Sep 2013 16:47:53 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201309231647.r8NGlrZa025949@svn.freebsd.org> From: Devin Teske Date: Mon, 23 Sep 2013 16:47:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r255818 - in head/usr.sbin/bsdconfig: examples share/media X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Sep 2013 16:47:54 -0000 Author: dteske Date: Mon Sep 23 16:47:52 2013 New Revision: 255818 URL: http://svnweb.freebsd.org/changeset/base/255818 Log: 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 Added: head/usr.sbin/bsdconfig/examples/browse_packages_ftp.sh - copied unchanged from r255712, head/usr.sbin/bsdconfig/examples/browse_packages.sh head/usr.sbin/bsdconfig/examples/browse_packages_http.sh (contents, props changed) Deleted: head/usr.sbin/bsdconfig/examples/browse_packages.sh Modified: head/usr.sbin/bsdconfig/examples/Makefile head/usr.sbin/bsdconfig/share/media/http.subr Modified: head/usr.sbin/bsdconfig/examples/Makefile ============================================================================== --- head/usr.sbin/bsdconfig/examples/Makefile Mon Sep 23 14:18:34 2013 (r255817) +++ head/usr.sbin/bsdconfig/examples/Makefile Mon Sep 23 16:47:52 2013 (r255818) @@ -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} Copied: head/usr.sbin/bsdconfig/examples/browse_packages_ftp.sh (from r255712, head/usr.sbin/bsdconfig/examples/browse_packages.sh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/bsdconfig/examples/browse_packages_ftp.sh Mon Sep 23 16:47:52 2013 (r255818, copy of r255712, head/usr.sbin/bsdconfig/examples/browse_packages.sh) @@ -0,0 +1,25 @@ +#!/bin/sh +# $FreeBSD$ +# +# This sample downloads the package INDEX file from FTP 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 + _ftpPath=ftp://ftp.freebsd.org + # For older releases, use ftp://ftp-archive.freebsd.org + mediaSetFTP + mediaOpen + f_show_info "Downloading packages/INDEX from\n %s" "$_ftpPath" + f_device_get media packages/INDEX > $TMPDIR/packages/INDEX +fi +_directoryPath=$TMPDIR +mediaSetDirectory +configPackages Added: head/usr.sbin/bsdconfig/examples/browse_packages_http.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/bsdconfig/examples/browse_packages_http.sh Mon Sep 23 16:47:52 2013 (r255818) @@ -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 Modified: head/usr.sbin/bsdconfig/share/media/http.subr ============================================================================== --- head/usr.sbin/bsdconfig/share/media/http.subr Mon Sep 23 14:18:34 2013 (r255817) +++ head/usr.sbin/bsdconfig/share/media/http.subr Mon Sep 23 16:47:52 2013 (r255818) @@ -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" | (