Changeset 6eb09bd for apps


Ignore:
Timestamp:
Mar 14, 2018 2:09:41 PM (3 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
948bbae
Parents:
66ee7b5
Message:

i2ptunnel: Check port mapper for webapp presence (ticket #2161)

Location:
apps/i2ptunnel
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java

    r66ee7b5 r6eb09bd  
    774774                                                       "<a href=\"" + conflictURL + "\">").getBytes("UTF-8"));
    775775                                            out.write(_t("Conflicting address helper destination").getBytes("UTF-8"));
    776                                             out.write(("</a></th></tr>\n<tr><td align=\"center\">" +
     776                                            out.write(("</a></th></tr>\n").getBytes("UTF-8"));
     777                                            if (_context.portMapper().getPort(PortMapper.SVC_IMAGEGEN) > 0) {
     778                                                out.write(("<tr><td align=\"center\">" +
    777779                                                       "<a href=\"" + trustedURL + "\">" +
    778780                                                       "<img src=\"" +
    779781                                                       conURL + "imagegen/id?s=160&amp;c=" +
    780782                                                       h1.toBase64().replace("=", "%3d") +
    781                                                       "\" width=\"160\" height=\"160\"></a>\n").getBytes("UTF-8"));
    782                                             out.write(("</td>\n<td align=\"center\">" +
     783                                                      "\" width=\"160\" height=\"160\"></a>\n" +
     784                                                      "</td>\n<td align=\"center\">" +
    783785                                                       "<a href=\"" + conflictURL + "\">" +
    784786                                                       "<img src=\"" +
    785787                                                       conURL + "imagegen/id?s=160&amp;c=" +
    786788                                                       h2.toBase64().replace("=", "%3d") +
    787                                                        "\" width=\"160\" height=\"160\"></a>\n").getBytes("UTF-8"));
    788                                             out.write("</td></tr></table>".getBytes("UTF-8"));
     789                                                       "\" width=\"160\" height=\"160\"></a>\n" +
     790                                                       "</td></tr>").getBytes("UTF-8"));
     791                                            }
     792                                            out.write("</table>".getBytes("UTF-8"));
    789793                                        }
    790794                                        out.write("</div>".getBytes("UTF-8"));
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java

    r66ee7b5 r6eb09bd  
    88import java.io.FileInputStream;
    99import java.io.IOException;
     10import java.io.InputStreamReader;
    1011import java.io.OutputStream;
    1112import java.io.OutputStreamWriter;
    1213import java.io.Reader;
     14import java.io.StringReader;
    1315import java.io.UnsupportedEncodingException;
    1416import java.io.Writer;
     
    543545        StringBuilder out = new StringBuilder(2048);
    544546        try {
     547            boolean hasSusiDNS = ctx.portMapper().getPort(PortMapper.SVC_SUSIDNS) > 0;
     548            boolean hasI2PTunnel = ctx.portMapper().getPort(PortMapper.SVC_I2PTUNNEL) > 0;
     549            if (hasSusiDNS && hasI2PTunnel) {
     550                reader = new TranslateReader(ctx, BUNDLE_NAME, new FileInputStream(file));
     551            } else {
     552                // strip out the addressbook links
     553                reader = new InputStreamReader(new FileInputStream(file), "UTF-8");
     554                int len;
     555                while((len = reader.read(buf)) > 0) {
     556                    out.append(buf, 0, len);
     557                }
     558                reader.close();
     559                if (!hasSusiDNS) {
     560                    DataHelper.replace(out, "<a href=\"http://127.0.0.1:7657/susidns/index\">_(\"Addressbook\")</a>", "");
     561                }
     562                if (!hasI2PTunnel) {
     563                    // there are also a couple in auth-header.ht that aren't worth stripping, for auth only
     564                    DataHelper.replace(out,
     565                                       "<span class=\"script\">_(\"You may want to {0}retry{1} as this will randomly reselect an outproxy from the pool you have defined {2}here{3} (if you have more than one configured).\", \"<a href=\\\"javascript:parent.window.location.reload()\\\">\", \"</a>\", \"<a href=\\\"http://127.0.0.1:7657/i2ptunnel/index.jsp\\\">\", \"</a>\")</span>",
     566                                       "");
     567                    DataHelper.replace(out,
     568                                       "<noscript>_(\"You may want to retry as this will randomly reselect an outproxy from the pool you have defined {0}here{1} (if you have more than one configured).\", \"<a href=\\\"http://127.0.0.1:7657/i2ptunnel/index.jsp\\\">\", \"</a>\")</noscript>",
     569                                       "");
     570                    DataHelper.replace(out,
     571                                       "_(\"If you continue to have trouble you may want to edit your outproxy list {0}here{1}.\", \"<a href=\\\"http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=0\\\">\", \"</a>\")",
     572                                       "");
     573                }
     574                String s = out.toString();
     575                out.setLength(0);
     576                reader = new TranslateReader(ctx, BUNDLE_NAME, new StringReader(s));
     577            }
    545578            int len;
    546             reader = new TranslateReader(ctx, BUNDLE_NAME, new FileInputStream(file));
    547579            while((len = reader.read(buf)) > 0) {
    548580                out.append(buf, 0, len);
    549581            }
    550             String rv = out.toString();
    551582            // Do we need to replace http://127.0.0.1:7657 console links in the error page?
    552583            // Get the registered host and port from the PortMapper.
    553584            String url = ctx.portMapper().getConsoleURL();
    554585            if (!url.equals("http://127.0.0.1:7657/")) {
    555                 rv = rv.replace("http://127.0.0.1:7657/", url);
    556             }
     586                DataHelper.replace(out, "http://127.0.0.1:7657/", url);
     587            }
     588            String rv = out.toString();
    557589            return rv;
    558590        } finally {
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java

    r66ee7b5 r6eb09bd  
    1919import net.i2p.i2ptunnel.I2PTunnelHTTPClient;
    2020import net.i2p.util.FileUtil;
     21import net.i2p.util.PortMapper;
    2122import net.i2p.util.Translate;
    2223
     
    200201            tbook = book;
    201202
    202         String conURL = I2PAppContext.getGlobalContext().portMapper().getConsoleURL();
     203        PortMapper pm = I2PAppContext.getGlobalContext().portMapper();
     204        String conURL = pm.getConsoleURL();
    203205        out.write(("HTTP/1.1 200 OK\r\n"+
    204206                  "Content-Type: text/html; charset=UTF-8\r\n"+
     
    215217                  "<div class=logo>\n" +
    216218                  "<a href=\"" + conURL + "\" title=\"" + _t("Router Console") + "\"><img src=\"http://proxy.i2p/themes/console/images/i2plogo.png\" alt=\"I2P Router Console\" border=\"0\"></a><hr>\n" +
    217                   "<a href=\"" + conURL + "config\">" + _t("Configuration") + "</a> <a href=\"" + conURL + "help.jsp\">" + _t("Help") + "</a> <a href=\"" + conURL + "susidns/index\">" + _t("Addressbook") + "</a>\n" +
    218                   "</div>" +
     219                  "<a href=\"" + conURL + "config\">" + _t("Configuration") + "</a> <a href=\"" + conURL + "help.jsp\">" + _t("Help") + "</a>").getBytes("UTF-8"));
     220        if (pm.getPort(PortMapper.SVC_SUSIDNS) > 0)
     221            out.write((" <a href=\"" + conURL + "susidns/index\">" + _t("Addressbook") + "</a>\n").getBytes("UTF-8"));
     222        out.write(("</div>" +
    219223                  "<div class=warning id=warning>\n" +
    220224                  "<h3>" +
  • apps/i2ptunnel/jsp/editServer.jsi

    r66ee7b5 r6eb09bd  
    218218
    219219            String b64 = editBean.getDestinationBase64(curTunnel);
     220            net.i2p.util.PortMapper pm = net.i2p.I2PAppContext.getGlobalContext().portMapper();
     221            boolean hasImagegen = pm.getPort(net.i2p.util.PortMapper.SVC_IMAGEGEN) > 0;
     222            boolean hasSusiDNS = pm.getPort(net.i2p.util.PortMapper.SVC_SUSIDNS) > 0;
    220223            if (!"".equals(b64)) {
    221224         %>
     
    232235
    233236            <td class="buttons" colspan="2">
     237              <%
     238                    if (hasImagegen) {
     239                %>
    234240              <a class="control" title="<%=intl._t("Generate a QR Code for this domain")%>" href="/imagegen/qr?s=320&amp;t=<%=name%>&amp;c=http%3a%2f%2f<%=name%>%2f%3fi2paddresshelper%3d<%=b64%>" target="_top"><%=intl._t("Generate QR Code")%></a>
     241              <%
     242                    }
     243                    if (hasSusiDNS) {
     244                %>
    235245              <a class="control" title="<%=intl._t("Add to Private addressbook")%>" href="/susidns/addressbook.jsp?book=private&amp;hostname=<%=name%>&amp;destination=<%=b64%>#add"><%=intl._t("Add to local addressbook")%></a>
     246              <%
     247                    }
     248                %>
    236249              <a class="control" title="<%=intl._t("Register, unregister or change details for hostname")%>" href="register?tunnel=<%=curTunnel%>"><%=intl._t("Registration Authentication")%></a>
    237250            </td>
     
    888901        <tr>
    889902            <td class="buttons" colspan="2">
     903              <%
     904                    if (hasImagegen) {
     905                %>
    890906              <a class="control" title="<%=intl._t("Generate QR Code")%>" href="/imagegen/qr?s=320&amp;t=<%=name%>&amp;c=http%3a%2f%2f<%=name%>%2f%3fi2paddresshelper%3d<%=ab64%>" target="_top"><%=intl._t("Generate QR Code")%></a>
     907              <%
     908                    }
     909                    if (hasSusiDNS) {
     910                %>
    891911              <a class="control" title="<%=intl._t("Add to Private addressbook")%>" href="/susidns/addressbook.jsp?book=private&amp;hostname=<%=name%>&amp;destination=<%=ab64%>#add"><%=intl._t("Add to local addressbook")%></a>
    892912        <%
     913                    }
    893914                } else {
    894915            %>
Note: See TracChangeset for help on using the changeset viewer.