Author: dbkr
Date: 2006-03-05 23:34:30 +0000 (Sun, 05 Mar 2006)
New Revision: 8171

Modified:
   trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
   trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java
   trunk/freenet/src/freenet/keys/FreenetURI.java
   trunk/freenet/src/freenet/node/Version.java
Log:
501: Fixes for some exceptions:
- In ToadletContextImpl, when connections are closed at the client end
- In FproxyToadlet if SimpleToadletServer cannot bind to its port
- In FreenetURI if a null URI is passed in (which happens if a ClientGet with 
no URI field is received over the FCP).


Modified: trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FproxyToadlet.java   2006-03-05 
22:04:52 UTC (rev 8170)
+++ trunk/freenet/src/freenet/clients/http/FproxyToadlet.java   2006-03-05 
23:34:30 UTC (rev 8171)
@@ -175,24 +175,29 @@
                int port = fproxyConfig.getInt("port");
                String bind_ip = fproxyConfig.getString("bindto");

-        SimpleToadletServer server = new SimpleToadletServer(port, bind_ip);
-        node.setToadletContainer(server);
-        FproxyToadlet fproxy = new 
FproxyToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS));
-        node.setFproxy(fproxy);
-        server.register(fproxy, "/", false);
-       
-        PproxyToadlet pproxy = new 
PproxyToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS), 
node.pluginManager);
-        server.register(pproxy, "/plugins/", true);
-       
-       WelcomeToadlet welcometoadlet = new 
WelcomeToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS));
-       server.register(welcometoadlet, "/welcome/", true);
-       
-       StaticToadlet statictoadlet = new 
StaticToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS));
-       server.register(statictoadlet, "/static/", true);
-       
-        fproxyConfig.finishedInitialization();
-        System.out.println("Starting fproxy on port "+(port));
-        Logger.normal(node,"Starting fproxy on "+bind_ip+":"+port); 
+               System.out.println("Starting fproxy on port "+(port));
+               Logger.normal(node,"Starting fproxy on "+bind_ip+":"+port);
+               
+               try {
+                       SimpleToadletServer server = new 
SimpleToadletServer(port, bind_ip);
+                       node.setToadletContainer(server);
+                       FproxyToadlet fproxy = new 
FproxyToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS));
+                       node.setFproxy(fproxy);
+                       server.register(fproxy, "/", false);
+                       
+                       PproxyToadlet pproxy = new 
PproxyToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS), 
node.pluginManager);
+                       server.register(pproxy, "/plugins/", true);
+                       
+                       WelcomeToadlet welcometoadlet = new 
WelcomeToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS));
+                       server.register(welcometoadlet, "/welcome/", true);
+                       
+                       StaticToadlet statictoadlet = new 
StaticToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS));
+                       server.register(statictoadlet, "/static/", true);
+               } catch (IOException ioe) {
+                       Logger.error(node,"Failed to start fproxy on 
"+bind_ip+":"+port);
+               }
+               
+               fproxyConfig.finishedInitialization();
        }



Modified: trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java      
2006-03-05 22:04:52 UTC (rev 8170)
+++ trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java      
2006-03-05 23:34:30 UTC (rev 8171)
@@ -126,6 +126,12 @@
                        while(true) {

                                String firstLine = lis.readLine(32768, 128);
+                               if (firstLine == null) {
+                                       sock.close();
+                                       return;
+                               } else if (firstLine.equals("")) {
+                                       continue;
+                               }

                                Logger.minor(ToadletContextImpl.class, "first 
line: "+firstLine);

@@ -157,6 +163,10 @@

                                while(true) {
                                        String line = lis.readLine(32768, 128);
+                                       if (line == null) {
+                                               sock.close();
+                                               return;
+                                       }
                                        
//System.out.println("Length="+line.length()+": "+line);
                                        if(line.length() == 0) break;
                                        int index = line.indexOf(':');

Modified: trunk/freenet/src/freenet/keys/FreenetURI.java
===================================================================
--- trunk/freenet/src/freenet/keys/FreenetURI.java      2006-03-05 22:04:52 UTC 
(rev 8170)
+++ trunk/freenet/src/freenet/keys/FreenetURI.java      2006-03-05 23:34:30 UTC 
(rev 8171)
@@ -130,6 +130,9 @@
        }

        public FreenetURI(String URI) throws MalformedURLException {
+               if (URI == null) {
+                       throw new MalformedURLException("No URI specified");
+               }
                // check scheme
                int colon = URI.indexOf(':');
                if (colon != -1

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-03-05 22:04:52 UTC (rev 
8170)
+++ trunk/freenet/src/freenet/node/Version.java 2006-03-05 23:34:30 UTC (rev 
8171)
@@ -20,7 +20,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 500;
+       private static final int buildNumber = 501;

        /** Oldest build of Fred we will talk to */
        private static final int lastGoodBuild = 475;


Reply via email to