/* This code is part of Freenet. It is distributed under the GNU General
* Public License, version 2 (or at your option any later version). See
* http://www.gnu.org/ for further details of the GPL. */
package freenet.clients.fcp;
import freenet.l10n.NodeL10n;
import freenet.node.Node;
import freenet.node.NodeStarter;
import freenet.node.Version;
import freenet.support.SimpleFieldSet;
import freenet.support.compress.Compressor;
/**
* NodeHello
*
* NodeHello
* FCPVersion=<protocol version>
* Node=Fred
* Version=0.7.0,401
* EndMessage
*/
public class NodeHelloMessage extends FCPMessage {
public static final String NAME = "NodeHello";
private final String id;
public NodeHelloMessage(String id) {
this.id = id;
}
@Override
public SimpleFieldSet getFieldSet() {
SimpleFieldSet sfs = new SimpleFieldSet(true);
// FIXME
sfs.putSingle("FCPVersion", "2.0");
sfs.putSingle("Node", "Fred");
sfs.putSingle("Version", Version.getVersionString());
sfs.put("Build", Version.buildNumber());
sfs.putSingle("Revision", Version.cvsRevision());
sfs.put("ExtBuild", NodeStarter.extBuildNumber);
sfs.putSingle("ExtRevision", NodeStarter.extRevisionNumber);
sfs.put("Testnet", Node.isTestnetEnabled());
sfs.putSingle("CompressionCodecs", Compressor.COMPRESSOR_TYPE.getHelloCompressorDescriptor());
sfs.putSingle("ConnectionIdentifier", id);
sfs.putSingle("NodeLanguage", NodeL10n.getBase().getSelectedLanguage().toString());
return sfs;
}
@Override
public String getName() {
return NodeHelloMessage.NAME;
}
@Override
public void run(FCPConnectionHandler handler, Node node) throws MessageInvalidException {
throw new MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, "NodeHello goes from server to client not the other way around", null, false);
}
}