From 53118fa9c6d460a8e7d960dabcafd01b0ebc4e6b Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Fri, 28 Feb 2020 18:49:20 +0000
Subject: [PATCH] Console: Fix /viewlicense for Debian packages

---
 apps/routerconsole/jsp/viewlicense.jsp | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/apps/routerconsole/jsp/viewlicense.jsp b/apps/routerconsole/jsp/viewlicense.jsp
index da013704cb..31bb34c023 100644
--- a/apps/routerconsole/jsp/viewlicense.jsp
+++ b/apps/routerconsole/jsp/viewlicense.jsp
@@ -13,12 +13,31 @@ response.setDateHeader("Expires", 0);
 response.addHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate");
 response.addHeader("Pragma", "no-cache");
 java.io.File base = net.i2p.I2PAppContext.getGlobalContext().getBaseDir();
-java.io.File file = new java.io.File(base, "LICENSE.txt");
+String name = "LICENSE.txt";
+java.io.File file = new java.io.File(base, name);
+if (!file.exists()) {
+    if (!net.i2p.util.SystemVersion.isWindows() && !net.i2p.util.SystemVersion.isMac()) {
+        // Debian package?
+        java.io.File b = new java.io.File("/usr/share/doc/i2p-router");
+        java.io.File f = new java.io.File(b, "copyright");
+        if (f.exists()) {
+            name = "copyright";
+            base = b;
+            file = f;
+        } else {
+            response.sendError(404, "Not Found");
+            return;
+        }
+    } else {
+        response.sendError(404, "Not Found");
+        return;
+    }
+}
 long length = file.length();
 if (length > 0)
     response.setHeader("Content-Length", Long.toString(length));
 try {
-    net.i2p.util.FileUtil.readFile("LICENSE.txt", base.getAbsolutePath(), response.getOutputStream());
+    net.i2p.util.FileUtil.readFile(name, base.getAbsolutePath(), response.getOutputStream());
 } catch (java.io.IOException ioe) {
     // prevent 'Committed' IllegalStateException from Jetty
     if (!response.isCommitted()) {
-- 
GitLab