<% String tunnelTypeName; String tunnelType; if (curTunnel >= 0) { tunnelTypeName = editBean.getTunnelType(curTunnel); tunnelType = editBean.getInternalType(curTunnel); %>

<%=intl._t("Edit Server Settings")%> (<%=editBean.getTunnelName(curTunnel)%>)

<% } else { tunnelTypeName = editBean.getTypeName(request.getParameter("type")); tunnelType = net.i2p.data.DataHelper.stripHTML(request.getParameter("type")); %>

<%=intl._t("New Server Settings")%>

<% } %> <% // these are four keys that are generated automatically on first save, // and we want to persist in i2ptunnel.config, but don't want to // show clogging up the custom options form. String key = editBean.getKey1(curTunnel); if (key != null && key.length() > 0) { %> <% } key = editBean.getKey2(curTunnel); if (key != null && key.length() > 0) { %> <% } key = editBean.getKey3(curTunnel); if (key != null && key.length() > 0) { %> <% } key = editBean.getKey4(curTunnel); if (key != null && key.length() > 0) { %> <% } %> <% if (!"streamrserver".equals(tunnelType)) { %> <% } /* !streamrserver */ %> <% if ("httpbidirserver".equals(tunnelType)) { %> <% } /* httpbidirserver */ %> <% if ("httpbidirserver".equals(tunnelType) || "streamrserver".equals(tunnelType)) { %> <% } /* httpbidirserver || streamrserver */ %> <% if (("httpserver".equals(tunnelType)) || ("httpbidirserver".equals(tunnelType))) { %> <% } %> <% /****** %> <% if (("httpserver".equals(tunnelType)) || ("httpbidirserver".equals(tunnelType))) { String sig = editBean.getNameSignature(curTunnel); if (sig.length() > 0) { %>
<%=intl._t("Hostname Signature")%> " value="<%=sig%>" wrap="off" class="freetext" />
<% } // sig } // type ****/ String b64 = editBean.getDestinationBase64(curTunnel); if (!"".equals(b64)) { %> <% b64 = b64.replace("=", "%3d"); String name = editBean.getSpoofedHost(curTunnel); if (name == null || name.equals("")) name = editBean.getTunnelName(curTunnel); // mysite.i2p is set in the installed i2ptunnel.config if (name != null && !name.equals("") && !name.equals("mysite.i2p") && !name.contains(" ") && name.endsWith(".i2p")) { %> <% } else { %> <% } // name %> <% } // b64 %>
<%=intl._t("Name")%> <%=intl._t("Type")%>
" value="<%=editBean.getTunnelName(curTunnel)%>" class="freetext tunnelName" /> <%=tunnelTypeName%>
<%=intl._t("Description")%> <%=intl._t("Auto Start Tunnel")%>
" value="<%=editBean.getTunnelDescription(curTunnel)%>" class="freetext tunnelDescriptionText" />
<% if ("streamrserver".equals(tunnelType)) { %> <%=intl._t("Access Point")%> <% } else { %> <%=intl._t("Target")%> <% } %>
<%=intl._t("Host")%>: " value="<%=editBean.getTargetHost(curTunnel)%>" class="freetext host" /> <%=intl._t("Port")%>: <% String value = editBean.getTargetPort(curTunnel); if (value == null || "".equals(value.trim())) { out.write(" ("); out.write(intl._t("required")); out.write(")"); } %> " value="<%=editBean.getTargetPort(curTunnel)%>" class="freetext port" placeholder="required" /> <% if (!"streamrserver".equals(tunnelType)) { %> <% } /* !streamrserver */ %>
<%=intl._t("Access Point")%>
<%=intl._t("Port")%>: <% String value4 = editBean.getClientPort(curTunnel); if (value4 == null || "".equals(value4.trim())) { out.write(" ("); out.write(intl._t("required")); out.write(")"); } %> " value="<%=editBean.getClientPort(curTunnel)%>" class="freetext port" placeholder="required" /> <%=intl._t("Reachable by")%>:
<%=intl._t("Website Hostname")%>
" value="<%=editBean.getSpoofedHost(curTunnel)%>" class="freetext" /> <%=intl._t("(leave blank for outproxies)")%>
<%=intl._t("Local destination")%> <%=intl._t("Private key file")%>
" tabindex="0" onblur="resetScrollLeft(this)"><%=editBean.getDestinationBase64(curTunnel)%>
<% String value3 = editBean.getPrivateKeyFile(curTunnel); if (value3 == null || "".equals(value3.trim())) { out.write(" ("); out.write(intl._t("required")); out.write(")"); } %> " value="<%=editBean.getPrivateKeyFile(curTunnel)%>" class="freetext" placeholder="required" />
" href="/imagegen/qr?s=320&t=<%=name%>&c=http%3a%2f%2f<%=name%>%2f%3fi2paddresshelper%3d<%=b64%>" target="_top"><%=intl._t("Generate QR Code")%> " href="/susidns/addressbook.jsp?book=private&hostname=<%=name%>&destination=<%=b64%>#add"><%=intl._t("Add to local addressbook")%> " href="register?tunnel=<%=curTunnel%>"><%=intl._t("Registration Authentication")%> <%=intl._t("Note: In order to enable QR code generation or registration authentication, configure the Website Hostname field (for websites) or the Name field (everything else) above with an .i2p suffixed hostname e.g. mynewserver.i2p")%>

