X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fapplication%2FFreenet7Interface.java;fp=src%2Fde%2Ftodesbaum%2Fjsite%2Fapplication%2FFreenet7Interface.java;h=0000000000000000000000000000000000000000;hb=38bdc433e50669e8244a63b5af59e597f88f1d29;hp=78250b21ad7554fd6a7fe8a0e43d91489a4188d7;hpb=f14b9fbe6d88e23920b10a75ebeba4d38390301b;p=jSite.git diff --git a/src/de/todesbaum/jsite/application/Freenet7Interface.java b/src/de/todesbaum/jsite/application/Freenet7Interface.java deleted file mode 100644 index 78250b2..0000000 --- a/src/de/todesbaum/jsite/application/Freenet7Interface.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * jSite - Freenet7Interface.java - Copyright © 2006–2012 David Roden - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -package de.todesbaum.jsite.application; - -import java.io.IOException; - -import de.todesbaum.util.freenet.fcp2.Client; -import de.todesbaum.util.freenet.fcp2.Connection; -import de.todesbaum.util.freenet.fcp2.GenerateSSK; -import de.todesbaum.util.freenet.fcp2.Message; -import de.todesbaum.util.freenet.fcp2.Node; - -/** - * Interface for freenet-related operations. - * - * @author David ‘Bombe’ Roden <bombe@freenetproject.org> - */ -public class Freenet7Interface { - - /** Random number to differentiate several jSites. */ - private static final int number = (int) (Math.random() * Integer.MAX_VALUE); - - /** Counter. */ - private static int counter = 0; - - /** The node to connect to. */ - private Node node; - - /** The connection to the node. */ - private Connection connection; - - /** - * Sets the hostname of the node. The default port for FCP2 connections ({@link Node#DEFAULT_PORT}) - * is used. - * - * @param hostname - * The hostname of the node - */ - public void setNodeAddress(String hostname) { - node = new Node(hostname); - connection = new Connection(node, "jSite-" + number + "-connection-" + counter++); - } - - /** - * Sets the hostname and the port of the node. - * - * @param hostname - * The hostname of the node - * @param port - * The port number of the node - */ - public void setNodeAddress(String hostname, int port) { - node = new Node(hostname, port); - connection = new Connection(node, "jSite-" + number + "-connection-" + counter++); - } - - /** - * Sets hostname and port from the given node. - * - * @param node - * The node to get the hostname and port from - */ - public void setNode(de.todesbaum.jsite.application.Node node) { - if (node != null) { - this.node = new Node(node.getHostname(), node.getPort()); - connection = new Connection(node, "jSite-" + number + "-connection-" + counter++); - } else { - this.node = null; - connection = null; - } - } - - /** - * Removes the current node from the interface. - */ - public void removeNode() { - node = null; - connection = null; - } - - /** - * Returns the node this interface is connecting to. - * - * @return The node - */ - public Node getNode() { - return node; - } - - /** - * Creates a new connection to the current node with the given identifier. - * - * @param identifier - * The identifier of the connection - * @return The connection to the node - */ - public Connection getConnection(String identifier) { - return new Connection(node, identifier); - } - - /** - * Checks whether the current node is connected. If the node is not - * connected, a connection will be tried. - * - * @return true if the node is connected, false - * otherwise - * @throws IOException - * if an I/O error occurs communicating with the node - */ - public boolean isNodePresent() throws IOException { - if (!connection.isConnected()) { - return connection.connect(); - } - return true; - } - - /** - * Generates an SSK key pair. - * - * @return An array of strings, the first one being the generated private - * (insert) URI and the second one being the generated public - * (request) URI - * @throws IOException - * if an I/O error occurs communicating with the node - */ - public String[] generateKeyPair() throws IOException { - if (!isNodePresent()) { - throw new IOException("Node is offline."); - } - GenerateSSK generateSSK = new GenerateSSK(); - Client client = new Client(connection, generateSSK); - Message keypairMessage = client.readMessage(); - return new String[] { keypairMessage.get("InsertURI"), keypairMessage.get("RequestURI") }; - } - - /** - * Checks whether the interface has already been configured with a node. - * - * @return true if this interface already has a node set, - * false otherwise - */ - public boolean hasNode() { - return (node != null) && (connection != null); - } - -}