Update of /cvsroot/freenet/freenet/src/freenet/transport
In directory sc8-pr-cvs1:/tmp/cvs-serv8807/src/freenet/transport

Modified Files:
      Tag: stable
        AbstractSelectorLoop.java ListenSelectorLoop.java 
        ReadSelectorLoop.java VoidListeningAddress.java 
        VoidTransport.java WriteSelectorLoop.java tcpAddress.java 
        tcpConnection.java tcpListeningAddress.java 
        tcpNIOListener.java tcpTransport.java 
Log Message:
5030: Merge minor(ish) changes from unstable:
Open Connections infolet
     Minor implementation changes on normal mode
     Show total bytes transmitted/received so far
     Much new information on the PeerHandler mode
Fixed tons of eclipse warnings (almost all are style issues, not functional changes - 
relating to logger and imports mostly). Remove deprecated FieldSet.add(String,String).
      Update TestLocalNIOInterface to current API
Make 5029 mandatory (it can't connect to us anyway, only vice versa).
If incoming HTL is 25, 50% chance of not decrementing it, so we have some plausible 
deniability when we send out an HTL 25 request (the client level HTL perturb mechanism 
is insufficient although useful).
Don't use seednodes with no physical address.
Use our own URLEncoder/URLDecoder's, catch the exceptions. We were using java's, which 
are deprecated.
Add support for deprecated options. These will be read form config file and handled, 
but will not be written to it by --config. Currently bandwidthLimit and 
averageBandwidthLimit are in this category. Separate code logs an error when these are 
set.
Change the way bandwidthLimit set but others not set, to prevent it from constantly 
getting 100% load due to bandwidth limit (0!) exceeded.
Set priority of entropy thread to MIN.
Remove old datastore code, GOOD RIDDENS!
Add a memory usage test for the Failure Table
Increase size of failure table to 20,000 (from 2,000).
Don't show the key request form in simple mode on the default infolet.
Major refactoring of HTML reporting, writing to disk, in NGRouting estimators.
Relative times in (for example) ?date= in fproxy: ?date=-1year gives the edition of a 
DBR one year ago.
NIO refactoring (ASL.ChannelAttachmentPairQueue).
Logging.


Index: AbstractSelectorLoop.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/transport/AbstractSelectorLoop.java,v
retrieving revision 1.15.2.18
retrieving revision 1.15.2.19
diff -u -w -r1.15.2.18 -r1.15.2.19
--- AbstractSelectorLoop.java   28 Oct 2003 20:20:48 -0000      1.15.2.18
+++ AbstractSelectorLoop.java   1 Nov 2003 16:55:37 -0000       1.15.2.19
@@ -21,7 +21,10 @@
  */
 
 public abstract class AbstractSelectorLoop implements SelectorLoop{
-       protected LinkedList registerWaiters, unregisterWaiters, delayedWaiters;
+       //protected LinkedList registerWaiters, unregisterWaiters, delayedWaiters;
+       protected ChannelAttachmentPairQueue registerWaiters= new 
ChannelAttachmentPairQueue();
+       protected ChannelAttachmentPairQueue unregisterWaiters= new 
ChannelAttachmentPairQueue();
+       protected ChannelAttachmentPairQueue delayedWaiters= new 
ChannelAttachmentPairQueue();
        protected Selector sel;
        
        protected Set currentSet;
@@ -106,9 +109,6 @@
 
        public AbstractSelectorLoop() throws IOException{
                sel = Selector.open();
-               registerWaiters = new LinkedList();
-               unregisterWaiters = new LinkedList();
-               delayedWaiters = new LinkedList();
                stop = false;
                cleanupNeeded=false;
                timeout = TIMEOUT;
@@ -146,6 +146,38 @@
                                                                                   
attachment.toString());
                }
        }
