r26777 - trunk/plugins/KeyExplorer
[email protected] Tue, 14 Apr 2009 10:49:50 +0000
| Newsgroups | gmane.network.freenet.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: saces
Date: 2009-04-14 10:49:50 +0000 (Tue, 14 Apr 2009)
New Revision: 26777
Modified:
trunk/plugins/KeyExplorer/KeyExplorer.java
Log:
add a sanitizeURI, remove metas (useless here) and convert USK to underlaying SSK
Modified: trunk/plugins/KeyExplorer/KeyExplorer.java
===================================================================
--- trunk/plugins/KeyExplorer/KeyExplorer.java 2009-04-14 10:03:09 UTC (rev 26776)
+++ trunk/plugins/KeyExplorer/KeyExplorer.java 2009-04-14 10:49:50 UTC (rev 26777)
@@ -175,7 +175,7 @@
}
try {
- FreenetURI furi = new FreenetURI(uri);
+ FreenetURI furi = sanitizeURI(null, uri);
GetResult getResult = simpleGet(m_pr, furi);
SimpleFieldSet sfs = new SimpleFieldSet(true);
sfs.putSingle("Identifier", identifier);
@@ -339,13 +339,8 @@
try {
if (key != null && (key.trim().length() > 0)) {
- furi = new FreenetURI(key);
+ furi = sanitizeURI(errors, key);
retryUri = furi;
- if ("USK".equals(furi.getKeyType())) {
- USK tempUSK = USK.create(furi);
- ClientKey tempKey = tempUSK.getSSK();
- furi = tempKey.getURI();
- }
getresult = simpleGet(m_pr, furi);
data = BucketTools.toByteArray(getresult.getData());
}
@@ -540,12 +535,7 @@
FreenetURI furi = null;
try {
- furi = new FreenetURI(key);
- if ("USK".equals(furi.getKeyType())) {
- USK tempUSK = USK.create(furi);
- ClientKey tempKey = tempUSK.getSSK();
- furi = tempKey.getURI();
- }
+ furi = sanitizeURI(errors, key);
if (zip)
metadata = zipManifestGet(furi);
@@ -567,7 +557,7 @@
if (errors.size() > 0) {
contentNode.addChild(createErrorBox(errors, null, null));
- contentNode.addChild(createUriBox(furi.toString(false, false), hexWidth, automf, deep, errors));
+ contentNode.addChild(createUriBox(((furi==null)?"":furi.toString(false, false)), hexWidth, automf, deep, errors));
return pageNode.generate();
}
@@ -914,4 +904,34 @@
public long getRealVersion() {
return Version.version;
}
+
+ private FreenetURI sanitizeURI(List<String> errors, String key) throws MalformedURLException {
+ if (key == null) throw new NullPointerException();
+
+ FreenetURI tempURI = new FreenetURI(key);
+
+ //get rid of metas, useles
+ if (tempURI.hasMetaStrings()) {
+ if (errors != null) {
+ tempURI = tempURI.setMetaString(null);
+ errors.add("URI did contain meta strings, removed it for you");
+ } else {
+ throw new MalformedURLException("URIs with meta strings not supported");
+ }
+ }
+
+ // turn USK into SSK
+ if (tempURI.isUSK()) {
+ if (errors != null) {
+ USK tempUSK = USK.create(tempURI);
+ ClientKey tempKey = tempUSK.getSSK();
+ tempURI = tempKey.getURI();
+ errors.add("URI was an USK, converted it to SSK for you");
+ } else {
+ throw new MalformedURLException("USK not supported, use underlaying SSK insted.");
+ }
+ }
+
+ return tempURI;
+ }
}