clean up: move global variables to config structure

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2012-12-09 22:56:07 +00:00
parent b59e980cab
commit d3ee104a59
7 changed files with 21 additions and 25 deletions

View file

@ -113,7 +113,7 @@ int main(int argc, char **argv)
config.output_limit[0] = (*tmp - '0'); config.output_limit[0] = (*tmp - '0');
tmp++; tmp++;
config.output_limit[1] = (*tmp - '0'); config.output_limit[1] = (*tmp - '0');
fullhtml = false; config.fullhtml = false;
/* Make sure some output format is selected by default */ /* Make sure some output format is selected by default */
strncpy(config.output_format, OUTPUT_FORMAT, (size_t)1); strncpy(config.output_format, OUTPUT_FORMAT, (size_t)1);
@ -215,7 +215,7 @@ int main(int argc, char **argv)
break; break;
case 'H': case 'H':
output_analysis = output_html; output_analysis = output_html;
fullhtml = true; config.fullhtml = true;
break; break;
case 'x': case 'x':
output_analysis = output_xml; output_analysis = output_xml;
@ -270,7 +270,7 @@ int prepare_memory(void)
prefix_length[i][j] = strlen(prefixes[i][j]); prefix_length[i][j] = strlen(prefixes[i][j]);
} }
} }
dhcp_version = VERSION_UNKNOWN; config.dhcp_version = VERSION_UNKNOWN;
RANGES = 64; RANGES = 64;
num_ranges = num_shared_networks = 0; num_ranges = num_shared_networks = 0;
shared_networks = shared_networks =

View file

