diff --git a/ws2012/P2P/uebungen/11/src/node/FileIdentifier.java b/ws2012/P2P/uebungen/11/src/node/FileIdentifier.java index fdcb8be7..470390a2 100644 --- a/ws2012/P2P/uebungen/11/src/node/FileIdentifier.java +++ b/ws2012/P2P/uebungen/11/src/node/FileIdentifier.java @@ -1,13 +1,25 @@ package node; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + public class FileIdentifier extends Identifier { private String key; public FileIdentifier(int size, byte[] bytes, String key) { super(size, bytes); - this.key = key; - // TODO: key muss noch gehasht werden + + //calculate SHA-256 Hash of key + try { + MessageDigest md = MessageDigest.getInstance("SHA-256"); + md.update(key.getBytes()); + this.key = md.digest().toString(); + } catch (NoSuchAlgorithmException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } public String getKey() { diff --git a/ws2012/P2P/uebungen/11/src/node/UDPHandler.java b/ws2012/P2P/uebungen/11/src/node/UDPHandler.java index f3306b0c..a77f41cd 100644 --- a/ws2012/P2P/uebungen/11/src/node/UDPHandler.java +++ b/ws2012/P2P/uebungen/11/src/node/UDPHandler.java @@ -136,6 +136,10 @@ public class UDPHandler implements Runnable { break; case MessageType.DATA: //TODO implemnt + + //rpcID splitten ? -> [0] fileID, [1] partID ?!?!?! + receiveData(fromID, fileID, partID); + LOGGER.log(Level.INFO, "Received DATA from {0}", new Object[] { from.toString() }); break; @@ -218,7 +222,9 @@ public class UDPHandler implements Runnable { private void receiveStore(NodeIdentifier fromID, Identifier rpc_id) { //TODO Cast geht an dieser stelle nicht, getIDFromBuffer() müsste man für // FileID implementieren. - Identifier fileID = getIDFromBuffer(); + + // warum speichern wir nicht einfach die rpc_od ??? + Identifier fileID = rpc_id; node.StorePair(fileID, fromID); }