PortMapper: Fix URL generation for IPv6 hosts

Console: Remove i2pwiki.i2p (ticket #2626)
This commit is contained in:
zzz
2019-10-01 16:09:17 +00:00
parent 830e08065b
commit 18ed1a6bb3
5 changed files with 67 additions and 35 deletions

View File

@ -63,7 +63,7 @@ public class HomeHelper extends HelperBase {
_x("I2P Forum") + S + _x("Community forum") + S + "http://i2pforum.i2p/" + S + I + "group.png" + S + _x("I2P Forum") + S + _x("Community forum") + S + "http://i2pforum.i2p/" + S + I + "group.png" + S +
//"git.repo.i2p" + S + _x("A public anonymous Git hosting site - supports pulling via Git and HTTP and pushing via SSH") + S + "http://git.repo.i2p/" + S + I + "git-logo.png" + S + //"git.repo.i2p" + S + _x("A public anonymous Git hosting site - supports pulling via Git and HTTP and pushing via SSH") + S + "http://git.repo.i2p/" + S + I + "git-logo.png" + S +
//"hiddengate [ru]" + S + _x("Russian I2P-related wiki") + S + "http://hiddengate.i2p/" + S + I + "hglogo32.png" + S + //"hiddengate [ru]" + S + _x("Russian I2P-related wiki") + S + "http://hiddengate.i2p/" + S + I + "hglogo32.png" + S +
_x("I2P Wiki") + S + _x("Anonymous wiki - share the knowledge") + S + "http://i2pwiki.i2p/" + S + I + "i2pwiki_logo.png" + S + //_x("I2P Wiki") + S + _x("Anonymous wiki - share the knowledge") + S + "http://i2pwiki.i2p/" + S + I + "i2pwiki_logo.png" + S +
//"Ident " + _x("Microblog") + S + _x("Your premier microblogging service on I2P") + S + "http://id3nt.i2p/" + S + I + "ident_icon_blue.png" + S + //"Ident " + _x("Microblog") + S + _x("Your premier microblogging service on I2P") + S + "http://id3nt.i2p/" + S + I + "ident_icon_blue.png" + S +
//_x("Javadocs") + S + _x("Technical documentation") + S + "http://i2p-javadocs.i2p/" + S + I + "education.png" + S + //_x("Javadocs") + S + _x("Technical documentation") + S + "http://i2p-javadocs.i2p/" + S + I + "education.png" + S +
//"jisko.i2p" + S + _x("Simple and fast microblogging website") + S + "http://jisko.i2p/" + S + I + "jisko_console_icon.png" + S + //"jisko.i2p" + S + _x("Simple and fast microblogging website") + S + "http://jisko.i2p/" + S + I + "jisko_console_icon.png" + S +
@ -196,18 +196,10 @@ public class HomeHelper extends HelperBase {
for (App app : apps) { for (App app : apps) {
String url; String url;
if (app.name.equals(website) && app.url.equals("http://127.0.0.1:7658/")) { if (app.name.equals(website) && app.url.equals("http://127.0.0.1:7658/")) {
int port = pm.getPort(PortMapper.SVC_EEPSITE);
int sslPort = pm.getPort(PortMapper.SVC_HTTPS_EEPSITE);
if (port <= 0 && sslPort <= 0)
continue;
// fixup eepsite link // fixup eepsite link
if (sslPort > 0) { url = SummaryBarRenderer.getEepsiteURL(pm);
url = "https://" + pm.getActualHost(PortMapper.SVC_HTTPS_EEPSITE, "127.0.0.1") + if (url == null)
':' + sslPort + '/'; continue;
} else {
url = "http://" + pm.getActualHost(PortMapper.SVC_EEPSITE, "127.0.0.1") +
':' + port + '/';
}
} else { } else {
url = app.url; url = app.url;
// check for disabled webapps and other things // check for disabled webapps and other things

View File

@ -231,26 +231,15 @@ class SummaryBarRenderer {
.append("</a>\n"); .append("</a>\n");
} }
int port = pm.getPort(PortMapper.SVC_EEPSITE); String url = getEepsiteURL(pm);
int sslPort = pm.getPort(PortMapper.SVC_HTTPS_EEPSITE); if (url != null) {
if (sslPort > 0 || port > 0) { buf.append("<a href=\"")
String svc; .append(url)
if (sslPort > 0) { .append("\" target=\"_blank\" title=\"")
buf.append("<a href=\"https://"); .append(_t("Local web server"))
svc = PortMapper.SVC_HTTPS_EEPSITE; .append("\">")
port = sslPort; .append(nbsp(_t("Web Server")))
} else { .append("</a>\n");
buf.append("<a href=\"http://");
svc = PortMapper.SVC_EEPSITE;
}
buf.append(pm.getActualHost(svc, "127.0.0.1"))
.append(':')
.append(port)
.append("/\" target=\"_blank\" title=\"")
.append(_t("Local web server"))
.append("\">")
.append(nbsp(_t("Web Server")))
.append("</a>\n");
} }
buf.append(NavHelper.getClientAppLinks(_context)) buf.append(NavHelper.getClientAppLinks(_context))
@ -259,6 +248,37 @@ class SummaryBarRenderer {
return buf.toString(); return buf.toString();
} }
/**
* @return null if none
* @since 0.9.43 split out from above, used by HomeHelper, fixed for IPv6
*/
static String getEepsiteURL(PortMapper pm) {
int port = pm.getPort(PortMapper.SVC_EEPSITE);
int sslPort = pm.getPort(PortMapper.SVC_HTTPS_EEPSITE);
if (port <= 0 && sslPort <= 0)
return null;
String svc;
StringBuilder buf = new StringBuilder(32);
if (sslPort > 0) {
buf.append("https://");
svc = PortMapper.SVC_HTTPS_EEPSITE;
port = sslPort;
} else {
buf.append("http://");
svc = PortMapper.SVC_EEPSITE;
}
String host = pm.getActualHost(svc, "127.0.0.1");
if (host.contains(":"))
buf.append('[');
buf.append(host);
if (host.contains(":"))
buf.append(']');
buf.append(':')
.append(port)
.append('/');
return buf.toString();
}
public String renderI2PInternalsHTML() { public String renderI2PInternalsHTML() {
StringBuilder buf = new StringBuilder(512); StringBuilder buf = new StringBuilder(512);
buf.append("<h3><a href=\"/config\" target=\"_top\" title=\"") buf.append("<h3><a href=\"/config\" target=\"_top\" title=\"")

View File

@ -280,10 +280,15 @@ public class PortMapper {
int httpPort = getPort(SVC_CONSOLE, DEFAULT_CONSOLE_PORT); int httpPort = getPort(SVC_CONSOLE, DEFAULT_CONSOLE_PORT);
int httpsPort = getPort(SVC_HTTPS_CONSOLE); int httpsPort = getPort(SVC_HTTPS_CONSOLE);
boolean httpsOnly = httpsPort > 0 && httpHost.equals(unset) && !httpsHost.equals(unset); boolean httpsOnly = httpsPort > 0 && httpHost.equals(unset) && !httpsHost.equals(unset);
if (httpsOnly) if (httpsOnly) {
if (httpsHost.contains(":"))
return "https://[" + httpsHost + "]:" + httpsPort + '/';
return "https://" + httpsHost + ':' + httpsPort + '/'; return "https://" + httpsHost + ':' + httpsPort + '/';
}
if (httpHost.equals(unset)) if (httpHost.equals(unset))
httpHost = DEFAULT_HOST; httpHost = DEFAULT_HOST;
if (httpHost.contains(":"))
return "http://[" + httpHost + "]:" + httpPort + '/';
return "http://" + httpHost + ':' + httpPort + '/'; return "http://" + httpHost + ':' + httpPort + '/';
} }
@ -298,10 +303,15 @@ public class PortMapper {
int httpPort = getPort(SVC_CONSOLE); int httpPort = getPort(SVC_CONSOLE);
int httpsPort = getPort(SVC_HTTPS_CONSOLE, DEFAULT_HTTPS_CONSOLE_PORT); int httpsPort = getPort(SVC_HTTPS_CONSOLE, DEFAULT_HTTPS_CONSOLE_PORT);
boolean httpOnly = httpPort > 0 && httpsHost.equals(unset) && !httpHost.equals(unset); boolean httpOnly = httpPort > 0 && httpsHost.equals(unset) && !httpHost.equals(unset);
if (httpOnly) if (httpOnly) {
if (httpHost.contains(":"))
return "http://[" + httpHost + "]:" + httpPort + '/';
return "http://" + httpHost + ':' + httpPort + '/'; return "http://" + httpHost + ':' + httpPort + '/';
}
if (httpsHost.equals(unset)) if (httpsHost.equals(unset))
return "http://" + DEFAULT_HOST + ':' + DEFAULT_CONSOLE_PORT + '/'; return "http://" + DEFAULT_HOST + ':' + DEFAULT_CONSOLE_PORT + '/';
if (httpsHost.contains(":"))
return "https://[" + httpsHost + "]:" + httpsPort + '/';
return "https://" + httpsHost + ':' + httpsPort + '/'; return "https://" + httpsHost + ':' + httpsPort + '/';
} }

View File

@ -1,3 +1,13 @@
2019-10-01 zzz
* Console: Remove i2pwiki.i2p (ticket #2626)
* PortMapper: Fix URL generation for IPv6 hosts
2019-09-21 zzz
* Tomcat 8.5.46
2019-09-19 zzz
* i2ptunnel: Support quoting for custom options (ticket #2603)
2019-09-18 zzz 2019-09-18 zzz
* I2CP: * I2CP:
- More BlindingInfo serialization fixes - More BlindingInfo serialization fixes

View File

@ -18,7 +18,7 @@ public class RouterVersion {
/** deprecated */ /** deprecated */
public final static String ID = "Monotone"; public final static String ID = "Monotone";
public final static String VERSION = CoreVersion.VERSION; public final static String VERSION = CoreVersion.VERSION;
public final static long BUILD = 8; public final static long BUILD = 9;
/** for example "-test" */ /** for example "-test" */
public final static String EXTRA = ""; public final static String EXTRA = "";