@ -95,11 +95,13 @@ enum prefix_t {
*/ */
struct configuration_t { struct configuration_t {
char dhcpv6; char dhcpv6;
enum dhcp_version dhcp_version;
char *dhcpdconf_file; char *dhcpdconf_file;
char *dhcpdlease_file; char *dhcpdlease_file;
char output_format[2]; char output_format[2];
bool fullhtml;
char sort[6]; char sort[6];
int reverse_order; bool reverse_order;
char *output_file; char *output_file;
int output_limit[2]; int output_limit[2];
bool backups_found; bool backups_found;
@ -150,9 +152,6 @@ struct leases_t {
int prefix_length[2][NUM_OF_PREFIX]; int prefix_length[2][NUM_OF_PREFIX];
/* \var config Runtime configuration. */ /* \var config Runtime configuration. */
struct configuration_t config; struct configuration_t config;
/* \var dhcp_version Version of IP in use.
* FIXME: move to runtime configuration. */
enum dhcp_version dhcp_version;
/* \var output_limit_bit_1 Bit mask what is printed. /* \var output_limit_bit_1 Bit mask what is printed.
* FIXME: These should probably be enum with hex assignments. */ * FIXME: These should probably be enum with hex assignments. */
static int const output_limit_bit_1 = 1; static int const output_limit_bit_1 = 1;
@ -160,9 +159,6 @@ static int const output_limit_bit_1 = 1;
static int const output_limit_bit_2 = 2; static int const output_limit_bit_2 = 2;
/* \var output_limit_bit_3 see output_limit_bit_1 */ /* \var output_limit_bit_3 see output_limit_bit_1 */
static int const output_limit_bit_3 = 4; static int const output_limit_bit_3 = 4;
/* \var fullhtml Setting if full html is been requested by user.
* FIXME: move to config. */
unsigned int fullhtml;
/* \var shared_networks Pointer holding shared network count results. */ /* \var shared_networks Pointer holding shared network count results. */
struct shared_network_t *shared_networks; struct shared_network_t *shared_networks;
/* \var num_shared_networks Number of shared networks found. */ /* \var num_shared_networks Number of shared networks found. */

View file

@ -103,8 +103,8 @@ int parse_leases(void)
ethernets = true; ethernets = true;
} }
const char **p = prefixes[dhcp_version]; const char **p = prefixes[config.dhcp_version];
int *l = prefix_length[dhcp_version]; int *l = prefix_length[config.dhcp_version];
/*! \def HAS_PREFIX(line, type) /*! \def HAS_PREFIX(line, type)
* \brief A macro to match IPv4 and IPv6 lease lines. * \brief A macro to match IPv4 and IPv6 lease lines.

View file

@ -53,7 +53,7 @@ void add_lease(union ipaddr_t *addr, enum ltype type)
l = xmalloc(sizeof(struct leases_t)); l = xmalloc(sizeof(struct leases_t));
copy_ipaddr(&l->ip, addr); copy_ipaddr(&l->ip, addr);
l->type = type; l->type = type;
if (dhcp_version == VERSION_6) { if (config.dhcp_version == VERSION_6) {
HASH_ADD_V6(leases, ip.v6, l); HASH_ADD_V6(leases, ip.v6, l);
} else { } else {
HASH_ADD_INT(leases, ip.v4, l); HASH_ADD_INT(leases, ip.v4, l);
@ -69,7 +69,7 @@ struct leases_t *find_lease(union ipaddr_t *addr)
{ {
struct leases_t *l; struct leases_t *l;
if (dhcp_version == VERSION_6) { if (config.dhcp_version == VERSION_6) {
HASH_FIND_V6(leases, &addr->v6, l); HASH_FIND_V6(leases, &addr->v6, l);
} else { } else {
HASH_FIND_INT(leases, &addr->v4, l); HASH_FIND_INT(leases, &addr->v4, l);

View file

@ -59,18 +59,18 @@
int parse_ipaddr(const char *restrict src, union ipaddr_t *restrict dst) int parse_ipaddr(const char *restrict src, union ipaddr_t *restrict dst)
{ {
int rv; int rv;
if (dhcp_version == VERSION_UNKNOWN) { if (config.dhcp_version == VERSION_UNKNOWN) {
struct in_addr addr; struct in_addr addr;
struct in6_addr addr6; struct in6_addr addr6;
if (inet_aton(src, &addr) == 1) { if (inet_aton(src, &addr) == 1) {
dhcp_version = VERSION_4; config.dhcp_version = VERSION_4;
} else if (inet_pton(AF_INET6, src, &addr6) == 1) { } else if (inet_pton(AF_INET6, src, &addr6) == 1) {
dhcp_version = VERSION_6; config.dhcp_version = VERSION_6;
} else { } else {
return 0; return 0;
} }
} }
if (dhcp_version == VERSION_6) { if (config.dhcp_version == VERSION_6) {
struct in6_addr addr; struct in6_addr addr;
rv = inet_pton(AF_INET6, src, &addr); rv = inet_pton(AF_INET6, src, &addr);
memcpy(&dst->v6, addr.s6_addr, sizeof(addr.s6_addr)); memcpy(&dst->v6, addr.s6_addr, sizeof(addr.s6_addr));
@ -89,7 +89,7 @@ int parse_ipaddr(const char *restrict src, union ipaddr_t *restrict dst)
void copy_ipaddr(union ipaddr_t *restrict dst, void copy_ipaddr(union ipaddr_t *restrict dst,
const union ipaddr_t *restrict src) const union ipaddr_t *restrict src)
{ {
if (dhcp_version == VERSION_6) { if (config.dhcp_version == VERSION_6) {
memcpy(&dst->v6, &src->v6, sizeof(src->v6)); memcpy(&dst->v6, &src->v6, sizeof(src->v6));
} else { } else {
dst->v4 = src->v4; dst->v4 = src->v4;
@ -108,7 +108,7 @@ const char *ntop_ipaddr(const union ipaddr_t *ip)
{ {
static char static char
buffer[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")]; buffer[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")];
if (dhcp_version == VERSION_6) { if (config.dhcp_version == VERSION_6) {
struct in6_addr addr; struct in6_addr addr;
memcpy(addr.s6_addr, ip->v6, sizeof(addr.s6_addr)); memcpy(addr.s6_addr, ip->v6, sizeof(addr.s6_addr));
return inet_ntop(AF_INET6, &addr, buffer, sizeof(buffer)); return inet_ntop(AF_INET6, &addr, buffer, sizeof(buffer));
@ -127,7 +127,7 @@ const char *ntop_ipaddr(const union ipaddr_t *ip)
*/ */
unsigned long get_range_size(const struct range_t *r) unsigned long get_range_size(const struct range_t *r)
{ {
if (dhcp_version == VERSION_6) { if (config.dhcp_version == VERSION_6) {
unsigned long size = 0; unsigned long size = 0;
int i; int i;
/* When calculating the size of an IPv6 range overflow may /* When calculating the size of an IPv6 range overflow may

View file

@ -65,7 +65,7 @@ int output_txt(void)
struct shared_network_t *shared_p; struct shared_network_t *shared_p;
int ret; int ret;
FILE *outfile; FILE *outfile;
int max_ipaddr_length = dhcp_version == VERSION_6 ? 39 : 16; int max_ipaddr_length = config.dhcp_version == VERSION_6 ? 39 : 16;
if (config.output_file[0]) { if (config.output_file[0]) {
outfile = fopen(config.output_file, "w+"); outfile = fopen(config.output_file, "w+");
@ -695,7 +695,7 @@ int output_html(void)
range_p = ranges; range_p = ranges;
range_size = get_range_size(range_p); range_size = get_range_size(range_p);
shared_p = shared_networks; shared_p = shared_networks;
if (fullhtml) { if (config.fullhtml) {
html_header(outfile); html_header(outfile);
} }
table_start(outfile); table_start(outfile);
@ -845,7 +845,7 @@ int output_html(void)
endrow(outfile); endrow(outfile);
} }
table_end(outfile); table_end(outfile);
if (fullhtml) { if (config.fullhtml) {
html_footer(outfile); html_footer(outfile);
} }
if (outfile == stdout) { if (outfile == stdout) {

View file

@ -54,7 +54,7 @@
*/ */
int ipcomp(const union ipaddr_t *restrict a, const union ipaddr_t *restrict b) int ipcomp(const union ipaddr_t *restrict a, const union ipaddr_t *restrict b)
{ {
if (dhcp_version == VERSION_6) { if (config.dhcp_version == VERSION_6) {
return memcmp(&a->v6, &b->v6, sizeof(a->v6)); return memcmp(&a->v6, &b->v6, sizeof(a->v6));
} else { } else {
if (a->v4 < b->v4) if (a->v4 < b->v4)