]> git.ipfire.org Git - people/ms/dnsmasq.git/commitdiff
Further fixes to DHCP logging.
authorSimon Kelley <simon@thekelleys.org.uk>
Thu, 3 Oct 2013 10:43:09 +0000 (11:43 +0100)
committerSimon Kelley <simon@thekelleys.org.uk>
Thu, 3 Oct 2013 10:43:09 +0000 (11:43 +0100)
src/dhcp-common.c
src/helper.c

index 1ee204280d431df0a7d01a321baa0072e6f535f7..ecdb4483f9eb6e2d7a3d8b2d83a7ccfe530d28ae 100644 (file)
@@ -830,11 +830,11 @@ void log_context(int family, struct dhcp_context *context)
       if (indextoname(daemon->icmp6fd, context->if_index, ifrn_name))
        sprintf(p, "%s for %s", (context->flags & CONTEXT_OLD) ? "old prefix" : "constructed", ifrn_name);
     }
-  else if (context->flags & CONTEXT_TEMPLATE)
+  else if (context->flags & CONTEXT_TEMPLATE && !(context->flags & CONTEXT_RA_STATELESS))
     {
       template = p;
       p += sprintf(p, ", ");
-       
+      
       sprintf(p, "template for %s", context->template_interface);  
     }
 #endif
@@ -842,17 +842,27 @@ void log_context(int family, struct dhcp_context *context)
   if (!(context->flags & CONTEXT_OLD) &&
       ((context->flags & CONTEXT_DHCP) || family == AF_INET)) 
     {
-      inet_ntop(family, start, daemon->dhcp_buff, 256);
+#ifdef HAVE_DHCP6
+      if (context->flags & CONTEXT_RA_STATELESS)
+       {
+         if (context->flags & CONTEXT_TEMPLATE)
+           strncpy(daemon->dhcp_buff, context->template_interface, 256);
+         else
+           strcpy(daemon->dhcp_buff, daemon->addrbuff);
+       }
+      else 
+#endif
+       inet_ntop(family, start, daemon->dhcp_buff, 256);
       inet_ntop(family, end, daemon->dhcp_buff3, 256);
       my_syslog(MS_DHCP | LOG_INFO, 
-             (context->flags & CONTEXT_RA_STATELESS) ? 
-             _("%s stateless on %s%.0s%.0s%s") :
-             (context->flags & CONTEXT_STATIC) ? 
-             _("%s, static leases only on %.0s%s%s%.0s") :
-             (context->flags & CONTEXT_PROXY) ?
-             _("%s, proxy on subnet %.0s%s%.0s%.0s") :
-             _("%s, IP range %s -- %s%s%.0s"),
-             (family != AF_INET) ? "DHCPv6" : "DHCP",
+               (context->flags & CONTEXT_RA_STATELESS) ? 
+               _("%s stateless on %s%.0s%.0s%s") :
+               (context->flags & CONTEXT_STATIC) ? 
+               _("%s, static leases only on %.0s%s%s%.0s") :
+               (context->flags & CONTEXT_PROXY) ?
+               _("%s, proxy on subnet %.0s%s%.0s%.0s") :
+               _("%s, IP range %s -- %s%s%.0s"),
+               (family != AF_INET) ? "DHCPv6" : "DHCP",
                daemon->dhcp_buff, daemon->dhcp_buff3, daemon->namebuff, template);
     }
   
@@ -862,6 +872,7 @@ void log_context(int family, struct dhcp_context *context)
       strcpy(daemon->addrbuff, context->template_interface);
       template = "";
     }
+
   if ((context->flags & CONTEXT_RA_NAME) && !(context->flags & CONTEXT_OLD))
     my_syslog(MS_DHCP | LOG_INFO, _("DHCPv4-derived IPv6 names on %s%s"), daemon->addrbuff, template);
   
index e979b0d201c742e640f8b70cffed4f58ce1ba632..5872e6aa1727973ccbb59b67bee36f9834a6c22b 100644 (file)
@@ -64,8 +64,10 @@ struct script_data
 #ifdef HAVE_TFTP
   off_t file_len;
 #endif
-#ifdef HAVE_DHCP6
+#ifdef HAVE_IPV6
   struct in6_addr addr6;
+#endif
+#ifdef HAVE_DHCP6
   int iaid, vendorclass_count;
 #endif
   unsigned char hwaddr[DHCP_CHADDR_MAX];