Delete a lot of code that is now unused thanks to the previous commit.

This commit is contained in:
Nicholas J. Kain 2011-07-26 06:24:30 -04:00
parent 0431b7d439
commit f2618ef79d
2 changed files with 8 additions and 100 deletions

View File

@ -34,89 +34,6 @@
#include "log.h"
#include "ifch_proto.h"
struct dhcp_option {
uint8_t code;
uint8_t type;
char name[6];
};
// Marks an option that can be sent as a list of multiple items.
#define OPTION_LIST 32
// This structure is mostly used here and for finding the correct strings
// to describe option commands when sending to ifchd. The type is the more
// useful part and helps for safety checks and determining what options to
// send in the initial DHCP option request packet.
static const struct dhcp_option options[] = {
{DCODE_SUBNET , OPTION_IP | OPTION_LIST, CMD_SUBNET },
{DCODE_TIMEZONE , OPTION_S32, CMD_TIMEZONE },
{DCODE_ROUTER , OPTION_IP, CMD_ROUTER },
{DCODE_DNS , OPTION_IP | OPTION_LIST, CMD_DNS },
{DCODE_LPRSVR , OPTION_IP | OPTION_LIST, CMD_LPRSVR },
{DCODE_HOSTNAME , OPTION_STRING, CMD_HOSTNAME },
{DCODE_DOMAIN , OPTION_STRING, CMD_DOMAIN },
{DCODE_IPTTL , OPTION_U8, CMD_IPTTL },
{DCODE_MTU , OPTION_U16, CMD_MTU },
{DCODE_BROADCAST, OPTION_IP, CMD_BROADCAST},
{DCODE_NTPSVR , OPTION_IP | OPTION_LIST, CMD_NTPSVR },
{DCODE_WINS , OPTION_IP | OPTION_LIST, CMD_WINS },
{0x00 , OPTION_NONE, CMD_NULL }
};
enum option_type option_type(uint8_t code)
{
for (int i = 0; options[i].code; ++i)
if (options[i].code == code)
return options[i].type & 0xf;
return OPTION_NONE;
}
static const char bad_option_name[] = "BAD";
const char *option_name(uint8_t code)
{
for (int i = 0; options[i].code; ++i)
if (options[i].code == code)
return options[i].name;
return bad_option_name;
}
static uint8_t option_type_length(enum option_type type)
{
switch (type) {
case OPTION_IP: return 4;
case OPTION_U8: return 1;
case OPTION_U16: return 2;
case OPTION_S16: return 2;
case OPTION_U32: return 4;
case OPTION_S32: return 4;
default: return 0;
}
}
uint8_t option_length(uint8_t code)
{
for (int i = 0; options[i].code; i++)
if (options[i].code == code)
return option_type_length(options[i].type & 0xf);
log_warning("option_length: Unknown length for code 0x%02x.", code);
return 0;
}
int option_valid_list(uint8_t code)
{
for (int i = 0; options[i].code; ++i)
if ((options[i].code == code) && (options[i].type & OPTION_LIST))
return 1;
return 0;
}
static size_t sizeof_option(uint8_t code, size_t datalen)
{
if (code == DCODE_PADDING || code == DCODE_END)
return 1;
return 2 + datalen;
}
// Worker function for get_option_data(). Optlen will be set to the length
// of the option data.
static uint8_t *do_get_option_data(uint8_t *buf, ssize_t buflen, int code,
@ -212,6 +129,13 @@ ssize_t get_end_option_idx(struct dhcpmsg *packet)
return -1;
}
static size_t sizeof_option(uint8_t code, size_t datalen)
{
if (code == DCODE_PADDING || code == DCODE_END)
return 1;
return 2 + datalen;
}
// add an option string to the options (an option string contains an option
// code, length, then data)
static size_t add_option_string(struct dhcpmsg *packet, uint8_t code,

View File

@ -54,26 +54,10 @@
#define DCODE_CLIENT_ID 0x3d
#define DCODE_END 0xff
enum option_type {
OPTION_NONE = 0,
OPTION_IP = 1,
OPTION_STRING = 2,
OPTION_U8 = 3,
OPTION_U16 = 4,
OPTION_S16 = 5,
OPTION_U32 = 6,
OPTION_S32 = 7
};
const char *option_name(uint8_t code);
enum option_type option_type(uint8_t code);
uint8_t option_length(uint8_t code);
int option_valid_list(uint8_t code);
uint8_t *get_option_data(struct dhcpmsg *packet, int code, ssize_t *optlen);
ssize_t get_end_option_idx(struct dhcpmsg *packet);
size_t add_option_request_list(struct dhcpmsg *packet);
size_t add_option_request_list(struct dhcpmsg *packet);
void add_option_msgtype(struct dhcpmsg *packet, uint8_t type);
void add_option_reqip(struct dhcpmsg *packet, uint32_t ip);
void add_option_maxsize(struct dhcpmsg *packet);