Package freenet.clients.fcp

Source Code of freenet.clients.fcp.SendURIMessage

package freenet.clients.fcp;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;

import freenet.keys.FreenetURI;
import freenet.node.DarknetPeerNode;
import freenet.support.SimpleFieldSet;
import freenet.support.io.BucketTools;

public class SendURIMessage extends SendPeerMessage {

  public final static String NAME = "SendURI";
  private final FreenetURI uri;

  public SendURIMessage(SimpleFieldSet fs) throws MessageInvalidException {
    super(fs);
    try {
      uri = new FreenetURI(fs.get("URI"));
    } catch (MalformedURLException e) {
      throw new MessageInvalidException(ProtocolErrorMessage.FREENET_URI_PARSE_ERROR, e.getMessage(),
          identifier, false);
    }
  }

  @Override
  public SimpleFieldSet getFieldSet() {
    SimpleFieldSet fs = super.getFieldSet();
    fs.putSingle("URI", uri.toString());
    return fs;
  }

  @Override
  public String getName() {
    return NAME;
  }

  @Override
  protected int handleFeed(DarknetPeerNode pn) throws MessageInvalidException {
    try {
      if(dataLength() > 0) {
        byte[] description = BucketTools.toByteArray(bucket);
        return pn.sendDownloadFeed(uri, new String(description, "UTF-8"));
      }
      else
        return pn.sendDownloadFeed(uri, null);
    } catch (UnsupportedEncodingException e) {
      throw new Error("Impossible: JVM doesn't support UTF-8: " + e, e);
    } catch (IOException e) {
      throw new MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, "", null, false);
    }
  }
}
TOP

Related Classes of freenet.clients.fcp.SendURIMessage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.