That seems fairly sensible. I made the decision like that based on the fact 
that it was SSH port forwading that had my port 9481 at the time, and so it 
happenned that I just wanted the thing to start up, and wasn't particularly 
bothered about FCP.

The main purpose of doing it was just to stop it crashing and leaving you with 
half a config file, so I won't be offended if anyone changes it. :)


Dave



On Thursday 13 April 2006 17:10, Ian Clarke wrote:
> Probably not, since this probably indicates that the user is already
> running an instance of Freenet and has started another by mistake (if
> they want to do it deliberately, they will change the ports manually).
> 
> Ian.
> 
> On 13 Apr 2006, at 07:14, Matthew Toseland wrote:
> 
> > Do we want the node to start up if it can't bind the FCP port?
> >
> > On Thu, Apr 13, 2006 at 01:38:39PM +0000, dbkr at freenetproject.org
> > wrote:
> >> Author: dbkr
> >> Date: 2006-04-13 13:38:33 +0000 (Thu, 13 Apr 2006)
> >> New Revision: 8535
> >>
> >> Modified:
> >>    trunk/freenet/src/freenet/node/Version.java
> >>    trunk/freenet/src/freenet/node/fcp/FCPServer.java
> >> Log:
> >> 640: Fix Crashing issue if we can't bind to the FCP Port, and fix
> >> NPE and resulting config file corruption when FCP server is disabled.
> >>
> >>
> >> Modified: trunk/freenet/src/freenet/node/Version.java
> >> ===================================================================
> >> --- trunk/freenet/src/freenet/node/Version.java    2006-04-13
> >> 10:59:58 UTC (rev 8534)
> >> +++ trunk/freenet/src/freenet/node/Version.java    2006-04-13
> >> 13:38:33 UTC (rev 8535)
> >> @@ -20,7 +20,7 @@
> >>    public static final String protocolVersion = "1.0";
> >>
> >>    /** The build number of the current revision */
> >> -  private static final int buildNumber = 639;
> >> +  private static final int buildNumber = 640;
> >>
> >>    /** Oldest build of Fred we will talk to */
> >>    private static final int lastGoodBuild = 591;
> >>
> >> Modified: trunk/freenet/src/freenet/node/fcp/FCPServer.java
> >> ===================================================================
> >> --- trunk/freenet/src/freenet/node/fcp/FCPServer.java      2006-04-13
> >> 10:59:58 UTC (rev 8534)
> >> +++ trunk/freenet/src/freenet/node/fcp/FCPServer.java      2006-04-13
> >> 13:38:33 UTC (rev 8535)
> >> @@ -11,6 +11,7 @@
> >>  import java.io.IOException;
> >>  import java.io.InputStreamReader;
> >>  import java.io.OutputStreamWriter;
> >> +import java.net.BindException;
> >>  import java.net.InetAddress;
> >>  import java.net.ServerSocket;
> >>  import java.net.Socket;
> >> @@ -67,29 +68,58 @@
> >>            persister = null;
> >>    }
> >>
> >> -  public FCPServer(String ipToBindTo, int port, Node node, boolean
> >> persistentDownloadsEnabled, String persistentDownloadsDir, long
> >> persistenceInterval) throws IOException,
> >> InvalidConfigValueException {
> >> +  public FCPServer(String ipToBindTo, int port, Node node, boolean
> >> persistentDownloadsEnabled, String persistentDownloadsDir, long
> >> persistenceInterval, boolean isEnabled) throws IOException,
> >> InvalidConfigValueException {
> >>            this.bindTo = ipToBindTo;
> >>            this.persistenceInterval = persistenceInterval;
> >>            this.port = port;
> >> -          this.enabled = true;
> >> -          this.sock = new ServerSocket(port, 0, InetAddress.getByName
> >> (bindTo));
> >> -          this.node = node;
> >> -          clientsByName = new WeakHashMap();
> >> -          // This one is only used to get the default settings.
> >> Individual FCP conns
> >> -          // will make their own.
> >> -          HighLevelSimpleClient client = node.makeClient((short)0);
> >> -          defaultFetchContext = client.getFetcherContext();
> >> -          defaultInsertContext = client.getInserterContext();
> >> -          Thread t = new Thread(this, "FCP server");
> >> +          this.enabled = isEnabled;
> >>            this.enablePersistentDownloads = persistentDownloadsEnabled;
> >> -          globalClient = new FCPClient("Global Queue", this, null, true);
> >>            setPersistentDownloadsFile(new File(persistentDownloadsDir));
> >> -          t.setDaemon(true);
> >> -          t.start();
> >> -          if(enablePersistentDownloads) {
> >> -                  loadPersistentRequests();
> >> -                  startPersister();
> >> +
> >> +          if (this.enabled) {
> >> +                  this.node = node;
> >> +                  clientsByName = new WeakHashMap();
> >> +
> >> +
> >> +                  // This one is only used to get the default settings.
> >> Individual FCP conns
> >> +                  // will make their own.
> >> +                  HighLevelSimpleClient client = 
> >> node.makeClient((short)0);
> >> +                  defaultFetchContext = client.getFetcherContext();
> >> +                  defaultInsertContext = client.getInserterContext();
> >> +
> >> +
> >> +                  globalClient = new FCPClient("Global Queue", this, 
> >> null, true);
> >> +
> >> +
> >> +                  if(enablePersistentDownloads) {
> >> +                          loadPersistentRequests();
> >> +                          startPersister();
> >> +                  }
> >> +
> >> +                  Logger.normal(this, "Starting FCP server on 
> >> "+bindTo+":"+port
> >> +".");
> >> +                  ServerSocket tempsock = null;
> >> +                  try {
> >> +                          tempsock = new ServerSocket(port, 0, 
> >> InetAddress.getByName
> >> (bindTo));
> >> +                  } catch (BindException be) {
> >> +                          Logger.error(this, "Couldn't bind to FCP Port 
> >> "+port+". FCP
> >> Server not started.");
> >> +                  }
> >> +
> >> +                  this.sock = tempsock;
> >> +
> >> +                  if (this.sock != null) {
> >> +                          Thread t = new Thread(this, "FCP server");
> >> +                          t.setDaemon(true);
> >> +                          t.start();
> >> +                  }
> >> +          } else {
> >> +                  Logger.normal(this, "Not starting FCP server as it's 
> >> disabled");
> >> +                  this.sock = null;
> >> +                  this.node = null;
> >> +                  this.clientsByName = null;
> >> +                  this.globalClient = null;
> >> +                  this.defaultFetchContext = null;
> >>            }
> >> +
> >>    }
> >>
> >>    public void run() {
> >> @@ -243,20 +273,16 @@
> >>            long persistentDownloadsInterval = fcpConfig.getLong
> >> ("persistentDownloadsInterval");
> >>
> >>            FCPServer fcp;
> >> -          if(fcpConfig.getBoolean("enabled")){
> >> -                  Logger.normal(node, "Starting FCP server on
> >> "+fcpConfig.getString("bindTo")+":"+fcpConfig.getInt("port")+".");
> >> -                  fcp = new FCPServer(fcpConfig.getString("bindTo"),
> >> fcpConfig.getInt("port"), node, persistentDownloadsEnabled,
> >> persistentDownloadsDir, persistentDownloadsInterval);
> >> -                  node.setFCPServer(fcp);
> >> -
> >> -                  if(fcp != null) {
> >> -                          cb1.server = fcp;
> >> -                          cb2.server = fcp;
> >> -                          cb3.server = fcp;
> >> -                  }
> >> -          }else{
> >> -                  Logger.normal(node, "Not starting FCP server as it's 
> >> disabled");
> >> -                  fcp = null;
> >> +
> >> +          fcp = new FCPServer(fcpConfig.getString("bindTo"),
> >> fcpConfig.getInt("port"), node, persistentDownloadsEnabled,
> >> persistentDownloadsDir, persistentDownloadsInterval,
> >> fcpConfig.getBoolean("enabled"));
> >> +          node.setFCPServer(fcp);
> >> +
> >> +          if(fcp != null) {
> >> +                  cb1.server = fcp;
> >> +                  cb2.server = fcp;
> >> +                  cb3.server = fcp;
> >>            }
> >> +
> >>
> >>            fcpConfig.finishedInitialization();
> >>            return fcp;
> >>
> >> _______________________________________________
> >> cvs mailing list
> >> cvs at freenetproject.org
> >> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
> >>
> >
> > --
> > Matthew J Toseland - toad at amphibian.dyndns.org
> > Freenet Project Official Codemonkey - http://freenetproject.org/
> > ICTHUS - Nothing is impossible. Our Boss says so.
> > _______________________________________________
> > Devl mailing list
> > Devl at freenetproject.org
> > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
> 
> _______________________________________________
> Devl mailing list
> Devl at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
> 

Reply via email to