]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
Sample config file for new port
authorTed Lemon <source@isc.org>
Mon, 20 May 1996 00:43:58 +0000 (00:43 +0000)
committerTed Lemon <source@isc.org>
Mon, 20 May 1996 00:43:58 +0000 (00:43 +0000)
cf/sample.h [new file with mode: 0644]
includes/cf/sample.h [new file with mode: 0644]

diff --git a/cf/sample.h b/cf/sample.h
new file mode 100644 (file)
index 0000000..8fe45f4
--- /dev/null
@@ -0,0 +1,292 @@
+/* sample.h
+
+   Sample config file for clients.
+
+   This file is provided as a sample in case the system you want to run
+   on is not currently supported.   If that is the case, follow the Porting::
+   comments here and in other files as guides for what to change. */
+
+/*
+ * Copyright (c) 1996 The Internet Software Consortium.  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.
+ * 3. Neither the name of The Internet Software Consortium nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM 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
+ * INTERNET SOFTWARE CONSORTIUM 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.
+ *
+ */
+
+/* Porting::
+
+   Some systems do not define basic integer types as shown below.
+   On some systems, you need to include <bitypes.h> or <sys/bitypes.h>.
+   If you get parse errors in dhcpd.h while compiling dhcpd.conf, try
+   including bitypes.h, and if that fails, use the hard-coded definitions
+   shown below. */
+   
+#if 0
+#include <sys/bitypes.h>
+#endif
+
+#if 0
+#define int8_t         char
+#define int16_t                short
+#define int32_t                long
+
+#define u_int8_t       unsigned char
+#define u_int16_t      unsigned short 
+#define u_int32_t      unsigned long 
+#endif
+
+#include <sys/types.h>
+
+/* Porting::
+
+   The jmp_buf type as declared in <setjmp.h> is sometimes a structure
+   and sometimes an array.   By default, we assume it's a structure.
+   If it's an array on your system, you may get compile warnings or errors
+   as a result in confpars.c.   If so, try including the following definitions,
+   which treat jmp_buf as an array: */
+
+#if 0
+#define jbp_decl(x)    jmp_buf x
+#define jref(x)                (x)
+#define jdref(x)       (x)
+#define jrefproto      jmp_buf
+#endif
+
+/* Porting::
+
+   Some older systems (e.g., Ultrix) still use the 4.2BSD-style syslog
+   API.  These differ from later versions of the syslog API in that the
+   openlog system call takes two arguments instead of three, and the
+   facility code (the third argument to modern versions of openlog())
+   is ORed into the log priority in the syslog() call.
+
+   If you are running with the 4.2BSD-style syslog interface, define
+   SYSLOG_4_2. */
+
+/* #define SYSLOG_4_2 */
+
+#include <syslog.h>
+
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+#include <sys/wait.h>
+#include <signal.h>
+#include <setjmp.h>
+#include <limits.h>
+
+extern int h_errno;
+
+#include <net/if.h>
+#include <net/if_arp.h>
+
+/* Porting::
+
+   Some older systems do not have defines for IP type-of-service,
+   or don't define them the way we expect.   If you get undefined
+   symbol errors on the following symbols, they probably need to be
+   defined here. */
+
+#if 0
+#define IPTOS_LOWDELAY          0x10
+#define IPTOS_THROUGHPUT        0x08
+#define IPTOS_RELIABILITY       0x04
+#endif
+
+/* Porting::
+
+   Newer BSD derivatives store non-permanent daemon files in a
+   directory called /var/run.   If your system has a /var/run,
+   use it; otherwise, use /etc. */
+
+#ifndef _PATH_DHCPD_PID
+#define _PATH_DHCPD_PID        "/etc/dhcpd.pid"
+#endif
+
+/* Porting::
+
+   If your system supports standard ANSI C, it should provide the file
+   /usr/include/stdarg.h.   This contains the ANSI standard declarations
+   for functions which take a variable number of arguments.
+
+   Older systems with non-ANSI compilers cannot support this interface,
+   and generally use the older varargs interface, defined in <varargs.h>.
+   Some systems only support varargs, but define the interface in
+   <stdarg.h> anyway.
+
+   You must choose one of the two sets of definitions below.   Try
+   stdarg.h first, unless you know it won't work.   If you have
+   trouble compiling errwarn.c, try switching to the varargs.h definitions.
+   If that fails, try using stdarg.h with the varargs definitions. */
+
+#if 0
+/* Stdarg definitions for ANSI-compliant C compilers. */
+#include <stdarg.h>
+#define VA_DOTDOTDOT ...
+#define VA_start(list, last) va_start (list, last)
+#define va_dcl
+#endif
+
+#if 0
+/* Varargs definitions, for non-ANSI-compliant C compilers. */
+#include <varargs.h>
+#define VA_DOTDOTDOT va_alist
+#define VA_start(list, last) va_start (list)
+#endif
+
+/* Porting::
+
+   Some systems (notably 4.4BSD derivatives) support versions of the
+   sprintf functions which will deposit a limited number of characters
+   into the buffer; that limit is provided in an extra argument.
+   If your system doesn't support this functionality, you must include
+   the definitions below: */
+
+#if 0
+#define vsnprintf(buf, size, fmt, list) vsprintf (buf, fmt, list)
+#define NO_SNPRINTF
+#endif
+
+/* Porting::
+
+   Some systems provide a function, strerror(), which takes the unix
+   error number (see errno) and returns a pointer to a static buffer
+   containing the corresponding error message.
+
+   If your system doesn't provide strerror(), define NO_STRERROR
+   as shown below: */
+
+#if 0
+#define NO_STRERROR
+char *strerror PROTO ((int));
+#endif
+
+/* Porting::
+
+   Once dhcpd has initialized itself, it loops forever waiting for
+   packets to come in.   Since we need to support multiple input streams
+   in order to support multiple interfaces, dhcpd needs to be able to
+   do a syscall to determine which descriptors have input waiting on
+   them.
+
+   Normally, dhcpd uses the select() system call, which is a 4.2BSD
+   syscall invented precisely for this purpose.   Unfortunately, some
+   System V-based systems do not support select() properly when it
+   operates on streams.   The System V interface which does (largely)
+   the same thing as select is called poll().   In some cases, this may
+   work better than select() - if you find that dhcpd is hanging and not
+   responding to packets very consistently, you might try defining
+   USE_POLL and including <poll.h>. */
+
+#if 0
+#define USE_POLL
+#include <poll.h>
+#endif
+
+/* Porting::
+
+   You must define the default network API for your port.   This
+   will depend on whether one of the existing APIs will work for
+   you, or whether you need to implement support for a new API.
+   Currently, the following APIs are supported:
+
+       The BSD socket API: define USE_SOCKETS.
+       The Berkeley Packet Filter: define USE_BPF.
+       The Streams Network Interface Tap (NIT): define USE_NIT.
+       Raw sockets: define USE_RAW_SOCKETS
+
+   If your system supports the BSD socket API and doesn't provide
+   one of the supported interfaces to the physical packet layer,
+   you can either provide support for the low-level API that your
+   system does support (if any) or just use the BSD socket interface.
+   The BSD socket interface doesn't support multiple network interfaces,
+   and on many systems, it does not support the all-ones broadcast
+   address, which can cause problems with some DHCP clients (e.g.
+   Microsoft Windows 95). */
+
+#if defined (USE_DEFAULT_NETWORK)
+#  define USE_SOCKETS
+#endif
+
+/* Porting::
+
+   Recent versions of BSD added a new element to the sockaddr structure:
+   sa_len.   This indicates the length of the structure, and is used
+   in a variety of places, not the least of which is the SIOCGIFCONF
+   ioctl, which is used to figure out what interfaces are attached to
+   the system.
+
+   You should be able to determine if your system has an sa_len element
+   by looking at the struct sockaddr definition in /usr/include/sys/socket.h.
+   If it does, you must define HAVE_SA_LEN.   Otherwise, you must not.
+   The most obvious symptom that you've got this wrong is either a compile
+   error complaining about the use of the sa_len structure element, or
+   the failure of dhcpd to find any interfaces. */
+
+/* #define HAVE_SA_LEN */
+
+/* Every operating system has its own way of seperating lines in a
+   sequential text file.  Most modern systems use a single character,
+   either an ASCII Newline (10) or an ASCII Carriage Return (13).
+
+   The most notable exception is MS-DOS (and consequently, Windows),
+   which uses an ASCII Carriage Return followed by a Newline to
+   seperate each line.  Fortunately, MS-DOS C compiler libraries
+   typically hide this from the programmer, returning just a Newline.
+
+   Define EOL to be whatever getc() returns for a newline. */
+
+#define EOL '\n'
+
+/* Some older C compilers don't support the void pointer type.
+   ANSI C defines void * to be a pointer type that matches
+   any other pointer type.   This is handy for returning a pointer
+   which will always need to be cast to a different value.   For
+   example, malloc() on an ANSI C-compliant system returns void *.
+
+   If your compiler doesn't support void pointers, you may need to
+   define VOIDPTR to be char *; otherwise, define it to be void *. */
+
+#define VOIDPTR void *
+
+/* Porting::
+
+   The following definitions for time should work on any unix machine.
+   They may not work (or at least, may not work well) on a variety of
+   non-unix machines.   If you are porting to a non-unix machine, you
+   probably need to change the definitions below and perhaps include
+   different headers.
+
+   I should note that dhcpd is not yet entirely clean of unix-specific
+   time references, so the list of defines shown below probably isn't
+   good enough if you're porting to a system that really doesn't support
+   unix time.   It's probably a reasonable place to start, though. */
+
+#include <time.h>
+
+#define TIME time_t
+#define GET_TIME(x)    time ((x))
diff --git a/includes/cf/sample.h b/includes/cf/sample.h
new file mode 100644 (file)
index 0000000..8fe45f4
--- /dev/null
@@ -0,0 +1,292 @@
+/* sample.h
+
+   Sample config file for clients.
+
+   This file is provided as a sample in case the system you want to run
+   on is not currently supported.   If that is the case, follow the Porting::
+   comments here and in other files as guides for what to change. */
+
+/*
+ * Copyright (c) 1996 The Internet Software Consortium.  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.
+ * 3. Neither the name of The Internet Software Consortium nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM 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
+ * INTERNET SOFTWARE CONSORTIUM 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.
+ *
+ */
+
+/* Porting::
+
+   Some systems do not define basic integer types as shown below.
+   On some systems, you need to include <bitypes.h> or <sys/bitypes.h>.
+   If you get parse errors in dhcpd.h while compiling dhcpd.conf, try
+   including bitypes.h, and if that fails, use the hard-coded definitions
+   shown below. */
+   
+#if 0
+#include <sys/bitypes.h>
+#endif
+
+#if 0
+#define int8_t         char
+#define int16_t                short
+#define int32_t                long
+
+#define u_int8_t       unsigned char
+#define u_int16_t      unsigned short 
+#define u_int32_t      unsigned long 
+#endif
+
+#include <sys/types.h>
+
+/* Porting::
+
+   The jmp_buf type as declared in <setjmp.h> is sometimes a structure
+   and sometimes an array.   By default, we assume it's a structure.
+   If it's an array on your system, you may get compile warnings or errors
+   as a result in confpars.c.   If so, try including the following definitions,
+   which treat jmp_buf as an array: */
+
+#if 0
+#define jbp_decl(x)    jmp_buf x
+#define jref(x)                (x)
+#define jdref(x)       (x)
+#define jrefproto      jmp_buf
+#endif
+
+/* Porting::
+
+   Some older systems (e.g., Ultrix) still use the 4.2BSD-style syslog
+   API.  These differ from later versions of the syslog API in that the
+   openlog system call takes two arguments instead of three, and the
+   facility code (the third argument to modern versions of openlog())
+   is ORed into the log priority in the syslog() call.
+
+   If you are running with the 4.2BSD-style syslog interface, define
+   SYSLOG_4_2. */
+
+/* #define SYSLOG_4_2 */
+
+#include <syslog.h>
+
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+#include <sys/wait.h>
+#include <signal.h>
+#include <setjmp.h>
+#include <limits.h>
+
+extern int h_errno;
+
+#include <net/if.h>
+#include <net/if_arp.h>
+
+/* Porting::
+
+   Some older systems do not have defines for IP type-of-service,
+   or don't define them the way we expect.   If you get undefined
+   symbol errors on the following symbols, they probably need to be
+   defined here. */
+
+#if 0
+#define IPTOS_LOWDELAY          0x10
+#define IPTOS_THROUGHPUT        0x08
+#define IPTOS_RELIABILITY       0x04
+#endif
+
+/* Porting::
+
+   Newer BSD derivatives store non-permanent daemon files in a
+   directory called /var/run.   If your system has a /var/run,
+   use it; otherwise, use /etc. */
+
+#ifndef _PATH_DHCPD_PID
+#define _PATH_DHCPD_PID        "/etc/dhcpd.pid"
+#endif
+
+/* Porting::
+
+   If your system supports standard ANSI C, it should provide the file
+   /usr/include/stdarg.h.   This contains the ANSI standard declarations
+   for functions which take a variable number of arguments.
+
+   Older systems with non-ANSI compilers cannot support this interface,
+   and generally use the older varargs interface, defined in <varargs.h>.
+   Some systems only support varargs, but define the interface in
+   <stdarg.h> anyway.
+
+   You must choose one of the two sets of definitions below.   Try
+   stdarg.h first, unless you know it won't work.   If you have
+   trouble compiling errwarn.c, try switching to the varargs.h definitions.
+   If that fails, try using stdarg.h with the varargs definitions. */
+
+#if 0
+/* Stdarg definitions for ANSI-compliant C compilers. */
+#include <stdarg.h>
+#define VA_DOTDOTDOT ...
+#define VA_start(list, last) va_start (list, last)
+#define va_dcl
+#endif
+
+#if 0
+/* Varargs definitions, for non-ANSI-compliant C compilers. */
+#include <varargs.h>
+#define VA_DOTDOTDOT va_alist
+#define VA_start(list, last) va_start (list)
+#endif
+
+/* Porting::
+
+   Some systems (notably 4.4BSD derivatives) support versions of the
+   sprintf functions which will deposit a limited number of characters
+   into the buffer; that limit is provided in an extra argument.
+   If your system doesn't support this functionality, you must include
+   the definitions below: */
+
+#if 0
+#define vsnprintf(buf, size, fmt, list) vsprintf (buf, fmt, list)
+#define NO_SNPRINTF
+#endif
+
+/* Porting::
+
+   Some systems provide a function, strerror(), which takes the unix
+   error number (see errno) and returns a pointer to a static buffer
+   containing the corresponding error message.
+
+   If your system doesn't provide strerror(), define NO_STRERROR
+   as shown below: */
+
+#if 0
+#define NO_STRERROR
+char *strerror PROTO ((int));
+#endif
+
+/* Porting::
+
+   Once dhcpd has initialized itself, it loops forever waiting for
+   packets to come in.   Since we need to support multiple input streams
+   in order to support multiple interfaces, dhcpd needs to be able to
+   do a syscall to determine which descriptors have input waiting on
+   them.
+
+   Normally, dhcpd uses the select() system call, which is a 4.2BSD
+   syscall invented precisely for this purpose.   Unfortunately, some
+   System V-based systems do not support select() properly when it
+   operates on streams.   The System V interface which does (largely)
+   the same thing as select is called poll().   In some cases, this may
+   work better than select() - if you find that dhcpd is hanging and not
+   responding to packets very consistently, you might try defining
+   USE_POLL and including <poll.h>. */
+
+#if 0
+#define USE_POLL
+#include <poll.h>
+#endif
+
+/* Porting::
+
+   You must define the default network API for your port.   This
+   will depend on whether one of the existing APIs will work for
+   you, or whether you need to implement support for a new API.
+   Currently, the following APIs are supported:
+
+       The BSD socket API: define USE_SOCKETS.
+       The Berkeley Packet Filter: define USE_BPF.
+       The Streams Network Interface Tap (NIT): define USE_NIT.
+       Raw sockets: define USE_RAW_SOCKETS
+
+   If your system supports the BSD socket API and doesn't provide
+   one of the supported interfaces to the physical packet layer,
+   you can either provide support for the low-level API that your
+   system does support (if any) or just use the BSD socket interface.
+   The BSD socket interface doesn't support multiple network interfaces,
+   and on many systems, it does not support the all-ones broadcast
+   address, which can cause problems with some DHCP clients (e.g.
+   Microsoft Windows 95). */
+
+#if defined (USE_DEFAULT_NETWORK)
+#  define USE_SOCKETS
+#endif
+
+/* Porting::
+
+   Recent versions of BSD added a new element to the sockaddr structure:
+   sa_len.   This indicates the length of the structure, and is used
+   in a variety of places, not the least of which is the SIOCGIFCONF
+   ioctl, which is used to figure out what interfaces are attached to
+   the system.
+
+   You should be able to determine if your system has an sa_len element
+   by looking at the struct sockaddr definition in /usr/include/sys/socket.h.
+   If it does, you must define HAVE_SA_LEN.   Otherwise, you must not.
+   The most obvious symptom that you've got this wrong is either a compile
+   error complaining about the use of the sa_len structure element, or
+   the failure of dhcpd to find any interfaces. */
+
+/* #define HAVE_SA_LEN */
+
+/* Every operating system has its own way of seperating lines in a
+   sequential text file.  Most modern systems use a single character,
+   either an ASCII Newline (10) or an ASCII Carriage Return (13).
+
+   The most notable exception is MS-DOS (and consequently, Windows),
+   which uses an ASCII Carriage Return followed by a Newline to
+   seperate each line.  Fortunately, MS-DOS C compiler libraries
+   typically hide this from the programmer, returning just a Newline.
+
+   Define EOL to be whatever getc() returns for a newline. */
+
+#define EOL '\n'
+
+/* Some older C compilers don't support the void pointer type.
+   ANSI C defines void * to be a pointer type that matches
+   any other pointer type.   This is handy for returning a pointer
+   which will always need to be cast to a different value.   For
+   example, malloc() on an ANSI C-compliant system returns void *.
+
+   If your compiler doesn't support void pointers, you may need to
+   define VOIDPTR to be char *; otherwise, define it to be void *. */
+
+#define VOIDPTR void *
+
+/* Porting::
+
+   The following definitions for time should work on any unix machine.
+   They may not work (or at least, may not work well) on a variety of
+   non-unix machines.   If you are porting to a non-unix machine, you
+   probably need to change the definitions below and perhaps include
+   different headers.
+
+   I should note that dhcpd is not yet entirely clean of unix-specific
+   time references, so the list of defines shown below probably isn't
+   good enough if you're porting to a system that really doesn't support
+   unix time.   It's probably a reasonable place to start, though. */
+
+#include <time.h>
+
+#define TIME time_t
+#define GET_TIME(x)    time ((x))