<%@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.
 */
net.i2p.I2PAppContext ctx = net.i2p.I2PAppContext.getGlobalContext();
java.io.File f = net.i2p.router.web.ConfigServiceHandler.wrapperLogFile(ctx);
long length = f.length();
if (length <= 0 || !f.isFile()) {
    response.sendError(404, "Not Found");
} else {
    response.setContentType("text/plain");
    response.setHeader("X-Content-Type-Options", "nosniff");
    response.setHeader("Content-Length", Long.toString(length));
    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.InputStream in = null;
    try {
        in = new java.io.FileInputStream(f);
        java.io.OutputStream bout = response.getOutputStream();
        net.i2p.data.DataHelper.copy(in, bout);
    } 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
            // Jetty doesn't log this
            throw ioe;
        }
    } finally {
        if (in != null) 
            try { in.close(); } catch (java.io.IOException ioe) {}
    }
}
%>