/*
- * jSite -
- * Copyright (C) 2006 David Roden
+ * jSite - Freenet7Interface.java - Copyright © 2006–2011 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
/**
* 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;
/**
* 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, "connection-" + counter++);
+ 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
*/
public void setNodeAddress(String hostname, int port) {
node = new Node(hostname, port);
- connection = new Connection(node, "connection-" + counter++);
+ 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, "connection-" + counter++);
+ connection = new Connection(node, "jSite-" + number + "-connection-" + counter++);
} else {
this.node = null;
connection = null;
/**
* Returns the node this interface is connecting to.
- *
+ *
* @return The node
*/
public Node getNode() {
/**
* 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
/**
* Checks whether the current node is connected. If the node is not
* connected, a connection will be tried.
- *
+ *
* @return <code>true</code> if the node is connected, <code>false</code>
* otherwise
* @throws IOException
/**
* 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
*/
public String[] generateKeyPair() throws IOException {
if (!isNodePresent()) {
- return null;
+ throw new IOException("Node is offline.");
}
GenerateSSK generateSSK = new GenerateSSK();
Client client = new Client(connection, generateSSK);
/**
* Checks whether the interface has already been configured with a node.
- *
+ *
* @return <code>true</code> if this interface already has a node set,
* <code>false</code> otherwise
*/