Changeset c0c9582
- Timestamp:
- Mar 29, 2019 4:27:10 PM (2 years ago)
- Branches:
- master
- Children:
- e55702b
- Parents:
- fc9ad32
- Location:
- apps
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java
rfc9ad32 rc0c9582 41 41 import net.i2p.client.streaming.RouterRestartException; 42 42 import net.i2p.client.streaming.IncomingConnectionFilter; 43 import net.i2p.client.streaming.StatefulConnectionFilter; 43 44 import net.i2p.crypto.SigType; 44 45 import net.i2p.data.Base64; … … 97 98 private int DEFAULT_LOCALPORT = 4488; 98 99 protected int localPort = DEFAULT_LOCALPORT; 100 101 private volatile StatefulConnectionFilter _filter; 99 102 100 103 /** … … 224 227 } 225 228 226 IncomingConnectionFilter filter = IncomingConnectionFilter.ALLOW;227 229 if (getTunnel().filterDefinition != null) { 228 230 File filterDefinition = new File(getTunnel().filterDefinition); 229 231 I2PAppContext context = getTunnel().getContext(); 230 232 try { 231 filter = FilterFactory.createFilter(context, filterDefinition, this);233 _filter = FilterFactory.createFilter(context, filterDefinition); 232 234 } catch (IOException | InvalidDefinitionException bad) { 233 235 throw new IllegalArgumentException("Can't create socket manager", bad); 234 236 } 235 } 237 } 238 239 IncomingConnectionFilter filter = _filter == null ? IncomingConnectionFilter.ALLOW : _filter; 240 236 241 try { 237 242 I2PSocketManager rv = I2PSocketManagerFactory.createDisconnectedManager(privData, getTunnel().host, … … 377 382 public synchronized void startRunning() { 378 383 connectManager(); 384 StatefulConnectionFilter filter = _filter; 385 if (filter != null) 386 filter.start(); 379 387 // prevent JVM exit when running outside the router 380 388 boolean isDaemon = getTunnel().getContext().isRouterContext(); … … 431 439 task.close(forced); 432 440 } 441 StatefulConnectionFilter filter = _filter; 442 if (filter != null) 443 filter.stop(); 433 444 synchronized (lock) { 434 445 if (!forced && sockMgr.listSockets().size() != 0) { -
apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/AccessFilter.java
rfc9ad32 rc0c9582 6 6 import java.util.HashSet; 7 7 import java.util.Iterator; 8 import java.util.concurrent.atomic.AtomicBoolean; 8 9 9 10 import java.io.File; … … 20 21 import net.i2p.data.Destination; 21 22 import net.i2p.data.Hash; 22 import net.i2p.i2ptunnel.I2PTunnelTask; 23 import net.i2p.client.streaming.IncomingConnectionFilter; 23 import net.i2p.client.streaming.StatefulConnectionFilter; 24 24 25 25 /** … … 37 37 * @since 0.9.40 38 38 */ 39 class AccessFilter implements IncomingConnectionFilter {39 class AccessFilter implements StatefulConnectionFilter { 40 40 41 41 private static final long PURGE_INTERVAL = 1000; … … 44 44 private final FilterDefinition definition; 45 45 private final I2PAppContext context; 46 private final I2PTunnelTask task; 46 47 private final AtomicBoolean timersRunning = new AtomicBoolean(); 47 48 48 49 /** … … 60 61 * @param task the task to query for liveness of the tunnel 61 62 */ 62 AccessFilter(I2PAppContext context, FilterDefinition definition , I2PTunnelTask task)63 AccessFilter(I2PAppContext context, FilterDefinition definition) 63 64 throws IOException { 64 65 this.context = context; 65 66 this.definition = definition; 66 this.task = task;67 67 68 68 reload(); 69 70 new Purger(); 71 new Syncer(); 69 } 70 71 @Override 72 public void start() { 73 if (timersRunning.compareAndSet(false, true)) { 74 new Purger(); 75 new Syncer(); 76 } 77 } 78 79 @Override 80 public void stop() { 81 timersRunning.set(false); 72 82 } 73 83 … … 170 180 } 171 181 public void timeReached() { 172 if (!t ask.isOpen()) {182 if (!timersRunning.get()) { 173 183 synchronized(knownDests) { 174 184 knownDests.clear(); … … 189 199 } 190 200 public void timeReached() { 191 if (!t ask.isOpen())201 if (!timersRunning.get()) 192 202 return; 193 203 try { -
apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterFactory.java
rfc9ad32 rc0c9582 10 10 11 11 import net.i2p.I2PAppContext; 12 import net.i2p.i2ptunnel.I2PTunnelTask; 13 import net.i2p.client.streaming.IncomingConnectionFilter; 12 import net.i2p.client.streaming.StatefulConnectionFilter; 14 13 15 14 /** … … 26 25 * @param context the context this is running in 27 26 * @param definition file containing the filter definition 28 * @param task the I2PTunnelTask instance to query for liveness29 27 */ 30 public static IncomingConnectionFilter createFilter(I2PAppContext context, 31 File definition, 32 I2PTunnelTask task) 28 public static StatefulConnectionFilter createFilter(I2PAppContext context, 29 File definition) 33 30 throws IOException, InvalidDefinitionException { 34 31 List<String> linesList = new ArrayList<String>(); … … 51 48 52 49 FilterDefinition parsedDefinition = DefinitionParser.parse(linesList.toArray(new String[0])); 53 return new AccessFilter(context, parsedDefinition , task);50 return new AccessFilter(context, parsedDefinition); 54 51 } 55 52 }
Note: See TracChangeset
for help on using the changeset viewer.