From owner-freebsd-current@FreeBSD.ORG Sat Feb 14 02:24:54 2009 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8B0941065673 for ; Sat, 14 Feb 2009 02:24:54 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from pele.citylink.co.nz (pele.citylink.co.nz [202.8.44.226]) by mx1.freebsd.org (Postfix) with ESMTP id 5190D8FC0A for ; Sat, 14 Feb 2009 02:24:54 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from localhost (localhost [127.0.0.1]) by pele.citylink.co.nz (Postfix) with ESMTP id 86772FF4D for ; Sat, 14 Feb 2009 15:24:53 +1300 (NZDT) X-Virus-Scanned: Debian amavisd-new at citylink.co.nz Received: from pele.citylink.co.nz ([127.0.0.1]) by localhost (pele.citylink.co.nz [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nu5VrYXiKv-H for ; Sat, 14 Feb 2009 15:24:49 +1300 (NZDT) Received: from citylink.fud.org.nz (unknown [202.8.44.45]) by pele.citylink.co.nz (Postfix) with ESMTP for ; Sat, 14 Feb 2009 15:24:49 +1300 (NZDT) Received: by citylink.fud.org.nz (Postfix, from userid 1001) id 4EE1F11428; Sat, 14 Feb 2009 15:24:49 +1300 (NZDT) Date: Fri, 13 Feb 2009 18:24:49 -0800 From: Andrew Thompson To: current@freebsd.org Message-ID: <20090214022449.GC42995@citylink.fud.org.nz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.17 (2007-11-01) Cc: Subject: loader additions X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2009 02:24:54 -0000 Hi, I added a load_geli command to loader(8) as I can never remember the syntax to do it manually on the rare occasion I need to. Anyone have a problem if I commit this? bloat? Andrew Index: module.c =================================================================== --- module.c (revision 188599) +++ module.c (working copy) @@ -154,6 +154,44 @@ command_load(int argc, char *argv[]) return (error == 0 ? CMD_OK : CMD_ERROR); } +COMMAND_SET(load_geli, "load_geli", "load a geli key", command_load_geli); + +static int +command_load_geli(int argc, char *argv[]) +{ + char typestr[80]; + char *cp; + int ch, num; + + if (argc < 3) { + command_errmsg = "usage is [-n key#] "; + return(CMD_ERROR); + } + + num = 0; + optind = 1; + optreset = 1; + while ((ch = getopt(argc, argv, "n:")) != -1) { + switch(ch) { + case 'n': + num = strtol(optarg, &cp, 0); + if (cp == optarg) { + sprintf(command_errbuf, "bad key index '%s'", optarg); + return(CMD_ERROR); + } + break; + case '?': + default: + /* getopt has already reported an error */ + return(CMD_OK); + } + } + argv += (optind - 1); + argc -= (optind - 1); + sprintf(typestr, "%s:geli_keyfile%d", argv[1], num); + return(file_loadraw(typestr, argv[2])); +} + COMMAND_SET(unload, "unload", "unload all modules", command_unload); static int