Date: Sat, 24 Jun 2006 07:42:24 GMT From: Alex Lyashkov <als@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 99917 for review Message-ID: <200606240742.k5O7gOMp015171@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=99917 Change 99917 by als@als_head on 2006/06/24 07:41:46 Update copyright Affected files ... .. //depot/projects/jail2/sys/kern/kern_jail2_network.c#2 edit Differences ... ==== //depot/projects/jail2/sys/kern/kern_jail2_network.c#2 (text+ko) ==== @@ -1,127 +1,5 @@ /* - * Copyright (c) 2004 Alex Lyashkov <shadow@psoft.net> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/errno.h> -#include <sys/param.h> -#include <sys/proc.h> -#include <sys/systm.h> -#include <sys/lock.h> -#include <sys/mutex.h> - -#include <sys/jail.h> -#include <sys/jail2.h> -#include <sys/jail2_network.h> - -#define jprint(a...) -/* printf(a) */ - -static int -jail_addradd_ipv4(struct prison *_jail, void *_udata) -{ - struct jail2_ipv4addr ja; - int error; - - error = copyin(_udata, &ja, sizeof(ja)); - if (error) - return (error); - - mtx_lock(&_jail->pr_mtx); - _jail->pr_network.pr_ip = htonl(ja.addr); - mtx_unlock(&_jail->pr_mtx); - - return (0); -} - -static int -jail_addrdel_ipv4(struct prison *_jail, void *_udata) -{ - struct jail2_ipv4addr ja; - int error; - - error = copyin(_udata, &ja, sizeof(ja)); - if (error) - return (error); - - mtx_lock(&_jail->pr_mtx); - error = _jail->pr_network.pr_ip == ja.addr ? 0 : ESRCH; - if( error == 0 ) - _jail->pr_network.pr_ip = 0; - mtx_unlock(&_jail->pr_mtx); - - return (0); -} - - -int jail2_network(struct thread *td, struct jail_2 *j) -{ - struct prison *pr; - int ret = 0; - - mtx_lock(&allprison_mtx); - pr = prison_find(j->ctx_id); - mtx_unlock(&allprison_mtx); - - jprint("jail2_network %d ctx: %d pr: %p\n", JAIL2_CMD(j->cmd), j->ctx_id, pr ); - if(pr == NULL) { - printf("Prison not found for command %x\n", j->cmd); - return (ESRCH); - } - - switch(JAIL2_CMD(j->cmd)) { - case J_VNETDEV_CREATE: - case J_VNETDEV_REMOVE: - case J_VNETDEV_ATTACH: - case J_VNETDEV_DETACH: - case J_VNETDEV_SET_TXSPEED: - case J_VNETDEV_SET_FLAGS: - case J_VNETDEV_UNSET_FLAGS: - ret = EOPNOTSUPP; - break; - /* IPV4 control */ - case J_ADDMASKIPV4: - ret = jail_addradd_ipv4(pr,j->data); - break; - case J_RMIPV4: - ret = jail_addrdel_ipv4(pr,j->data); - break; - default: - ret = EOPNOTSUPP; - break; - } - - /* remove refs from find/create */ - prison_free(pr); - jprint("jail2_network return %d\n", ret); - return (ret); -} -/* - * Copyright (c) 2004 Alex Lyashkov <shadow@psoft.net> + * Copyright (c) 2004-2006 Alex Lyashkov <shadow@itt.net.ru> * All rights reserved. * * Redistribution and use in source and binary forms, with or without
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200606240742.k5O7gOMp015171>