mirror of
https://github.com/sheumann/hush.git
synced 2025-02-25 16:29:01 +00:00
udhcp: remove support for some really old and odd options
function old new delta dhcp_options 72 68 -4 dhcp_option_strings 271 253 -18 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
77a2c51e79
commit
777706cb23
@ -8,8 +8,8 @@ end 192.168.0.254
|
|||||||
# The interface that udhcpd will use
|
# The interface that udhcpd will use
|
||||||
interface eth0
|
interface eth0
|
||||||
|
|
||||||
# The maximim number of leases (includes addresses reserved
|
# The maximum number of leases (includes addresses reserved
|
||||||
# by OFFER's, DECLINE's, and ARP conficts). Will be corrected
|
# by OFFER's, DECLINE's, and ARP conflicts). Will be corrected
|
||||||
# if it's bigger than IP lease block, but it ok to make it
|
# if it's bigger than IP lease block, but it ok to make it
|
||||||
# smaller than lease block.
|
# smaller than lease block.
|
||||||
#max_leases 254
|
#max_leases 254
|
||||||
@ -24,7 +24,7 @@ interface eth0
|
|||||||
#decline_time 3600
|
#decline_time 3600
|
||||||
|
|
||||||
# The amount of time that an IP will be reserved
|
# The amount of time that an IP will be reserved
|
||||||
# if an ARP conflct occurs (seconds).
|
# if an ARP conflict occurs (seconds).
|
||||||
#conflict_time 3600
|
#conflict_time 3600
|
||||||
|
|
||||||
# How long an offered address is reserved (seconds).
|
# How long an offered address is reserved (seconds).
|
||||||
@ -40,7 +40,7 @@ interface eth0
|
|||||||
# The location of the pid file
|
# The location of the pid file
|
||||||
#pidfile /var/run/udhcpd.pid
|
#pidfile /var/run/udhcpd.pid
|
||||||
|
|
||||||
# Everytime udhcpd writes a leases file, the below script will be called.
|
# Every time udhcpd writes a leases file, the below script will be called.
|
||||||
#notify_file # default: no script
|
#notify_file # default: no script
|
||||||
#notify_file dumpleases # useful for debugging
|
#notify_file dumpleases # useful for debugging
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ interface eth0
|
|||||||
#sname zorak #default: none
|
#sname zorak #default: none
|
||||||
#boot_file /var/nfs_root #default: none
|
#boot_file /var/nfs_root #default: none
|
||||||
|
|
||||||
# The remainer of options are DHCP options and can be specifed with the
|
# The remainder of options are DHCP options and can be specified with the
|
||||||
# keyword 'opt' or 'option'. If an option can take multiple items, such
|
# keyword 'opt' or 'option'. If an option can take multiple items, such
|
||||||
# as the dns option, they can be listed on the same line, or multiple
|
# as the dns option, they can be listed on the same line, or multiple
|
||||||
# lines. The only option with a default is 'lease'.
|
# lines. The only option with a default is 'lease'.
|
||||||
@ -58,7 +58,7 @@ opt dns 192.168.10.2 192.168.10.10
|
|||||||
option subnet 255.255.255.0
|
option subnet 255.255.255.0
|
||||||
opt router 192.168.10.2
|
opt router 192.168.10.2
|
||||||
opt wins 192.168.10.10
|
opt wins 192.168.10.10
|
||||||
option dns 129.219.13.81 # appened to above DNS servers for a total of 3
|
option dns 129.219.13.81 # appended to above DNS servers for a total of 3
|
||||||
option domain local
|
option domain local
|
||||||
option lease 864000 # 10 days of seconds
|
option lease 864000 # 10 days of seconds
|
||||||
|
|
||||||
@ -67,10 +67,10 @@ option lease 864000 # 10 days of seconds
|
|||||||
#opt timezone
|
#opt timezone
|
||||||
#opt router
|
#opt router
|
||||||
#opt timesrv
|
#opt timesrv
|
||||||
#opt namesrv
|
#opt namesrv - obsolete, disabled
|
||||||
#opt dns
|
#opt dns
|
||||||
#opt logsrv
|
#opt logsrv
|
||||||
#opt cookiesrv
|
#opt cookiesrv - rarely (never?) used, disabled
|
||||||
#opt lprsrv
|
#opt lprsrv
|
||||||
#opt bootsize
|
#opt bootsize
|
||||||
#opt domain
|
#opt domain
|
||||||
|
@ -62,8 +62,9 @@ static void add_param_req_option(struct dhcp_packet *packet)
|
|||||||
int i, len = 0;
|
int i, len = 0;
|
||||||
|
|
||||||
for (i = 0; (c = dhcp_options[i].code) != 0; i++) {
|
for (i = 0; (c = dhcp_options[i].code) != 0; i++) {
|
||||||
if (((dhcp_options[i].flags & OPTION_REQ)
|
if (( (dhcp_options[i].flags & OPTION_REQ)
|
||||||
&& !client_config.no_default_options)
|
&& !client_config.no_default_options
|
||||||
|
)
|
||||||
|| (client_config.opt_mask[c >> 3] & (1 << (c & 7)))
|
|| (client_config.opt_mask[c >> 3] & (1 << (c & 7)))
|
||||||
) {
|
) {
|
||||||
packet->options[end + OPT_DATA + len] = c;
|
packet->options[end + OPT_DATA + len] = c;
|
||||||
|
@ -11,17 +11,17 @@
|
|||||||
#include "options.h"
|
#include "options.h"
|
||||||
|
|
||||||
|
|
||||||
/* Supported options are easily added here */
|
/* Supported options are easily added here. See RFC2132 */
|
||||||
const struct dhcp_option dhcp_options[] = {
|
const struct dhcp_option dhcp_options[] = {
|
||||||
/* flags code */
|
/* flags code */
|
||||||
{ OPTION_IP | OPTION_REQ, 0x01 }, /* DHCP_SUBNET */
|
{ OPTION_IP | OPTION_REQ, 0x01 }, /* DHCP_SUBNET */
|
||||||
{ OPTION_S32 , 0x02 }, /* DHCP_TIME_OFFSET */
|
{ OPTION_S32 , 0x02 }, /* DHCP_TIME_OFFSET */
|
||||||
{ OPTION_IP | OPTION_LIST | OPTION_REQ, 0x03 }, /* DHCP_ROUTER */
|
{ OPTION_IP | OPTION_LIST | OPTION_REQ, 0x03 }, /* DHCP_ROUTER */
|
||||||
{ OPTION_IP | OPTION_LIST , 0x04 }, /* DHCP_TIME_SERVER */
|
{ OPTION_IP | OPTION_LIST , 0x04 }, /* DHCP_TIME_SERVER */
|
||||||
{ OPTION_IP | OPTION_LIST , 0x05 }, /* DHCP_NAME_SERVER */
|
// { OPTION_IP | OPTION_LIST , 0x05 }, /* DHCP_NAME_SERVER */
|
||||||
{ OPTION_IP | OPTION_LIST | OPTION_REQ, 0x06 }, /* DHCP_DNS_SERVER */
|
{ OPTION_IP | OPTION_LIST | OPTION_REQ, 0x06 }, /* DHCP_DNS_SERVER */
|
||||||
{ OPTION_IP | OPTION_LIST , 0x07 }, /* DHCP_LOG_SERVER */
|
{ OPTION_IP | OPTION_LIST , 0x07 }, /* DHCP_LOG_SERVER */
|
||||||
{ OPTION_IP | OPTION_LIST , 0x08 }, /* DHCP_COOKIE_SERVER */
|
// { OPTION_IP | OPTION_LIST , 0x08 }, /* DHCP_COOKIE_SERVER */
|
||||||
{ OPTION_IP | OPTION_LIST , 0x09 }, /* DHCP_LPR_SERVER */
|
{ OPTION_IP | OPTION_LIST , 0x09 }, /* DHCP_LPR_SERVER */
|
||||||
{ OPTION_STRING | OPTION_REQ, 0x0c }, /* DHCP_HOST_NAME */
|
{ OPTION_STRING | OPTION_REQ, 0x0c }, /* DHCP_HOST_NAME */
|
||||||
{ OPTION_U16 , 0x0d }, /* DHCP_BOOT_SIZE */
|
{ OPTION_U16 , 0x0d }, /* DHCP_BOOT_SIZE */
|
||||||
@ -37,7 +37,7 @@ const struct dhcp_option dhcp_options[] = {
|
|||||||
{ OPTION_IP | OPTION_LIST , 0x2c }, /* DHCP_WINS_SERVER */
|
{ OPTION_IP | OPTION_LIST , 0x2c }, /* DHCP_WINS_SERVER */
|
||||||
{ OPTION_IP , 0x32 }, /* DHCP_REQUESTED_IP */
|
{ OPTION_IP , 0x32 }, /* DHCP_REQUESTED_IP */
|
||||||
{ OPTION_U32 , 0x33 }, /* DHCP_LEASE_TIME */
|
{ OPTION_U32 , 0x33 }, /* DHCP_LEASE_TIME */
|
||||||
{ OPTION_U8 , 0x35 }, /* dhcptype */
|
{ OPTION_U8 , 0x35 }, /* DHCP_MESSAGE_TYPE */
|
||||||
{ OPTION_IP , 0x36 }, /* DHCP_SERVER_ID */
|
{ OPTION_IP , 0x36 }, /* DHCP_SERVER_ID */
|
||||||
{ OPTION_STRING , 0x38 }, /* DHCP_MESSAGE */
|
{ OPTION_STRING , 0x38 }, /* DHCP_MESSAGE */
|
||||||
{ OPTION_STRING , 0x3C }, /* DHCP_VENDOR */
|
{ OPTION_STRING , 0x3C }, /* DHCP_VENDOR */
|
||||||
@ -68,10 +68,10 @@ const char dhcp_option_strings[] ALIGN1 =
|
|||||||
"timezone" "\0" /* DHCP_TIME_OFFSET */
|
"timezone" "\0" /* DHCP_TIME_OFFSET */
|
||||||
"router" "\0" /* DHCP_ROUTER */
|
"router" "\0" /* DHCP_ROUTER */
|
||||||
"timesrv" "\0" /* DHCP_TIME_SERVER */
|
"timesrv" "\0" /* DHCP_TIME_SERVER */
|
||||||
"namesrv" "\0" /* DHCP_NAME_SERVER */
|
// "namesrv" "\0" /* DHCP_NAME_SERVER */
|
||||||
"dns" "\0" /* DHCP_DNS_SERVER */
|
"dns" "\0" /* DHCP_DNS_SERVER */
|
||||||
"logsrv" "\0" /* DHCP_LOG_SERVER */
|
"logsrv" "\0" /* DHCP_LOG_SERVER */
|
||||||
"cookiesrv" "\0" /* DHCP_COOKIE_SERVER */
|
// "cookiesrv" "\0" /* DHCP_COOKIE_SERVER */
|
||||||
"lprsrv" "\0" /* DHCP_LPR_SERVER */
|
"lprsrv" "\0" /* DHCP_LPR_SERVER */
|
||||||
"hostname" "\0" /* DHCP_HOST_NAME */
|
"hostname" "\0" /* DHCP_HOST_NAME */
|
||||||
"bootsize" "\0" /* DHCP_BOOT_SIZE */
|
"bootsize" "\0" /* DHCP_BOOT_SIZE */
|
||||||
|
@ -41,10 +41,10 @@ enum {
|
|||||||
#define DHCP_TIME_OFFSET 0x02
|
#define DHCP_TIME_OFFSET 0x02
|
||||||
#define DHCP_ROUTER 0x03
|
#define DHCP_ROUTER 0x03
|
||||||
#define DHCP_TIME_SERVER 0x04
|
#define DHCP_TIME_SERVER 0x04
|
||||||
#define DHCP_NAME_SERVER 0x05
|
//#define DHCP_NAME_SERVER 0x05 /* _really_ ancient */
|
||||||
#define DHCP_DNS_SERVER 0x06
|
#define DHCP_DNS_SERVER 0x06
|
||||||
#define DHCP_LOG_SERVER 0x07
|
#define DHCP_LOG_SERVER 0x07
|
||||||
#define DHCP_COOKIE_SERVER 0x08
|
//#define DHCP_COOKIE_SERVER 0x08 /* "quote of the day" */
|
||||||
#define DHCP_LPR_SERVER 0x09
|
#define DHCP_LPR_SERVER 0x09
|
||||||
#define DHCP_HOST_NAME 0x0c
|
#define DHCP_HOST_NAME 0x0c
|
||||||
#define DHCP_BOOT_SIZE 0x0d
|
#define DHCP_BOOT_SIZE 0x0d
|
||||||
@ -64,8 +64,8 @@ enum {
|
|||||||
#define DHCP_PARAM_REQ 0x37
|
#define DHCP_PARAM_REQ 0x37
|
||||||
#define DHCP_MESSAGE 0x38
|
#define DHCP_MESSAGE 0x38
|
||||||
#define DHCP_MAX_SIZE 0x39
|
#define DHCP_MAX_SIZE 0x39
|
||||||
#define DHCP_T1 0x3a
|
//#define DHCP_T1 0x3a
|
||||||
#define DHCP_T2 0x3b
|
//#define DHCP_T2 0x3b
|
||||||
#define DHCP_VENDOR 0x3c
|
#define DHCP_VENDOR 0x3c
|
||||||
#define DHCP_CLIENT_ID 0x3d
|
#define DHCP_CLIENT_ID 0x3d
|
||||||
#define DHCP_FQDN 0x51
|
#define DHCP_FQDN 0x51
|
||||||
|
@ -78,8 +78,11 @@ static NOINLINE char *xmalloc_optname_optval(uint8_t *option, const struct dhcp_
|
|||||||
*dest++ = '/';
|
*dest++ = '/';
|
||||||
option += 4;
|
option += 4;
|
||||||
optlen = 4;
|
optlen = 4;
|
||||||
case OPTION_IP: /* Works regardless of host byte order. */
|
case OPTION_IP:
|
||||||
dest += sprint_nip(dest, "", option);
|
dest += sprint_nip(dest, "", option);
|
||||||
|
// TODO: it can be a list only if (type_p->flags & OPTION_LIST).
|
||||||
|
// Should we bail out/warn if we see multi-ip option which is
|
||||||
|
// not allowed to be such? For example, DHCP_BROADCAST...
|
||||||
break;
|
break;
|
||||||
case OPTION_BOOLEAN:
|
case OPTION_BOOLEAN:
|
||||||
dest += sprintf(dest, *option ? "yes" : "no");
|
dest += sprintf(dest, *option ? "yes" : "no");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user