Changeset 850f150


Ignore:
Timestamp:
Nov 27, 2016 3:46:07 PM (4 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
25fd488
Parents:
2318a2b
Message:

NetDb?: Add MTU, SSU caps, IPv6 prefix, and cost lookups

Location:
apps/routerconsole
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • apps/routerconsole/java/src/net/i2p/router/web/NetDbHelper.java

    r2318a2b r850f150  
    99    private String _version;
    1010    private String _country;
    11     private String _family, _caps, _ip, _sybil;
    12     private int _full, _port;
     11    private String _family, _caps, _ip, _sybil, _mtu, _ssucaps, _ipv6;
     12    private int _full, _port, _cost;
    1313    private boolean _lease;
    1414    private boolean _debug;
     
    100100    }
    101101
     102    /** @since 0.9.28 */
     103    public void setMtu(String f) {
     104        if (f != null && f.length() > 0)
     105            _mtu = DataHelper.stripHTML(f);  // XSS
     106    }
     107
     108    /** @since 0.9.28 */
     109    public void setIpv6(String f) {
     110        if (f != null && f.length() > 0) {
     111            _ipv6 = DataHelper.stripHTML(f);  // XSS
     112            if (!_ipv6.endsWith(":"))
     113                _ipv6 = _ipv6 + ':';
     114        }
     115    }
     116
     117    /** @since 0.9.28 */
     118    public void setSsucaps(String f) {
     119        if (f != null && f.length() > 0)
     120            _ssucaps = DataHelper.stripHTML(f);  // XSS
     121    }
     122
     123    /** @since 0.9.28 */
     124    public void setCost(String f) {
     125        try {
     126            _cost = Integer.parseInt(f);
     127        } catch (NumberFormatException nfe) {}
     128    }
     129
    102130    public void setFull(String f) {
    103131        try {
     
    128156            if (_routerPrefix != null || _version != null || _country != null ||
    129157                _family != null || _caps != null || _ip != null || _sybil != null ||
    130                 _port != 0 || _type != null)
     158                _port != 0 || _type != null || _mtu != null || _ipv6 != null ||
     159                _ssucaps != null || _cost != 0)
    131160                renderer.renderRouterInfoHTML(_out, _routerPrefix, _version, _country,
    132                                               _family, _caps, _ip, _sybil, _port, _type);
     161                                              _family, _caps, _ip, _sybil, _port, _type,
     162                                              _mtu, _ipv6, _ssucaps, _cost);
    133163            else if (_lease)
    134164                renderer.renderLeaseSetHTML(_out, _debug);
     
    157187        if (_routerPrefix != null || _version != null || _country != null ||
    158188            _family != null || _caps != null || _ip != null || _sybil != null ||
    159             _port != 0 || _type != null)
     189            _port != 0 || _type != null || _mtu != null || _ipv6 != null ||
     190            _ssucaps != null || _cost != 0)
    160191            return 2;
    161192        if (_full == 2)
     
    215246        _out.write("<form action=\"/netdb\" method=\"GET\"><p><b>Pick One</b></p>\n" +
    216247                   "Caps <input type=\"text\" name=\"caps\">e.g. f or XOfR<br>\n" +
     248                   "Cost <input type=\"text\" name=\"cost\"><br>\n" +
    217249                   "Country code <input type=\"text\" name=\"c\">e.g. ru<br>\n" +
    218250                   "Family <input type=\"text\" name=\"fam\"><br>\n" +
    219251                   "Hash prefix <input type=\"text\" name=\"r\"><br>\n" +
    220                    "IP <input type=\"text\" name=\"ip\">IPv4 or IPv6, /24,/16,/8 suffixes optional for IPv4<br>\n" +
     252                   "IP <input type=\"text\" name=\"ip\">host name, IPv4, or IPv6, /24,/16,/8 suffixes optional for IPv4<br>\n" +
     253                   "IPv6 Prefix <input type=\"text\" name=\"ipv6\"><br>\n" +
     254                   "MTU <input type=\"text\" name=\"mtu\"><br>\n" +
    221255                   "Port <input type=\"text\" name=\"port\"><br>\n" +
    222256                   "Sig Type <input type=\"text\" name=\"type\"><br>\n" +
     257                   "SSU Caps <input type=\"text\" name=\"ssucaps\"><br>\n" +
    223258                   "Version <input type=\"text\" name=\"v\"><br>\n" +
    224259                   "<p><b>Add Sybil analysis (must pick one above):</b></p>\n" +
  • apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java

    r2318a2b r850f150  
    9191    public void renderRouterInfoHTML(Writer out, String routerPrefix, String version,
    9292                                     String country, String family, String caps,
    93                                      String ip, String sybil, int port, SigType type) throws IOException {
     93                                     String ip, String sybil, int port, SigType type,
     94                                     String mtu, String ipv6, String ssucaps, int cost) throws IOException {
    9495        StringBuilder buf = new StringBuilder(4*1024);
    9596        List<Hash> sybils = sybil != null ? new ArrayList<Hash>(128) : null;
     
    157158                        }
    158159                    }
     160                } else if (mtu != null) {
     161                    for (RouterAddress ra : ri.getAddresses()) {
     162                        if (mtu.equals(ra.getOption("mtu"))) {
     163                            renderRouterInfo(buf, ri, false, true);
     164                            if (sybil != null)
     165                                sybils.add(key);
     166                            notFound = false;
     167                            break;
     168                        }
     169                    }
     170                } else if (ipv6 != null) {
     171                    for (RouterAddress ra : ri.getAddresses()) {
     172                        String host = ra.getHost();
     173                        if (host != null && host.startsWith(ipv6)) {
     174                            renderRouterInfo(buf, ri, false, true);
     175                            if (sybil != null)
     176                                sybils.add(key);
     177                            notFound = false;
     178                            break;
     179                        }
     180                    }
     181                } else if (ssucaps != null) {
     182                    for (RouterAddress ra : ri.getAddresses()) {
     183                        if (!"SSU".equals(ra.getTransportStyle()))
     184                            continue;
     185                        if (ssucaps.equals(ra.getOption("caps"))) {
     186                            renderRouterInfo(buf, ri, false, true);
     187                            if (sybil != null)
     188                                sybils.add(key);
     189                            notFound = false;
     190                            break;
     191                        }
     192                    }
     193                } else if (cost != 0) {
     194                    for (RouterAddress ra : ri.getAddresses()) {
     195                        if (cost == ra.getCost()) {
     196                            renderRouterInfo(buf, ri, false, true);
     197                            if (sybil != null)
     198                                sybils.add(key);
     199                            notFound = false;
     200                            break;
     201                        }
     202                    }
    159203                }
    160204            }
  • apps/routerconsole/jsp/netdb.jsp

    r2318a2b r850f150  
    3333 <jsp:setProperty name="netdbHelper" property="port" value="<%=request.getParameter(\"port\")%>" />
    3434 <jsp:setProperty name="netdbHelper" property="type" value="<%=request.getParameter(\"type\")%>" />
     35 <jsp:setProperty name="netdbHelper" property="ipv6" value="<%=request.getParameter(\"ipv6\")%>" />
     36 <jsp:setProperty name="netdbHelper" property="cost" value="<%=request.getParameter(\"cost\")%>" />
     37 <jsp:setProperty name="netdbHelper" property="mtu" value="<%=request.getParameter(\"mtu\")%>" />
     38 <jsp:setProperty name="netdbHelper" property="ssucaps" value="<%=request.getParameter(\"ssucaps\")%>" />
    3539 <jsp:getProperty name="netdbHelper" property="netDbSummary" />
    3640</div></div></body></html>
Note: See TracChangeset for help on using the changeset viewer.