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);
}