# HG changeset patch # User Michael Granger # Date 1227201159 0 # Node ID 41a1542b3b10686ea0e171e9e73efd8be0fc1791 # Parent 9e4a97b20fcbf7e475f536a1600ddd5e0abbe24d Cleaned up bsdjail extension code a bit more and made the extconf check for the actual headers being included. diff -r 9e4a97b20fcb -r 41a1542b3b10 ext/bsdjail.c --- a/ext/bsdjail.c Thu Nov 20 16:59:00 2008 +0000 +++ b/ext/bsdjail.c Thu Nov 20 17:12:39 2008 +0000 @@ -1,28 +1,42 @@ /* - * dict.c - Ruby LinkParser - Dict Class + * bsdjail.c - JParallel extension for FreeBSD jail(2) functions * $Id$ * * Authors: * * Michael Granger + * * Mahlon E. Smith * - * Copyright (c) 2006 The FaerieMUD Consortium. + * Copyright (c) 2008, Michael Granger and Mahlon Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * * 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 work is licensed under the Creative Commons Attribution License. To - * view a copy of this license, visit - * http://creativecommons.org/licenses/by/1.0 or send a letter to Creative - * Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. + * * Neither the name of the author/s, nor the names of the project's + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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 -#include - -#include -#include -#include -#include -#include - +#include "bsdjail.h" VALUE rbjail_mBSD; VALUE rbjail_cBSDJail; @@ -33,9 +47,9 @@ */ void #ifdef HAVE_STDARG_PROTOTYPES -rlink_debug(const char *fmt, ...) +rbjail_debug(const char *fmt, ...) #else -rlink_debug( const char *fmt, va_dcl ) +rbjail_debug( const char *fmt, va_dcl ) #endif { char buf[BUFSIZ], buf2[BUFSIZ]; @@ -43,7 +57,7 @@ if ( !RTEST(ruby_debug) ) return; - snprintf( buf, BUFSIZ, "Jail Debug>>> %s", fmt ); + snprintf( buf, BUFSIZ, "Debug>>> %s", fmt ); va_init_list( args, fmt ); vsnprintf( buf2, BUFSIZ, buf, args ); diff -r 9e4a97b20fcb -r 41a1542b3b10 ext/bsdjail.h --- a/ext/bsdjail.h Thu Nov 20 16:59:00 2008 +0000 +++ b/ext/bsdjail.h Thu Nov 20 17:12:39 2008 +0000 @@ -1,14 +1,54 @@ +/* + * bsdjail.h - Header for the bsdjail extension + * $Id$ + * + * Authors: + * * Michael Granger + * * Mahlon E. Smith + * + * Copyright (c) 2008, Michael Granger and Mahlon Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * * 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. + * + * * Neither the name of the author/s, nor the names of the project's + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + * + */ + +#ifndef _BSDJAIL_H_ +#define _BSDJAIL_H_ -#include #include +#include +#include +#include +#include #include #include /* For rb_dbl2big() */ -#include - - /* Debugging functions/macros */ #ifdef HAVE_STDARG_PROTOTYPES @@ -29,3 +69,6 @@ # define debugMsg(f) #endif /* DEBUG */ + +#endif /* _BSDJAIL_H_ */ + diff -r 9e4a97b20fcb -r 41a1542b3b10 ext/extconf.rb --- a/ext/extconf.rb Thu Nov 20 16:59:00 2008 +0000 +++ b/ext/extconf.rb Thu Nov 20 17:12:39 2008 +0000 @@ -24,10 +24,13 @@ dir_config( 'bsdjail' ) -have_header( "sys/param.h" ) or fail "Can't find the sys/param.h header." -have_header( "sys/jail.h" ) or fail "Can't find the sys/jail.h header." +have_header( 'stdio.h' ) or fail "Can't find the stdio.h header." +have_header( 'sys/param.h' ) or fail "Can't find the sys/param.h header." +have_header( 'sys/jail.h' ) or fail "Can't find the sys/jail.h header." +have_header( 'sys/types.h' ) or fail "Can't find the sys/types.h header." +have_header( 'unistd.h' ) or fail "Can't find the unistd.h header." -have_func( "jail_attach" ) or fail "Can't find jail_attach in the stdlib." +have_func( "jail_attach" ) or fail "Can't find jail_attach in the stdlib." create_makefile( 'bsdjail' )