From f72753f3ebc0d824a2aa856b17dd5a9597d091ba Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sat, 23 Apr 2016 17:11:50 +0000
Subject: [PATCH] Addressbook: Store last-modified date SusiDNS: Display
 signature validation on details page

---
 apps/addressbook/java/src/net/i2p/addressbook/Daemon.java     | 2 ++
 apps/susidns/src/java/src/i2p/susi/dns/AddressBean.java       | 4 ++++
 apps/susidns/src/jsp/details.jsp                              | 3 +++
 .../src/net/i2p/client/naming/BlockfileNamingService.java     | 2 ++
 4 files changed, 11 insertions(+)

diff --git a/apps/addressbook/java/src/net/i2p/addressbook/Daemon.java b/apps/addressbook/java/src/net/i2p/addressbook/Daemon.java
index 099cdc6579..6f57754dd1 100644
--- a/apps/addressbook/java/src/net/i2p/addressbook/Daemon.java
+++ b/apps/addressbook/java/src/net/i2p/addressbook/Daemon.java
@@ -373,6 +373,7 @@ public class Daemon {
                                                                ". From: " + addressbook.getLocation());
                                             }
                                             allowExistingKeyInPublished = true;
+                                            props.setProperty("m", Long.toString(I2PAppContext.getGlobalContext().clock().now()));
                                         } else {
                                             // mismatch, disallow
                                             logMismatch(log, action, key, pod2, polddest, addressbook);
@@ -447,6 +448,7 @@ public class Daemon {
                                 } else if (action.equals(HostTxtEntry.ACTION_UPDATE)) {
                                     if (isKnown) {
                                         allowExistingKeyInPublished = true;
+                                        props.setProperty("m", Long.toString(I2PAppContext.getGlobalContext().clock().now()));
                                     }
                                 } else {
                                     if (log != null)
diff --git a/apps/susidns/src/java/src/i2p/susi/dns/AddressBean.java b/apps/susidns/src/java/src/i2p/susi/dns/AddressBean.java
index 9cd3821df2..242ceea85e 100644
--- a/apps/susidns/src/java/src/i2p/susi/dns/AddressBean.java
+++ b/apps/susidns/src/java/src/i2p/susi/dns/AddressBean.java
@@ -202,6 +202,10 @@ public class AddressBean
 		return getDate("m");
 	}
 
+	/** @since 0.9.26 */
+	public boolean isValidated() {
+		return Boolean.valueOf(getProp("v"));
+	}
 
 	/** @since 0.8.7 */
 	public String getNotes() {
diff --git a/apps/susidns/src/jsp/details.jsp b/apps/susidns/src/jsp/details.jsp
index 2fddad5b65..d4f92e849b 100644
--- a/apps/susidns/src/jsp/details.jsp
+++ b/apps/susidns/src/jsp/details.jsp
@@ -119,6 +119,9 @@
 <td><%=intl._t("Added Date")%></td>
 <td><%=addr.getAdded()%></td>
 </tr><tr class="list${book.trClass}">
+<td><%=intl._t("Validated")%></td>
+<td><%=addr.isValidated() ? intl._t("yes") : intl._t("no")%></td>
+</tr><tr class="list${book.trClass}">
 <td><%=intl._t("Source")%></td>
 <td><%=addr.getSource()%></td>
 </tr><tr class="list${book.trClass}">
diff --git a/core/java/src/net/i2p/client/naming/BlockfileNamingService.java b/core/java/src/net/i2p/client/naming/BlockfileNamingService.java
index 3e7003d8db..5dd389adac 100644
--- a/core/java/src/net/i2p/client/naming/BlockfileNamingService.java
+++ b/core/java/src/net/i2p/client/naming/BlockfileNamingService.java
@@ -132,7 +132,9 @@ public class BlockfileNamingService extends DummyNamingService {
     private static final String VERSION = "4";
 
     private static final String PROP_ADDED = "a";
+    private static final String PROP_MODDED = "m";
     private static final String PROP_SOURCE = "s";
+    private static final String PROP_VALIDATED = "v";
     
     private static final String DUMMY = "";
     private static final int NEGATIVE_CACHE_SIZE = 32;
-- 
GitLab