From owner-svn-src-all@FreeBSD.ORG Sun Dec 14 16:56:48 2008 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 753611065672; Sun, 14 Dec 2008 16:56:48 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 633A98FC18; Sun, 14 Dec 2008 16:56:48 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mBEGult5064250; Sun, 14 Dec 2008 16:56:47 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mBEGulI4064249; Sun, 14 Dec 2008 16:56:47 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <200812141656.mBEGulI4064249@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Sun, 14 Dec 2008 16:56:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r186085 - head/usr.sbin/jls X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Dec 2008 16:56:48 -0000 Author: bz Date: Sun Dec 14 16:56:47 2008 New Revision: 186085 URL: http://svn.freebsd.org/changeset/base/186085 Log: Make sure that the direct jls invocations prints something reasonable close to and in the same format as it had always. r185435 said it would try that but I had been living with jail patches for too long to actually remember the single-line format when adding backwards compatibility back in p4. Reported by: Philipp Wuensche Tested by: Philipp Wuensche MFC after: 4 weeks (just for me to get the mail) Modified: head/usr.sbin/jls/jls.c Modified: head/usr.sbin/jls/jls.c ============================================================================== --- head/usr.sbin/jls/jls.c Sun Dec 14 16:49:40 2008 (r186084) +++ head/usr.sbin/jls/jls.c Sun Dec 14 16:56:47 2008 (r186085) @@ -48,7 +48,7 @@ #ifdef SUPPORT_OLD_XPRISON static -char *print_xprison_v1(void *p, char *end) +char *print_xprison_v1(void *p, char *end, unsigned flags) { struct xprison_v1 *xp; struct in_addr in; @@ -57,15 +57,18 @@ char *print_xprison_v1(void *p, char *en errx(1, "Invalid length for jail"); xp = (struct xprison_v1 *)p; - printf("%6d %-29.29s %.74s\n", - xp->pr_id, xp->pr_host, xp->pr_path); - - /* We are not printing an empty line here for state and name. */ - /* We are not printing an empty line here for cpusetid. */ - - /* IPv4 address. */ - in.s_addr = htonl(xp->pr_ip); - printf("%6s %-15.15s\n", "", inet_ntoa(in)); + if (flags & FLAG_V) { + printf("%6d %-29.29s %.74s\n", + xp->pr_id, xp->pr_host, xp->pr_path); + /* We are not printing an empty line here for state and name. */ + /* We are not printing an empty line here for cpusetid. */ + /* IPv4 address. */ + in.s_addr = htonl(xp->pr_ip); + printf("%6s %-15.15s\n", "", inet_ntoa(in)); + } else { + printf("%6d %-15.15s %-29.29s %.74s\n", + xp->pr_id, inet_ntoa(in), xp->pr_host, xp->pr_path); + } return ((char *)(xp + 1)); } @@ -104,8 +107,9 @@ char *print_xprison_v3(void *p, char *en return (q); } - printf("%6d %-29.29s %.74s\n", - xp->pr_id, xp->pr_host, xp->pr_path); + if (flags & FLAG_V) + printf("%6d %-29.29s %.74s\n", + xp->pr_id, xp->pr_host, xp->pr_path); /* Jail state and name. */ if (flags & FLAG_V) @@ -123,11 +127,12 @@ char *print_xprison_v3(void *p, char *en q += (xp->pr_ip4s * sizeof(struct in_addr)); if (q > end) errx(1, "Invalid length for jail"); + in.s_addr = 0; for (i = 0; i < xp->pr_ip4s; i++) { - if (i == 0 || flags & FLAG_V) { + if (i == 0 || flags & FLAG_V) in.s_addr = iap[i].s_addr; + if (flags & FLAG_V) printf("%6s %-15.15s\n", "", inet_ntoa(in)); - } } /* IPv6 addresses. */ ia6p = (struct in6_addr *)(void *)q; @@ -141,6 +146,12 @@ char *print_xprison_v3(void *p, char *en } } + /* If requested print the old style single line version. */ + if (!(flags & FLAG_V)) + printf("%6d %-15.15s %-29.29s %.74s\n", + xp->pr_id, (in.s_addr) ? inet_ntoa(in) : "", + xp->pr_host, xp->pr_path); + return (q); } @@ -206,12 +217,15 @@ main(int argc, char *argv[]) if (version > XPRISON_VERSION) errx(1, "Sci-Fi prison. Kernel/userland out of sync?"); - printf(" JID Hostname Path\n"); if (flags & FLAG_V) { + printf(" JID Hostname Path\n"); printf(" Name State\n"); printf(" CPUSetID\n"); + printf(" IP Address(es)\n"); + } else { + printf(" JID IP Address Hostname" + " Path\n"); } - printf(" IP Address(es)\n"); for (; q != NULL && (char *)q + sizeof(int) < (char *)p + len;) { version = *(int *)q; if (version > XPRISON_VERSION) @@ -219,7 +233,7 @@ main(int argc, char *argv[]) switch (version) { #ifdef SUPPORT_OLD_XPRISON case 1: - q = print_xprison_v1(q, (char *)p + len); + q = print_xprison_v1(q, (char *)p + len, flags); break; case 2: errx(1, "Version 2 was used by multi-IPv4 jail "