# (C) 2006 by Helge Deller <deller@gmx.de> 
# released under the GPL v2
--- src/lease.c.orig	2005-11-01 12:41:08.000000000 +0100
+++ src/lease.c	2006-02-03 21:53:03.000000000 +0100
@@ -119,9 +119,13 @@
   if (file_dirty != no)
     {
 #endif
+      FILE *multid_leases;
+
       rewind(lease_file);
       ftruncate(fileno(lease_file), 0);
-      
+
+      multid_leases = fopen("/var/tmp/multid.leases", "w");
+
       for (lease = leases; lease; lease = lease->next)
 	{
 #ifdef HAVE_BROKEN_RTC
@@ -138,21 +138,34 @@
 		  lease->hwaddr[2], lease->hwaddr[3], lease->hwaddr[4],
 		  lease->hwaddr[5], inet_ntoa(lease->addr),
 		  lease->hostname && strlen(lease->hostname) != 0 ? lease->hostname : "*");
+
+	  /* lease 00:12:79:41:AA:01 192.168.178.40 1122416 "computer" 0100127941b4a0 */
+          fprintf(multid_leases,"lease %.2X:%.2X:%.2X:%.2X:%.2X:%.2X %s %lu \"%s\" ",
+		lease->hwaddr[0], lease->hwaddr[1], lease->hwaddr[2],
+		lease->hwaddr[3], lease->hwaddr[4], lease->hwaddr[5],
+		inet_ntoa(lease->addr), expires, 
+		lease->hostname && strlen(lease->hostname) != 0 ? lease->hostname : ""
+	    );
 	  
 	  if (lease->clid && lease->clid_len != 0)
 	    {
-	      for (i = 0; i < lease->clid_len - 1; i++)
+	      for (i = 0; i < lease->clid_len - 1; i++) 
 		fprintf(lease_file, "%.2x:", lease->clid[i]);
 	      fprintf(lease_file, "%.2x\n", lease->clid[i]);
+
+	      for (i = 0; i < lease->clid_len; i++) 
+                 fprintf(multid_leases,"%.2x", lease->clid[i]);
 	    }
 	  else
 	    fprintf(lease_file, "*\n");
-	  
+
+         fprintf(multid_leases,"\n");
 	}
 
       fflush(lease_file);
       fsync(fileno(lease_file));
       file_dirty = no;
+      fclose(multid_leases);
     }
 }
 
