% String tunnelTypeName; String tunnelType; if (curTunnel >= 0) { tunnelTypeName = editBean.getTunnelType(curTunnel); tunnelType = editBean.getInternalType(curTunnel); %>
<%=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 (isStreamrServer) { %> <%=intl._t("Access Point")%> <% } else { %> <%=intl._t("Target")%> <% } %> | |||
<%=intl._t("Host")%>: " value="<%=editBean.getTargetHost(curTunnel)%>" class="freetext host" /> | <% } /* !streamrserver */ %><%=intl._t("Port")%>: <% String value = editBean.getTargetPort(curTunnel); if (value == null || "".equals(value.trim())) { out.write(" ("); out.write(intl._t("required")); out.write(")"); } String asphelp = intl._t("Specify the local port this service should be accessible from"); String bsphelp = intl._t("Specify the port the server is running on"); String ptext = canChangePort ? (isStreamrServer ? asphelp : bsphelp) : stopFirst; String pdisabled = canChangePort ? "" : " readonly=\"readonly\" "; %> /> <% if (!isStreamrServer) { %> <% } /* !streamrserver */ %> | <% if (isBidirServer) { %>||
> <%=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(")"); } String csphelp = intl._t("Port required to access service (this can be a different port to the port the service is hosted on)"); String dsphelp = canChangePort ? csphelp : stopFirst; %> /> | <% } /* httpbidirserver */ if (isBidirServer || isStreamrServer) { %><%=intl._t("Reachable by")%>: <% String esphelp = intl._t("Listening interface (IP address) for client access (normally 127.0.0.1)"); String fsphelp = canChangePort ? esphelp : stopFirst; %> | <% } /* httpbidirserver || streamrserver */ %>||
<%=intl._t("Website Hostname")%> | |||
" value="<%=editBean.getSpoofedHost(curTunnel)%>" class="freetext" /> <%=intl._t("(leave blank for outproxies)")%> | |||
<%=intl._t("Local destination")%> <% String dhdisable = canChangeDest ? "" : tstopFirst; %> | > <%=intl._t("Private key file")%> | ||
" tabindex="0"><%=editBean.getDestinationBase64(curTunnel)%>
| <% String value3 = editBean.getPrivateKeyFile(curTunnel); if (value3 == null || "".equals(value3.trim())) { out.write(" ("); out.write(intl._t("required")); out.write(")"); } String htext = intl._t("Path to Private Key File"); String dtext = canChangeDest ? htext : stopFirst; String ddisabled = canChangeDest ? "" : " readonly=\"readonly\" "; %> /> | ||
<% if (hasImagegen) { %> " href="/imagegen/qr?s=320&t=<%=name%>&c=http%3a%2f%2f<%=name%>%2f%3fi2paddresshelper%3d<%=b64%>" target="_top"><%=intl._t("Generate QR Code")%> <% } if (hasSusiDNS) { %> " 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")%> <% if ("httpserver".equals(tunnelType) || isBidirServer) { %> " href="ssl?tunnel=<%=curTunnel%>"><%=intl._t("SSL Wizard")%> <% } %> | <% } 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")%> | <% } // name %>
<%=intl._t("Tunnel Length Options")%> | |
---|---|
<%=intl._t("Inbound")%> | |
<%=intl._t("Length")%> | <%=intl._t("Variance")%> |
<%=intl._t("Outbound")%> | |
<%=intl._t("Length")%> | <%=intl._t("Variance")%> |
<%=intl._t("Tunnel Quantity Options")%> | |
---|---|
<%=intl._t("Inbound")%> | <% } // isAdvanced() %>|
<%=intl._t("Count")%> | <%=intl._t("Backup Count")%> |
<%=intl._t("Outbound")%> | |
<%=intl._t("Count")%> | <%=intl._t("Backup Count")%> |
<%=intl._t("Tunnel Cryptography Options")%> | |
---|---|
<%=intl._t("Encrypt Leaseset")%> | |
<% String curEncryptMode = editBean.getEncryptMode(curTunnel); String cdisabled = canChangeEncType ? "" : " disabled=\"disabled\" "; %> | |
<% if (allowBlinding /* && editBean.isAdvanced() */) { %> <%=intl._t("Optional lookup password")%>: <% } // allowBlinding %> | <% // even if not shown, we need to preserve the param as a hidden input below // as it's the key we use to decrypt the PSK/DH LS on the router side boolean showSharedKey = curEncryptMode.equals("1") || curEncryptMode.equals("4") || curEncryptMode.equals("5"); if (showSharedKey) { %> <%=intl._t("Encryption Key")%> <% } // showSharedKey %> |
<% if (allowBlinding /* && editBean.isAdvanced() */) { String pwTitle = "title=\"" + (canChangeEncType ? intl._t("Set password required to access this service") : stopFirst) + '"'; %> value="<%=editBean.getBlindedPassword(curTunnel)%>" class="freetext password" <%=bidisabled%>/> <% } // allowBlinding %> | " size="44" id="leasesetKey" name="encryptKey" title="<%=intl._t("Encryption key required to access this service")%>" readonly="readonly" value="<%=editBean.getEncryptKey(curTunnel)%>" class="freetext"/> |
<%=intl._t("Revoke")%> <%=intl._t("Client Name")%> | <%=intl._t("Client Key")%> |
<%=intl._t("Add")%> <%=intl._t("Client Name")%> | <% if (dhClient) { %> <%=intl._t("Client Key")%> <% } // dhClient %> |
" size="44" name="nofilter_newClientName" class="freetext" /> | <% if (dhClient) { %> <% } // dhClient %> |
<%=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("Encryption types")%> | |
> > > | |
<%=intl._t("Alternate private key file")%> (Ed25519-SHA-512) | |
" value="<%=editBean.getAltPrivateKeyFile(curTunnel)%>" /> | |
<%=intl._t("Alternate local destination")%> | |
"><%=ab64%>
|
|
<%=editBean.getAltDestHashBase32(curTunnel)%> | |
<% if (hasImagegen) { %> " href="/imagegen/qr?s=320&t=<%=name%>&c=http%3a%2f%2f<%=name%>%2f%3fi2paddresshelper%3d<%=ab64%>" target="_top"><%=intl._t("Generate QR Code")%> <% } if (hasSusiDNS) { %> " href="/susidns/addressbook.jsp?book=private&hostname=<%=name%>&destination=<%=ab64%>#add"><%=intl._t("Add to local addressbook")%> <% } %> | |
<%=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("Tunnel Access Control Options")%> | |||||||
---|---|---|---|---|---|---|---|
<%=intl._t("Restricted Access List")%> | |||||||
<%=intl._t("Access List Description")%> (<%=intl._t("Specify clients, 1 per line")%>) | |||||||
<%=intl._t("Filter Definition File")%> | |||||||
<%=intl._t("You can define an advanced filter for this tunnel.")%> (<%=intl._t("Format Specification")%>) | |||||||
<%=intl._t("Server Access Options")%> | |||||||
" value="<%=editBean.getUserAgents(curTunnel)%>" class="freetext" /> | |||||||
<%=intl._t("Tunnel Performance Options")%> | |||||||
---|---|---|---|---|---|---|---|
<%=intl._t("Profile")%> | |||||||
<%=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("Server Throttling")%> | |||||||
<%=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("Router I2CP Address")%> | |
---|---|
<%=intl._t("Host")%>: " value="<%=editBean.getI2CPHost(curTunnel)%>" class="freetext" /> | <%=intl._t("Port")%>: " value="<%=editBean.getI2CPPort(curTunnel)%>" class="freetext" /> |
<%=intl._t("Custom options")%> | |
---|---|
" value="<%=editBean.getCustomOptions(curTunnel)%>" /> | |