Changeset 48a92ca


Ignore:
Timestamp:
May 13, 2019 12:15:19 PM (13 months ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
8840532
Parents:
ff71540
Message:

Sybil: Auto-block UI

Location:
apps/routerconsole/java/src/net/i2p/router
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • apps/routerconsole/java/src/net/i2p/router/sybil/Analysis.java

    rff71540 r48a92ca  
    6060    public static final String APP_NAME = "sybil";
    6161    public static final String PROP_FREQUENCY = "router.sybilFrequency";
     62    public static final String PROP_THRESHOLD = "router.sybilThreshold";
     63    public static final String PROP_BLOCK = "router.sybilBlock.enable";
     64    public static final String PROP_BLOCKTIME = "router.sybilBlock.period";
    6265    private static final long MIN_FREQUENCY = 60*60*1000L;
    6366    private static final long MIN_UPTIME = 75*60*1000L;
  • apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbHelper.java

    rff71540 r48a92ca  
    22
    33import java.io.IOException;
     4import java.util.HashMap;
    45import java.util.Locale;
     6import java.util.Map;
    57
    68import net.i2p.crypto.SigType;
     
    222224                  "Review analysis".equals(_action);
    223225        if ("Save".equals(_action)) {
    224             String newTime = getJettyString("runFrequency");
    225             if (newTime != null) {
    226226                try {
    227                     long ntime = Long.parseLong(newTime) * 60*60*1000;
    228                     if (_context.router().saveConfig(Analysis.PROP_FREQUENCY, Long.toString(ntime)))
     227                    Map<String, String> toSave = new HashMap<String, String>(4);
     228                    String newTime = getJettyString("runFrequency");
     229                    if (newTime != null) {
     230                        long ntime = Long.parseLong(newTime) * 60*60*1000;
     231                        toSave.put(Analysis.PROP_FREQUENCY, Long.toString(ntime));
     232                    }
     233                    String thresh = getJettyString("threshold");
     234                    if (thresh != null && thresh.length() > 0) {
     235                        float val = Float.parseFloat(thresh);
     236                        toSave.put(Analysis.PROP_THRESHOLD, Float.toString(val));
     237                    }
     238                    String days = getJettyString("days");
     239                    if (days != null && days.length() > 0) {
     240                        long val = 24*60*60*1000L * Integer.parseInt(days);
     241                        toSave.put(Analysis.PROP_BLOCKTIME, Long.toString(val));
     242                    }
     243                    String enable = getJettyString("block");
     244                    toSave.put(Analysis.PROP_BLOCK, Boolean.toString(enable != null));
     245                    if (_context.router().saveConfig(toSave, null))
    229246                        addFormNotice(_t("Configuration saved successfully."));
    230247                    else
     
    234251                        addFormError("bad value");
    235252                }
    236             }
    237253        }
    238254    }
  • apps/routerconsole/java/src/net/i2p/router/web/helpers/SybilRenderer.java

    rff71540 r48a92ca  
    4040import net.i2p.router.tunnel.pool.TunnelPool;
    4141import net.i2p.router.util.HashDistance;
     42import net.i2p.router.web.HelperBase;
    4243import net.i2p.router.web.Messages;
    4344import net.i2p.stat.Rate;
     
    284285                   "<input type=\"hidden\" name=\"m\" value=\"15\">\n" +
    285286                   "<input type=\"hidden\" name=\"nonce\" value=\"").append(nonce).append("\" >\n" +
    286                    "Background analysis run frequency: <select name=\"runFrequency\">");
     287                   "<table><tr><td>Background analysis run frequency:</td><td><select name=\"runFrequency\">");
    287288        for (int i = 0; i < HOURS.length; i++) {
    288289            buf.append("<option value=\"");
     
    299300            buf.append("</option>\n");
    300301        }
    301         buf.append("</select> " +
     302        boolean auto = _context.getBooleanProperty(Analysis.PROP_BLOCK);
     303        String thresh = _context.getProperty(Analysis.PROP_THRESHOLD, "50");
     304        long days = 7;
     305        String time = _context.getProperty(Analysis.PROP_BLOCKTIME);
     306        if (time != null) {
     307            try {
     308                days = Long.parseLong(time) / (24*60*60*1000L);
     309            } catch (NumberFormatException nfe) {}
     310        }
     311        buf.append("</select></td></tr>\n<tr><td>" +
     312                   "Auto-block routers?</td><td><input type=\"checkbox\" class=\"optbox\" value=\"1\" name=\"block\" ");
     313        if (auto)
     314            buf.append(HelperBase.CHECKED);
     315        buf.append("></td></tr>\n<tr><td>" +
     316                   "Minimum threat points to block:</td><td><input type=\"text\" name=\"threshold\" value=\"").append(thresh).append("\"></td></tr>\n<tr><td>" +
     317                   "Days to block:</td><td><input type=\"text\" name=\"days\" value=\"").append(days).append("\"></td></tr>\n<tr><td></td><td>" +
    302318                   "<input type=\"submit\" name=\"action\" class=\"accept\" value=\"Save\" />" +
    303                    "</form>\n");
     319                   "</td></tr></table></form>\n");
    304320        writeBuf(out, buf);
    305321    }
Note: See TracChangeset for help on using the changeset viewer.