Author: borg-0300
Date: 2008-02-06 20:48:41 +0100 (Wed, 06 Feb 2008)
New Revision: 4455

Modified:
   trunk/htroot/yacy/transfer.java
Log:
undo 4448 (no bug)

Modified: trunk/htroot/yacy/transfer.java
===================================================================
--- trunk/htroot/yacy/transfer.java     2008-02-06 19:00:18 UTC (rev 4454)
+++ trunk/htroot/yacy/transfer.java     2008-02-06 19:48:41 UTC (rev 4455)
@@ -66,12 +66,12 @@
         if ((post == null) || (env == null)) return prop;
         if (!yacyNetwork.authentifyRequest(post, env)) return prop;
         
-        String process   = post.get("process", "");  // permission or store
-        //String key       = post.get("key", "");      // a transmission key 
from the client
-        String otherpeer = post.get("iam", "");      // identification of the 
client (a peer-hash)
-        String purpose   = post.get("purpose", "");  // declares how the file 
shall be treated
-        String filename  = post.get("filename", ""); // a name of a file 
without path
-        //long   filesize  = Long.parseLong((String) post.get("filesize", 
"")); // the size of the file
+        String process  = post.get("process", "");  // permission or store
+//      String key      = post.get("key", "");      // a transmission key from 
the client
+        String ohash    = post.get("iam", "");      // identification of the 
client (a peer-hash)
+        String purpose  = post.get("purpose", "");  // declares how the file 
shall be treated
+        String filename = post.get("filename", ""); // a name of a file 
without path
+//      long   filesize = Long.parseLong((String) post.get("filesize", "")); 
// the size of the file
 
         prop.put("process", "0");
         prop.put("response", "denied"); // reject is default and is 
overwritten if ok
@@ -86,29 +86,27 @@
             return prop;
         }
 
-        final yacySeed otherPeer = yacyCore.seedDB.get(otherpeer);
-        if (otherPeer == null) {
+        final yacySeed opeer = yacyCore.seedDB.get(ohash);
+        if (opeer == null) {
             // reject unknown peers: this does not appear fair, but anonymous 
senders are dangerous
-            sb.getLog().logFine("RankingTransmission: rejected unknown peer, 
current IP " + header.get("CLIENTIP", "unknown"));
+            sb.getLog().logFine("RankingTransmission: rejected unknown peer '" 
+ ohash + "', current IP " + header.get("CLIENTIP", "unknown"));
             return prop;
         }
-        otherPeer.setLastSeenUTC();
+        opeer.setLastSeenUTC();
 
         if (filename.indexOf("..") >= 0) {
             // reject paths that contain '..' because they are dangerous
-            sb.getLog().logFine("RankingTransmission: rejected wrong path '" + 
filename + "' from peer " + otherPeer.getName() + "/" + 
otherPeer.getPublicAddress()+ ", current IP " + header.get("CLIENTIP", 
"unknown"));
+            sb.getLog().logFine("RankingTransmission: rejected wrong path '" + 
filename + "' from peer " + opeer.getName() + "/" + opeer.getPublicAddress()+ 
", current IP " + header.get("CLIENTIP", "unknown"));
             return prop;
         }
-        
-        String otherpeerName = otherPeer.hash + ":" + otherPeer.getName();
-        
+
         if (process.equals("permission")) {
             prop.put("process", "0");
             if (((purpose.equals("crcon")) && (filename.startsWith("CRG")) && 
(filename.endsWith(".cr.gz"))) || ((filename.startsWith("domlist")) && 
(filename.endsWith(".txt.gz") || filename.endsWith(".zip")))) {
                 // consolidation of cr files
                 //System.out.println("yacy/transfer:post=" + post.toString());
                 //String cansendprotocol = (String) 
post.get("can-send-protocol", "http");
-                String access = 
kelondroBase64Order.enhancedCoder.encode(serverCodings.encodeMD5Raw(otherpeer + 
":" + filename)) + ":" + 
kelondroBase64Order.enhancedCoder.encode(serverCodings.encodeMD5Raw("" + 
System.currentTimeMillis()));
+                String access = 
kelondroBase64Order.enhancedCoder.encode(serverCodings.encodeMD5Raw(ohash + ":" 
+ filename)) + ":" + 
kelondroBase64Order.enhancedCoder.encode(serverCodings.encodeMD5Raw("" + 
System.currentTimeMillis()));
                 prop.put("response", "ok");
                 prop.put("process_access", access);
                 prop.put("process_address", 
yacyCore.seedDB.mySeed().getPublicAddress());
@@ -116,7 +114,7 @@
                 prop.put("process_path", "");  // currently empty; the store 
process will find a path
                 prop.put("process_maxsize", "-1"); // if response is too big 
we return the size of the file
                 
sb.rankingPermissions.put(serverCodings.encodeMD5Hex(kelondroBase64Order.standardCoder.encodeString(access)),
 filename);
-                sb.getLog().logFine("RankingTransmission: granted peer " + 
otherpeerName + " to send CR file " + filename);
+                sb.getLog().logFine("RankingTransmission: granted peer " + 
opeer.hash + ":" + opeer.getName() + " to send CR file " + filename);
             }
             return prop;
         }
@@ -134,7 +132,7 @@
                 if ((grantedFile == null) || 
(!(grantedFile.equals(filename)))) {
                     // fraud-access of this interface
                     prop.put("response", "denied");
-                    sb.getLog().logFine("RankingTransmission: denied " + 
otherpeerName + " to send CR file " + filename + ": wrong access code");
+                    sb.getLog().logFine("RankingTransmission: denied " + 
opeer.hash + ":" + opeer.getName() + " to send CR file " + filename + ": wrong 
access code");
                 } else {
                     sb.rankingPermissions.remove(accesscode); // not needed 
any more
                     File path = new File(sb.rankingPath, 
plasmaRankingDistribution.CR_OTHER);
@@ -146,10 +144,10 @@
                             String md5t = serverCodings.encodeMD5Hex(file);
                             if (md5t.equals(md5)) {
                                 prop.put("response", "ok");
-                                sb.getLog().logFine("RankingTransmission: 
received from peer " + otherpeerName + " CR file " + filename);
+                                sb.getLog().logFine("RankingTransmission: 
received from peer " + opeer.hash + ":" + opeer.getName() + " CR file " + 
filename);
                             } else {
                                 prop.put("response", "transfer failure");
-                                sb.getLog().logFine("RankingTransmission: 
transfer failure from peer " + otherpeerName + " for CR file " + filename);
+                                sb.getLog().logFine("RankingTransmission: 
transfer failure from peer " + opeer.hash + ":" + opeer.getName() + " for CR 
file " + filename);
                             }
                         }else{
                             //exploit?
@@ -165,7 +163,7 @@
         }
 
         // wrong access
-        sb.getLog().logFine("RankingTransmission: rejected unknown process " + 
process + ":" + purpose + " from peer " + otherpeerName);
+        sb.getLog().logFine("RankingTransmission: rejected unknown process " + 
process + ":" + purpose + " from peer " + opeer.hash + ":" + opeer.getName());
         return prop;
     }
 

_______________________________________________
YaCy-svn mailing list
YaCy-svn@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/yacy-svn

Antwort per Email an