Author: nextgens
Date: 2006-05-12 16:13:20 +0000 (Fri, 12 May 2006)
New Revision: 8677

Modified:
   trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
Log:
Some work on NIM support : doen't work and I wonder why

Modified: trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java  2006-05-12 
14:57:26 UTC (rev 8676)
+++ trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java  2006-05-12 
16:13:20 UTC (rev 8677)
@@ -59,16 +59,10 @@
                        this.writeReply(ctx, 400, "text/plain", "Too big", 
"Data exceeds 1MB limit");
                        return;
                }
-               byte[] d = BucketTools.toByteArray(data);
-               String s = new String(d, "us-ascii");
-               HTTPRequest request;
-               try {
-                       request = new HTTPRequest("/", s);
-               } catch (URISyntaxException e) {
-                       Logger.error(this, "Impossible: "+e, e);
-                       return;
-               }

+               HTTPRequest request = new HTTPRequest(uri,data,ctx);
+               if(request==null) return;
+               
                StringBuffer buf = new StringBuffer();

                if (request.getParam("shutdownconfirm").length() > 0) {
@@ -165,46 +159,39 @@
                                        writeReply(ctx, 200, "text/html", "OK", 
buf.toString());
                                }
                        }
-               }else if(request.isParameterSet("key")){
-                       FreenetURI key = new 
FreenetURI(request.getParam("key"));
-                       ClientMetadata contentType = new 
ClientMetadata(request.getParam("content-type"));
-                       String value = request.getParam("filename");
+               }else if(request.getPartAsString("key",128).length()>0){

-                       if(key.toString().length()>0 && value.length()>0){
-                               InsertBlock block = new InsertBlock(new 
ArrayBucket(value), contentType, key);
-                   try {
-                       ctx.getPageMaker().makeHead(buf, "SUCCESS");
-                               buf.append("<div class=\"infobox\">\n");
-                               
-                       key = this.insert(block, false);
-                       buf.append("The key : <a href=\"/" + key.getKeyType() + 
"@" + key.getGuessableKey() + "\">" +
-                                       key.getKeyType() + "@" + 
key.getGuessableKey() +"</a> has been inserted successfully.<br>");
-                       buf.append("Data : <br>"+value+"<br>");
-                   } catch (InserterException e) {
-                       ctx.getPageMaker().makeHead(buf, "ERROR");
-                               buf.append("<div class=\"infobox\">\n");
-                               
-                       buf.append("Error: "+e.getMessage()+"<br>");
-                       if(e.uri != null)
-                               buf.append("URI would have been: 
"+e.uri+"<br>");
-                       int mode = e.getMode();
-                       if(mode == InserterException.FATAL_ERRORS_IN_BLOCKS || 
mode == InserterException.TOO_MANY_RETRIES_IN_BLOCKS) {
-                               buf.append("Splitfile-specific 
error:\n"+e.errorCodes.toVerboseString()+"<br>");
-                       }
-                   }
-                   
-                       }else{
-                               ctx.getPageMaker().makeHead(buf, "ERROR");
+                       FreenetURI key = new 
FreenetURI(request.getPartAsString("key",128));
+                       ClientMetadata contentType = new 
ClientMetadata(request.getPartAsString("content-type",128));
+                       
+                       Bucket bucket = request.getPart("filename");
+                       InsertBlock block = new InsertBlock(bucket, 
contentType, key);
+                       try {
+                               ctx.getPageMaker().makeHead(buf, "Insertion");
                                buf.append("<div class=\"infobox\">\n");
-                               buf.append("Your post form is missing a 
mandatory parameter!<br />\n");
+                               
+                               key = this.insert(block, false);
+                               buf.append("The key : <a href=\"/" + 
key.getKeyType() + "@" + key.getGuessableKey() + "\">" +
+                                               key.getKeyType() + "@" + 
key.getGuessableKey() +"</a> has been inserted successfully.<br>");
+                       } catch (InserterException e) {
+                               
+                               buf.append("Error: "+e.getMessage()+"<br>");
+                               if(e.uri != null)
+                                       buf.append("URI would have been: 
"+e.uri+"<br>");
+                               int mode = e.getMode();
+                               if(mode == 
InserterException.FATAL_ERRORS_IN_BLOCKS || mode == 
InserterException.TOO_MANY_RETRIES_IN_BLOCKS) {
+                                       buf.append("Splitfile-specific 
error:\n"+e.errorCodes.toVerboseString()+"<br>");
+                               }
                        }
+                       bucket.free();
+                       
                        buf.append("<br><a href=\"javascript:back()\" 
title=\"Back\">Back</a>\n");
                buf.append("<br><a href=\"/\" title=\"Node 
Homepage\">Homepage</a>\n");
                        buf.append("</div>\n");

                        ctx.getPageMaker().makeTail(buf);
                        writeReply(ctx, 200, "text/html", "OK", buf.toString());
-                       
+                       request.freeParts();
                }else {
                        this.handleGet(uri, ctx);
                }


Reply via email to