summaryrefslogtreecommitdiffstats
path: root/contrib/isc-dhcp
diff options
context:
space:
mode:
authormurray <murray@FreeBSD.org>2002-02-19 12:22:54 +0000
committermurray <murray@FreeBSD.org>2002-02-19 12:22:54 +0000
commit0c707a43cc97972d895eda47c1e2ab3960484e61 (patch)
tree466f02c5b95d63d981a0e6b34a51892957235b37 /contrib/isc-dhcp
parent647e7971d9b19d33097d8851d81340df4333e29b (diff)
downloadFreeBSD-src-0c707a43cc97972d895eda47c1e2ab3960484e61.zip
FreeBSD-src-0c707a43cc97972d895eda47c1e2ab3960484e61.tar.gz
Resolve conflicts.
Diffstat (limited to 'contrib/isc-dhcp')
-rw-r--r--contrib/isc-dhcp/common/tables.c1119
-rw-r--r--contrib/isc-dhcp/includes/cf/freebsd.h89
2 files changed, 910 insertions, 298 deletions
diff --git a/contrib/isc-dhcp/common/tables.c b/contrib/isc-dhcp/common/tables.c
index 6699d41..e9852df 100644
--- a/contrib/isc-dhcp/common/tables.c
+++ b/contrib/isc-dhcp/common/tables.c
@@ -3,7 +3,7 @@
Tables of information... */
/*
- * Copyright (c) 1995, 1996 The Internet Software Consortium.
+ * Copyright (c) 1995-2001 Internet Software Consortium.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -34,26 +34,32 @@
* SUCH DAMAGE.
*
* This software has been written for the Internet Software Consortium
- * by Ted Lemon <mellon@fugue.com> in cooperation with Vixie
- * Enterprises. To learn more about the Internet Software Consortium,
- * see ``http://www.vix.com/isc''. To learn more about Vixie
- * Enterprises, see ``http://www.vix.com''.
+ * by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
+ * To learn more about the Internet Software Consortium, see
+ * ``http://www.isc.org/''. To learn more about Vixie Enterprises,
+ * see ``http://www.vix.com''. To learn more about Nominum, Inc., see
+ * ``http://www.nominum.com''.
*/
-
#ifndef lint
static char copyright[] =
-"$Id: tables.c,v 1.13.2.4 1999/04/24 16:46:44 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n"
+"$Id: tables.c,v 1.51.2.4 2001/10/17 03:26:26 mellon Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n"
"$FreeBSD$\n";
#endif /* not lint */
#include "dhcpd.h"
+/* XXXDPN: Moved here from hash.c, when it moved to libomapi. Not sure
+ where these really belong. */
+HASH_FUNCTIONS (group, const char *, struct group_object, group_hash_t,
+ group_reference, group_dereference)
+HASH_FUNCTIONS (universe, const char *, struct universe, universe_hash_t, 0, 0)
+HASH_FUNCTIONS (option, const char *, struct option, option_hash_t, 0, 0)
+
/* DHCP Option names, formats and codes, from RFC1533.
Format codes:
- e - end of data
I - IP address
l - 32-bit signed integer
L - 32-bit unsigned integer
@@ -64,7 +70,32 @@ static char copyright[] =
t - ASCII text
f - flag (true or false)
A - array of whatever precedes (e.g., IA means array of IP addresses)
- X - hex dump
+ a - array of the preceding character (e.g., IIa means two or more IP
+ addresses)
+ U - name of an option space (universe)
+ F - implicit flag - the presence of the option indicates that the
+ flag is true.
+ o - the preceding value is optional.
+ E - encapsulation, string or colon-seperated hex list (the latter
+ two for parsing). E is followed by a text string containing
+ the name of the option space to encapsulate, followed by a '.'.
+ If the E is immediately followed by '.', the applicable vendor
+ option space is used if one is defined.
+ e - If an encapsulation directive is not the first thing in the string,
+ the option scanner requires an efficient way to find the encapsulation.
+ This is done by placing a 'e' at the beginning of the option. The
+ 'e' has no other purpose, and is not required if 'E' is the first
+ thing in the option.
+ X - either an ASCII string or binary data. On output, the string is
+ scanned to see if it's printable ASCII and, if so, output as a
+ quoted string. If not, it's output as colon-seperated hex. On
+ input, the option can be specified either as a quoted string or as
+ a colon-seperated hex list.
+ N - enumeration. N is followed by a text string containing
+ the name of the set of enumeration values to parse or emit,
+ followed by a '.'. The width of the data is specified in the
+ named enumeration. Named enumerations are tracked in parse.c.
+ d - Domain name (i.e., FOO or FOO.BAR).
*/
struct universe dhcp_universe;
@@ -112,7 +143,7 @@ struct option dhcp_options [256] = {
{ "nis-domain", "t", &dhcp_universe, 40 },
{ "nis-servers", "IA", &dhcp_universe, 41 },
{ "ntp-servers", "IA", &dhcp_universe, 42 },
- { "vendor-encapsulated-options", "X", &dhcp_universe, 43 },
+ { "vendor-encapsulated-options", "E.", &dhcp_universe, 43 },
{ "netbios-name-servers", "IA", &dhcp_universe, 44 },
{ "netbios-dd-server", "IA", &dhcp_universe, 45 },
{ "netbios-node-type", "B", &dhcp_universe, 46 },
@@ -129,10 +160,10 @@ struct option dhcp_options [256] = {
{ "dhcp-max-message-size", "S", &dhcp_universe, 57 },
{ "dhcp-renewal-time", "L", &dhcp_universe, 58 },
{ "dhcp-rebinding-time", "L", &dhcp_universe, 59 },
- { "dhcp-class-identifier", "t", &dhcp_universe, 60 },
+ { "vendor-class-identifier", "X", &dhcp_universe, 60 },
{ "dhcp-client-identifier", "X", &dhcp_universe, 61 },
- { "option-62", "X", &dhcp_universe, 62 },
- { "option-63", "X", &dhcp_universe, 63 },
+ { "nwip-domain", "X", &dhcp_universe, 62 },
+ { "nwip-suboptions", "Enwip.", &dhcp_universe, 63 },
{ "nisplus-domain", "t", &dhcp_universe, 64 },
{ "nisplus-servers", "IA", &dhcp_universe, 65 },
{ "tftp-server-name", "t", &dhcp_universe, 66 },
@@ -147,272 +178,707 @@ struct option dhcp_options [256] = {
{ "streettalk-server", "IA", &dhcp_universe, 75 },
{ "streettalk-directory-assistance-server", "IA", &dhcp_universe, 76 },
{ "user-class", "t", &dhcp_universe, 77 },
- { "option-78", "X", &dhcp_universe, 78 },
- { "option-79", "X", &dhcp_universe, 79 },
- { "option-80", "X", &dhcp_universe, 80 },
- { "option-81", "X", &dhcp_universe, 81 },
- { "option-82", "X", &dhcp_universe, 82 },
- { "option-83", "X", &dhcp_universe, 83 },
- { "option-84", "X", &dhcp_universe, 84 },
+ { "slp-directory-agent", "fIa", &dhcp_universe, 78 },
+ { "slp-service-scope", "fto", &dhcp_universe, 79 },
+ { "#80", "X", &dhcp_universe, 80 },
+ { "fqdn", "Efqdn.", &dhcp_universe, 81 },
+ { "relay-agent-information", "Eagent.", &dhcp_universe, 82 },
+ { "#83", "X", &dhcp_universe, 83 },
+ { "#84", "X", &dhcp_universe, 84 },
{ "nds-servers", "IA", &dhcp_universe, 85 },
{ "nds-tree-name", "X", &dhcp_universe, 86 },
{ "nds-context", "X", &dhcp_universe, 87 },
- { "option-88", "X", &dhcp_universe, 88 },
- { "option-89", "X", &dhcp_universe, 89 },
- { "option-90", "X", &dhcp_universe, 90 },
- { "option-91", "X", &dhcp_universe, 91 },
- { "option-92", "X", &dhcp_universe, 92 },
- { "option-93", "X", &dhcp_universe, 93 },
- { "option-94", "X", &dhcp_universe, 94 },
- { "option-95", "X", &dhcp_universe, 95 },
- { "option-96", "X", &dhcp_universe, 96 },
- { "option-97", "X", &dhcp_universe, 97 },
- { "option-98", "X", &dhcp_universe, 98 },
- { "option-99", "X", &dhcp_universe, 99 },
- { "option-100", "X", &dhcp_universe, 100 },
- { "option-101", "X", &dhcp_universe, 101 },
- { "option-102", "X", &dhcp_universe, 102 },
- { "option-103", "X", &dhcp_universe, 103 },
- { "option-104", "X", &dhcp_universe, 104 },
- { "option-105", "X", &dhcp_universe, 105 },
- { "option-106", "X", &dhcp_universe, 106 },
- { "option-107", "X", &dhcp_universe, 107 },
- { "option-108", "X", &dhcp_universe, 108 },
- { "option-109", "X", &dhcp_universe, 109 },
- { "option-110", "X", &dhcp_universe, 110 },
- { "option-111", "X", &dhcp_universe, 111 },
- { "option-112", "X", &dhcp_universe, 112 },
- { "option-113", "X", &dhcp_universe, 113 },
- { "option-114", "X", &dhcp_universe, 114 },
- { "option-115", "X", &dhcp_universe, 115 },
- { "option-116", "X", &dhcp_universe, 116 },
- { "option-117", "X", &dhcp_universe, 117 },
- { "option-118", "X", &dhcp_universe, 118 },
- { "option-119", "X", &dhcp_universe, 119 },
- { "option-120", "X", &dhcp_universe, 120 },
- { "option-121", "X", &dhcp_universe, 121 },
- { "option-122", "X", &dhcp_universe, 122 },
- { "option-123", "X", &dhcp_universe, 123 },
- { "option-124", "X", &dhcp_universe, 124 },
- { "option-125", "X", &dhcp_universe, 125 },
- { "option-126", "X", &dhcp_universe, 126 },
- { "option-127", "X", &dhcp_universe, 127 },
- { "option-128", "X", &dhcp_universe, 128 },
- { "option-129", "X", &dhcp_universe, 129 },
- { "option-130", "X", &dhcp_universe, 130 },
- { "option-131", "X", &dhcp_universe, 131 },
- { "option-132", "X", &dhcp_universe, 132 },
- { "option-133", "X", &dhcp_universe, 133 },
- { "option-134", "X", &dhcp_universe, 134 },
- { "option-135", "X", &dhcp_universe, 135 },
- { "option-136", "X", &dhcp_universe, 136 },
- { "option-137", "X", &dhcp_universe, 137 },
- { "option-138", "X", &dhcp_universe, 138 },
- { "option-139", "X", &dhcp_universe, 139 },
- { "option-140", "X", &dhcp_universe, 140 },
- { "option-141", "X", &dhcp_universe, 141 },
- { "option-142", "X", &dhcp_universe, 142 },
- { "option-143", "X", &dhcp_universe, 143 },
- { "option-144", "X", &dhcp_universe, 144 },
- { "option-145", "X", &dhcp_universe, 145 },
- { "option-146", "X", &dhcp_universe, 146 },
- { "option-147", "X", &dhcp_universe, 147 },
- { "option-148", "X", &dhcp_universe, 148 },
- { "option-149", "X", &dhcp_universe, 149 },
- { "option-150", "X", &dhcp_universe, 150 },
- { "option-151", "X", &dhcp_universe, 151 },
- { "option-152", "X", &dhcp_universe, 152 },
- { "option-153", "X", &dhcp_universe, 153 },
- { "option-154", "X", &dhcp_universe, 154 },
- { "option-155", "X", &dhcp_universe, 155 },
- { "option-156", "X", &dhcp_universe, 156 },
- { "option-157", "X", &dhcp_universe, 157 },
- { "option-158", "X", &dhcp_universe, 158 },
- { "option-159", "X", &dhcp_universe, 159 },
- { "option-160", "X", &dhcp_universe, 160 },
- { "option-161", "X", &dhcp_universe, 161 },
- { "option-162", "X", &dhcp_universe, 162 },
- { "option-163", "X", &dhcp_universe, 163 },
- { "option-164", "X", &dhcp_universe, 164 },
- { "option-165", "X", &dhcp_universe, 165 },
- { "option-166", "X", &dhcp_universe, 166 },
- { "option-167", "X", &dhcp_universe, 167 },
- { "option-168", "X", &dhcp_universe, 168 },
- { "option-169", "X", &dhcp_universe, 169 },
- { "option-170", "X", &dhcp_universe, 170 },
- { "option-171", "X", &dhcp_universe, 171 },
- { "option-172", "X", &dhcp_universe, 172 },
- { "option-173", "X", &dhcp_universe, 173 },
- { "option-174", "X", &dhcp_universe, 174 },
- { "option-175", "X", &dhcp_universe, 175 },
- { "option-176", "X", &dhcp_universe, 176 },
- { "option-177", "X", &dhcp_universe, 177 },
- { "option-178", "X", &dhcp_universe, 178 },
- { "option-179", "X", &dhcp_universe, 179 },
- { "option-180", "X", &dhcp_universe, 180 },
- { "option-181", "X", &dhcp_universe, 181 },
- { "option-182", "X", &dhcp_universe, 182 },
- { "option-183", "X", &dhcp_universe, 183 },
- { "option-184", "X", &dhcp_universe, 184 },
- { "option-185", "X", &dhcp_universe, 185 },
- { "option-186", "X", &dhcp_universe, 186 },
- { "option-187", "X", &dhcp_universe, 187 },
- { "option-188", "X", &dhcp_universe, 188 },
- { "option-189", "X", &dhcp_universe, 189 },
- { "option-190", "X", &dhcp_universe, 190 },
- { "option-191", "X", &dhcp_universe, 191 },
- { "option-192", "X", &dhcp_universe, 192 },
- { "option-193", "X", &dhcp_universe, 193 },
- { "option-194", "X", &dhcp_universe, 194 },
- { "option-195", "X", &dhcp_universe, 195 },
- { "option-196", "X", &dhcp_universe, 196 },
- { "option-197", "X", &dhcp_universe, 197 },
- { "option-198", "X", &dhcp_universe, 198 },
- { "option-199", "X", &dhcp_universe, 199 },
- { "option-200", "X", &dhcp_universe, 200 },
- { "option-201", "X", &dhcp_universe, 201 },
- { "option-202", "X", &dhcp_universe, 202 },
- { "option-203", "X", &dhcp_universe, 203 },
- { "option-204", "X", &dhcp_universe, 204 },
- { "option-205", "X", &dhcp_universe, 205 },
- { "option-206", "X", &dhcp_universe, 206 },
- { "option-207", "X", &dhcp_universe, 207 },
- { "option-208", "X", &dhcp_universe, 208 },
- { "option-209", "X", &dhcp_universe, 209 },
- { "option-210", "X", &dhcp_universe, 210 },
- { "option-211", "X", &dhcp_universe, 211 },
- { "option-212", "X", &dhcp_universe, 212 },
- { "option-213", "X", &dhcp_universe, 213 },
- { "option-214", "X", &dhcp_universe, 214 },
- { "option-215", "X", &dhcp_universe, 215 },
- { "option-216", "X", &dhcp_universe, 216 },
- { "option-217", "X", &dhcp_universe, 217 },
- { "option-218", "X", &dhcp_universe, 218 },
- { "option-219", "X", &dhcp_universe, 219 },
- { "option-220", "X", &dhcp_universe, 220 },
- { "option-221", "X", &dhcp_universe, 221 },
- { "option-222", "X", &dhcp_universe, 222 },
- { "option-223", "X", &dhcp_universe, 223 },
- { "option-224", "X", &dhcp_universe, 224 },
- { "option-225", "X", &dhcp_universe, 225 },
- { "option-226", "X", &dhcp_universe, 226 },
- { "option-227", "X", &dhcp_universe, 227 },
- { "option-228", "X", &dhcp_universe, 228 },
- { "option-229", "X", &dhcp_universe, 229 },
- { "option-230", "X", &dhcp_universe, 230 },
- { "option-231", "X", &dhcp_universe, 231 },
- { "option-232", "X", &dhcp_universe, 232 },
- { "option-233", "X", &dhcp_universe, 233 },
- { "option-234", "X", &dhcp_universe, 234 },
- { "option-235", "X", &dhcp_universe, 235 },
- { "option-236", "X", &dhcp_universe, 236 },
- { "option-237", "X", &dhcp_universe, 237 },
- { "option-238", "X", &dhcp_universe, 238 },
- { "option-239", "X", &dhcp_universe, 239 },
- { "option-240", "X", &dhcp_universe, 240 },
- { "option-241", "X", &dhcp_universe, 241 },
- { "option-242", "X", &dhcp_universe, 242 },
- { "option-243", "X", &dhcp_universe, 243 },
- { "option-244", "X", &dhcp_universe, 244 },
- { "option-245", "X", &dhcp_universe, 245 },
- { "option-246", "X", &dhcp_universe, 246 },
- { "option-247", "X", &dhcp_universe, 247 },
- { "option-248", "X", &dhcp_universe, 248 },
- { "option-249", "X", &dhcp_universe, 249 },
- { "option-250", "X", &dhcp_universe, 250 },
- { "option-251", "X", &dhcp_universe, 251 },
- { "option-252", "X", &dhcp_universe, 252 },
- { "option-253", "X", &dhcp_universe, 253 },
- { "option-254", "X", &dhcp_universe, 254 },
+ { "#88", "X", &dhcp_universe, 88 },
+ { "#89", "X", &dhcp_universe, 89 },
+ { "#90", "X", &dhcp_universe, 90 },
+ { "#91", "X", &dhcp_universe, 91 },
+ { "#92", "X", &dhcp_universe, 92 },
+ { "#93", "X", &dhcp_universe, 93 },
+ { "#94", "X", &dhcp_universe, 94 },
+ { "#95", "X", &dhcp_universe, 95 },
+ { "#96", "X", &dhcp_universe, 96 },
+ { "#97", "X", &dhcp_universe, 97 },
+ { "uap-servers", "t", &dhcp_universe, 98 },
+ { "#99", "X", &dhcp_universe, 99 },
+ { "#100", "X", &dhcp_universe, 100 },
+ { "#101", "X", &dhcp_universe, 101 },
+ { "#102", "X", &dhcp_universe, 102 },
+ { "#103", "X", &dhcp_universe, 103 },
+ { "#104", "X", &dhcp_universe, 104 },
+ { "#105", "X", &dhcp_universe, 105 },
+ { "#106", "X", &dhcp_universe, 106 },
+ { "#107", "X", &dhcp_universe, 107 },
+ { "#108", "X", &dhcp_universe, 108 },
+ { "#109", "X", &dhcp_universe, 109 },
+ { "#110", "X", &dhcp_universe, 110 },
+ { "#111", "X", &dhcp_universe, 111 },
+ { "#112", "X", &dhcp_universe, 112 },
+ { "#113", "X", &dhcp_universe, 113 },
+ { "#114", "X", &dhcp_universe, 114 },
+ { "#115", "X", &dhcp_universe, 115 },
+ { "#116", "X", &dhcp_universe, 116 },
+ { "#117", "X", &dhcp_universe, 117 },
+ { "subnet-selection", "X", &dhcp_universe, 118 },
+ { "#119", "X", &dhcp_universe, 119 },
+ { "#120", "X", &dhcp_universe, 120 },
+ { "#121", "X", &dhcp_universe, 121 },
+ { "#122", "X", &dhcp_universe, 122 },
+ { "#123", "X", &dhcp_universe, 123 },
+ { "#124", "X", &dhcp_universe, 124 },
+ { "#125", "X", &dhcp_universe, 125 },
+ { "#126", "X", &dhcp_universe, 126 },
+ { "#127", "X", &dhcp_universe, 127 },
+ { "#128", "X", &dhcp_universe, 128 },
+ { "#129", "X", &dhcp_universe, 129 },
+ { "#130", "X", &dhcp_universe, 130 },
+ { "#131", "X", &dhcp_universe, 131 },
+ { "#132", "X", &dhcp_universe, 132 },
+ { "#133", "X", &dhcp_universe, 133 },
+ { "#134", "X", &dhcp_universe, 134 },
+ { "#135", "X", &dhcp_universe, 135 },
+ { "#136", "X", &dhcp_universe, 136 },
+ { "#137", "X", &dhcp_universe, 137 },
+ { "#138", "X", &dhcp_universe, 138 },
+ { "#139", "X", &dhcp_universe, 139 },
+ { "#140", "X", &dhcp_universe, 140 },
+ { "#141", "X", &dhcp_universe, 141 },
+ { "#142", "X", &dhcp_universe, 142 },
+ { "#143", "X", &dhcp_universe, 143 },
+ { "#144", "X", &dhcp_universe, 144 },
+ { "#145", "X", &dhcp_universe, 145 },
+ { "#146", "X", &dhcp_universe, 146 },
+ { "#147", "X", &dhcp_universe, 147 },
+ { "#148", "X", &dhcp_universe, 148 },
+ { "#149", "X", &dhcp_universe, 149 },
+ { "#150", "X", &dhcp_universe, 150 },
+ { "#151", "X", &dhcp_universe, 151 },
+ { "#152", "X", &dhcp_universe, 152 },
+ { "#153", "X", &dhcp_universe, 153 },
+ { "#154", "X", &dhcp_universe, 154 },
+ { "#155", "X", &dhcp_universe, 155 },
+ { "#156", "X", &dhcp_universe, 156 },
+ { "#157", "X", &dhcp_universe, 157 },
+ { "#158", "X", &dhcp_universe, 158 },
+ { "#159", "X", &dhcp_universe, 159 },
+ { "#160", "X", &dhcp_universe, 160 },
+ { "#161", "X", &dhcp_universe, 161 },
+ { "#162", "X", &dhcp_universe, 162 },
+ { "#163", "X", &dhcp_universe, 163 },
+ { "#164", "X", &dhcp_universe, 164 },
+ { "#165", "X", &dhcp_universe, 165 },
+ { "#166", "X", &dhcp_universe, 166 },
+ { "#167", "X", &dhcp_universe, 167 },
+ { "#168", "X", &dhcp_universe, 168 },
+ { "#169", "X", &dhcp_universe, 169 },
+ { "#170", "X", &dhcp_universe, 170 },
+ { "#171", "X", &dhcp_universe, 171 },
+ { "#172", "X", &dhcp_universe, 172 },
+ { "#173", "X", &dhcp_universe, 173 },
+ { "#174", "X", &dhcp_universe, 174 },
+ { "#175", "X", &dhcp_universe, 175 },
+ { "#176", "X", &dhcp_universe, 176 },
+ { "#177", "X", &dhcp_universe, 177 },
+ { "#178", "X", &dhcp_universe, 178 },
+ { "#179", "X", &dhcp_universe, 179 },
+ { "#180", "X", &dhcp_universe, 180 },
+ { "#181", "X", &dhcp_universe, 181 },
+ { "#182", "X", &dhcp_universe, 182 },
+ { "#183", "X", &dhcp_universe, 183 },
+ { "#184", "X", &dhcp_universe, 184 },
+ { "#185", "X", &dhcp_universe, 185 },
+ { "#186", "X", &dhcp_universe, 186 },
+ { "#187", "X", &dhcp_universe, 187 },
+ { "#188", "X", &dhcp_universe, 188 },
+ { "#189", "X", &dhcp_universe, 189 },
+ { "#190", "X", &dhcp_universe, 190 },
+ { "#191", "X", &dhcp_universe, 191 },
+ { "#192", "X", &dhcp_universe, 192 },
+ { "#193", "X", &dhcp_universe, 193 },
+ { "#194", "X", &dhcp_universe, 194 },
+ { "#195", "X", &dhcp_universe, 195 },
+ { "#196", "X", &dhcp_universe, 196 },
+ { "#197", "X", &dhcp_universe, 197 },
+ { "#198", "X", &dhcp_universe, 198 },
+ { "#199", "X", &dhcp_universe, 199 },
+ { "#200", "X", &dhcp_universe, 200 },
+ { "#201", "X", &dhcp_universe, 201 },
+ { "#202", "X", &dhcp_universe, 202 },
+ { "#203", "X", &dhcp_universe, 203 },
+ { "#204", "X", &dhcp_universe, 204 },
+ { "#205", "X", &dhcp_universe, 205 },
+ { "#206", "X", &dhcp_universe, 206 },
+ { "#207", "X", &dhcp_universe, 207 },
+ { "#208", "X", &dhcp_universe, 208 },
+ { "#209", "X", &dhcp_universe, 209 },
+ { "authenticate", "X", &dhcp_universe, 210 },
+ { "#211", "X", &dhcp_universe, 211 },
+ { "#212", "X", &dhcp_universe, 212 },
+ { "#213", "X", &dhcp_universe, 213 },
+ { "#214", "X", &dhcp_universe, 214 },
+ { "#215", "X", &dhcp_universe, 215 },
+ { "#216", "X", &dhcp_universe, 216 },
+ { "#217", "X", &dhcp_universe, 217 },
+ { "#218", "X", &dhcp_universe, 218 },
+ { "#219", "X", &dhcp_universe, 219 },
+ { "#220", "X", &dhcp_universe, 220 },
+ { "#221", "X", &dhcp_universe, 221 },
+ { "#222", "X", &dhcp_universe, 222 },
+ { "#223", "X", &dhcp_universe, 223 },
+ { "#224", "X", &dhcp_universe, 224 },
+ { "#225", "X", &dhcp_universe, 225 },
+ { "#226", "X", &dhcp_universe, 226 },
+ { "#227", "X", &dhcp_universe, 227 },
+ { "#228", "X", &dhcp_universe, 228 },
+ { "#229", "X", &dhcp_universe, 229 },
+ { "#230", "X", &dhcp_universe, 230 },
+ { "#231", "X", &dhcp_universe, 231 },
+ { "#232", "X", &dhcp_universe, 232 },
+ { "#233", "X", &dhcp_universe, 233 },
+ { "#234", "X", &dhcp_universe, 234 },
+ { "#235", "X", &dhcp_universe, 235 },
+ { "#236", "X", &dhcp_universe, 236 },
+ { "#237", "X", &dhcp_universe, 237 },
+ { "#238", "X", &dhcp_universe, 238 },
+ { "#239", "X", &dhcp_universe, 239 },
+ { "#240", "X", &dhcp_universe, 240 },
+ { "#241", "X", &dhcp_universe, 241 },
+ { "#242", "X", &dhcp_universe, 242 },
+ { "#243", "X", &dhcp_universe, 243 },
+ { "#244", "X", &dhcp_universe, 244 },
+ { "#245", "X", &dhcp_universe, 245 },
+ { "#246", "X", &dhcp_universe, 246 },
+ { "#247", "X", &dhcp_universe, 247 },
+ { "#248", "X", &dhcp_universe, 248 },
+ { "#249", "X", &dhcp_universe, 249 },
+ { "#250", "X", &dhcp_universe, 250 },
+ { "#251", "X", &dhcp_universe, 251 },
+ { "#252", "X", &dhcp_universe, 252 },
+ { "#253", "X", &dhcp_universe, 253 },
+ { "#254", "X", &dhcp_universe, 254 },
{ "option-end", "e", &dhcp_universe, 255 },
};
-/* Default dhcp option priority list (this is ad hoc and should not be
- mistaken for a carefully crafted and optimized list). */
-unsigned char dhcp_option_default_priority_list [] = {
- DHO_DHCP_REQUESTED_ADDRESS,
- DHO_DHCP_OPTION_OVERLOAD,
- DHO_DHCP_MAX_MESSAGE_SIZE,
- DHO_DHCP_RENEWAL_TIME,
- DHO_DHCP_REBINDING_TIME,
- DHO_DHCP_CLASS_IDENTIFIER,
- DHO_DHCP_CLIENT_IDENTIFIER,
- DHO_SUBNET_MASK,
- DHO_TIME_OFFSET,
- DHO_ROUTERS,
- DHO_TIME_SERVERS,
- DHO_NAME_SERVERS,
- DHO_DOMAIN_NAME_SERVERS,
- DHO_HOST_NAME,
- DHO_LOG_SERVERS,
- DHO_COOKIE_SERVERS,
- DHO_LPR_SERVERS,
- DHO_IMPRESS_SERVERS,
- DHO_RESOURCE_LOCATION_SERVERS,
- DHO_HOST_NAME,
- DHO_BOOT_SIZE,
- DHO_MERIT_DUMP,
- DHO_DOMAIN_NAME,
- DHO_SWAP_SERVER,
- DHO_ROOT_PATH,
- DHO_EXTENSIONS_PATH,
- DHO_IP_FORWARDING,
- DHO_NON_LOCAL_SOURCE_ROUTING,
- DHO_POLICY_FILTER,
- DHO_MAX_DGRAM_REASSEMBLY,
- DHO_DEFAULT_IP_TTL,
- DHO_PATH_MTU_AGING_TIMEOUT,
- DHO_PATH_MTU_PLATEAU_TABLE,
- DHO_INTERFACE_MTU,
- DHO_ALL_SUBNETS_LOCAL,
- DHO_BROADCAST_ADDRESS,
- DHO_PERFORM_MASK_DISCOVERY,
- DHO_MASK_SUPPLIER,
- DHO_ROUTER_DISCOVERY,
- DHO_ROUTER_SOLICITATION_ADDRESS,
- DHO_STATIC_ROUTES,
- DHO_TRAILER_ENCAPSULATION,
- DHO_ARP_CACHE_TIMEOUT,
- DHO_IEEE802_3_ENCAPSULATION,
- DHO_DEFAULT_TCP_TTL,
- DHO_TCP_KEEPALIVE_INTERVAL,
- DHO_TCP_KEEPALIVE_GARBAGE,
- DHO_NIS_DOMAIN,
- DHO_NIS_SERVERS,
- DHO_NTP_SERVERS,
- DHO_VENDOR_ENCAPSULATED_OPTIONS,
- DHO_NETBIOS_NAME_SERVERS,
- DHO_NETBIOS_DD_SERVER,
- DHO_NETBIOS_NODE_TYPE,
- DHO_NETBIOS_SCOPE,
- DHO_FONT_SERVERS,
- DHO_X_DISPLAY_MANAGER,
- DHO_DHCP_PARAMETER_REQUEST_LIST,
-
- /* Presently-undefined options... */
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
- 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
- 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
- 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
- 251, 252, 253, 254,
+struct universe nwip_universe;
+struct option nwip_options [256] = {
+ { "pad", "", &nwip_universe, 0 },
+ { "illegal-1", "", &nwip_universe, 1 },
+ { "illegal-2", "", &nwip_universe, 2 },
+ { "illegal-3", "", &nwip_universe, 3 },
+ { "illegal-4", "", &nwip_universe, 4 },
+ { "nsq-broadcast", "f", &nwip_universe, 5 },
+ { "preferred-dss", "IA", &nwip_universe, 6 },
+ { "nearest-nwip-server", "IA", &nwip_universe, 7 },
+ { "autoretries", "B", &nwip_universe, 8 },
+ { "autoretry-secs", "B", &nwip_universe, 9 },
+ { "nwip-1-1", "f", &nwip_universe, 10 },
+ { "primary-dss", "I", &nwip_universe, 11 },
+ { "#12", "X", &nwip_universe, 12 },
+ { "#13", "X", &nwip_universe, 13 },
+ { "#14", "X", &nwip_universe, 14 },
+ { "#15", "X", &nwip_universe, 15 },
+ { "#16", "X", &nwip_universe, 16 },
+ { "#17", "X", &nwip_universe, 17 },
+ { "#18", "X", &nwip_universe, 18 },
+ { "#19", "X", &nwip_universe, 19 },
+ { "#20", "X", &nwip_universe, 20 },
+ { "#21", "X", &nwip_universe, 21 },
+ { "#22", "X", &nwip_universe, 22 },
+ { "#23", "X", &nwip_universe, 23 },
+ { "#24", "X", &nwip_universe, 24 },
+ { "#25", "X", &nwip_universe, 25 },
+ { "#26", "X", &nwip_universe, 26 },
+ { "#27", "X", &nwip_universe, 27 },
+ { "#28", "X", &nwip_universe, 28 },
+ { "#29", "X", &nwip_universe, 29 },
+ { "#30", "X", &nwip_universe, 30 },
+ { "#31", "X", &nwip_universe, 31 },
+ { "#32", "X", &nwip_universe, 32 },
+ { "#33", "X", &nwip_universe, 33 },
+ { "#34", "X", &nwip_universe, 34 },
+ { "#35", "X", &nwip_universe, 35 },
+ { "#36", "X", &nwip_universe, 36 },
+ { "#37", "X", &nwip_universe, 37 },
+ { "#38", "X", &nwip_universe, 38 },
+ { "#39", "X", &nwip_universe, 39 },
+ { "#40", "X", &nwip_universe, 40 },
+ { "#41", "X", &nwip_universe, 41 },
+ { "#42", "X", &nwip_universe, 42 },
+ { "#43", "X", &nwip_universe, 43 },
+ { "#44", "X", &nwip_universe, 44 },
+ { "#45", "X", &nwip_universe, 45 },
+ { "#46", "X", &nwip_universe, 46 },
+ { "#47", "X", &nwip_universe, 47 },
+ { "#48", "X", &nwip_universe, 48 },
+ { "#49", "X", &nwip_universe, 49 },
+ { "#50", "X", &nwip_universe, 50 },
+ { "#51", "X", &nwip_universe, 51 },
+ { "#52", "X", &nwip_universe, 52 },
+ { "#53", "X", &nwip_universe, 53 },
+ { "#54", "X", &nwip_universe, 54 },
+ { "#55", "X", &nwip_universe, 55 },
+ { "#56", "X", &nwip_universe, 56 },
+ { "#57", "X", &nwip_universe, 57 },
+ { "#58", "X", &nwip_universe, 58 },
+ { "#59", "X", &nwip_universe, 59 },
+ { "#60", "X", &nwip_universe, 60 },
+ { "#61", "X", &nwip_universe, 61 },
+ { "#62", "X", &nwip_universe, 62 },
+ { "#63", "X", &nwip_universe, 63 },
+ { "#64", "X", &nwip_universe, 64 },
+ { "#65", "X", &nwip_universe, 65 },
+ { "#66", "X", &nwip_universe, 66 },
+ { "#67", "X", &nwip_universe, 67 },
+ { "#68", "X", &nwip_universe, 68 },
+ { "#69", "X", &nwip_universe, 69 },
+ { "#70", "X", &nwip_universe, 70 },
+ { "#71", "X", &nwip_universe, 71 },
+ { "#72", "X", &nwip_universe, 72 },
+ { "#73", "X", &nwip_universe, 73 },
+ { "#74", "X", &nwip_universe, 74 },
+ { "#75", "X", &nwip_universe, 75 },
+ { "#76", "X", &nwip_universe, 76 },
+ { "#77", "X", &nwip_universe, 77 },
+ { "#78", "X", &nwip_universe, 78 },
+ { "#79", "X", &nwip_universe, 79 },
+ { "#80", "X", &nwip_universe, 80 },
+ { "#81", "X", &nwip_universe, 81 },
+ { "#82", "X", &nwip_universe, 82 },
+ { "#83", "X", &nwip_universe, 83 },
+ { "#84", "X", &nwip_universe, 84 },
+ { "#85", "X", &nwip_universe, 85 },
+ { "#86", "X", &nwip_universe, 86 },
+ { "#87", "X", &nwip_universe, 87 },
+ { "#88", "X", &nwip_universe, 88 },
+ { "#89", "X", &nwip_universe, 89 },
+ { "#90", "X", &nwip_universe, 90 },
+ { "#91", "X", &nwip_universe, 91 },
+ { "#92", "X", &nwip_universe, 92 },
+ { "#93", "X", &nwip_universe, 93 },
+ { "#94", "X", &nwip_universe, 94 },
+ { "#95", "X", &nwip_universe, 95 },
+ { "#96", "X", &nwip_universe, 96 },
+ { "#97", "X", &nwip_universe, 97 },
+ { "#98", "X", &nwip_universe, 98 },
+ { "#99", "X", &nwip_universe, 99 },
+ { "#100", "X", &nwip_universe, 100 },
+ { "#101", "X", &nwip_universe, 101 },
+ { "#102", "X", &nwip_universe, 102 },
+ { "#103", "X", &nwip_universe, 103 },
+ { "#104", "X", &nwip_universe, 104 },
+ { "#105", "X", &nwip_universe, 105 },
+ { "#106", "X", &nwip_universe, 106 },
+ { "#107", "X", &nwip_universe, 107 },
+ { "#108", "X", &nwip_universe, 108 },
+ { "#109", "X", &nwip_universe, 109 },
+ { "#110", "X", &nwip_universe, 110 },
+ { "#111", "X", &nwip_universe, 111 },
+ { "#112", "X", &nwip_universe, 112 },
+ { "#113", "X", &nwip_universe, 113 },
+ { "#114", "X", &nwip_universe, 114 },
+ { "#115", "X", &nwip_universe, 115 },
+ { "#116", "X", &nwip_universe, 116 },
+ { "#117", "X", &nwip_universe, 117 },
+ { "#118", "X", &nwip_universe, 118 },
+ { "#119", "X", &nwip_universe, 119 },
+ { "#120", "X", &nwip_universe, 120 },
+ { "#121", "X", &nwip_universe, 121 },
+ { "#122", "X", &nwip_universe, 122 },
+ { "#123", "X", &nwip_universe, 123 },
+ { "#124", "X", &nwip_universe, 124 },
+ { "#125", "X", &nwip_universe, 125 },
+ { "#126", "X", &nwip_universe, 126 },
+ { "#127", "X", &nwip_universe, 127 },
+ { "#128", "X", &nwip_universe, 128 },
+ { "#129", "X", &nwip_universe, 129 },
+ { "#130", "X", &nwip_universe, 130 },
+ { "#131", "X", &nwip_universe, 131 },
+ { "#132", "X", &nwip_universe, 132 },
+ { "#133", "X", &nwip_universe, 133 },
+ { "#134", "X", &nwip_universe, 134 },
+ { "#135", "X", &nwip_universe, 135 },
+ { "#136", "X", &nwip_universe, 136 },
+ { "#137", "X", &nwip_universe, 137 },
+ { "#138", "X", &nwip_universe, 138 },
+ { "#139", "X", &nwip_universe, 139 },
+ { "#140", "X", &nwip_universe, 140 },
+ { "#141", "X", &nwip_universe, 141 },
+ { "#142", "X", &nwip_universe, 142 },
+ { "#143", "X", &nwip_universe, 143 },
+ { "#144", "X", &nwip_universe, 144 },
+ { "#145", "X", &nwip_universe, 145 },
+ { "#146", "X", &nwip_universe, 146 },
+ { "#147", "X", &nwip_universe, 147 },
+ { "#148", "X", &nwip_universe, 148 },
+ { "#149", "X", &nwip_universe, 149 },
+ { "#150", "X", &nwip_universe, 150 },
+ { "#151", "X", &nwip_universe, 151 },
+ { "#152", "X", &nwip_universe, 152 },
+ { "#153", "X", &nwip_universe, 153 },
+ { "#154", "X", &nwip_universe, 154 },
+ { "#155", "X", &nwip_universe, 155 },
+ { "#156", "X", &nwip_universe, 156 },
+ { "#157", "X", &nwip_universe, 157 },
+ { "#158", "X", &nwip_universe, 158 },
+ { "#159", "X", &nwip_universe, 159 },
+ { "#160", "X", &nwip_universe, 160 },
+ { "#161", "X", &nwip_universe, 161 },
+ { "#162", "X", &nwip_universe, 162 },
+ { "#163", "X", &nwip_universe, 163 },
+ { "#164", "X", &nwip_universe, 164 },
+ { "#165", "X", &nwip_universe, 165 },
+ { "#166", "X", &nwip_universe, 166 },
+ { "#167", "X", &nwip_universe, 167 },
+ { "#168", "X", &nwip_universe, 168 },
+ { "#169", "X", &nwip_universe, 169 },
+ { "#170", "X", &nwip_universe, 170 },
+ { "#171", "X", &nwip_universe, 171 },
+ { "#172", "X", &nwip_universe, 172 },
+ { "#173", "X", &nwip_universe, 173 },
+ { "#174", "X", &nwip_universe, 174 },
+ { "#175", "X", &nwip_universe, 175 },
+ { "#176", "X", &nwip_universe, 176 },
+ { "#177", "X", &nwip_universe, 177 },
+ { "#178", "X", &nwip_universe, 178 },
+ { "#179", "X", &nwip_universe, 179 },
+ { "#180", "X", &nwip_universe, 180 },
+ { "#181", "X", &nwip_universe, 181 },
+ { "#182", "X", &nwip_universe, 182 },
+ { "#183", "X", &nwip_universe, 183 },
+ { "#184", "X", &nwip_universe, 184 },
+ { "#185", "X", &nwip_universe, 185 },
+ { "#186", "X", &nwip_universe, 186 },
+ { "#187", "X", &nwip_universe, 187 },
+ { "#188", "X", &nwip_universe, 188 },
+ { "#189", "X", &nwip_universe, 189 },
+ { "#190", "X", &nwip_universe, 190 },
+ { "#191", "X", &nwip_universe, 191 },
+ { "#192", "X", &nwip_universe, 192 },
+ { "#193", "X", &nwip_universe, 193 },
+ { "#194", "X", &nwip_universe, 194 },
+ { "#195", "X", &nwip_universe, 195 },
+ { "#196", "X", &nwip_universe, 196 },
+ { "#197", "X", &nwip_universe, 197 },
+ { "#198", "X", &nwip_universe, 198 },
+ { "#199", "X", &nwip_universe, 199 },
+ { "#200", "X", &nwip_universe, 200 },
+ { "#201", "X", &nwip_universe, 201 },
+ { "#202", "X", &nwip_universe, 202 },
+ { "#203", "X", &nwip_universe, 203 },
+ { "#204", "X", &nwip_universe, 204 },
+ { "#205", "X", &nwip_universe, 205 },
+ { "#206", "X", &nwip_universe, 206 },
+ { "#207", "X", &nwip_universe, 207 },
+ { "#208", "X", &nwip_universe, 208 },
+ { "#209", "X", &nwip_universe, 209 },
+ { "#210", "X", &nwip_universe, 210 },
+ { "#211", "X", &nwip_universe, 211 },
+ { "#212", "X", &nwip_universe, 212 },
+ { "#213", "X", &nwip_universe, 213 },
+ { "#214", "X", &nwip_universe, 214 },
+ { "#215", "X", &nwip_universe, 215 },
+ { "#216", "X", &nwip_universe, 216 },
+ { "#217", "X", &nwip_universe, 217 },
+ { "#218", "X", &nwip_universe, 218 },
+ { "#219", "X", &nwip_universe, 219 },
+ { "#220", "X", &nwip_universe, 220 },
+ { "#221", "X", &nwip_universe, 221 },
+ { "#222", "X", &nwip_universe, 222 },
+ { "#223", "X", &nwip_universe, 223 },
+ { "#224", "X", &nwip_universe, 224 },
+ { "#225", "X", &nwip_universe, 225 },
+ { "#226", "X", &nwip_universe, 226 },
+ { "#227", "X", &nwip_universe, 227 },
+ { "#228", "X", &nwip_universe, 228 },
+ { "#229", "X", &nwip_universe, 229 },
+ { "#230", "X", &nwip_universe, 230 },
+ { "#231", "X", &nwip_universe, 231 },
+ { "#232", "X", &nwip_universe, 232 },
+ { "#233", "X", &nwip_universe, 233 },
+ { "#234", "X", &nwip_universe, 234 },
+ { "#235", "X", &nwip_universe, 235 },
+ { "#236", "X", &nwip_universe, 236 },
+ { "#237", "X", &nwip_universe, 237 },
+ { "#238", "X", &nwip_universe, 238 },
+ { "#239", "X", &nwip_universe, 239 },
+ { "#240", "X", &nwip_universe, 240 },
+ { "#241", "X", &nwip_universe, 241 },
+ { "#242", "X", &nwip_universe, 242 },
+ { "#243", "X", &nwip_universe, 243 },
+ { "#244", "X", &nwip_universe, 244 },
+ { "#245", "X", &nwip_universe, 245 },
+ { "#246", "X", &nwip_universe, 246 },
+ { "#247", "X", &nwip_universe, 247 },
+ { "#248", "X", &nwip_universe, 248 },
+ { "#249", "X", &nwip_universe, 249 },
+ { "#250", "X", &nwip_universe, 250 },
+ { "#251", "X", &nwip_universe, 251 },
+ { "#252", "X", &nwip_universe, 252 },
+ { "#253", "X", &nwip_universe, 253 },
+ { "#254", "X", &nwip_universe, 254 },
+ { "#end", "e", &nwip_universe, 255 },
};
-int sizeof_dhcp_option_default_priority_list =
- sizeof dhcp_option_default_priority_list;
-
+struct universe fqdn_universe;
+struct option fqdn_options [256] = {
+ { "pad", "", &fqdn_universe, 0 },
+ { "no-client-update", "f", &fqdn_universe, 1 },
+ { "server-update", "f", &fqdn_universe, 2 },
+ { "encoded", "f", &fqdn_universe, 3 },
+ { "rcode1", "B", &fqdn_universe, 4 },
+ { "rcode2", "B", &fqdn_universe, 5 },
+ { "hostname", "t", &fqdn_universe, 6 },
+ { "domainname", "t", &fqdn_universe, 7 },
+ { "fqdn", "t", &fqdn_universe, 8 },
+ { "#9", "X", &fqdn_universe, 9 },
+ { "#10", "X", &fqdn_universe, 10 },
+ { "#11", "X", &fqdn_universe, 11 },
+ { "#12", "X", &fqdn_universe, 12 },
+ { "#13", "X", &fqdn_universe, 13 },
+ { "#14", "X", &fqdn_universe, 14 },
+ { "#15", "X", &fqdn_universe, 15 },
+ { "#16", "X", &fqdn_universe, 16 },
+ { "#17", "X", &fqdn_universe, 17 },
+ { "#18", "X", &fqdn_universe, 18 },
+ { "#19", "X", &fqdn_universe, 19 },
+ { "#20", "X", &fqdn_universe, 20 },
+ { "#21", "X", &fqdn_universe, 21 },
+ { "#22", "X", &fqdn_universe, 22 },
+ { "#23", "X", &fqdn_universe, 23 },
+ { "#24", "X", &fqdn_universe, 24 },
+ { "#25", "X", &fqdn_universe, 25 },
+ { "#26", "X", &fqdn_universe, 26 },
+ { "#27", "X", &fqdn_universe, 27 },
+ { "#28", "X", &fqdn_universe, 28 },
+ { "#29", "X", &fqdn_universe, 29 },
+ { "#30", "X", &fqdn_universe, 30 },
+ { "#31", "X", &fqdn_universe, 31 },
+ { "#32", "X", &fqdn_universe, 32 },
+ { "#33", "X", &fqdn_universe, 33 },
+ { "#34", "X", &fqdn_universe, 34 },
+ { "#35", "X", &fqdn_universe, 35 },
+ { "#36", "X", &fqdn_universe, 36 },
+ { "#37", "X", &fqdn_universe, 37 },
+ { "#38", "X", &fqdn_universe, 38 },
+ { "#39", "X", &fqdn_universe, 39 },
+ { "#40", "X", &fqdn_universe, 40 },
+ { "#41", "X", &fqdn_universe, 41 },
+ { "#42", "X", &fqdn_universe, 42 },
+ { "#43", "X", &fqdn_universe, 43 },
+ { "#44", "X", &fqdn_universe, 44 },
+ { "#45", "X", &fqdn_universe, 45 },
+ { "#46", "X", &fqdn_universe, 46 },
+ { "#47", "X", &fqdn_universe, 47 },
+ { "#48", "X", &fqdn_universe, 48 },
+ { "#49", "X", &fqdn_universe, 49 },
+ { "#50", "X", &fqdn_universe, 50 },
+ { "#51", "X", &fqdn_universe, 51 },
+ { "#52", "X", &fqdn_universe, 52 },
+ { "#53", "X", &fqdn_universe, 53 },
+ { "#54", "X", &fqdn_universe, 54 },
+ { "#55", "X", &fqdn_universe, 55 },
+ { "#56", "X", &fqdn_universe, 56 },
+ { "#57", "X", &fqdn_universe, 57 },
+ { "#58", "X", &fqdn_universe, 58 },
+ { "#59", "X", &fqdn_universe, 59 },
+ { "#60", "X", &fqdn_universe, 60 },
+ { "#61", "X", &fqdn_universe, 61 },
+ { "#62", "X", &fqdn_universe, 62 },
+ { "#63", "X", &fqdn_universe, 63 },
+ { "#64", "X", &fqdn_universe, 64 },
+ { "#65", "X", &fqdn_universe, 65 },
+ { "#66", "X", &fqdn_universe, 66 },
+ { "#67", "X", &fqdn_universe, 67 },
+ { "#68", "X", &fqdn_universe, 68 },
+ { "#69", "X", &fqdn_universe, 69 },
+ { "#70", "X", &fqdn_universe, 70 },
+ { "#71", "X", &fqdn_universe, 71 },
+ { "#72", "X", &fqdn_universe, 72 },
+ { "#73", "X", &fqdn_universe, 73 },
+ { "#74", "X", &fqdn_universe, 74 },
+ { "#75", "X", &fqdn_universe, 75 },
+ { "#76", "X", &fqdn_universe, 76 },
+ { "#77", "X", &fqdn_universe, 77 },
+ { "#78", "X", &fqdn_universe, 78 },
+ { "#79", "X", &fqdn_universe, 79 },
+ { "#80", "X", &fqdn_universe, 80 },
+ { "#81", "X", &fqdn_universe, 81 },
+ { "#82", "X", &fqdn_universe, 82 },
+ { "#83", "X", &fqdn_universe, 83 },
+ { "#84", "X", &fqdn_universe, 84 },
+ { "#85", "X", &fqdn_universe, 85 },
+ { "#86", "X", &fqdn_universe, 86 },
+ { "#87", "X", &fqdn_universe, 87 },
+ { "#88", "X", &fqdn_universe, 88 },
+ { "#89", "X", &fqdn_universe, 89 },
+ { "#90", "X", &fqdn_universe, 90 },
+ { "#91", "X", &fqdn_universe, 91 },
+ { "#92", "X", &fqdn_universe, 92 },
+ { "#93", "X", &fqdn_universe, 93 },
+ { "#94", "X", &fqdn_universe, 94 },
+ { "#95", "X", &fqdn_universe, 95 },
+ { "#96", "X", &fqdn_universe, 96 },
+ { "#97", "X", &fqdn_universe, 97 },
+ { "#98", "X", &fqdn_universe, 98 },
+ { "#99", "X", &fqdn_universe, 99 },
+ { "#100", "X", &fqdn_universe, 100 },
+ { "#101", "X", &fqdn_universe, 101 },
+ { "#102", "X", &fqdn_universe, 102 },
+ { "#103", "X", &fqdn_universe, 103 },
+ { "#104", "X", &fqdn_universe, 104 },
+ { "#105", "X", &fqdn_universe, 105 },
+ { "#106", "X", &fqdn_universe, 106 },
+ { "#107", "X", &fqdn_universe, 107 },
+ { "#108", "X", &fqdn_universe, 108 },
+ { "#109", "X", &fqdn_universe, 109 },
+ { "#110", "X", &fqdn_universe, 110 },
+ { "#111", "X", &fqdn_universe, 111 },
+ { "#112", "X", &fqdn_universe, 112 },
+ { "#113", "X", &fqdn_universe, 113 },
+ { "#114", "X", &fqdn_universe, 114 },
+ { "#115", "X", &fqdn_universe, 115 },
+ { "#116", "X", &fqdn_universe, 116 },
+ { "#117", "X", &fqdn_universe, 117 },
+ { "#118", "X", &fqdn_universe, 118 },
+ { "#119", "X", &fqdn_universe, 119 },
+ { "#120", "X", &fqdn_universe, 120 },
+ { "#121", "X", &fqdn_universe, 121 },
+ { "#122", "X", &fqdn_universe, 122 },
+ { "#123", "X", &fqdn_universe, 123 },
+ { "#124", "X", &fqdn_universe, 124 },
+ { "#125", "X", &fqdn_universe, 125 },
+ { "#126", "X", &fqdn_universe, 126 },
+ { "#127", "X", &fqdn_universe, 127 },
+ { "#128", "X", &fqdn_universe, 128 },
+ { "#129", "X", &fqdn_universe, 129 },
+ { "#130", "X", &fqdn_universe, 130 },
+ { "#131", "X", &fqdn_universe, 131 },
+ { "#132", "X", &fqdn_universe, 132 },
+ { "#133", "X", &fqdn_universe, 133 },
+ { "#134", "X", &fqdn_universe, 134 },
+ { "#135", "X", &fqdn_universe, 135 },
+ { "#136", "X", &fqdn_universe, 136 },
+ { "#137", "X", &fqdn_universe, 137 },
+ { "#138", "X", &fqdn_universe, 138 },
+ { "#139", "X", &fqdn_universe, 139 },
+ { "#140", "X", &fqdn_universe, 140 },
+ { "#141", "X", &fqdn_universe, 141 },
+ { "#142", "X", &fqdn_universe, 142 },
+ { "#143", "X", &fqdn_universe, 143 },
+ { "#144", "X", &fqdn_universe, 144 },
+ { "#145", "X", &fqdn_universe, 145 },
+ { "#146", "X", &fqdn_universe, 146 },
+ { "#147", "X", &fqdn_universe, 147 },
+ { "#148", "X", &fqdn_universe, 148 },
+ { "#149", "X", &fqdn_universe, 149 },
+ { "#150", "X", &fqdn_universe, 150 },
+ { "#151", "X", &fqdn_universe, 151 },
+ { "#152", "X", &fqdn_universe, 152 },
+ { "#153", "X", &fqdn_universe, 153 },
+ { "#154", "X", &fqdn_universe, 154 },
+ { "#155", "X", &fqdn_universe, 155 },
+ { "#156", "X", &fqdn_universe, 156 },
+ { "#157", "X", &fqdn_universe, 157 },
+ { "#158", "X", &fqdn_universe, 158 },
+ { "#159", "X", &fqdn_universe, 159 },
+ { "#160", "X", &fqdn_universe, 160 },
+ { "#161", "X", &fqdn_universe, 161 },
+ { "#162", "X", &fqdn_universe, 162 },
+ { "#163", "X", &fqdn_universe, 163 },
+ { "#164", "X", &fqdn_universe, 164 },
+ { "#165", "X", &fqdn_universe, 165 },
+ { "#166", "X", &fqdn_universe, 166 },
+ { "#167", "X", &fqdn_universe, 167 },
+ { "#168", "X", &fqdn_universe, 168 },
+ { "#169", "X", &fqdn_universe, 169 },
+ { "#170", "X", &fqdn_universe, 170 },
+ { "#171", "X", &fqdn_universe, 171 },
+ { "#172", "X", &fqdn_universe, 172 },
+ { "#173", "X", &fqdn_universe, 173 },
+ { "#174", "X", &fqdn_universe, 174 },
+ { "#175", "X", &fqdn_universe, 175 },
+ { "#176", "X", &fqdn_universe, 176 },
+ { "#177", "X", &fqdn_universe, 177 },
+ { "#178", "X", &fqdn_universe, 178 },
+ { "#179", "X", &fqdn_universe, 179 },
+ { "#180", "X", &fqdn_universe, 180 },
+ { "#181", "X", &fqdn_universe, 181 },
+ { "#182", "X", &fqdn_universe, 182 },
+ { "#183", "X", &fqdn_universe, 183 },
+ { "#184", "X", &fqdn_universe, 184 },
+ { "#185", "X", &fqdn_universe, 185 },
+ { "#186", "X", &fqdn_universe, 186 },
+ { "#187", "X", &fqdn_universe, 187 },
+ { "#188", "X", &fqdn_universe, 188 },
+ { "#189", "X", &fqdn_universe, 189 },
+ { "#190", "X", &fqdn_universe, 190 },
+ { "#191", "X", &fqdn_universe, 191 },
+ { "#192", "X", &fqdn_universe, 192 },
+ { "#193", "X", &fqdn_universe, 193 },
+ { "#194", "X", &fqdn_universe, 194 },
+ { "#195", "X", &fqdn_universe, 195 },
+ { "#196", "X", &fqdn_universe, 196 },
+ { "#197", "X", &fqdn_universe, 197 },
+ { "#198", "X", &fqdn_universe, 198 },
+ { "#199", "X", &fqdn_universe, 199 },
+ { "#200", "X", &fqdn_universe, 200 },
+ { "#201", "X", &fqdn_universe, 201 },
+ { "#202", "X", &fqdn_universe, 202 },
+ { "#203", "X", &fqdn_universe, 203 },
+ { "#204", "X", &fqdn_universe, 204 },
+ { "#205", "X", &fqdn_universe, 205 },
+ { "#206", "X", &fqdn_universe, 206 },
+ { "#207", "X", &fqdn_universe, 207 },
+ { "#208", "X", &fqdn_universe, 208 },
+ { "#209", "X", &fqdn_universe, 209 },
+ { "#210", "X", &fqdn_universe, 210 },
+ { "#211", "X", &fqdn_universe, 211 },
+ { "#212", "X", &fqdn_universe, 212 },
+ { "#213", "X", &fqdn_universe, 213 },
+ { "#214", "X", &fqdn_universe, 214 },
+ { "#215", "X", &fqdn_universe, 215 },
+ { "#216", "X", &fqdn_universe, 216 },
+ { "#217", "X", &fqdn_universe, 217 },
+ { "#218", "X", &fqdn_universe, 218 },
+ { "#219", "X", &fqdn_universe, 219 },
+ { "#220", "X", &fqdn_universe, 220 },
+ { "#221", "X", &fqdn_universe, 221 },
+ { "#222", "X", &fqdn_universe, 222 },
+ { "#223", "X", &fqdn_universe, 223 },
+ { "#224", "X", &fqdn_universe, 224 },
+ { "#225", "X", &fqdn_universe, 225 },
+ { "#226", "X", &fqdn_universe, 226 },
+ { "#227", "X", &fqdn_universe, 227 },
+ { "#228", "X", &fqdn_universe, 228 },
+ { "#229", "X", &fqdn_universe, 229 },
+ { "#230", "X", &fqdn_universe, 230 },
+ { "#231", "X", &fqdn_universe, 231 },
+ { "#232", "X", &fqdn_universe, 232 },
+ { "#233", "X", &fqdn_universe, 233 },
+ { "#234", "X", &fqdn_universe, 234 },
+ { "#235", "X", &fqdn_universe, 235 },
+ { "#236", "X", &fqdn_universe, 236 },
+ { "#237", "X", &fqdn_universe, 237 },
+ { "#238", "X", &fqdn_universe, 238 },
+ { "#239", "X", &fqdn_universe, 239 },
+ { "#240", "X", &fqdn_universe, 240 },
+ { "#241", "X", &fqdn_universe, 241 },
+ { "#242", "X", &fqdn_universe, 242 },
+ { "#243", "X", &fqdn_universe, 243 },
+ { "#244", "X", &fqdn_universe, 244 },
+ { "#245", "X", &fqdn_universe, 245 },
+ { "#246", "X", &fqdn_universe, 246 },
+ { "#247", "X", &fqdn_universe, 247 },
+ { "#248", "X", &fqdn_universe, 248 },
+ { "#249", "X", &fqdn_universe, 249 },
+ { "#250", "X", &fqdn_universe, 250 },
+ { "#251", "X", &fqdn_universe, 251 },
+ { "#252", "X", &fqdn_universe, 252 },
+ { "#253", "X", &fqdn_universe, 253 },
+ { "#254", "X", &fqdn_universe, 254 },
+ { "#end", "e", &fqdn_universe, 255 },
+};
-char *hardware_types [] = {
+const char *hardware_types [] = {
"unknown-0",
"ethernet",
"unknown-2",
@@ -670,26 +1136,115 @@ char *hardware_types [] = {
"unknown-254",
"unknown-255" };
+universe_hash_t *universe_hash;
+struct universe **universes;
+int universe_count, universe_max;
+/* Universe containing names of configuration options, which, rather than
+ writing "option universe-name.option-name ...;", can be set by writing
+ "option-name ...;". */
-struct hash_table universe_hash;
+struct universe *config_universe;
-void initialize_universes()
+void initialize_common_option_spaces()
{
int i;
+ universe_max = 10;
+ universes = ((struct universe **)
+ dmalloc (universe_max * sizeof (struct universe *), MDL));
+ if (!universes)
+ log_fatal ("Can't allocate option space table.");
+ memset (universes, 0, universe_max * sizeof (struct universe *));
+
+ /* Set up the DHCP option universe... */
dhcp_universe.name = "dhcp";
- dhcp_universe.hash = new_hash ();
- if (!dhcp_universe.hash)
- error ("Can't allocate dhcp option hash table.");
+ dhcp_universe.lookup_func = lookup_hashed_option;
+ dhcp_universe.option_state_dereference =
+ hashed_option_state_dereference;
+ dhcp_universe.save_func = save_hashed_option;
+ dhcp_universe.delete_func = delete_hashed_option;
+ dhcp_universe.encapsulate = hashed_option_space_encapsulate;
+ dhcp_universe.foreach = hashed_option_space_foreach;
+ dhcp_universe.decode = parse_option_buffer;
+ dhcp_universe.length_size = 1;
+ dhcp_universe.tag_size = 1;
+ dhcp_universe.store_tag = putUChar;
+ dhcp_universe.store_length = putUChar;
+ dhcp_universe.index = universe_count++;
+ universes [dhcp_universe.index] = &dhcp_universe;
+ if (!option_new_hash (&dhcp_universe.hash, 1, MDL))
+ log_fatal ("Can't allocate dhcp option hash table.");
for (i = 0; i < 256; i++) {
dhcp_universe.options [i] = &dhcp_options [i];
- add_hash (dhcp_universe.hash,
- (unsigned char *)dhcp_options [i].name, 0,
- (unsigned char *)&dhcp_options [i]);
+ option_hash_add (dhcp_universe.hash,
+ dhcp_options [i].name, 0,
+ &dhcp_options [i], MDL);
}
- universe_hash.hash_count = DEFAULT_HASH_SIZE;
- add_hash (&universe_hash,
- (unsigned char *)dhcp_universe.name, 0,
- (unsigned char *)&dhcp_universe);
+
+ /* Set up the Novell option universe (for option 63)... */
+ nwip_universe.name = "nwip";
+ nwip_universe.lookup_func = lookup_linked_option;
+ nwip_universe.option_state_dereference =
+ linked_option_state_dereference;
+ nwip_universe.save_func = save_linked_option;
+ nwip_universe.delete_func = delete_linked_option;
+ nwip_universe.encapsulate = nwip_option_space_encapsulate;
+ nwip_universe.foreach = linked_option_space_foreach;
+ nwip_universe.decode = parse_option_buffer;
+ nwip_universe.length_size = 1;
+ nwip_universe.tag_size = 1;
+ nwip_universe.store_tag = putUChar;
+ nwip_universe.store_length = putUChar;
+ fqdn_universe.enc_opt = &dhcp_options [DHO_NWIP_SUBOPTIONS];
+ nwip_universe.index = universe_count++;
+ universes [nwip_universe.index] = &nwip_universe;
+ option_new_hash (&nwip_universe.hash, 1, MDL);
+ if (!nwip_universe.hash)
+ log_fatal ("Can't allocate nwip option hash table.");
+ for (i = 0; i < 256; i++) {
+ nwip_universe.options [i] = &nwip_options [i];
+ option_hash_add (nwip_universe.hash,
+ nwip_options [i].name, 0,
+ &nwip_options [i], MDL);
+ }
+
+ /* Set up the FQDN option universe... */
+ fqdn_universe.name = "fqdn";
+ fqdn_universe.lookup_func = lookup_linked_option;
+ fqdn_universe.option_state_dereference =
+ linked_option_state_dereference;
+ fqdn_universe.save_func = save_linked_option;
+ fqdn_universe.delete_func = delete_linked_option;
+ fqdn_universe.encapsulate = fqdn_option_space_encapsulate;
+ fqdn_universe.foreach = linked_option_space_foreach;
+ fqdn_universe.decode = fqdn_universe_decode;
+ fqdn_universe.length_size = 1;
+ fqdn_universe.tag_size = 1;
+ fqdn_universe.store_tag = putUChar;
+ fqdn_universe.store_length = putUChar;
+ fqdn_universe.index = universe_count++;
+ fqdn_universe.enc_opt = &dhcp_options [DHO_FQDN];
+ universes [fqdn_universe.index] = &fqdn_universe;
+ option_new_hash (&fqdn_universe.hash, 1, MDL);
+ if (!fqdn_universe.hash)
+ log_fatal ("Can't allocate fqdn option hash table.");
+ for (i = 0; i < 256; i++) {
+ fqdn_universe.options [i] = &fqdn_options [i];
+ option_hash_add (fqdn_universe.hash,
+ fqdn_options [i].name, 0,
+ &fqdn_options [i], MDL);
+ }
+
+ /* Set up the hash of universes. */
+ universe_new_hash (&universe_hash, 1, MDL);
+ universe_hash_add (universe_hash,
+ dhcp_universe.name, 0,
+ &dhcp_universe, MDL);
+ universe_hash_add (universe_hash,
+ nwip_universe.name, 0,
+ &nwip_universe, MDL);
+ universe_hash_add (universe_hash,
+ fqdn_universe.name, 0,
+ &fqdn_universe, MDL);
}
diff --git a/contrib/isc-dhcp/includes/cf/freebsd.h b/contrib/isc-dhcp/includes/cf/freebsd.h
index 032d52c..5da5708 100644
--- a/contrib/isc-dhcp/includes/cf/freebsd.h
+++ b/contrib/isc-dhcp/includes/cf/freebsd.h
@@ -3,7 +3,7 @@
System dependencies for FreeBSD... */
/*
- * Copyright (c) 1996, 1998 The Internet Software Consortium.
+ * Copyright (c) 1996-1999 Internet Software Consortium.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -15,25 +15,32 @@
* 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
+ * 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
- * THE 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.
+ * 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 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.
*
- * This software was written for the Internet Software Consortium by Ted Lemon
- * under a contract with Vixie Laboratories.
+ * This software has been written for the Internet Software Consortium
+ * by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
+ * To learn more about the Internet Software Consortium, see
+ * ``http://www.isc.org/''. To learn more about Vixie Enterprises,
+ * see ``http://www.vix.com''. To learn more about Nominum, Inc., see
+ * ``http://www.nominum.com''.
+ *
+ * $FreeBSD$
*/
#define _ANSI_SOURCE
@@ -88,6 +95,56 @@ extern int h_errno;
#define HAVE_SA_LEN
+/* socklen_t was first defined on November 24 in sys/socket.h, and
+ __FreeBSD_version was changed to 400013 on December 4, so if you
+ get a compile error on this, and you updated between those dates,
+ that's why. Also, it may be that some 3.x version after 3.4 will
+ have socklen_t, but no such change has been made so far. */
+
+#if __FreeBSD_version < 400013
+#define SOCKLEN_T int
+#endif
+
#if defined (USE_DEFAULT_NETWORK)
# define USE_BPF
#endif
+#define HAVE_MKSTEMP
+#ifdef NEED_PRAND_CONF
+#ifndef HAVE_DEV_RANDOM
+ # define HAVE_DEV_RANDOM 1
+ #endif /* HAVE_DEV_RANDOM */
+
+const char *cmds[] = {
+ "/bin/ps -axlw 2>&1",
+ "/usr/sbin/arp -an 2>&1",
+ "/usr/bin/netstat -an 2>&1",
+ "/bin/df 2>&1",
+ "/usr/bin/dig com. soa +ti=1 +retry=0 2>&1",
+ "/usr/bin/netstat -an 2>&1",
+ "/usr/bin/dig . soa +ti=1 +retry=0 2>&1",
+ "/usr/sbin/iostat 2>&1",
+ "/usr/bin/vmstat 2>&1",
+ "/usr/bin/w 2>&1",
+ NULL
+};
+
+const char *dirs[] = {
+ "/tmp",
+ "/usr/tmp",
+ ".",
+ "/",
+ "/var/spool",
+ "/dev",
+ "/var/mail",
+ "/home",
+ "/usr/home",
+ NULL
+};
+
+const char *files[] = {
+ "/var/log/messages",
+ "/var/log/wtmp",
+ "/var/log/lastlog",
+ NULL
+};
+#endif /* NEED_PRAND_CONF */
OpenPOWER on IntegriCloud