2019-07-19 20:30:22 +00:00
|
|
|
<%@page pageEncoding="UTF-8"%><%
|
|
|
|
/*
|
|
|
|
* USE CAUTION WHEN EDITING
|
|
|
|
* Trailing whitespace OR NEWLINE on the last line will cause
|
|
|
|
* IllegalStateExceptions !!!
|
|
|
|
*
|
|
|
|
* Do not tag this file for translation.
|
|
|
|
*/
|
|
|
|
response.setContentType("text/plain");
|
|
|
|
response.setHeader("X-Content-Type-Options", "nosniff");
|
|
|
|
response.setHeader("Accept-Ranges", "none");
|
|
|
|
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();
|
2020-02-28 18:49:20 +00:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|
2019-07-19 20:30:22 +00:00
|
|
|
long length = file.length();
|
|
|
|
if (length > 0)
|
|
|
|
response.setHeader("Content-Length", Long.toString(length));
|
|
|
|
try {
|
2020-02-28 18:49:20 +00:00
|
|
|
net.i2p.util.FileUtil.readFile(name, base.getAbsolutePath(), response.getOutputStream());
|
2019-07-19 20:30:22 +00:00
|
|
|
} catch (java.io.IOException ioe) {
|
|
|
|
// prevent 'Committed' IllegalStateException from Jetty
|
|
|
|
if (!response.isCommitted()) {
|
|
|
|
response.sendError(403, ioe.toString());
|
|
|
|
} else {
|
|
|
|
// not an error, happens when the browser closes the stream
|
|
|
|
net.i2p.I2PAppContext.getGlobalContext().logManager().getLog(getClass()).warn("Error serving license.txt", ioe);
|
|
|
|
// Jetty doesn't log this
|
|
|
|
throw ioe;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
%>
|