## net.i2p.router
Class Shitlist

    java.lang.Object
      net.i2p.router.Shitlist

    public class Shitlist

extends Object

Routers are shitlisted only if none of our transports can talk to them or their signed router info is completely screwy. Individual transports manage their own unreachable lists and do not generally add to the overall shitlist.

Nested Class Summary
`static class` `Shitlist.Entry`

Field Summary
`static long` `SHITLIST_CLEANER_START_DELAY`
`static long` `SHITLIST_DURATION_FOREVER`
`static long` `SHITLIST_DURATION_MAX`
`static long` `SHITLIST_DURATION_MS`
`static long` `SHITLIST_DURATION_PARTIAL`

Constructor Summary
`Shitlist(RouterContext context)`

Method Summary
`Map<Hash,Shitlist.Entry>` `getEntries()` for ShitlistRenderer in router console
`int` `getRouterCount()`
`boolean` `isShitlisted(Hash peer)`
`boolean` `isShitlisted(Hash peer, String transport)`
`boolean` `isShitlistedForever(Hash peer)`
`void` `renderStatusHTML(Writer out)` Deprecated. moved to router console
`boolean` `shitlistRouter(Hash peer)`
`boolean` `shitlistRouter(Hash peer, String reason)`
`boolean` `shitlistRouter(Hash peer, String reason, String transport)`
`boolean` `shitlistRouter(Hash peer, String reason, String transport, boolean forever)`
`boolean` `shitlistRouter(String reasonCode, Hash peer, String reason)` ick have to put the reasonCode in the front to avoid ambiguity
`boolean` `shitlistRouterForever(Hash peer, String reason)`
`boolean` `shitlistRouterForever(Hash peer, String reason, String reasonCode)`
`void` `unshitlistRouter(Hash peer)`
`void` `unshitlistRouter(Hash peer, String transport)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### SHITLIST_DURATION_MS

    public static final long SHITLIST_DURATION_MS

See Also:
  Constant Field Values

### SHITLIST_DURATION_MAX

    public static final long SHITLIST_DURATION_MAX

See Also:
  Constant Field Values

### SHITLIST_DURATION_PARTIAL

    public static final long SHITLIST_DURATION_PARTIAL

See Also:
  Constant Field Values

### SHITLIST_DURATION_FOREVER

    public static final long SHITLIST_DURATION_FOREVER

See Also:
  Constant Field Values

### SHITLIST_CLEANER_START_DELAY

    public static final long SHITLIST_CLEANER_START_DELAY

See Also:
  Constant Field Values

Constructor Detail

### Shitlist

    public Shitlist(RouterContext context)

Method Detail

### getRouterCount

    public int getRouterCount()

### getEntries

    public Map<Hash,Shitlist.Entry> getEntries()

  for ShitlistRenderer in router console

### shitlistRouter

    public boolean shitlistRouter(Hash peer)

### shitlistRouter

    public boolean shitlistRouter(Hash peer,
                                  String reason)

### shitlistRouter

    public boolean shitlistRouter(String reasonCode,
                                  Hash peer,
                                  String reason)

  ick have to put the reasonCode in the front to avoid ambiguity

### shitlistRouter

    public boolean shitlistRouter(Hash peer,
                                  String reason,
                                  String transport)

### shitlistRouterForever

    public boolean shitlistRouterForever(Hash peer,
                                         String reason)

### shitlistRouterForever

    public boolean shitlistRouterForever(Hash peer,
                                         String reason,
                                         String reasonCode)

### shitlistRouter

    public boolean shitlistRouter(Hash peer,
                                  String reason,
                                  String transport,
                                  boolean forever)

### unshitlistRouter

    public void unshitlistRouter(Hash peer)

### unshitlistRouter

    public void unshitlistRouter(Hash peer,
                                 String transport)

### isShitlisted

    public boolean isShitlisted(Hash peer)

### isShitlisted

    public boolean isShitlisted(Hash peer,
                                String transport)

### isShitlistedForever

    public boolean isShitlistedForever(Hash peer)

### renderStatusHTML

    public void renderStatusHTML(Writer out)
                          throws IOException

  Deprecated. moved to router console

  Throws:
    `IOException`