+       /**
+        * a synchronized queue that accepts single or bunched ChannelAttachmentPair:s 
and returns a list containing all items queued
+        */
+       protected class ChannelAttachmentPairQueue {
+               private LinkedList queue = new LinkedList();
+               private Object queueLock = new Object();
+
+               //Adds the ChannelAttachmentPair to the queue
+               void add(ChannelAttachmentPair cap) {
+                       synchronized(queueLock){
+                               queue.add(cap);
+                       }
+               }
+               void addAll(LinkedList l) {
+                       synchronized(queueLock){
+                               queue.addAll(l);
+                       }
+               }
+               //Returns and flushes the current queue
+               //If no items is queued then null is returned
+               LinkedList get() {
+                       //Avoid locking and allocation if we dont have any items queued
+                       //There shuldn't be any real drawback with keeping this check 
unsynchronized
+                       if(queue.size()==0)
+                               return null;
+                       synchronized(queueLock){
+                               LinkedList retval = queue;
+                               queue = new LinkedList();
+                               return retval;
+                       }
+               }
+       }
        
        protected final class DelayedChannelAttachmentPair extends 
ChannelAttachmentPair {
                public final long registerTime;
@@ -186,9 +218,8 @@
                }
                //minimize the number of exceptions in the select thread, check early
                if (ch.isBlocking()) throw new IllegalBlockingModeException();
-               synchronized(registerWaiters) {
                        registerWaiters.add(new ChannelAttachmentPair(ch, attachment));
-               }
+
        }
 
        public final void register(Socket sock, Object attachment) throws 
