<%
} %>
<%
// 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) { %>
<% } %>
<%=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;
%>
/>
<%=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
%>
<%
} // b64
%>
<%=intl._t("Advanced networking options")%>
<%=intl._t("Tunnel Length Options")%>
<% if (editBean.isAdvanced()) {
%>
<%=intl._t("Inbound")%>
<%
} // isAdvanced()
%>
<%=intl._t("Length")%>
<%=intl._t("Variance")%>
<% if (editBean.isAdvanced()) {
// repeat four options above for outbound
%>
<%=intl._t("Outbound")%>
<%=intl._t("Length")%>
<%=intl._t("Variance")%>
<%=intl._t("Tunnel Quantity Options")%>
<%=intl._t("Inbound")%>
<%=intl._t("Count")%>
<%=intl._t("Backup Count")%>
<%=intl._t("Outbound")%>
<%=intl._t("Count")%>
<%=intl._t("Backup Count")%>
<%
} // isAdvanced() End outbound config section
%>
<%
boolean canChangeEncType = editBean.canChangeEncType(curTunnel);
String ehdisabled = canChangeEncType ? "" : tstopFirst;
// TODO, encrypted + offline is unimplemented
if (!editBean.getIsOfflineKeys(curTunnel)) {
%>
<%
// 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
%>
<%=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
} // ab64
} // currentSigType
%>
<%=intl._t("Tunnel Access Control Options")%>
<%=intl._t("Restricted Access List")%>
<%=intl._t("Access List Description")%> (<%=intl._t("Specify clients, 1 per line")%>)