mirror of
git://git.code.sf.net/p/dhcpd-pools/code
synced 2025-12-14 14:57:00 +00:00
output: add ethernet address priting support to --mustach
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
parent
b96c6c14d2
commit
544e7ec0a5
4 changed files with 144 additions and 0 deletions
|
|
@ -1,3 +1,6 @@
|
|||
Ethernets:{{#active_lease}}
|
||||
macaddress: {{macaddress}} ip: {{ip}}{{/active_lease}}
|
||||
|
||||
Subnets:{{#subnets}}
|
||||
location: {{location}}
|
||||
range: {{range}}
|
||||
|
|
|
|||
|
|
@ -231,6 +231,7 @@ static void parse_command_line_opts(struct conf_t *state, int argc, char **argv)
|
|||
#ifdef BUILD_MUSTACH
|
||||
state->mustach_template = optarg;
|
||||
state->output_format = 'm';
|
||||
state->print_mac_addreses = 1;
|
||||
#else
|
||||
error(EXIT_FAILURE, 0, "compiled without mustach support");
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@
|
|||
*/
|
||||
struct expl {
|
||||
struct conf_t *state;
|
||||
struct leases_t *lease_p;
|
||||
struct range_t *range_p;
|
||||
struct shared_network_t *shnet_p;
|
||||
struct output_helper_t oh;
|
||||
|
|
@ -178,6 +179,36 @@ static struct mustach_itf itf = {
|
|||
.leave = must_leave
|
||||
};
|
||||
|
||||
/*! \brief Mustach active lease aka {{#active_lease}} tag parser and printer. */
|
||||
static int must_put_active_lease(void *closure, const char *name, int escape
|
||||
__attribute__((unused)), FILE *file)
|
||||
{
|
||||
struct expl *e = closure;
|
||||
|
||||
if (!strcmp(name, "ip")) {
|
||||
fprintf(file, "%s", ntop_ipaddr(&e->lease_p->ip));
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(name, "macaddress")) {
|
||||
fprintf(file, "%s", e->lease_p->ethernet);
|
||||
return 0;
|
||||
}
|
||||
error(EXIT_FAILURE, 0, "mustach_dhcpd_pools: fmustach: unexpected tag: %s", name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*! \brief A function to move to next lease when {{/active_lease}} is encountered. */
|
||||
static int must_next_active_lease(void *closure)
|
||||
{
|
||||
struct expl *e = closure;
|
||||
|
||||
e->lease_p = e->lease_p->hh.next;
|
||||
if (e->lease_p == NULL)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Mustach range aka {{#subnets}} tag parser and printer. */
|
||||
static int must_put_range(void *closure, const char *name, int escape
|
||||
__attribute__ ((unused)), FILE *file)
|
||||
|
|
@ -359,6 +390,13 @@ static int must_enter(void *closure, const char *name)
|
|||
{
|
||||
struct expl *e = closure;
|
||||
|
||||
if (!strcmp(name, "active_lease")) {
|
||||
itf.put = must_put_active_lease;
|
||||
itf.next = must_next_active_lease;
|
||||
e->current = 0;
|
||||
e->lease_p = e->state->leases;
|
||||
return must_next_active_lease(closure);
|
||||
}
|
||||
if (!strcmp(name, "subnets")) {
|
||||
itf.put = must_put_range;
|
||||
itf.next = must_next_range;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,54 @@
|
|||
Ethernets:
|
||||
macaddress: 00:00:00:00:00:01 ip: 10.0.0.1
|
||||
macaddress: 00:00:00:00:00:02 ip: 10.0.0.2
|
||||
macaddress: 00:00:00:00:00:03 ip: 10.0.0.3
|
||||
macaddress: 00:00:00:00:00:04 ip: 10.0.0.4
|
||||
macaddress: 00:00:00:00:00:05 ip: 10.0.0.5
|
||||
macaddress: 00:00:00:00:00:06 ip: 10.0.0.6
|
||||
macaddress: 00:00:00:00:00:07 ip: 10.0.0.7
|
||||
macaddress: 00:00:00:00:00:08 ip: 10.0.0.8
|
||||
macaddress: 00:00:00:00:00:09 ip: 10.0.0.9
|
||||
macaddress: 00:00:00:00:00:10 ip: 10.0.0.10
|
||||
macaddress: 00:00:00:00:00:11 ip: 10.0.0.11
|
||||
macaddress: 00:00:00:00:00:12 ip: 10.0.0.12
|
||||
macaddress: 00:00:00:00:01:00 ip: 10.1.0.0
|
||||
macaddress: 00:00:00:00:01:01 ip: 10.1.0.1
|
||||
macaddress: 00:00:00:00:01:02 ip: 10.1.0.2
|
||||
macaddress: 00:00:00:00:01:03 ip: 10.1.0.3
|
||||
macaddress: 00:00:00:00:01:04 ip: 10.1.0.4
|
||||
macaddress: 00:00:00:00:01:05 ip: 10.1.0.5
|
||||
macaddress: 00:00:00:00:01:06 ip: 10.1.0.6
|
||||
macaddress: 00:00:00:00:01:07 ip: 10.1.0.7
|
||||
macaddress: 00:00:00:00:01:08 ip: 10.1.0.8
|
||||
macaddress: 00:00:00:00:01:09 ip: 10.1.0.9
|
||||
macaddress: 00:00:00:00:01:10 ip: 10.1.0.10
|
||||
macaddress: 00:00:00:00:02:00 ip: 10.2.0.0
|
||||
macaddress: 00:00:00:00:02:01 ip: 10.2.0.1
|
||||
macaddress: 00:00:00:00:02:02 ip: 10.2.0.2
|
||||
macaddress: 00:00:00:00:02:03 ip: 10.2.0.3
|
||||
macaddress: 00:00:00:00:02:04 ip: 10.2.0.4
|
||||
macaddress: 00:00:00:00:02:05 ip: 10.2.0.5
|
||||
macaddress: 00:00:00:00:02:06 ip: 10.2.0.6
|
||||
macaddress: 00:00:00:00:02:07 ip: 10.2.0.7
|
||||
macaddress: 00:00:00:00:02:08 ip: 10.2.0.8
|
||||
macaddress: 00:00:00:00:03:00 ip: 10.3.0.0
|
||||
macaddress: 00:00:00:00:03:01 ip: 10.3.0.1
|
||||
macaddress: 00:00:00:00:03:02 ip: 10.3.0.2
|
||||
macaddress: 00:00:00:00:03:03 ip: 10.3.0.3
|
||||
macaddress: 00:00:00:00:03:04 ip: 10.3.0.4
|
||||
macaddress: 00:00:00:00:03:05 ip: 10.3.0.5
|
||||
macaddress: 00:00:00:00:03:06 ip: 10.3.0.6
|
||||
macaddress: 00:00:00:00:03:07 ip: 10.3.0.7
|
||||
macaddress: 00:00:00:00:03:08 ip: 10.3.0.8
|
||||
macaddress: 00:00:00:00:03:09 ip: 10.3.0.9
|
||||
macaddress: 00:00:00:00:04:00 ip: 10.4.0.0
|
||||
macaddress: 00:00:00:00:04:01 ip: 10.4.0.1
|
||||
macaddress: 00:00:00:00:04:02 ip: 10.4.0.2
|
||||
macaddress: 00:00:00:00:04:03 ip: 10.4.0.3
|
||||
macaddress: 00:00:00:00:04:04 ip: 10.4.0.4
|
||||
macaddress: 00:00:00:00:04:05 ip: 10.4.0.5
|
||||
macaddress: 00:00:00:00:04:06 ip: 10.4.0.6
|
||||
|
||||
Subnets:
|
||||
location: example1
|
||||
range: 10.0.0.1 - 10.0.0.20
|
||||
|
|
@ -127,6 +178,57 @@ number_of_shared_networks: 2
|
|||
number_of_shared_networks_warning: 0
|
||||
number_of_shared_networks_critical: 0
|
||||
--- skip ok ---
|
||||
Ethernets:
|
||||
macaddress: 00:00:00:00:00:01 ip: 10.0.0.1
|
||||
macaddress: 00:00:00:00:00:02 ip: 10.0.0.2
|
||||
macaddress: 00:00:00:00:00:03 ip: 10.0.0.3
|
||||
macaddress: 00:00:00:00:00:04 ip: 10.0.0.4
|
||||
macaddress: 00:00:00:00:00:05 ip: 10.0.0.5
|
||||
macaddress: 00:00:00:00:00:06 ip: 10.0.0.6
|
||||
macaddress: 00:00:00:00:00:07 ip: 10.0.0.7
|
||||
macaddress: 00:00:00:00:00:08 ip: 10.0.0.8
|
||||
macaddress: 00:00:00:00:00:09 ip: 10.0.0.9
|
||||
macaddress: 00:00:00:00:00:10 ip: 10.0.0.10
|
||||
macaddress: 00:00:00:00:00:11 ip: 10.0.0.11
|
||||
macaddress: 00:00:00:00:00:12 ip: 10.0.0.12
|
||||
macaddress: 00:00:00:00:01:00 ip: 10.1.0.0
|
||||
macaddress: 00:00:00:00:01:01 ip: 10.1.0.1
|
||||
macaddress: 00:00:00:00:01:02 ip: 10.1.0.2
|
||||
macaddress: 00:00:00:00:01:03 ip: 10.1.0.3
|
||||
macaddress: 00:00:00:00:01:04 ip: 10.1.0.4
|
||||
macaddress: 00:00:00:00:01:05 ip: 10.1.0.5
|
||||
macaddress: 00:00:00:00:01:06 ip: 10.1.0.6
|
||||
macaddress: 00:00:00:00:01:07 ip: 10.1.0.7
|
||||
macaddress: 00:00:00:00:01:08 ip: 10.1.0.8
|
||||
macaddress: 00:00:00:00:01:09 ip: 10.1.0.9
|
||||
macaddress: 00:00:00:00:01:10 ip: 10.1.0.10
|
||||
macaddress: 00:00:00:00:02:00 ip: 10.2.0.0
|
||||
macaddress: 00:00:00:00:02:01 ip: 10.2.0.1
|
||||
macaddress: 00:00:00:00:02:02 ip: 10.2.0.2
|
||||
macaddress: 00:00:00:00:02:03 ip: 10.2.0.3
|
||||
macaddress: 00:00:00:00:02:04 ip: 10.2.0.4
|
||||
macaddress: 00:00:00:00:02:05 ip: 10.2.0.5
|
||||
macaddress: 00:00:00:00:02:06 ip: 10.2.0.6
|
||||
macaddress: 00:00:00:00:02:07 ip: 10.2.0.7
|
||||
macaddress: 00:00:00:00:02:08 ip: 10.2.0.8
|
||||
macaddress: 00:00:00:00:03:00 ip: 10.3.0.0
|
||||
macaddress: 00:00:00:00:03:01 ip: 10.3.0.1
|
||||
macaddress: 00:00:00:00:03:02 ip: 10.3.0.2
|
||||
macaddress: 00:00:00:00:03:03 ip: 10.3.0.3
|
||||
macaddress: 00:00:00:00:03:04 ip: 10.3.0.4
|
||||
macaddress: 00:00:00:00:03:05 ip: 10.3.0.5
|
||||
macaddress: 00:00:00:00:03:06 ip: 10.3.0.6
|
||||
macaddress: 00:00:00:00:03:07 ip: 10.3.0.7
|
||||
macaddress: 00:00:00:00:03:08 ip: 10.3.0.8
|
||||
macaddress: 00:00:00:00:03:09 ip: 10.3.0.9
|
||||
macaddress: 00:00:00:00:04:00 ip: 10.4.0.0
|
||||
macaddress: 00:00:00:00:04:01 ip: 10.4.0.1
|
||||
macaddress: 00:00:00:00:04:02 ip: 10.4.0.2
|
||||
macaddress: 00:00:00:00:04:03 ip: 10.4.0.3
|
||||
macaddress: 00:00:00:00:04:04 ip: 10.4.0.4
|
||||
macaddress: 00:00:00:00:04:05 ip: 10.4.0.5
|
||||
macaddress: 00:00:00:00:04:06 ip: 10.4.0.6
|
||||
|
||||
Subnets:
|
||||
location: example1
|
||||
range: 10.0.0.1 - 10.0.0.20
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue