Cleaned up bsdjail extension code a bit more and made the extconf check for
the actual headers being included.
--- 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 <ged@FaerieMUD.org>
+ * * Mahlon E. Smith <mahlon@martini.nu>
*
- * 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 <ruby.h>
-#include <intern.h>
-
-#include <stdio.h>
-#include <sys/param.h>
-#include <sys/jail.h>
-#include <sys/types.h>
-#include <unistd.h>
-
+#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 );
--- 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 <ged@FaerieMUD.org>
+ * * Mahlon E. Smith <mahlon@martini.nu>
+ *
+ * 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 <stdlib.h>
#include <stdio.h>
+#include <sys/param.h>
+#include <sys/jail.h>
+#include <sys/types.h>
+#include <unistd.h>
#include <ruby.h>
#include <intern.h> /* For rb_dbl2big() */
-#include <link-grammar/link-includes.h>
-
-
/* Debugging functions/macros */
#ifdef HAVE_STDARG_PROTOTYPES
@@ -29,3 +69,6 @@
# define debugMsg(f)
#endif /* DEBUG */
+
+#endif /* _BSDJAIL_H_ */
+
--- 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' )