i2ptunnel: Prevent changing enc type on running tunnel

This commit is contained in:
zzz
2020-04-30 13:38:38 +00:00
parent 634802c008
commit d7b5783674
3 changed files with 16 additions and 8 deletions

View File

@@ -259,6 +259,13 @@ public class EditBean extends IndexBean {
return getTunnelStatus(tunnel) == GeneralHelper.NOT_RUNNING;
}
/** @since 0.9.46 */
public boolean canChangeEncType(int tunnel) {
if (tunnel < 0)
return true;
return getTunnelStatus(tunnel) == GeneralHelper.NOT_RUNNING;
}
/**
* @param encType code
* @since 0.9.44
@@ -508,8 +515,7 @@ public class EditBean extends IndexBean {
public String getQuantityOptions(int tunnel, int mode) {
int tunnelQuantity = mode == 2 ? getTunnelQuantityOut(tunnel, DFLT_QUANTITY)
: getTunnelQuantity(tunnel, DFLT_QUANTITY);
boolean advanced = _context.getBooleanProperty(PROP_ADVANCED);
int maxQuantity = advanced ? MAX_ADVANCED_QUANTITY :
int maxQuantity = isAdvanced() ? MAX_ADVANCED_QUANTITY :
(isClient(tunnel) ? MAX_CLIENT_QUANTITY : MAX_SERVER_QUANTITY);
if (tunnelQuantity > maxQuantity)
maxQuantity = tunnelQuantity;

View File

@@ -542,6 +542,7 @@
<%
boolean has0 = editBean.hasEncType(curTunnel, 0);
boolean has4 = editBean.hasEncType(curTunnel, 4);
String edisabled = editBean.canChangeEncType(curTunnel) ? "" : " disabled=\"disabled\" ";
%>
<tr>
<th colspan="2">
@@ -550,15 +551,15 @@
</tr><tr>
<td colspan="2">
<span class="multiOption">
<label><input value="0" type="radio" id="startOnLoad" name="encType" <%=(has0 ? " checked=\"checked\"" : "")%> class="tickbox" />
<label><input value="0" type="radio" id="startOnLoad" name="encType" <%=(has0 ? " checked=\"checked\"" : edisabled)%> class="tickbox" />
ElGamal-2048</label>
</span>
<span class="multiOption">
<label><input value="4" type="radio" id="startOnLoad" name="encType" <%=(has4 ? " checked=\"checked\"" : "")%> class="tickbox" />
<label><input value="4" type="radio" id="startOnLoad" name="encType" <%=(has4 ? " checked=\"checked\"" : edisabled)%> class="tickbox" />
ECIES-X25519 (<%=intl._t("Experts only!")%>)</label>
</span>
<span class="multiOption">
<label><input value="4,0" type="radio" id="startOnLoad" name="encType" <%=((has0 && has4) ? " checked=\"checked\"" : "")%> class="tickbox" />
<label><input value="4,0" type="radio" id="startOnLoad" name="encType" <%=((has0 && has4) ? " checked=\"checked\"" : edisabled)%> class="tickbox" />
<%=intl._t("Both encryption types")%> (<%=intl._t("Experts only!")%>)</label>
</span>
</td>

View File

@@ -649,6 +649,7 @@
<%
boolean has0 = editBean.hasEncType(curTunnel, 0);
boolean has4 = editBean.hasEncType(curTunnel, 4);
String edisabled = editBean.canChangeEncType(curTunnel) ? "" : " disabled=\"disabled\" ";
%>
<tr>
<th colspan="2">
@@ -657,15 +658,15 @@
</tr><tr>
<td colspan="2">
<span class="multiOption">
<label><input value="0" type="radio" id="startOnLoad" name="encType" <%=(has0 ? " checked=\"checked\"" : "")%> class="tickbox" />
<label><input value="0" type="radio" id="startOnLoad" name="encType" <%=(has0 ? " checked=\"checked\"" : edisabled)%> class="tickbox" />
ElGamal-2048</label>
</span>
<span class="multiOption">
<label><input value="4" type="radio" id="startOnLoad" name="encType" <%=(has4 ? " checked=\"checked\"" : "")%> class="tickbox" />
<label><input value="4" type="radio" id="startOnLoad" name="encType" <%=(has4 ? " checked=\"checked\"" : edisabled)%> class="tickbox" />
ECIES-X25519 (<%=intl._t("Experts only!")%>)</label>
</span>
<span class="multiOption">
<label><input value="4,0" type="radio" id="startOnLoad" name="encType" <%=((has0 && has4) ? " checked=\"checked\"" : "")%> class="tickbox" />
<label><input value="4,0" type="radio" id="startOnLoad" name="encType" <%=((has0 && has4) ? " checked=\"checked\"" : edisabled)%> class="tickbox" />
<%=intl._t("Both encryption types")%> (<%=intl._t("Experts only!")%>)</label>
</span>
</td>