forked from I2P_Developers/i2p.i2p
* configclients.jsp:
- Add form for I2CP options - Fix HTML errors
This commit is contained in:
@ -9,6 +9,7 @@ import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
|
||||
import net.i2p.router.client.ClientManagerFacadeImpl;
|
||||
import net.i2p.router.startup.ClientAppConfig;
|
||||
import net.i2p.router.startup.LoadClientAppsJob;
|
||||
|
||||
@ -35,6 +36,10 @@ public class ConfigClientsHandler extends FormHandler {
|
||||
saveClientChanges();
|
||||
return;
|
||||
}
|
||||
if (_action.equals(_("Save Interface Configuration"))) {
|
||||
saveInterfaceChanges();
|
||||
return;
|
||||
}
|
||||
if (_action.equals(_("Save WebApp Configuration"))) {
|
||||
saveWebAppChanges();
|
||||
return;
|
||||
@ -193,7 +198,7 @@ public class ConfigClientsHandler extends FormHandler {
|
||||
String[] arr = (String[]) _settings.get(key);
|
||||
if (arr == null)
|
||||
return null;
|
||||
return arr[0];
|
||||
return arr[0].trim();
|
||||
}
|
||||
|
||||
private void startClient(int i) {
|
||||
@ -337,4 +342,37 @@ public class ConfigClientsHandler extends FormHandler {
|
||||
_log.error("Error starting plugin " + app, e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle interface form
|
||||
* @since 0.8.3
|
||||
*/
|
||||
private void saveInterfaceChanges() {
|
||||
String port = getJettyString("port");
|
||||
if (port != null)
|
||||
_context.router().setConfigSetting(ClientManagerFacadeImpl.PROP_CLIENT_PORT, port);
|
||||
String intfc = getJettyString("interface");
|
||||
if (intfc != null)
|
||||
_context.router().setConfigSetting(ClientManagerFacadeImpl.PROP_CLIENT_HOST, intfc);
|
||||
String user = getJettyString("user");
|
||||
if (user != null)
|
||||
_context.router().setConfigSetting(ConfigClientsHelper.PROP_USER, user);
|
||||
String pw = getJettyString("pw");
|
||||
if (pw != null)
|
||||
_context.router().setConfigSetting(ConfigClientsHelper.PROP_PW, pw);
|
||||
String mode = getJettyString("mode");
|
||||
boolean disabled = "0".equals(mode);
|
||||
boolean ssl = "2".equals(mode);
|
||||
_context.router().setConfigSetting(ConfigClientsHelper.PROP_DISABLE_EXTERNAL,
|
||||
Boolean.toString(disabled));
|
||||
_context.router().setConfigSetting(ConfigClientsHelper.PROP_ENABLE_SSL,
|
||||
Boolean.toString(ssl));
|
||||
_context.router().setConfigSetting(ConfigClientsHelper.PROP_AUTH,
|
||||
Boolean.toString((_settings.get("auth") != null)));
|
||||
boolean all = "0.0.0.0".equals(intfc) || "0:0:0:0:0:0:0:0".equals(intfc) ||
|
||||
"::".equals(intfc);
|
||||
_context.router().setConfigSetting(ConfigClientsHelper.BIND_ALL_INTERFACES, Boolean.toString(all));
|
||||
_context.router().saveConfig();
|
||||
addFormNotice(_("Interface configuration saved successfully - restart required to take effect."));
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,9 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
@ -8,13 +11,90 @@ import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import net.i2p.router.client.ClientManagerFacadeImpl;
|
||||
import net.i2p.router.startup.ClientAppConfig;
|
||||
import net.i2p.router.transport.Addresses;
|
||||
|
||||
public class ConfigClientsHelper extends HelperBase {
|
||||
private String _edit;
|
||||
|
||||
/** from ClientListenerRunner */
|
||||
public static final String BIND_ALL_INTERFACES = "i2cp.tcp.bindAllInterfaces";
|
||||
/** from ClientManager */
|
||||
public static final String PROP_DISABLE_EXTERNAL = "i2cp.disableInterface";
|
||||
public static final String PROP_ENABLE_SSL = "i2cp.SSL";
|
||||
/** from ClientMessageEventListener */
|
||||
public static final String PROP_AUTH = "i2cp.auth";
|
||||
public static final String PROP_USER = "i2cp.username";
|
||||
public static final String PROP_PW = "i2cp.password";
|
||||
|
||||
public ConfigClientsHelper() {}
|
||||
|
||||
|
||||
/** @since 0.8.3 */
|
||||
public String getPort() {
|
||||
return _context.getProperty(ClientManagerFacadeImpl.PROP_CLIENT_PORT,
|
||||
Integer.toString(ClientManagerFacadeImpl.DEFAULT_PORT));
|
||||
}
|
||||
|
||||
/** @since 0.8.3 */
|
||||
public String getUser() {
|
||||
return _context.getProperty(PROP_USER, "");
|
||||
}
|
||||
|
||||
/** @since 0.8.3 */
|
||||
public String getPw() {
|
||||
return _context.getProperty(PROP_PW, "");
|
||||
}
|
||||
|
||||
/** @since 0.8.3 */
|
||||
public String i2cpModeChecked(int mode) {
|
||||
boolean disabled = _context.getBooleanProperty(PROP_DISABLE_EXTERNAL);
|
||||
boolean ssl = _context.getBooleanProperty(PROP_ENABLE_SSL);
|
||||
if ((mode == 0 && disabled) ||
|
||||
(mode == 1 && (!disabled) && (!ssl)) ||
|
||||
(mode == 2 && (!disabled) && ssl))
|
||||
return "checked=\"true\"";
|
||||
return "";
|
||||
}
|
||||
|
||||
/** @since 0.8.3 */
|
||||
public String getAuth() {
|
||||
boolean enabled = _context.getBooleanProperty(PROP_AUTH);
|
||||
if (enabled)
|
||||
return "checked=\"true\"";
|
||||
return "";
|
||||
}
|
||||
|
||||
/** @since 0.8.3 */
|
||||
public String[] intfcAddresses() {
|
||||
String[] addrs = Addresses.getAllAddresses();
|
||||
List<String> aList = new ArrayList();
|
||||
aList.addAll(Arrays.asList(addrs));
|
||||
boolean ipv6 = false;
|
||||
for (String a : aList) {
|
||||
if (a.indexOf(':') >= 0) {
|
||||
ipv6 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!aList.contains("0.0.0.0"))
|
||||
aList.add("0.0.0.0");
|
||||
if (ipv6 && !aList.contains("0:0:0:0:0:0:0:0"))
|
||||
aList.add("0:0:0:0:0:0:0:0"); // we could do "::" but all the other ones are probably in long form
|
||||
Collections.sort(aList);
|
||||
return aList.toArray(addrs);
|
||||
}
|
||||
|
||||
/** @since 0.8.3 */
|
||||
public boolean isIFSelected(String addr) {
|
||||
boolean bindAll = _context.getBooleanProperty(BIND_ALL_INTERFACES);
|
||||
if (bindAll && addr.equals("0.0.0.0") || addr.equals("::"))
|
||||
return true;
|
||||
String host = _context.getProperty(ClientManagerFacadeImpl.PROP_CLIENT_HOST,
|
||||
ClientManagerFacadeImpl.DEFAULT_HOST);
|
||||
return (host.equals(addr));
|
||||
}
|
||||
|
||||
public void setEdit(String edit) {
|
||||
if (edit == null)
|
||||
return;
|
||||
@ -92,9 +172,9 @@ public class ConfigClientsHelper extends HelperBase {
|
||||
continue;
|
||||
StringBuilder desc = new StringBuilder(256);
|
||||
desc.append("<table border=\"0\">")
|
||||
.append("<tr><td><b>").append(_("Version")).append("<td>").append(stripHTML(appProps, "version"))
|
||||
.append("<tr><td><b>").append(_("Version")).append("</b></td><td>").append(stripHTML(appProps, "version"))
|
||||
.append("<tr><td><b>")
|
||||
.append(_("Signed by")).append("<td>");
|
||||
.append(_("Signed by")).append("</b></td><td>");
|
||||
String s = stripHTML(appProps, "signer");
|
||||
if (s != null) {
|
||||
if (s.indexOf("@") > 0)
|
||||
@ -111,13 +191,13 @@ public class ConfigClientsHelper extends HelperBase {
|
||||
if (ms > 0) {
|
||||
String date = (new SimpleDateFormat("yyyy-MM-dd HH:mm")).format(new Date(ms));
|
||||
desc.append("<tr><td><b>")
|
||||
.append(_("Date")).append("<td>").append(date);
|
||||
.append(_("Date")).append("</b></td><td>").append(date);
|
||||
}
|
||||
}
|
||||
s = stripHTML(appProps, "author");
|
||||
if (s != null) {
|
||||
desc.append("<tr><td><b>")
|
||||
.append(_("Author")).append("<td>");
|
||||
.append(_("Author")).append("</b></td><td>");
|
||||
if (s.indexOf("@") > 0)
|
||||
desc.append("<a href=\"mailto:").append(s).append("\">").append(s).append("</a>");
|
||||
else
|
||||
@ -128,12 +208,12 @@ public class ConfigClientsHelper extends HelperBase {
|
||||
s = stripHTML(appProps, "description");
|
||||
if (s != null) {
|
||||
desc.append("<tr><td><b>")
|
||||
.append(_("Description")).append("<td>").append(s);
|
||||
.append(_("Description")).append("</b></td><td>").append(s);
|
||||
}
|
||||
s = stripHTML(appProps, "license");
|
||||
if (s != null) {
|
||||
desc.append("<tr><td><b>")
|
||||
.append(_("License")).append("<td>").append(s);
|
||||
.append(_("License")).append("</b></td><td>").append(s);
|
||||
}
|
||||
s = stripHTML(appProps, "websiteURL");
|
||||
if (s != null) {
|
||||
|
Reference in New Issue
Block a user