DHCP context logging, more tweaks

This commit is contained in:
Simon Kelley
2012-12-17 22:37:30 +00:00
parent bb86e858b6
commit c1be917782
2 changed files with 31 additions and 28 deletions

View File

@@ -679,8 +679,10 @@ void log_context(int family, struct dhcp_context *context)
void *start = &context->start; void *start = &context->start;
void *end = &context->end; void *end = &context->end;
char *n = ""; char *n = "", *m = "", *p = daemon->namebuff;
*p = 0;
#ifdef HAVE_DHCP6 #ifdef HAVE_DHCP6
if (family == AF_INET6) if (family == AF_INET6)
{ {
@@ -693,29 +695,34 @@ void log_context(int family, struct dhcp_context *context)
} }
#endif #endif
if (context->flags & CONTEXT_CONSTRUCTED) if ((context->flags & CONTEXT_DHCP) ||
{ !(context->flags & (CONTEXT_CONSTRUCTED | CONTEXT_TEMPLATE)))
n = daemon->namebuff;
sprintf(daemon->namebuff, ", constructed for %s", context->template_interface);
}
else if (context->flags & CONTEXT_TEMPLATE)
{
n = daemon->namebuff;
sprintf(daemon->namebuff, ", template for %s", context->template_interface);
}
else
{ {
if (family != AF_INET && (context->flags & CONTEXT_DEPRECATE)) if (family != AF_INET && (context->flags & CONTEXT_DEPRECATE))
strcpy(daemon->namebuff, _(", prefix deprecated")); strcpy(daemon->namebuff, _(", prefix deprecated"));
else else
{ {
char *p = daemon->namebuff;
p += sprintf(p, _(", lease time ")); p += sprintf(p, _(", lease time "));
m = p;
prettyprint_time(p, context->lease_time); prettyprint_time(p, context->lease_time);
p += strlen(p);
} }
} }
#ifdef HAVE_DHCP6
if (context->flags & CONTEXT_CONSTRUCTED)
{
n = p;
p += sprintf(p, ", constructed for %s", context->template_interface);
}
if (context->flags & CONTEXT_TEMPLATE)
{
n = p;
p += sprintf(p, ", template for %s", context->template_interface);
}
#endif
if ((context->flags & CONTEXT_DHCP) || family == AF_INET) if ((context->flags & CONTEXT_DHCP) || family == AF_INET)
{ {
inet_ntop(family, start, daemon->dhcp_buff, 256); inet_ntop(family, start, daemon->dhcp_buff, 256);
@@ -732,22 +739,19 @@ void log_context(int family, struct dhcp_context *context)
daemon->dhcp_buff, daemon->dhcp_buff3, daemon->namebuff); daemon->dhcp_buff, daemon->dhcp_buff3, daemon->namebuff);
} }
#ifdef HAVE_DHCP6
if (context->flags & CONTEXT_RA_NAME) if (context->flags & CONTEXT_RA_NAME)
my_syslog(MS_DHCP | LOG_INFO, _("DHCPv4-derived IPv6 names on %s%s"), my_syslog(MS_DHCP | LOG_INFO, _("DHCPv4-derived IPv6 names on %s%s"),
daemon->addrbuff, n); daemon->addrbuff, n);
if (context->flags & (CONTEXT_RA_ONLY | CONTEXT_RA_NAME | CONTEXT_RA_STATELESS)) if (context->flags & CONTEXT_RA)
{ my_syslog(MS_DHCP | LOG_INFO, _("router advertisement on %s%s%s"),
if (!(context->flags & (CONTEXT_DEPRECATE | CONTEXT_CONSTRUCTED | CONTEXT_TEMPLATE))) daemon->addrbuff,
{ (context->flags & (CONTEXT_CONSTRUCTED | CONTEXT_TEMPLATE)) ? "" : ", prefix valid ",
char *p = daemon->namebuff; (context->flags & (CONTEXT_CONSTRUCTED | CONTEXT_TEMPLATE)) ? n : m);
p += sprintf(p, _(", prefix valid ")); #endif
prettyprint_time(p, context->lease_time > 7200 ? context->lease_time : 7200);
}
my_syslog(MS_DHCP | LOG_INFO, _("router advertisement on %s%s"),
daemon->addrbuff, daemon->namebuff);
}
} }

View File

@@ -538,7 +538,6 @@ static int construct_worker(struct in6_addr *local, int prefix,
context->flags |= CONTEXT_CONSTRUCTED; context->flags |= CONTEXT_CONSTRUCTED;
context->if_index = if_index; context->if_index = if_index;
context->local6 = *local; context->local6 = *local;
context->lease_time = param->now + valid;
context->next = daemon->dhcp6; context->next = daemon->dhcp6;
daemon->dhcp6 = context; daemon->dhcp6 = context;