--- /usr/local/www/status_dhcpv6_leases.php.orig	2011-07-07 03:21:05.000000000 +0800
+++ /usr/local/www/status_dhcpv6_leases.php	2011-10-03 02:14:15.000000000 +0800
@@ -171,12 +171,14 @@
 						$duid .= " " . $data[$f+1];
 						$f++;
 					}
+					$duid = trim($duid);
+					$duid = substr($duid, 1, -1);
 					$leases[$l]['duid'] = $duid;
 				} else {
 					$leases[$l]['duid'] = $data[$f+1];
 				}
 				$leases[$l]['type'] = "dynamic";
-				$f = $f+2;
+				$f = $f+1;
 				break;
 			case "iaaddr":
 				$leases[$l]['ip'] = $data[$f+1];
@@ -207,6 +209,8 @@
 				$f = $f+3;
 				break;
 			case "cltt":
+                                $leases[$l]['start'] = $data[$f+2];
+                                $leases[$l]['start'] .= " " . $data[$f+3];
 				$f = $f+3;
 				break;
 			case "binding":
@@ -223,7 +227,7 @@
 						$leases[$l]['online'] = "offline";
 						break;
 				}
-				$f = $f+1;
+				$f = $f+2;
 				break;
 			case "next":
 				/* skip the next binding statement */
@@ -366,8 +370,8 @@
                 }		
 		echo "<tr>\n";
                 echo "<td class=\"listlr\">{$fspans}{$data['ip']}{$fspane}&nbsp;</td>\n";
-		echo "<td class=\"listr\">{$fspans}{$data['duid']}{$fspane}&nbsp;</td>\n";
-                echo "<td class=\"listr\">{$fspans}"  . htmlentities($data['hostname']) . "{$fspane}&nbsp;</td>\n";
+		echo "<td class=\"listr\">{$fspans}" . htmlentities($data['duid']) . "{$fspane}&nbsp;</td>\n";
+                echo "<td class=\"listr\">{$fspans}" . htmlentities($data['hostname']) . "{$fspane}&nbsp;</td>\n";
 				if ($data['type'] != "static") {
 					echo "<td class=\"listr\">{$fspans}" . adjust_gmt($data['start']) . "{$fspane}&nbsp;</td>\n";
 					echo "<td class=\"listr\">{$fspans}" . adjust_gmt($data['end']) . "{$fspane}&nbsp;</td>\n";
@@ -379,7 +383,7 @@
                 echo "<td class=\"listr\">{$fspans}{$data['act']}{$fspane}&nbsp;</td>\n";
 		
 		if ($data['type'] == "dynamic") {
-			echo "<td valign=\"middle\"><a href=\"services_dhcpv6_edit.php?if={$data['if']}&duid={$data['duid']}&hostname={$data['hostname']}\">";
+			echo "<td valign=\"middle\"><a href=\"services_dhcpv6_edit.php?if=" . urlencode($data['if']) . "&duid=" . urlencode($data['duid']) . "&hostname=" . urlencode($data['hostname']) . "\">";
 			echo "<img src=\"/themes/{$g['theme']}/images/icons/icon_plus.gif\" width=\"17\" height=\"17\" border=\"0\" title=\"" . gettext("add a static mapping for this MAC address") ."\"></a></td>\n";
 		} else {
                 	echo "<td class=\"list\" valign=\"middle\">";
@@ -388,7 +392,7 @@
 
 		/* Only show the button for offline dynamic leases */
 		if (($data['type'] == "dynamic") && ($data['online'] != "online")) {
-			echo "<td class=\"list\" valign=\"middle\"><a href=\"status_dhcpv6_leases.php?deleteip={$data['ip']}&all=" . htmlspecialchars($_GET['all']) . "\">";
+			echo "<td class=\"list\" valign=\"middle\"><a href=\"status_dhcpv6_leases.php?deleteip=" . urlencode($data['ip']) . "&all=" . htmlspecialchars($_GET['all']) . "\">";
 			echo "<img src=\"/themes/{$g['theme']}/images/icons/icon_x.gif\" width=\"17\" height=\"17\" border=\"0\" title=\"" . gettext("delete this DHCP lease") . "\"></a></td>\n";
 		}
                 echo "</tr>\n";
