X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=inline;f=src%2Fnet%2Fpterodactylus%2Futil%2Ffcp%2FAddPeer.java;fp=src%2Fnet%2Fpterodactylus%2Futil%2Ffcp%2FAddPeer.java;h=06655870f0df530e93c3c915c908e49dd512ff37;hb=efceb56d8cedd9e18e599a2f2d1e21d64aacc002;hp=0000000000000000000000000000000000000000;hpb=474a0f39c87d520b0ce8c23ea8e8046441e13ea7;p=jSite2.git diff --git a/src/net/pterodactylus/util/fcp/AddPeer.java b/src/net/pterodactylus/util/fcp/AddPeer.java new file mode 100644 index 0000000..0665587 --- /dev/null +++ b/src/net/pterodactylus/util/fcp/AddPeer.java @@ -0,0 +1,87 @@ +/** + * © 2008 INA Service GmbH + */ +package net.pterodactylus.util.fcp; + +import java.net.URL; + +/** + * The “AddPeer” request adds a peer to the node. + * + * @author David Roden + * @version $Id$ + */ +public class AddPeer extends FcpMessage { + + /** + * Creates a new “AddPeer” request. + */ + private AddPeer() { + super("AddPeer"); + } + + /** + * Creates a new “AddPeer” request that reads the noderef of the peer from + * the given file. + * + * @param file + * The file to read the noderef from + */ + public AddPeer(String file) { + this(); + setField("File", file); + } + + /** + * Creates a new “AddPeer” request that reads the noderef of the peer from + * the given URL. + * + * @param url + * The URL to read the noderef from + */ + public AddPeer(URL url) { + this(); + setField("URL", String.valueOf(url)); + } + + /** + * Creates a new “AddPeer” request that adds the peer given by the noderef. + * + * @param nodeRef + * The noderef of the peer + */ + public AddPeer(NodeRef nodeRef) { + this(); + setNodeRef(nodeRef); + } + + // + // PRIVATE METHODS + // + + /** + * Sets the noderef of the peer to add. + * + * @param nodeRef + * The noderef of the peer + */ + private void setNodeRef(NodeRef nodeRef) { + setField("lastGoodVersion", nodeRef.getLastGoodVersion().toString()); + setField("opennet", String.valueOf(nodeRef.isOpennet())); + setField("identity", nodeRef.getIdentity()); + setField("myName", nodeRef.getName()); + setField("location", String.valueOf(nodeRef.getLocation())); + setField("testnet", String.valueOf(nodeRef.isTestnet())); + setField("version", String.valueOf(nodeRef.getVersion())); + setField("physical.udp", nodeRef.getPhysicalUDP()); + setField("ark.pubURI", nodeRef.getArk().getPublicURI()); + setField("ark.number", String.valueOf(nodeRef.getArk().getNumber())); + setField("dsaPubKey.y", nodeRef.getDSAPublicKey()); + setField("dsaGroup.g", nodeRef.getDSAGroup().getBase()); + setField("dsaGroup.p", nodeRef.getDSAGroup().getPrime()); + setField("dsaGroup.q", nodeRef.getDSAGroup().getSubprime()); + setField("auth.negTypes", FcpUtils.encodeMultiIntegerField(nodeRef.getNegotiationTypes())); + setField("signature", nodeRef.getSignature()); + } + +}