1*e853bc5dShenning /* tables.c 2*e853bc5dShenning 3*e853bc5dShenning Tables of information... */ 4*e853bc5dShenning 5*e853bc5dShenning /* 6*e853bc5dShenning * Copyright (c) 1995, 1996 The Internet Software Consortium. 7*e853bc5dShenning * All rights reserved. 8*e853bc5dShenning * 9*e853bc5dShenning * Redistribution and use in source and binary forms, with or without 10*e853bc5dShenning * modification, are permitted provided that the following conditions 11*e853bc5dShenning * are met: 12*e853bc5dShenning * 13*e853bc5dShenning * 1. Redistributions of source code must retain the above copyright 14*e853bc5dShenning * notice, this list of conditions and the following disclaimer. 15*e853bc5dShenning * 2. Redistributions in binary form must reproduce the above copyright 16*e853bc5dShenning * notice, this list of conditions and the following disclaimer in the 17*e853bc5dShenning * documentation and/or other materials provided with the distribution. 18*e853bc5dShenning * 3. Neither the name of The Internet Software Consortium nor the names 19*e853bc5dShenning * of its contributors may be used to endorse or promote products derived 20*e853bc5dShenning * from this software without specific prior written permission. 21*e853bc5dShenning * 22*e853bc5dShenning * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND 23*e853bc5dShenning * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 24*e853bc5dShenning * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 25*e853bc5dShenning * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 26*e853bc5dShenning * DISCLAIMED. IN NO EVENT SHALL THE INTERNET SOFTWARE CONSORTIUM OR 27*e853bc5dShenning * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 28*e853bc5dShenning * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 29*e853bc5dShenning * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 30*e853bc5dShenning * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 31*e853bc5dShenning * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 32*e853bc5dShenning * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 33*e853bc5dShenning * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34*e853bc5dShenning * SUCH DAMAGE. 35*e853bc5dShenning * 36*e853bc5dShenning * This software has been written for the Internet Software Consortium 37*e853bc5dShenning * by Ted Lemon <mellon@fugue.com> in cooperation with Vixie 38*e853bc5dShenning * Enterprises. To learn more about the Internet Software Consortium, 39*e853bc5dShenning * see ``http://www.vix.com/isc''. To learn more about Vixie 40*e853bc5dShenning * Enterprises, see ``http://www.vix.com''. 41*e853bc5dShenning */ 42*e853bc5dShenning 43*e853bc5dShenning #include "dhcpd.h" 44*e853bc5dShenning 45*e853bc5dShenning /* DHCP Option names, formats and codes, from RFC1533. 46*e853bc5dShenning 47*e853bc5dShenning Format codes: 48*e853bc5dShenning 49*e853bc5dShenning e - end of data 50*e853bc5dShenning I - IP address 51*e853bc5dShenning l - 32-bit signed integer 52*e853bc5dShenning L - 32-bit unsigned integer 53*e853bc5dShenning s - 16-bit signed integer 54*e853bc5dShenning S - 16-bit unsigned integer 55*e853bc5dShenning b - 8-bit signed integer 56*e853bc5dShenning B - 8-bit unsigned integer 57*e853bc5dShenning t - ASCII text 58*e853bc5dShenning f - flag (true or false) 59*e853bc5dShenning A - array of whatever precedes (e.g., IA means array of IP addresses) 60*e853bc5dShenning */ 61*e853bc5dShenning 62*e853bc5dShenning struct universe dhcp_universe; 63*e853bc5dShenning struct option dhcp_options [256] = { 64*e853bc5dShenning { "pad", "", &dhcp_universe, 0 }, 65*e853bc5dShenning { "subnet-mask", "I", &dhcp_universe, 1 }, 66*e853bc5dShenning { "time-offset", "l", &dhcp_universe, 2 }, 67*e853bc5dShenning { "routers", "IA", &dhcp_universe, 3 }, 68*e853bc5dShenning { "time-servers", "IA", &dhcp_universe, 4 }, 69*e853bc5dShenning { "ien116-name-servers", "IA", &dhcp_universe, 5 }, 70*e853bc5dShenning { "domain-name-servers", "IA", &dhcp_universe, 6 }, 71*e853bc5dShenning { "log-servers", "IA", &dhcp_universe, 7 }, 72*e853bc5dShenning { "cookie-servers", "IA", &dhcp_universe, 8 }, 73*e853bc5dShenning { "lpr-servers", "IA", &dhcp_universe, 9 }, 74*e853bc5dShenning { "impress-servers", "IA", &dhcp_universe, 10 }, 75*e853bc5dShenning { "resource-location-servers", "IA", &dhcp_universe, 11 }, 76*e853bc5dShenning { "host-name", "X", &dhcp_universe, 12 }, 77*e853bc5dShenning { "boot-size", "S", &dhcp_universe, 13 }, 78*e853bc5dShenning { "merit-dump", "t", &dhcp_universe, 14 }, 79*e853bc5dShenning { "domain-name", "t", &dhcp_universe, 15 }, 80*e853bc5dShenning { "swap-server", "I", &dhcp_universe, 16 }, 81*e853bc5dShenning { "root-path", "t", &dhcp_universe, 17 }, 82*e853bc5dShenning { "extensions-path", "t", &dhcp_universe, 18 }, 83*e853bc5dShenning { "ip-forwarding", "f", &dhcp_universe, 19 }, 84*e853bc5dShenning { "non-local-source-routing", "f", &dhcp_universe, 20 }, 85*e853bc5dShenning { "policy-filter", "IIA", &dhcp_universe, 21 }, 86*e853bc5dShenning { "max-dgram-reassembly", "S", &dhcp_universe, 22 }, 87*e853bc5dShenning { "default-ip-ttl", "B", &dhcp_universe, 23 }, 88*e853bc5dShenning { "path-mtu-aging-timeout", "L", &dhcp_universe, 24 }, 89*e853bc5dShenning { "path-mtu-plateau-table", "SA", &dhcp_universe, 25 }, 90*e853bc5dShenning { "interface-mtu", "S", &dhcp_universe, 26 }, 91*e853bc5dShenning { "all-subnets-local", "f", &dhcp_universe, 27 }, 92*e853bc5dShenning { "broadcast-address", "I", &dhcp_universe, 28 }, 93*e853bc5dShenning { "perform-mask-discovery", "f", &dhcp_universe, 29 }, 94*e853bc5dShenning { "mask-supplier", "f", &dhcp_universe, 30 }, 95*e853bc5dShenning { "router-discovery", "f", &dhcp_universe, 31 }, 96*e853bc5dShenning { "router-solicitation-address", "I", &dhcp_universe, 32 }, 97*e853bc5dShenning { "static-routes", "IIA", &dhcp_universe, 33 }, 98*e853bc5dShenning { "trailer-encapsulation", "f", &dhcp_universe, 34 }, 99*e853bc5dShenning { "arp-cache-timeout", "L", &dhcp_universe, 35 }, 100*e853bc5dShenning { "ieee802-3-encapsulation", "f", &dhcp_universe, 36 }, 101*e853bc5dShenning { "default-tcp-ttl", "B", &dhcp_universe, 37 }, 102*e853bc5dShenning { "tcp-keepalive-interval", "L", &dhcp_universe, 38 }, 103*e853bc5dShenning { "tcp-keepalive-garbage", "f", &dhcp_universe, 39 }, 104*e853bc5dShenning { "nis-domain", "t", &dhcp_universe, 40 }, 105*e853bc5dShenning { "nis-servers", "IA", &dhcp_universe, 41 }, 106*e853bc5dShenning { "ntp-servers", "IA", &dhcp_universe, 42 }, 107*e853bc5dShenning { "vendor-encapsulated-options", "X", &dhcp_universe, 43 }, 108*e853bc5dShenning { "netbios-name-servers", "IA", &dhcp_universe, 44 }, 109*e853bc5dShenning { "netbios-dd-server", "IA", &dhcp_universe, 45 }, 110*e853bc5dShenning { "netbios-node-type", "B", &dhcp_universe, 46 }, 111*e853bc5dShenning { "netbios-scope", "t", &dhcp_universe, 47 }, 112*e853bc5dShenning { "font-servers", "IA", &dhcp_universe, 48 }, 113*e853bc5dShenning { "x-display-manager", "IA", &dhcp_universe, 49 }, 114*e853bc5dShenning { "dhcp-requested-address", "I", &dhcp_universe, 50 }, 115*e853bc5dShenning { "dhcp-lease-time", "L", &dhcp_universe, 51 }, 116*e853bc5dShenning { "dhcp-option-overload", "B", &dhcp_universe, 52 }, 117*e853bc5dShenning { "dhcp-message-type", "B", &dhcp_universe, 53 }, 118*e853bc5dShenning { "dhcp-server-identifier", "I", &dhcp_universe, 54 }, 119*e853bc5dShenning { "dhcp-parameter-request-list", "BA", &dhcp_universe, 55 }, 120*e853bc5dShenning { "dhcp-message", "t", &dhcp_universe, 56 }, 121*e853bc5dShenning { "dhcp-max-message-size", "S", &dhcp_universe, 57 }, 122*e853bc5dShenning { "dhcp-renewal-time", "L", &dhcp_universe, 58 }, 123*e853bc5dShenning { "dhcp-rebinding-time", "L", &dhcp_universe, 59 }, 124*e853bc5dShenning { "dhcp-class-identifier", "t", &dhcp_universe, 60 }, 125*e853bc5dShenning { "dhcp-client-identifier", "X", &dhcp_universe, 61 }, 126*e853bc5dShenning { "option-62", "X", &dhcp_universe, 62 }, 127*e853bc5dShenning { "option-63", "X", &dhcp_universe, 63 }, 128*e853bc5dShenning { "nisplus-domain", "t", &dhcp_universe, 64 }, 129*e853bc5dShenning { "nisplus-servers", "IA", &dhcp_universe, 65 }, 130*e853bc5dShenning { "tftp-server-name", "t", &dhcp_universe, 66 }, 131*e853bc5dShenning { "bootfile-name", "t", &dhcp_universe, 67 }, 132*e853bc5dShenning { "mobile-ip-home-agent", "IA", &dhcp_universe, 68 }, 133*e853bc5dShenning { "smtp-server", "IA", &dhcp_universe, 69 }, 134*e853bc5dShenning { "pop-server", "IA", &dhcp_universe, 70 }, 135*e853bc5dShenning { "nntp-server", "IA", &dhcp_universe, 71 }, 136*e853bc5dShenning { "www-server", "IA", &dhcp_universe, 72 }, 137*e853bc5dShenning { "finger-server", "IA", &dhcp_universe, 73 }, 138*e853bc5dShenning { "irc-server", "IA", &dhcp_universe, 74 }, 139*e853bc5dShenning { "streettalk-server", "IA", &dhcp_universe, 75 }, 140*e853bc5dShenning { "streettalk-directory-assistance-server", "IA", &dhcp_universe, 76 }, 141*e853bc5dShenning { "user-class", "t", &dhcp_universe, 77 }, 142*e853bc5dShenning { "option-78", "X", &dhcp_universe, 78 }, 143*e853bc5dShenning { "option-79", "X", &dhcp_universe, 79 }, 144*e853bc5dShenning { "option-80", "X", &dhcp_universe, 80 }, 145*e853bc5dShenning { "option-81", "X", &dhcp_universe, 81 }, 146*e853bc5dShenning { "option-82", "X", &dhcp_universe, 82 }, 147*e853bc5dShenning { "option-83", "X", &dhcp_universe, 83 }, 148*e853bc5dShenning { "option-84", "X", &dhcp_universe, 84 }, 149*e853bc5dShenning { "nds-servers", "IA", &dhcp_universe, 85 }, 150*e853bc5dShenning { "nds-tree-name", "X", &dhcp_universe, 86 }, 151*e853bc5dShenning { "nds-context", "X", &dhcp_universe, 87 }, 152*e853bc5dShenning { "option-88", "X", &dhcp_universe, 88 }, 153*e853bc5dShenning { "option-89", "X", &dhcp_universe, 89 }, 154*e853bc5dShenning { "option-90", "X", &dhcp_universe, 90 }, 155*e853bc5dShenning { "option-91", "X", &dhcp_universe, 91 }, 156*e853bc5dShenning { "option-92", "X", &dhcp_universe, 92 }, 157*e853bc5dShenning { "option-93", "X", &dhcp_universe, 93 }, 158*e853bc5dShenning { "option-94", "X", &dhcp_universe, 94 }, 159*e853bc5dShenning { "option-95", "X", &dhcp_universe, 95 }, 160*e853bc5dShenning { "option-96", "X", &dhcp_universe, 96 }, 161*e853bc5dShenning { "option-97", "X", &dhcp_universe, 97 }, 162*e853bc5dShenning { "option-98", "X", &dhcp_universe, 98 }, 163*e853bc5dShenning { "option-99", "X", &dhcp_universe, 99 }, 164*e853bc5dShenning { "option-100", "X", &dhcp_universe, 100 }, 165*e853bc5dShenning { "option-101", "X", &dhcp_universe, 101 }, 166*e853bc5dShenning { "option-102", "X", &dhcp_universe, 102 }, 167*e853bc5dShenning { "option-103", "X", &dhcp_universe, 103 }, 168*e853bc5dShenning { "option-104", "X", &dhcp_universe, 104 }, 169*e853bc5dShenning { "option-105", "X", &dhcp_universe, 105 }, 170*e853bc5dShenning { "option-106", "X", &dhcp_universe, 106 }, 171*e853bc5dShenning { "option-107", "X", &dhcp_universe, 107 }, 172*e853bc5dShenning { "option-108", "X", &dhcp_universe, 108 }, 173*e853bc5dShenning { "option-109", "X", &dhcp_universe, 109 }, 174*e853bc5dShenning { "option-110", "X", &dhcp_universe, 110 }, 175*e853bc5dShenning { "option-111", "X", &dhcp_universe, 111 }, 176*e853bc5dShenning { "option-112", "X", &dhcp_universe, 112 }, 177*e853bc5dShenning { "option-113", "X", &dhcp_universe, 113 }, 178*e853bc5dShenning { "option-114", "X", &dhcp_universe, 114 }, 179*e853bc5dShenning { "option-115", "X", &dhcp_universe, 115 }, 180*e853bc5dShenning { "option-116", "X", &dhcp_universe, 116 }, 181*e853bc5dShenning { "option-117", "X", &dhcp_universe, 117 }, 182*e853bc5dShenning { "option-118", "X", &dhcp_universe, 118 }, 183*e853bc5dShenning { "option-119", "X", &dhcp_universe, 119 }, 184*e853bc5dShenning { "option-120", "X", &dhcp_universe, 120 }, 185*e853bc5dShenning { "option-121", "X", &dhcp_universe, 121 }, 186*e853bc5dShenning { "option-122", "X", &dhcp_universe, 122 }, 187*e853bc5dShenning { "option-123", "X", &dhcp_universe, 123 }, 188*e853bc5dShenning { "option-124", "X", &dhcp_universe, 124 }, 189*e853bc5dShenning { "option-125", "X", &dhcp_universe, 125 }, 190*e853bc5dShenning { "option-126", "X", &dhcp_universe, 126 }, 191*e853bc5dShenning { "option-127", "X", &dhcp_universe, 127 }, 192*e853bc5dShenning { "option-128", "X", &dhcp_universe, 128 }, 193*e853bc5dShenning { "option-129", "X", &dhcp_universe, 129 }, 194*e853bc5dShenning { "option-130", "X", &dhcp_universe, 130 }, 195*e853bc5dShenning { "option-131", "X", &dhcp_universe, 131 }, 196*e853bc5dShenning { "option-132", "X", &dhcp_universe, 132 }, 197*e853bc5dShenning { "option-133", "X", &dhcp_universe, 133 }, 198*e853bc5dShenning { "option-134", "X", &dhcp_universe, 134 }, 199*e853bc5dShenning { "option-135", "X", &dhcp_universe, 135 }, 200*e853bc5dShenning { "option-136", "X", &dhcp_universe, 136 }, 201*e853bc5dShenning { "option-137", "X", &dhcp_universe, 137 }, 202*e853bc5dShenning { "option-138", "X", &dhcp_universe, 138 }, 203*e853bc5dShenning { "option-139", "X", &dhcp_universe, 139 }, 204*e853bc5dShenning { "option-140", "X", &dhcp_universe, 140 }, 205*e853bc5dShenning { "option-141", "X", &dhcp_universe, 141 }, 206*e853bc5dShenning { "option-142", "X", &dhcp_universe, 142 }, 207*e853bc5dShenning { "option-143", "X", &dhcp_universe, 143 }, 208*e853bc5dShenning { "option-144", "X", &dhcp_universe, 144 }, 209*e853bc5dShenning { "option-145", "X", &dhcp_universe, 145 }, 210*e853bc5dShenning { "option-146", "X", &dhcp_universe, 146 }, 211*e853bc5dShenning { "option-147", "X", &dhcp_universe, 147 }, 212*e853bc5dShenning { "option-148", "X", &dhcp_universe, 148 }, 213*e853bc5dShenning { "option-149", "X", &dhcp_universe, 149 }, 214*e853bc5dShenning { "option-150", "X", &dhcp_universe, 150 }, 215*e853bc5dShenning { "option-151", "X", &dhcp_universe, 151 }, 216*e853bc5dShenning { "option-152", "X", &dhcp_universe, 152 }, 217*e853bc5dShenning { "option-153", "X", &dhcp_universe, 153 }, 218*e853bc5dShenning { "option-154", "X", &dhcp_universe, 154 }, 219*e853bc5dShenning { "option-155", "X", &dhcp_universe, 155 }, 220*e853bc5dShenning { "option-156", "X", &dhcp_universe, 156 }, 221*e853bc5dShenning { "option-157", "X", &dhcp_universe, 157 }, 222*e853bc5dShenning { "option-158", "X", &dhcp_universe, 158 }, 223*e853bc5dShenning { "option-159", "X", &dhcp_universe, 159 }, 224*e853bc5dShenning { "option-160", "X", &dhcp_universe, 160 }, 225*e853bc5dShenning { "option-161", "X", &dhcp_universe, 161 }, 226*e853bc5dShenning { "option-162", "X", &dhcp_universe, 162 }, 227*e853bc5dShenning { "option-163", "X", &dhcp_universe, 163 }, 228*e853bc5dShenning { "option-164", "X", &dhcp_universe, 164 }, 229*e853bc5dShenning { "option-165", "X", &dhcp_universe, 165 }, 230*e853bc5dShenning { "option-166", "X", &dhcp_universe, 166 }, 231*e853bc5dShenning { "option-167", "X", &dhcp_universe, 167 }, 232*e853bc5dShenning { "option-168", "X", &dhcp_universe, 168 }, 233*e853bc5dShenning { "option-169", "X", &dhcp_universe, 169 }, 234*e853bc5dShenning { "option-170", "X", &dhcp_universe, 170 }, 235*e853bc5dShenning { "option-171", "X", &dhcp_universe, 171 }, 236*e853bc5dShenning { "option-172", "X", &dhcp_universe, 172 }, 237*e853bc5dShenning { "option-173", "X", &dhcp_universe, 173 }, 238*e853bc5dShenning { "option-174", "X", &dhcp_universe, 174 }, 239*e853bc5dShenning { "option-175", "X", &dhcp_universe, 175 }, 240*e853bc5dShenning { "option-176", "X", &dhcp_universe, 176 }, 241*e853bc5dShenning { "option-177", "X", &dhcp_universe, 177 }, 242*e853bc5dShenning { "option-178", "X", &dhcp_universe, 178 }, 243*e853bc5dShenning { "option-179", "X", &dhcp_universe, 179 }, 244*e853bc5dShenning { "option-180", "X", &dhcp_universe, 180 }, 245*e853bc5dShenning { "option-181", "X", &dhcp_universe, 181 }, 246*e853bc5dShenning { "option-182", "X", &dhcp_universe, 182 }, 247*e853bc5dShenning { "option-183", "X", &dhcp_universe, 183 }, 248*e853bc5dShenning { "option-184", "X", &dhcp_universe, 184 }, 249*e853bc5dShenning { "option-185", "X", &dhcp_universe, 185 }, 250*e853bc5dShenning { "option-186", "X", &dhcp_universe, 186 }, 251*e853bc5dShenning { "option-187", "X", &dhcp_universe, 187 }, 252*e853bc5dShenning { "option-188", "X", &dhcp_universe, 188 }, 253*e853bc5dShenning { "option-189", "X", &dhcp_universe, 189 }, 254*e853bc5dShenning { "option-190", "X", &dhcp_universe, 190 }, 255*e853bc5dShenning { "option-191", "X", &dhcp_universe, 191 }, 256*e853bc5dShenning { "option-192", "X", &dhcp_universe, 192 }, 257*e853bc5dShenning { "option-193", "X", &dhcp_universe, 193 }, 258*e853bc5dShenning { "option-194", "X", &dhcp_universe, 194 }, 259*e853bc5dShenning { "option-195", "X", &dhcp_universe, 195 }, 260*e853bc5dShenning { "option-196", "X", &dhcp_universe, 196 }, 261*e853bc5dShenning { "option-197", "X", &dhcp_universe, 197 }, 262*e853bc5dShenning { "option-198", "X", &dhcp_universe, 198 }, 263*e853bc5dShenning { "option-199", "X", &dhcp_universe, 199 }, 264*e853bc5dShenning { "option-200", "X", &dhcp_universe, 200 }, 265*e853bc5dShenning { "option-201", "X", &dhcp_universe, 201 }, 266*e853bc5dShenning { "option-202", "X", &dhcp_universe, 202 }, 267*e853bc5dShenning { "option-203", "X", &dhcp_universe, 203 }, 268*e853bc5dShenning { "option-204", "X", &dhcp_universe, 204 }, 269*e853bc5dShenning { "option-205", "X", &dhcp_universe, 205 }, 270*e853bc5dShenning { "option-206", "X", &dhcp_universe, 206 }, 271*e853bc5dShenning { "option-207", "X", &dhcp_universe, 207 }, 272*e853bc5dShenning { "option-208", "X", &dhcp_universe, 208 }, 273*e853bc5dShenning { "option-209", "X", &dhcp_universe, 209 }, 274*e853bc5dShenning { "option-210", "X", &dhcp_universe, 210 }, 275*e853bc5dShenning { "option-211", "X", &dhcp_universe, 211 }, 276*e853bc5dShenning { "option-212", "X", &dhcp_universe, 212 }, 277*e853bc5dShenning { "option-213", "X", &dhcp_universe, 213 }, 278*e853bc5dShenning { "option-214", "X", &dhcp_universe, 214 }, 279*e853bc5dShenning { "option-215", "X", &dhcp_universe, 215 }, 280*e853bc5dShenning { "option-216", "X", &dhcp_universe, 216 }, 281*e853bc5dShenning { "option-217", "X", &dhcp_universe, 217 }, 282*e853bc5dShenning { "option-218", "X", &dhcp_universe, 218 }, 283*e853bc5dShenning { "option-219", "X", &dhcp_universe, 219 }, 284*e853bc5dShenning { "option-220", "X", &dhcp_universe, 220 }, 285*e853bc5dShenning { "option-221", "X", &dhcp_universe, 221 }, 286*e853bc5dShenning { "option-222", "X", &dhcp_universe, 222 }, 287*e853bc5dShenning { "option-223", "X", &dhcp_universe, 223 }, 288*e853bc5dShenning { "option-224", "X", &dhcp_universe, 224 }, 289*e853bc5dShenning { "option-225", "X", &dhcp_universe, 225 }, 290*e853bc5dShenning { "option-226", "X", &dhcp_universe, 226 }, 291*e853bc5dShenning { "option-227", "X", &dhcp_universe, 227 }, 292*e853bc5dShenning { "option-228", "X", &dhcp_universe, 228 }, 293*e853bc5dShenning { "option-229", "X", &dhcp_universe, 229 }, 294*e853bc5dShenning { "option-230", "X", &dhcp_universe, 230 }, 295*e853bc5dShenning { "option-231", "X", &dhcp_universe, 231 }, 296*e853bc5dShenning { "option-232", "X", &dhcp_universe, 232 }, 297*e853bc5dShenning { "option-233", "X", &dhcp_universe, 233 }, 298*e853bc5dShenning { "option-234", "X", &dhcp_universe, 234 }, 299*e853bc5dShenning { "option-235", "X", &dhcp_universe, 235 }, 300*e853bc5dShenning { "option-236", "X", &dhcp_universe, 236 }, 301*e853bc5dShenning { "option-237", "X", &dhcp_universe, 237 }, 302*e853bc5dShenning { "option-238", "X", &dhcp_universe, 238 }, 303*e853bc5dShenning { "option-239", "X", &dhcp_universe, 239 }, 304*e853bc5dShenning { "option-240", "X", &dhcp_universe, 240 }, 305*e853bc5dShenning { "option-241", "X", &dhcp_universe, 241 }, 306*e853bc5dShenning { "option-242", "X", &dhcp_universe, 242 }, 307*e853bc5dShenning { "option-243", "X", &dhcp_universe, 243 }, 308*e853bc5dShenning { "option-244", "X", &dhcp_universe, 244 }, 309*e853bc5dShenning { "option-245", "X", &dhcp_universe, 245 }, 310*e853bc5dShenning { "option-246", "X", &dhcp_universe, 246 }, 311*e853bc5dShenning { "option-247", "X", &dhcp_universe, 247 }, 312*e853bc5dShenning { "option-248", "X", &dhcp_universe, 248 }, 313*e853bc5dShenning { "option-249", "X", &dhcp_universe, 249 }, 314*e853bc5dShenning { "option-250", "X", &dhcp_universe, 250 }, 315*e853bc5dShenning { "option-251", "X", &dhcp_universe, 251 }, 316*e853bc5dShenning { "option-252", "X", &dhcp_universe, 252 }, 317*e853bc5dShenning { "option-253", "X", &dhcp_universe, 253 }, 318*e853bc5dShenning { "option-254", "X", &dhcp_universe, 254 }, 319*e853bc5dShenning { "option-end", "e", &dhcp_universe, 255 }, 320*e853bc5dShenning }; 321*e853bc5dShenning 322*e853bc5dShenning /* Default dhcp option priority list (this is ad hoc and should not be 323*e853bc5dShenning mistaken for a carefully crafted and optimized list). */ 324*e853bc5dShenning unsigned char dhcp_option_default_priority_list [] = { 325*e853bc5dShenning DHO_DHCP_REQUESTED_ADDRESS, 326*e853bc5dShenning DHO_DHCP_OPTION_OVERLOAD, 327*e853bc5dShenning DHO_DHCP_MAX_MESSAGE_SIZE, 328*e853bc5dShenning DHO_DHCP_RENEWAL_TIME, 329*e853bc5dShenning DHO_DHCP_REBINDING_TIME, 330*e853bc5dShenning DHO_DHCP_CLASS_IDENTIFIER, 331*e853bc5dShenning DHO_DHCP_CLIENT_IDENTIFIER, 332*e853bc5dShenning DHO_SUBNET_MASK, 333*e853bc5dShenning DHO_TIME_OFFSET, 334*e853bc5dShenning DHO_ROUTERS, 335*e853bc5dShenning DHO_TIME_SERVERS, 336*e853bc5dShenning DHO_NAME_SERVERS, 337*e853bc5dShenning DHO_DOMAIN_NAME_SERVERS, 338*e853bc5dShenning DHO_HOST_NAME, 339*e853bc5dShenning DHO_LOG_SERVERS, 340*e853bc5dShenning DHO_COOKIE_SERVERS, 341*e853bc5dShenning DHO_LPR_SERVERS, 342*e853bc5dShenning DHO_IMPRESS_SERVERS, 343*e853bc5dShenning DHO_RESOURCE_LOCATION_SERVERS, 344*e853bc5dShenning DHO_HOST_NAME, 345*e853bc5dShenning DHO_BOOT_SIZE, 346*e853bc5dShenning DHO_MERIT_DUMP, 347*e853bc5dShenning DHO_DOMAIN_NAME, 348*e853bc5dShenning DHO_SWAP_SERVER, 349*e853bc5dShenning DHO_ROOT_PATH, 350*e853bc5dShenning DHO_EXTENSIONS_PATH, 351*e853bc5dShenning DHO_IP_FORWARDING, 352*e853bc5dShenning DHO_NON_LOCAL_SOURCE_ROUTING, 353*e853bc5dShenning DHO_POLICY_FILTER, 354*e853bc5dShenning DHO_MAX_DGRAM_REASSEMBLY, 355*e853bc5dShenning DHO_DEFAULT_IP_TTL, 356*e853bc5dShenning DHO_PATH_MTU_AGING_TIMEOUT, 357*e853bc5dShenning DHO_PATH_MTU_PLATEAU_TABLE, 358*e853bc5dShenning DHO_INTERFACE_MTU, 359*e853bc5dShenning DHO_ALL_SUBNETS_LOCAL, 360*e853bc5dShenning DHO_BROADCAST_ADDRESS, 361*e853bc5dShenning DHO_PERFORM_MASK_DISCOVERY, 362*e853bc5dShenning DHO_MASK_SUPPLIER, 363*e853bc5dShenning DHO_ROUTER_DISCOVERY, 364*e853bc5dShenning DHO_ROUTER_SOLICITATION_ADDRESS, 365*e853bc5dShenning DHO_STATIC_ROUTES, 366*e853bc5dShenning DHO_TRAILER_ENCAPSULATION, 367*e853bc5dShenning DHO_ARP_CACHE_TIMEOUT, 368*e853bc5dShenning DHO_IEEE802_3_ENCAPSULATION, 369*e853bc5dShenning DHO_DEFAULT_TCP_TTL, 370*e853bc5dShenning DHO_TCP_KEEPALIVE_INTERVAL, 371*e853bc5dShenning DHO_TCP_KEEPALIVE_GARBAGE, 372*e853bc5dShenning DHO_NIS_DOMAIN, 373*e853bc5dShenning DHO_NIS_SERVERS, 374*e853bc5dShenning DHO_NTP_SERVERS, 375*e853bc5dShenning DHO_VENDOR_ENCAPSULATED_OPTIONS, 376*e853bc5dShenning DHO_NETBIOS_NAME_SERVERS, 377*e853bc5dShenning DHO_NETBIOS_DD_SERVER, 378*e853bc5dShenning DHO_NETBIOS_NODE_TYPE, 379*e853bc5dShenning DHO_NETBIOS_SCOPE, 380*e853bc5dShenning DHO_FONT_SERVERS, 381*e853bc5dShenning DHO_X_DISPLAY_MANAGER, 382*e853bc5dShenning DHO_DHCP_PARAMETER_REQUEST_LIST, 383*e853bc5dShenning 384*e853bc5dShenning /* Presently-undefined options... */ 385*e853bc5dShenning 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 386*e853bc5dShenning 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 387*e853bc5dShenning 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 388*e853bc5dShenning 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 389*e853bc5dShenning 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 390*e853bc5dShenning 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 391*e853bc5dShenning 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 392*e853bc5dShenning 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 393*e853bc5dShenning 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 394*e853bc5dShenning 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 395*e853bc5dShenning 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 396*e853bc5dShenning 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 397*e853bc5dShenning 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 398*e853bc5dShenning 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 399*e853bc5dShenning 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 400*e853bc5dShenning 251, 252, 253, 254, 401*e853bc5dShenning }; 402*e853bc5dShenning 403*e853bc5dShenning int sizeof_dhcp_option_default_priority_list = 404*e853bc5dShenning sizeof dhcp_option_default_priority_list; 405*e853bc5dShenning 406*e853bc5dShenning 407*e853bc5dShenning char *hardware_types [] = { 408*e853bc5dShenning "unknown-0", 409*e853bc5dShenning "ethernet", 410*e853bc5dShenning "unknown-2", 411*e853bc5dShenning "unknown-3", 412*e853bc5dShenning "unknown-4", 413*e853bc5dShenning "unknown-5", 414*e853bc5dShenning "token-ring", 415*e853bc5dShenning "unknown-7", 416*e853bc5dShenning "fddi", 417*e853bc5dShenning "unknown-9", 418*e853bc5dShenning "unknown-10", 419*e853bc5dShenning "unknown-11", 420*e853bc5dShenning "unknown-12", 421*e853bc5dShenning "unknown-13", 422*e853bc5dShenning "unknown-14", 423*e853bc5dShenning "unknown-15", 424*e853bc5dShenning "unknown-16", 425*e853bc5dShenning "unknown-17", 426*e853bc5dShenning "unknown-18", 427*e853bc5dShenning "unknown-19", 428*e853bc5dShenning "unknown-20", 429*e853bc5dShenning "unknown-21", 430*e853bc5dShenning "unknown-22", 431*e853bc5dShenning "unknown-23", 432*e853bc5dShenning "unknown-24", 433*e853bc5dShenning "unknown-25", 434*e853bc5dShenning "unknown-26", 435*e853bc5dShenning "unknown-27", 436*e853bc5dShenning "unknown-28", 437*e853bc5dShenning "unknown-29", 438*e853bc5dShenning "unknown-30", 439*e853bc5dShenning "unknown-31", 440*e853bc5dShenning "unknown-32", 441*e853bc5dShenning "unknown-33", 442*e853bc5dShenning "unknown-34", 443*e853bc5dShenning "unknown-35", 444*e853bc5dShenning "unknown-36", 445*e853bc5dShenning "unknown-37", 446*e853bc5dShenning "unknown-38", 447*e853bc5dShenning "unknown-39", 448*e853bc5dShenning "unknown-40", 449*e853bc5dShenning "unknown-41", 450*e853bc5dShenning "unknown-42", 451*e853bc5dShenning "unknown-43", 452*e853bc5dShenning "unknown-44", 453*e853bc5dShenning "unknown-45", 454*e853bc5dShenning "unknown-46", 455*e853bc5dShenning "unknown-47", 456*e853bc5dShenning "unknown-48", 457*e853bc5dShenning "unknown-49", 458*e853bc5dShenning "unknown-50", 459*e853bc5dShenning "unknown-51", 460*e853bc5dShenning "unknown-52", 461*e853bc5dShenning "unknown-53", 462*e853bc5dShenning "unknown-54", 463*e853bc5dShenning "unknown-55", 464*e853bc5dShenning "unknown-56", 465*e853bc5dShenning "unknown-57", 466*e853bc5dShenning "unknown-58", 467*e853bc5dShenning "unknown-59", 468*e853bc5dShenning "unknown-60", 469*e853bc5dShenning "unknown-61", 470*e853bc5dShenning "unknown-62", 471*e853bc5dShenning "unknown-63", 472*e853bc5dShenning "unknown-64", 473*e853bc5dShenning "unknown-65", 474*e853bc5dShenning "unknown-66", 475*e853bc5dShenning "unknown-67", 476*e853bc5dShenning "unknown-68", 477*e853bc5dShenning "unknown-69", 478*e853bc5dShenning "unknown-70", 479*e853bc5dShenning "unknown-71", 480*e853bc5dShenning "unknown-72", 481*e853bc5dShenning "unknown-73", 482*e853bc5dShenning "unknown-74", 483*e853bc5dShenning "unknown-75", 484*e853bc5dShenning "unknown-76", 485*e853bc5dShenning "unknown-77", 486*e853bc5dShenning "unknown-78", 487*e853bc5dShenning "unknown-79", 488*e853bc5dShenning "unknown-80", 489*e853bc5dShenning "unknown-81", 490*e853bc5dShenning "unknown-82", 491*e853bc5dShenning "unknown-83", 492*e853bc5dShenning "unknown-84", 493*e853bc5dShenning "unknown-85", 494*e853bc5dShenning "unknown-86", 495*e853bc5dShenning "unknown-87", 496*e853bc5dShenning "unknown-88", 497*e853bc5dShenning "unknown-89", 498*e853bc5dShenning "unknown-90", 499*e853bc5dShenning "unknown-91", 500*e853bc5dShenning "unknown-92", 501*e853bc5dShenning "unknown-93", 502*e853bc5dShenning "unknown-94", 503*e853bc5dShenning "unknown-95", 504*e853bc5dShenning "unknown-96", 505*e853bc5dShenning "unknown-97", 506*e853bc5dShenning "unknown-98", 507*e853bc5dShenning "unknown-99", 508*e853bc5dShenning "unknown-100", 509*e853bc5dShenning "unknown-101", 510*e853bc5dShenning "unknown-102", 511*e853bc5dShenning "unknown-103", 512*e853bc5dShenning "unknown-104", 513*e853bc5dShenning "unknown-105", 514*e853bc5dShenning "unknown-106", 515*e853bc5dShenning "unknown-107", 516*e853bc5dShenning "unknown-108", 517*e853bc5dShenning "unknown-109", 518*e853bc5dShenning "unknown-110", 519*e853bc5dShenning "unknown-111", 520*e853bc5dShenning "unknown-112", 521*e853bc5dShenning "unknown-113", 522*e853bc5dShenning "unknown-114", 523*e853bc5dShenning "unknown-115", 524*e853bc5dShenning "unknown-116", 525*e853bc5dShenning "unknown-117", 526*e853bc5dShenning "unknown-118", 527*e853bc5dShenning "unknown-119", 528*e853bc5dShenning "unknown-120", 529*e853bc5dShenning "unknown-121", 530*e853bc5dShenning "unknown-122", 531*e853bc5dShenning "unknown-123", 532*e853bc5dShenning "unknown-124", 533*e853bc5dShenning "unknown-125", 534*e853bc5dShenning "unknown-126", 535*e853bc5dShenning "unknown-127", 536*e853bc5dShenning "unknown-128", 537*e853bc5dShenning "unknown-129", 538*e853bc5dShenning "unknown-130", 539*e853bc5dShenning "unknown-131", 540*e853bc5dShenning "unknown-132", 541*e853bc5dShenning "unknown-133", 542*e853bc5dShenning "unknown-134", 543*e853bc5dShenning "unknown-135", 544*e853bc5dShenning "unknown-136", 545*e853bc5dShenning "unknown-137", 546*e853bc5dShenning "unknown-138", 547*e853bc5dShenning "unknown-139", 548*e853bc5dShenning "unknown-140", 549*e853bc5dShenning "unknown-141", 550*e853bc5dShenning "unknown-142", 551*e853bc5dShenning "unknown-143", 552*e853bc5dShenning "unknown-144", 553*e853bc5dShenning "unknown-145", 554*e853bc5dShenning "unknown-146", 555*e853bc5dShenning "unknown-147", 556*e853bc5dShenning "unknown-148", 557*e853bc5dShenning "unknown-149", 558*e853bc5dShenning "unknown-150", 559*e853bc5dShenning "unknown-151", 560*e853bc5dShenning "unknown-152", 561*e853bc5dShenning "unknown-153", 562*e853bc5dShenning "unknown-154", 563*e853bc5dShenning "unknown-155", 564*e853bc5dShenning "unknown-156", 565*e853bc5dShenning "unknown-157", 566*e853bc5dShenning "unknown-158", 567*e853bc5dShenning "unknown-159", 568*e853bc5dShenning "unknown-160", 569*e853bc5dShenning "unknown-161", 570*e853bc5dShenning "unknown-162", 571*e853bc5dShenning "unknown-163", 572*e853bc5dShenning "unknown-164", 573*e853bc5dShenning "unknown-165", 574*e853bc5dShenning "unknown-166", 575*e853bc5dShenning "unknown-167", 576*e853bc5dShenning "unknown-168", 577*e853bc5dShenning "unknown-169", 578*e853bc5dShenning "unknown-170", 579*e853bc5dShenning "unknown-171", 580*e853bc5dShenning "unknown-172", 581*e853bc5dShenning "unknown-173", 582*e853bc5dShenning "unknown-174", 583*e853bc5dShenning "unknown-175", 584*e853bc5dShenning "unknown-176", 585*e853bc5dShenning "unknown-177", 586*e853bc5dShenning "unknown-178", 587*e853bc5dShenning "unknown-179", 588*e853bc5dShenning "unknown-180", 589*e853bc5dShenning "unknown-181", 590*e853bc5dShenning "unknown-182", 591*e853bc5dShenning "unknown-183", 592*e853bc5dShenning "unknown-184", 593*e853bc5dShenning "unknown-185", 594*e853bc5dShenning "unknown-186", 595*e853bc5dShenning "unknown-187", 596*e853bc5dShenning "unknown-188", 597*e853bc5dShenning "unknown-189", 598*e853bc5dShenning "unknown-190", 599*e853bc5dShenning "unknown-191", 600*e853bc5dShenning "unknown-192", 601*e853bc5dShenning "unknown-193", 602*e853bc5dShenning "unknown-194", 603*e853bc5dShenning "unknown-195", 604*e853bc5dShenning "unknown-196", 605*e853bc5dShenning "unknown-197", 606*e853bc5dShenning "unknown-198", 607*e853bc5dShenning "unknown-199", 608*e853bc5dShenning "unknown-200", 609*e853bc5dShenning "unknown-201", 610*e853bc5dShenning "unknown-202", 611*e853bc5dShenning "unknown-203", 612*e853bc5dShenning "unknown-204", 613*e853bc5dShenning "unknown-205", 614*e853bc5dShenning "unknown-206", 615*e853bc5dShenning "unknown-207", 616*e853bc5dShenning "unknown-208", 617*e853bc5dShenning "unknown-209", 618*e853bc5dShenning "unknown-210", 619*e853bc5dShenning "unknown-211", 620*e853bc5dShenning "unknown-212", 621*e853bc5dShenning "unknown-213", 622*e853bc5dShenning "unknown-214", 623*e853bc5dShenning "unknown-215", 624*e853bc5dShenning "unknown-216", 625*e853bc5dShenning "unknown-217", 626*e853bc5dShenning "unknown-218", 627*e853bc5dShenning "unknown-219", 628*e853bc5dShenning "unknown-220", 629*e853bc5dShenning "unknown-221", 630*e853bc5dShenning "unknown-222", 631*e853bc5dShenning "unknown-223", 632*e853bc5dShenning "unknown-224", 633*e853bc5dShenning "unknown-225", 634*e853bc5dShenning "unknown-226", 635*e853bc5dShenning "unknown-227", 636*e853bc5dShenning "unknown-228", 637*e853bc5dShenning "unknown-229", 638*e853bc5dShenning "unknown-230", 639*e853bc5dShenning "unknown-231", 640*e853bc5dShenning "unknown-232", 641*e853bc5dShenning "unknown-233", 642*e853bc5dShenning "unknown-234", 643*e853bc5dShenning "unknown-235", 644*e853bc5dShenning "unknown-236", 645*e853bc5dShenning "unknown-237", 646*e853bc5dShenning "unknown-238", 647*e853bc5dShenning "unknown-239", 648*e853bc5dShenning "unknown-240", 649*e853bc5dShenning "unknown-241", 650*e853bc5dShenning "unknown-242", 651*e853bc5dShenning "unknown-243", 652*e853bc5dShenning "unknown-244", 653*e853bc5dShenning "unknown-245", 654*e853bc5dShenning "unknown-246", 655*e853bc5dShenning "unknown-247", 656*e853bc5dShenning "unknown-248", 657*e853bc5dShenning "unknown-249", 658*e853bc5dShenning "unknown-250", 659*e853bc5dShenning "unknown-251", 660*e853bc5dShenning "unknown-252", 661*e853bc5dShenning "unknown-253", 662*e853bc5dShenning "unknown-254", 663*e853bc5dShenning "unknown-255" }; 664*e853bc5dShenning 665*e853bc5dShenning 666*e853bc5dShenning 667*e853bc5dShenning struct hash_table universe_hash; 668*e853bc5dShenning 669*e853bc5dShenning void initialize_universes() 670*e853bc5dShenning { 671*e853bc5dShenning int i; 672*e853bc5dShenning 673*e853bc5dShenning dhcp_universe.name = "dhcp"; 674*e853bc5dShenning dhcp_universe.hash = new_hash (); 675*e853bc5dShenning if (!dhcp_universe.hash) 676*e853bc5dShenning error ("Can't allocate dhcp option hash table."); 677*e853bc5dShenning for (i = 0; i < 256; i++) { 678*e853bc5dShenning dhcp_universe.options [i] = &dhcp_options [i]; 679*e853bc5dShenning add_hash (dhcp_universe.hash, 680*e853bc5dShenning (unsigned char *)dhcp_options [i].name, 0, 681*e853bc5dShenning (unsigned char *)&dhcp_options [i]); 682*e853bc5dShenning } 683*e853bc5dShenning universe_hash.hash_count = DEFAULT_HASH_SIZE; 684*e853bc5dShenning add_hash (&universe_hash, 685*e853bc5dShenning (unsigned char *)dhcp_universe.name, 0, 686*e853bc5dShenning (unsigned char *)&dhcp_universe); 687*e853bc5dShenning } 688