Author: toad
Date: 2008-04-05 19:44:25 +0000 (Sat, 05 Apr 2008)
New Revision: 19046

Modified:
   trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java
   trunk/freenet/src/freenet/clients/http/ToadletContainer.java
   trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java
Log:
Fix "Method Not Allowed"

Modified: trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java     
2008-04-05 19:34:01 UTC (rev 19045)
+++ trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java     
2008-04-05 19:44:25 UTC (rev 19046)
@@ -43,6 +43,7 @@
 import freenet.support.api.BucketFactory;
 import freenet.support.api.IntCallback;
 import freenet.support.api.StringCallback;
+import freenet.support.io.ArrayBucketFactory;

 public final class SimpleToadletServer implements ToadletContainer, Runnable {

@@ -585,7 +586,7 @@
                                synchronized(SimpleToadletServer.this) {
                                        c = core;
                                }
-                               ToadletContextImpl.handle(sock, 
SimpleToadletServer.this, bf, pageMaker, c != null);
+                               ToadletContextImpl.handle(sock, 
SimpleToadletServer.this, pageMaker);
                        } catch (OutOfMemoryError e) {
                                OOMHandler.handleOOM(e);
                                System.err.println("SimpleToadletServer request 
above failed.");
@@ -675,5 +676,13 @@
        public boolean enableInlinePrefetch() {
                return enableInlinePrefetch;
        }
+
+       public synchronized boolean allowPosts() {
+               return !(bf instanceof ArrayBucketFactory);
+       }
+
+       public synchronized BucketFactory getBucketFactory() {
+               return bf;
+       }

 }

Modified: trunk/freenet/src/freenet/clients/http/ToadletContainer.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ToadletContainer.java        
2008-04-05 19:34:01 UTC (rev 19045)
+++ trunk/freenet/src/freenet/clients/http/ToadletContainer.java        
2008-04-05 19:44:25 UTC (rev 19046)
@@ -8,6 +8,7 @@
 import java.net.URISyntaxException;

 import freenet.support.HTMLNode;
+import freenet.support.api.BucketFactory;

 /** Interface for toadlet containers. Toadlets should register here. */
 public interface ToadletContainer {
@@ -48,4 +49,10 @@
        public boolean enablePersistentConnections();

        public boolean enableInlinePrefetch();
+
+       /** Get the BucketFactory */
+       public BucketFactory getBucketFactory();
+
+       /** Can we deal with POSTs yet? */
+       public boolean allowPosts();
 }

Modified: trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java      
2008-04-05 19:34:01 UTC (rev 19045)
+++ trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java      
2008-04-05 19:44:25 UTC (rev 19046)
@@ -215,7 +215,7 @@
        /**
         * Handle an incoming connection. Blocking, obviously.
         */
-       public static void handle(Socket sock, ToadletContainer container, 
BucketFactory bf, PageMaker pageMaker, boolean allowPost) {
+       public static void handle(Socket sock, ToadletContainer container, 
PageMaker pageMaker) {
                try {
                        InputStream is = new 
BufferedInputStream(sock.getInputStream(), 4096);

@@ -277,6 +277,9 @@

                                boolean disconnect = 
shouldDisconnectAfterHandled(split[2].equals("HTTP/1.0"), headers) || 
!container.enablePersistentConnections();

+                               boolean allowPost = container.allowPosts();
+                               BucketFactory bf = container.getBucketFactory();
+                               
                                ToadletContextImpl ctx = new 
ToadletContextImpl(sock, headers, bf, pageMaker, container);
                                ctx.shouldDisconnect = disconnect;



Reply via email to