IllegalBlockingModeException {
@@ -201,19 +232,15 @@
                if(logDebug)
                        Core.logger.log(this, "Unregistering "+chan, 
                                                        new Exception("debug"), 
Logger.DEBUG);
-               synchronized(unregisterWaiters) {
                        unregisterWaiters.add(new ChannelAttachmentPair(chan,null));
                }
-       }
 
        public final void unregister(Object attachment) {
                if(logDebug)
                        Core.logger.log(this, "Unregistering "+attachment, 
                                                        new Exception("debug"), 
Logger.DEBUG);
-               synchronized(unregisterWaiters) {
                        unregisterWaiters.add(new 
ChannelAttachmentPair(null,attachment));
                }
-       }
 
        public final boolean isOpen() {
                return sel.isOpen();
@@ -240,40 +267,40 @@
         */
        protected final void processWaiters() {
 
-               while (delayedWaiters.size() > 0) {
+               LinkedList waitersToProcess = delayedWaiters.get();
+               while (waitersToProcess != null && waitersToProcess.size() > 0) {
                        DelayedChannelAttachmentPair current = 
-                               (DelayedChannelAttachmentPair) 
delayedWaiters.removeFirst();
+                               (DelayedChannelAttachmentPair) 
waitersToProcess.removeFirst();
                        if (System.currentTimeMillis() >= current.registerTime)
                                registerWaiters.add(current);
                        else
-                               delayedWaiters.add(current);
+                               delayedWaiters.add(current); //TODO: Would it be 
better to avoid a bunch of finegrained put():s by using an putAll() instead
                }
                //TODO: find a way to get the try's out of the loop
                //first add
                LinkedList notRegistered = new LinkedList();
-               synchronized(registerWaiters) {
-                       while(registerWaiters.size() >0) {
-                               ChannelAttachmentPair current = 
(ChannelAttachmentPair)registerWaiters.removeFirst();
+               waitersToProcess = registerWaiters.get();
+               while (waitersToProcess != null && waitersToProcess.size() > 0) {
+                       ChannelAttachmentPair current = (ChannelAttachmentPair) 
waitersToProcess.removeFirst();
                                
                                if (myKeyOps() == SelectionKey.OP_ACCEPT) //this is a 
server socket
                                        try{
                                                current.channel.register(sel, 
SelectionKey.OP_ACCEPT, current.attachment);
-                                       }catch(ClosedChannelException e) {continue;}
-                               else if (myKeyOps() == SelectionKey.OP_READ) {
+                               } catch (ClosedChannelException e) {
+                                       continue;
+                               } else if (myKeyOps() == SelectionKey.OP_READ) {
                                        //a reader, writers get registered on the fly
-                                       if(!current.channel.isOpen()) continue;
+                               if (!current.channel.isOpen())
+                                       continue;
                                        if(shouldRegister(current)) {
                                                try {
-                                                       if 
(current.channel.keyFor(sel) ==null ||
-                                                               
!current.channel.keyFor(sel).isValid()) {
-                                                                       
current.channel.register(sel, SelectionKey.OP_READ,
-                                                                                      
                  current.attachment);
+                                               if (current.channel.keyFor(sel) == 
null || !current.channel.keyFor(sel).isValid()) {
+                                                       current.channel.register(sel, 
SelectionKey.OP_READ, current.attachment);
                                                                        
((NIOCallback)current.attachment).registered();
                                                        }
                                                } catch(ClosedChannelException e) {
                                                        if(current.attachment 
instanceof NIOCallback)
-                                                               
((NIOCallback)current.attachment).
-                                                                       unregistered();
+                                                        ((NIOCallback) 
current.attachment).unregistered();
                                                        try {
                                                                queueClose(current);
                                                        } catch 
(IllegalArgumentException x) {
@@ -286,49 +313,45 @@
                                                } catch (CancelledKeyException e) {
                                                        //do nothing?
                                                        if (logDebug)
-                                                               
Core.logger.log(this,"cought "+e,Logger.DEBUG);
+                                                       Core.logger.log(this, "caught 
" + e, Logger.DEBUG);
                                                }
                                        } else {
                                                notRegistered.add(current);
                                        }
                                }
                        }
-                       while(!notRegistered.isEmpty()) {
-                               ChannelAttachmentPair current = 
(ChannelAttachmentPair)notRegistered.removeFirst();
-                               registerWaiters.add(current);
-                       }
-               }
+               registerWaiters.addAll(notRegistered);
                
                //then remove
-               synchronized(unregisterWaiters) {
-               while (unregisterWaiters.size() >0) {
+               
+               waitersToProcess = unregisterWaiters.get();
+               while (waitersToProcess != null && waitersToProcess.size() > 0) {
                        ChannelAttachmentPair current;
                        try {
-                               current = 
-                                       
(ChannelAttachmentPair)unregisterWaiters.removeFirst();
+                               current = (ChannelAttachmentPair) 
waitersToProcess.removeFirst();
                        } catch (NoSuchElementException e) {
-                               Core.logger.log(this, "Parallel removal of elements in 
"+this+
-                                                               "?: "+e, e, 
Logger.ERROR);
+                               Core.logger.log(this, "Parallel removal of elements in 
" + this +"?: " + e, e, Logger.ERROR);
                                break;
                        }
                        if (current.channel!=null) {
                                //we have a channel
                                SelectionKey k = current.channel.keyFor(sel);
-                               if(k != null) k.cancel();
+                               if (k != null)
+                                       k.cancel();
                        }
                        // Not used by WSL, so we don't need to tell it
                        else if (current.attachment!=null) { //we have only the 
attachment
                                Iterator i = sel.keys().iterator();
                                while(i.hasNext()) {
                                        SelectionKey curKey = (SelectionKey)i.next();
-                                       if(curKey == null) continue;
-                                       if(!curKey.isValid()) continue;
+                                       if (curKey == null)
+                                               continue;
+                                       if (!curKey.isValid())
+                                               continue;
                                        Object attachment = curKey.attachment();
                                        if(attachment == null) {
                                                if(logDebug)
-                                                       Core.logger.log(this, "Key 
"+curKey+" has null "+
-                                                                                      
 "attachment unregistering "+
-                                                                                      
 current, Logger.ERROR);
+                                                       Core.logger.log(this, "Key " + 
curKey + " has null " + "attachment unregistering " + current, Logger.ERROR);
                                                curKey.cancel();
                                        } else if 
(attachment.equals(current.attachment)) {
                                                curKey.cancel();
@@ -339,7 +362,8 @@
                        if (current.attachment!=null)
                                try{
                                        
((NIOCallback)current.attachment).unregistered();
-                               }catch(ClassCastException e) {continue;}
+                               } catch (ClassCastException e) {
+                                       continue;
                }
                }
        }

Index: ListenSelectorLoop.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/transport/ListenSelectorLoop.java,v
retrieving revision 1.4.2.8
retrieving revision 1.4.2.9
diff -u -w -r1.4.2.8 -r1.4.2.9
--- ListenSelectorLoop.java     28 Oct 2003 20:20:48 -0000      1.4.2.8
+++ ListenSelectorLoop.java     1 Nov 2003 16:55:37 -0000       1.4.2.9
@@ -2,14 +2,14 @@
 package freenet.transport;
 //hope this belongs here
 
-import java.nio.channels.*;
-import java.nio.ByteBuffer;
-import freenet.SelectorLoop;
-import java.net.Socket;
-import java.util.*;
 import java.io.IOException;
-import freenet.NIOListener;
+import java.nio.channels.SelectionKey;
+import java.nio.channels.ServerSocketChannel;
+import java.nio.channels.SocketChannel;
+import java.util.Iterator;
+
 import freenet.Core;
+import freenet.NIOListener;
 import freenet.support.Logger;
 
 /**

Index: ReadSelectorLoop.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/transport/ReadSelectorLoop.java,v
retrieving revision 1.17.2.9
retrieving revision 1.17.2.10
diff -u -w -r1.17.2.9 -r1.17.2.10
--- ReadSelectorLoop.java       28 Oct 2003 20:20:48 -0000      1.17.2.9
+++ ReadSelectorLoop.java       1 Nov 2003 16:55:37 -0000       1.17.2.10
@@ -2,19 +2,20 @@
 package freenet.transport;
 //QUESTION: does this belong in this package?
 
-import java.nio.channels.*;
+import java.io.IOException;
 import java.nio.ByteBuffer;
-import freenet.SelectorLoop;
-import freenet.Connection;
-import freenet.support.io.Bandwidth;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.SelectableChannel;
+import java.nio.channels.SelectionKey;
+import java.nio.channels.SocketChannel;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Map;
 
-// For logging
 import freenet.Core;
 import freenet.support.Logger;
-
-import java.net.Socket;
-import java.util.*;
-import java.io.IOException;
+import freenet.support.io.Bandwidth;
 
 /**
  * a loop that reads and processes message headers.
@@ -30,6 +31,9 @@
     
     private final LinkedList maintenanceQueue;
     
+    public long totalReadThrottlableBytes = 0;
+    public long totalReadPseudoThrottlableBytes = 0;
+    
     private class MaintenancePair {
         NIOReader attachment;
         SocketChannel chan;
@@ -145,8 +149,7 @@
                     } else {
                         if(logDebug)
                             Core.logger.log(this, "Maintenance process returned -1 
but not registered on selector, queuing for unregistration", Logger.DEBUG);
-                        unregisterWaiters.add(new ChannelAttachmentPair
-                                              (chan, current));
+                        unregisterWaiters.add(new ChannelAttachmentPair(chan, 
current));
                     }
                     queueClose((SocketChannel)chan,current);
                 } else if (status == 0) {
@@ -158,8 +161,7 @@
                     } else {
                         if(logDebug)
                             Core.logger.log(this, "Maintenance process returned 0 but 
not registered on selector, queuing for unregistration", Logger.DEBUG);
-                        unregisterWaiters.add(new ChannelAttachmentPair
-                                              (chan, current));
+                        unregisterWaiters.add(new ChannelAttachmentPair(chan, 
current));
                     }
                     synchronized(dontReregister) {
                         dontReregister.add(chan);
@@ -374,10 +376,13 @@
                 //this actually is an error in fixkeys
                 if(size > 0) {
                     bytesRead += (size+OVERHEAD);
-                    if(shouldThrottle)
+                    if(shouldThrottle) {
                         throttledBytesRead += (size+OVERHEAD);
-                    else if (nc.countAsThrottled())
+                        totalReadThrottlableBytes += (size+OVERHEAD);
+                    } else if (nc.countAsThrottled()) {
+                       totalReadPseudoThrottlableBytes += (size+OVERHEAD);
                         pseudoThrottledBytesRead += (size+OVERHEAD);
+                    }
                 }
                 if(logDebug) Core.logger.log(this, "putting "+sc+":"+bumper+
                                              " on bufferMap:"+size+":"+

Index: VoidListeningAddress.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/transport/VoidListeningAddress.java,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.6.1
diff -u -w -r1.1.1.1 -r1.1.1.1.6.1
--- VoidListeningAddress.java   13 Jan 2002 05:25:04 -0000      1.1.1.1
+++ VoidListeningAddress.java   1 Nov 2003 16:55:37 -0000       1.1.1.1.6.1
@@ -1,6 +1,7 @@
 package freenet.transport;
-import freenet.*;
-import freenet.crypt.DSAPublicKey;
+import freenet.ListenException;
+import freenet.Listener;
+import freenet.ListeningAddress;
 /**
  * VoidListeningAddresses have no reason for life.
  *

Index: VoidTransport.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/transport/VoidTransport.java,v
retrieving revision 1.1.1.1.4.2
retrieving revision 1.1.1.1.4.2.2.1
diff -u -w -r1.1.1.1.4.2 -r1.1.1.1.4.2.2.1
--- VoidTransport.java  14 Dec 2002 19:28:51 -0000      1.1.1.1.4.2
+++ VoidTransport.java  1 Nov 2003 16:55:37 -0000       1.1.1.1.4.2.2.1
@@ -1,12 +1,13 @@
 package freenet.transport;
-import freenet.*;
-import freenet.crypt.DSAPublicKey;
+import freenet.Address;
+import freenet.ListeningAddress;
+import freenet.Transport;
+
 /**
  * Void is the transport that is not.
  *
  * @author oskar
  */
-
 public class VoidTransport implements Transport {
 
     /**

Index: WriteSelectorLoop.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/transport/WriteSelectorLoop.java,v
retrieving revision 1.16.2.13
retrieving revision 1.16.2.14
diff -u -w -r1.16.2.13 -r1.16.2.14
--- WriteSelectorLoop.java      28 Oct 2003 20:20:48 -0000      1.16.2.13
+++ WriteSelectorLoop.java      1 Nov 2003 16:55:37 -0000       1.16.2.14
@@ -5,16 +5,25 @@
 package freenet.transport;
 
 
-import java.nio.channels.*;
-import java.nio.*;
-import java.util.*;
 import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.IllegalBlockingModeException;
+import java.nio.channels.SelectableChannel;
+import java.nio.channels.SelectionKey;
+import java.nio.channels.SocketChannel;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Vector;
+
 import freenet.Core;
 import freenet.support.BlockingQueue;
 import freenet.support.Logger;
 import freenet.support.io.Bandwidth;
-import freenet.support.sort.*;
-import freenet.support.Comparable;
+import freenet.support.sort.QuickSorter;
+import freenet.support.sort.SortAlgorithm;
+import freenet.support.sort.VectorSorter;
 
 /**
  * a loop that writes data to the network. 
@@ -494,8 +503,8 @@
                return false;
        }
        
-       long totalWrittenThrottlableBytes = 0;
-       long totalWrittenPseudoThrottlableBytes = 0;
+       public long totalWrittenThrottlableBytes = 0;
+       public long totalWrittenPseudoThrottlableBytes = 0;
        
        //at this stage the selected set should contain only channels
        //that are ready to be written to and have something to be sent.

Index: tcpAddress.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/transport/tcpAddress.java,v
retrieving revision 1.4.4.5.2.6
retrieving revision 1.4.4.5.2.7
diff -u -w -r1.4.4.5.2.6 -r1.4.4.5.2.7
--- tcpAddress.java     28 Oct 2003 20:20:48 -0000      1.4.4.5.2.6
+++ tcpAddress.java     1 Nov 2003 16:55:37 -0000       1.4.4.5.2.7
@@ -1,10 +1,14 @@
 package freenet.transport;
-import freenet.*;
-import java.net.Socket;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
-import java.io.IOException;
-import java.util.StringTokenizer;
+
+import freenet.Address;
+import freenet.BadAddressException;
+import freenet.ConnectFailedException;
+import freenet.Connection;
+import freenet.Core;
+import freenet.ListeningAddress;
+import freenet.support.Logger;
 
 /*
   This code is part of the Java Adaptive Network Client by Ian Clarke. 
@@ -37,7 +41,7 @@
     public boolean equals(tcpAddress tcp) {
        if(tcp == null) return false;
        if(tcp.port != port) return false;
-       if(tcp.throttleAll != throttleAll) return false;
+       if(tcpAddress.throttleAll != throttleAll) return false;
        if(host == null)
            return tcp.hostName.equals(hostName);
        else 
@@ -113,9 +117,9 @@
        if(host == null && hostName != null) {
            long startTime = System.currentTimeMillis();
            host = InetAddress.getByName(hostName);
-           if(Core.logger.shouldLog(Core.logger.DEBUG)) {
+           if(Core.logger.shouldLog(Logger.DEBUG)) {
            Core.logger.log(this, "getHostAddress() took "+
-                           (System.currentTimeMillis()-startTime)+" ms", 
Core.logger.DEBUG);
+                           (System.currentTimeMillis()-startTime)+" ms", 
Logger.DEBUG);
                            }
        }
     }

Index: tcpConnection.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/transport/tcpConnection.java,v
retrieving revision 1.8.4.6.2.11
retrieving revision 1.8.4.6.2.12
diff -u -w -r1.8.4.6.2.11 -r1.8.4.6.2.12
--- tcpConnection.java  28 Oct 2003 20:20:48 -0000      1.8.4.6.2.11
+++ tcpConnection.java  1 Nov 2003 16:55:37 -0000       1.8.4.6.2.12
@@ -215,7 +215,7 @@
            if(!sock.getTcpNoDelay()) {
                if(logDEBUG)
                    Core.logger.log(this, "Disabling Nagle's Algorithm!", 
-                                   Core.logger.DEBUG);
+                                   Logger.DEBUG);
                sock.setTcpNoDelay(true);
            }
             Core.diagnostics.occurrenceContinuous("socketTime",
@@ -241,7 +241,7 @@
                // of 1 byte writes
                out = new BufferedOutputStream(nioout, streamBufferSize());
                if(logDEBUG) Core.logger.log(this, "Not throttling connection",
-                                            Core.logger.DEBUG);
+                                            Logger.DEBUG);
            } else {
                byte[] b = sock.getInetAddress().getAddress();
                
@@ -264,7 +264,7 @@
                } else {
                    if(logDEBUG)
                        Core.logger.log(this, "Throttling connection",
-                                       Core.logger.DEBUG);
+                                       Logger.DEBUG);
                    out = new BufferedOutputStream(nioout, streamBufferSize());
                    shouldThrottle = true;
                    enableThrottle();

Index: tcpListeningAddress.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/transport/tcpListeningAddress.java,v
retrieving revision 1.1.1.1.4.1.2.3
retrieving revision 1.1.1.1.4.1.2.4
diff -u -w -r1.1.1.1.4.1.2.3 -r1.1.1.1.4.1.2.4
--- tcpListeningAddress.java    23 Jul 2003 16:21:14 -0000      1.1.1.1.4.1.2.3
+++ tcpListeningAddress.java    1 Nov 2003 16:55:37 -0000       1.1.1.1.4.1.2.4
@@ -1,7 +1,10 @@
 package freenet.transport;
-import freenet.*;
-import java.net.*;
-import java.io.IOException;
+import java.net.InetAddress;
+
+import freenet.ListenException;
+import freenet.Listener;
+import freenet.ListeningAddress;
+import freenet.NIOListener;
 /*
   This code is part of the Java Adaptive Network Client by Ian Clarke. 
   It is distributed under the GNU Public Licence (GPL) version 2.  See

Index: tcpNIOListener.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/transport/tcpNIOListener.java,v
retrieving revision 1.2.2.1
retrieving revision 1.2.2.2
diff -u -w -r1.2.2.1 -r1.2.2.2
--- tcpNIOListener.java 1 Jul 2003 02:27:18 -0000       1.2.2.1
+++ tcpNIOListener.java 1 Nov 2003 16:55:37 -0000       1.2.2.2
@@ -1,10 +1,14 @@
 package freenet.transport;
-import freenet.*;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+import freenet.ListenException;
+import freenet.ListeningAddress;
+import freenet.NIOListener;
+import freenet.SelectorLoop;
 import freenet.interfaces.NIOInterface;
-import java.io.*;
-import java.net.*;
-import freenet.support.Logger;
-import java.nio.channels.*;
 
 
 /**

Index: tcpTransport.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/transport/tcpTransport.java,v
retrieving revision 1.1.1.1.4.4.2.3
retrieving revision 1.1.1.1.4.4.2.4
diff -u -w -r1.1.1.1.4.4.2.3 -r1.1.1.1.4.4.2.4
--- tcpTransport.java   28 Oct 2003 20:20:48 -0000      1.1.1.1.4.4.2.3
+++ tcpTransport.java   1 Nov 2003 16:55:37 -0000       1.1.1.1.4.4.2.4
@@ -1,10 +1,14 @@
 package freenet.transport;
 
-import freenet.*;
-import freenet.support.Logger;
+import java.net.InetAddress;
 import java.util.StringTokenizer;
-import java.io.IOException;
-import java.net.*;
+
+import freenet.Address;
+import freenet.BadAddressException;
+import freenet.Core;
+import freenet.ListeningAddress;
+import freenet.Transport;
+import freenet.support.Logger;
 
 /** A tcpTransport is any Transport based on Sockets.  Subclasses implementing
   * this provide their own socket factories so that there can be a choice

_______________________________________________
cvs mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to