From owner-freebsd-hackers@FreeBSD.ORG Fri Aug 14 08:30:32 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 53AC9106568D for ; Fri, 14 Aug 2009 08:30:32 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.cksoft.de (mail.cksoft.de [195.88.108.3]) by mx1.freebsd.org (Postfix) with ESMTP id 0E3B18FC67 for ; Fri, 14 Aug 2009 08:30:31 +0000 (UTC) Received: from localhost (amavis.fra.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id 5EA2E41C703; Fri, 14 Aug 2009 10:15:06 +0200 (CEST) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([195.88.108.3]) by localhost (amavis.fra.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id bN3bz6qvWYQF; Fri, 14 Aug 2009 10:15:05 +0200 (CEST) Received: by mail.cksoft.de (Postfix, from userid 66) id 8C94741C707; Fri, 14 Aug 2009 10:15:05 +0200 (CEST) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id BF00A4448EC; Fri, 14 Aug 2009 08:11:26 +0000 (UTC) Date: Fri, 14 Aug 2009 08:11:26 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: freebsd-hackers@freebsd.org In-Reply-To: <200908140944.44141.max@love2party.net> Message-ID: <20090814080915.J93661@maildrop.int.zabbadoz.net> References: <9527461a0908132029xb2c6149r9f51c775d22ae670@mail.gmail.com> <200908140944.44141.max@love2party.net> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: bert wiley Subject: Re: Need help trying to to use the ntohl() call with in_addr X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Aug 2009 08:30:32 -0000 On Fri, 14 Aug 2009, Max Laier wrote: > On Friday 14 August 2009 05:29:19 bert wiley wrote: >> Hi everyone >> >> Im new to list and this question may be out of place. This is my first >> post. Im new to freebsd and trying to understand how to create a jail from >> some system calls. I followed the jail subsystem description from the >> handbook and im having a problem or may be using the call incorrectly. But >> here is what im trying to do. >> >> >> int main() >> { >> struct in_addr ipaddr; >> struct jail myjail; >> >> char path[PATH_MAX]; >> >> realpath("/tmp", path); >> >> myjail.version = 1; >> myjail.path = path; >> myjail.hostname = "testjail"; >> >> const char *ip; >> ip = "192.168.1.142"; >> >> inet_aton(ip, &ipaddr); >> myjail.ip4 = ntohl(ipaddr.s_addr); // I get and error here, invalid >> conversion from _uint32_t' to in_addr* >> myjail.ip4 = ipaddr.s_addr; // and and error here, invlid >> conversion from in_addr_t to in_addr* >> } >> >> >> I know that there is more that needs to be done but this just a test stub >> as im trying to work thru the calls and understand whats going on. >> Any would be appreciated thanks. > > Take a look at the jail(2) man page: > > The ``ip4s'' and ``ip6s'' give the numbers of IPv4 and IPv6 addresses > that will be passed via their respective pointers. > > The ``ip4'' and ``ip6'' pointers can be set to an arrays of IPv4 and IPv6 > addresses to be assigned to the prison, or NULL if none. IPv4 addresses > must be in network byte order. > > So you'd do something like the following: > > myjail.ip4s = 1; > inet_aton(ip, &ipaddr); > myjail.ip4 = &ipaddr; > > You don't have to switch byte order. and in that case of 7.2-R or later multi-IP jails the version should not be 1 either. I fixed tools/regressions/priv the other day; maybe this helps a bit as well: http://svn.freebsd.org/viewvc/base/head/tools/regression/priv/main.c?r1=173679&r2=196172 /bz -- Bjoern A. Zeeb What was I talking about and who are you again?