<%=intl._t("Advanced networking options")%>

<% if (editBean.isAdvanced()) { %><% } // isAdvanced() %> <% if (editBean.isAdvanced()) { // repeat four options above for outbound %> <% } // isAdvanced() End outbound config section %> <% if (!"streamrserver".equals(tunnelType)) { %> <% } /* !streamrserver */ %> <% if (("httpserver".equals(tunnelType)) || ("httpbidirserver".equals(tunnelType))) { %> <% } // httpserver %> <% /***************** %> <% **********************/ %> <% int currentSigType = editBean.getSigType(curTunnel, tunnelType); if (true /* editBean.isAdvanced() */ ) { String disabled = editBean.canChangeSigType(curTunnel) ? "" : " disabled=\"disabled\" "; %> <% } // isAdvanced %> <% /* alternate dest, only if current dest is set and is DSA_SHA1 */ if (currentSigType == 0 && !"".equals(b64) && !"streamrserver".equals(tunnelType)) { %> <% String ab64 = editBean.getAltDestinationBase64(curTunnel); if (!"".equals(ab64)) { %> <% ab64 = ab64.replace("=", "%3d"); String name = editBean.getSpoofedHost(curTunnel); if (name == null || name.equals("")) name = editBean.getTunnelName(curTunnel); // mysite.i2p is set in the installed i2ptunnel.config if (name != null && !name.equals("") && !name.equals("mysite.i2p") && !name.contains(" ") && name.endsWith(".i2p")) { %> <% } // name %> <% } // ab64 %> <% } // currentSigType %>
<%=intl._t("Tunnel Options")%>
<%=intl._t("Inbound")%>
<%=intl._t("Length")%> <%=intl._t("Variance")%>
<%=intl._t("Count")%> <%=intl._t("Backup Count")%>
<%=intl._t("Outbound")%>
<%=intl._t("Length")%> <%=intl._t("Variance")%>
<%=intl._t("Count")%> <%=intl._t("Backup Count")%>
<%=intl._t("Profile")%>
<%=intl._t("Router I2CP Address")%>
<%=intl._t("Host")%>: " value="<%=editBean.getI2CPHost(curTunnel)%>" class="freetext" <% if (editBean.isRouterContext()) { %> readonly="readonly" <% } %> /> <%=intl._t("Port")%>: " value="<%=editBean.getI2CPPort(curTunnel)%>" class="freetext" <% if (editBean.isRouterContext()) { %> readonly="readonly" <% } %> />
<%=intl._t("Encrypt Leaseset")%>
<%=intl._t("Encryption Key")%> <%=intl._t("Generate New Key")%> (<%=intl._t("Tunnel must be stopped first")%>)
<%=intl._t("Restricted Access List")%>
<%=intl._t("Access List")%> (<%=intl._t("Specify clients, 1 per line")%>)
<%=intl._t("Server Access Options")%>
" value="<%=editBean.getUserAgents(curTunnel)%>" class="freetext" />
<%=intl._t("Server Throttling")%>
<% if (("httpserver".equals(tunnelType)) || ("httpbidirserver".equals(tunnelType))) { %> <% } // httpserver %>
<%=intl._t("Inbound connection limits (0=unlimited)")%>
<%=intl._t("Per Minute")%> <%=intl._t("Per Hour")%> <%=intl._t("Per Day")%>
<%=intl._t("Per Client")%> " value="<%=editBean.getLimitMinute(curTunnel)%>" class="freetext" /> " value="<%=editBean.getLimitHour(curTunnel)%>" class="freetext" /> " value="<%=editBean.getLimitDay(curTunnel)%>" class="freetext" />
<%=intl._t("Total")%> " value="<%=editBean.getTotalMinute(curTunnel)%>" class="freetext" /> " value="<%=editBean.getTotalHour(curTunnel)%>" class="freetext" /> " value="<%=editBean.getTotalDay(curTunnel)%>" class="freetext" />
<%=intl._t("Max concurrent connections (0=unlimited)")%>
" value="<%=editBean.getMaxStreams(curTunnel)%>" class="freetext" />
<%=intl._t("POST limits (0=unlimited)")%>
<%=intl._t("Per Period")%> <%=intl._t("Ban Duration")%>
<%=intl._t("Per Client")%> " value="<%=editBean.getPostMax(curTunnel)%>" class="freetext quantity"/> " value="<%=editBean.getPostBanTime(curTunnel)%>" class="freetext period"/> <%=intl._t("minutes")%>
<%=intl._t("Total")%> " value="<%=editBean.getPostTotalMax(curTunnel)%>" class="freetext quantity"/> " value="<%=editBean.getPostTotalBanTime(curTunnel)%>" class="freetext period"/> <%=intl._t("minutes")%>
<%=intl._t("POST limit period")%> " value="<%=editBean.getPostCheckTime(curTunnel)%>" class="freetext period"/> <%=intl._t("minutes")%>
<%=intl._t("Reduce tunnel quantity when idle")%>
<%=intl._t("Reduced tunnel count")%>: " value="<%=editBean.getReduceCount(curTunnel)%>" class="freetext quantity" /> <%=intl._t("Idle period")%>: " value="<%=editBean.getReduceTime(curTunnel)%>" class="freetext period" /> <%=intl._t("minutes")%>
<%=intl._t("New Certificate type")%>
" value="<%=editBean.getEffort(curTunnel)%>" class="freetext" />
<%=intl._t("Hashcash Calc Time")%> <%=intl._t("Hidden")%>
"<%=(editBean.getCert(curTunnel)==2 ? " checked=\"checked\"" : "")%> class="tickbox" />
<%=intl._t("Signed Certificate")%>
" value="<%=editBean.getSigner(curTunnel)%>" class="freetext" />
<%=intl._t("Modify Certificate")%> <%=intl._t("(Tunnel must be stopped first)")%>
<%=intl._t("Signature type")%> <%-- (<%=intl._t("Experts only! Changes B32!")%>) --%>
<% if (editBean.isSigTypeAvailable(1)) { %> <% } if (editBean.isSigTypeAvailable(2)) { %> <% } if (editBean.isSigTypeAvailable(3)) { %> <% } if (editBean.isSigTypeAvailable(7)) { %> <% } // isAvailable %>
<%=intl._t("Alternate private key file")%> (Ed25519-SHA-512)
" value="<%=editBean.getAltPrivateKeyFile(curTunnel)%>" />
<%=intl._t("Alternate local destination")%>
" onblur="resetScrollLeft(this)"><%=ab64%>
<%=editBean.getAltDestHashBase32(curTunnel)%>
" href="/imagegen/qr?s=320&t=<%=name%>&c=http%3a%2f%2f<%=name%>%2f%3fi2paddresshelper%3d<%=ab64%>" target="_top"><%=intl._t("Generate QR Code")%> " href="/susidns/addressbook.jsp?book=private&hostname=<%=name%>&destination=<%=ab64%>#add"><%=intl._t("Add to local addressbook")%> <% } else { %>
<%=intl._t("Note: In order to enable QR code generation or registration authentication, configure the Website Hostname field (for websites) or the Name field (everything else) above with an .i2p suffixed hostname e.g. mynewserver.i2p")%>
<%=intl._t("Custom options")%>
" value="<%=editBean.getCustomOptions(curTunnel)%>" />