Package freenet.node

Examples of freenet.node.PeerNode$SyncMessageCallback


  @Override
  public DECODED process(byte[] buf, int offset, int length, Peer peer, long now) {
    if(logMINOR) Logger.minor(this, "Packet length "+length+" from "+peer);
    node.random.acceptTimerEntropy(fnpTimingSource, 0.25);
    PeerNode opn = node.peers.getByPeer(peer, mangler);

    if(opn != null) {
      if(opn.handleReceivedPacket(buf, offset, length, now, peer)) {
        if(logMINOR) successfullyDecodedPackets.incrementAndGet();
        return DECODED.DECODED;
      }
    } else {
      Logger.normal(this, "Got packet from unknown address");
View Full Code Here


    }
    String nodeIdentifier = fs.get("NodeIdentifier");
    if( nodeIdentifier == null ) {
      throw new MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error: NodeIdentifier field missing", identifier, false);
    }
    PeerNode pn = node.getPeerNode(nodeIdentifier);
    if(pn == null) {
      FCPMessage msg = new UnknownNodeIdentifierMessage(nodeIdentifier, identifier);
      handler.outputHandler.queue(msg);
      return;
    }
View Full Code Here

    }
    String nodeIdentifier = fs.get("NodeIdentifier");
    if( nodeIdentifier == null ) {
      throw new MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error: NodeIdentifier field missing", identifier, false);
    }
    PeerNode pn = node.getPeerNode(nodeIdentifier);
    if(pn == null) {
      FCPMessage msg = new UnknownNodeIdentifierMessage(nodeIdentifier, identifier);
      handler.outputHandler.queue(msg);
      return;
    }
View Full Code Here

    return fs;
  }

  @Override
  public void run(FCPConnectionHandler handler, Node node) throws MessageInvalidException {
    PeerNode pn = node.getPeerNode(nodeIdentifier);
    if (pn == null) {
      FCPMessage msg = new UnknownNodeIdentifierMessage(nodeIdentifier, identifier);
      handler.outputHandler.queue(msg);
    } else if (!(pn instanceof DarknetPeerNode)) {
      throw new MessageInvalidException(ProtocolErrorMessage.DARKNET_ONLY,
View Full Code Here

    }
    String nodeIdentifier = fs.get("NodeIdentifier");
    if( nodeIdentifier == null ) {
      throw new MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error: NodeIdentifier field missing", identifier, false);
    }
    PeerNode pn = node.getPeerNode(nodeIdentifier);
    if(pn == null) {
      FCPMessage msg = new UnknownNodeIdentifierMessage(nodeIdentifier, identifier);
      handler.outputHandler.queue(msg);
      return;
    }
View Full Code Here

    }
    String nodeIdentifier = fs.get("NodeIdentifier");
    if( nodeIdentifier == null ) {
      throw new MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error: NodeIdentifier field missing", identifier, false);
    }
    PeerNode pn = node.getPeerNode(nodeIdentifier);
    if(pn == null) {
      FCPMessage msg = new UnknownNodeIdentifierMessage(nodeIdentifier, identifier);
      handler.outputHandler.queue(msg);
      return;
    }
View Full Code Here

    }
    String nodeIdentifier = fs.get("NodeIdentifier");
    if( nodeIdentifier == null ) {
      throw new MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error: NodeIdentifier field missing", identifier, false);
    }
    PeerNode pn = node.getPeerNode(nodeIdentifier);
    if(pn == null) {
      FCPMessage msg = new UnknownNodeIdentifierMessage(nodeIdentifier, identifier);
      handler.outputHandler.queue(msg);
      return;
    }
    String identity = pn.getIdentityString();
    node.removePeerConnection(pn);
    handler.outputHandler.queue(new PeerRemoved(identity, nodeIdentifier, identifier));
  }
View Full Code Here

      } catch (IOException e) {
        throw new MessageInvalidException(ProtocolErrorMessage.REF_PARSE_ERROR, "Error parsing ref from file <"+fileString+">: "+e.getMessage(), identifier, false);
      }
    }
    fs.setEndMarker( "End" );
    PeerNode pn;
    boolean isOpennetRef = fs.getBoolean("opennet", false);
    if(isOpennetRef) {
      try {
        pn = node.createNewOpennetNode(fs);
      } catch (FSParseException e) {
        throw new MessageInvalidException(ProtocolErrorMessage.REF_PARSE_ERROR, "Error parsing ref: "+e.getMessage(), identifier, false);
      } catch (OpennetDisabledException e) {
        throw new MessageInvalidException(ProtocolErrorMessage.OPENNET_DISABLED, "Error adding ref: "+e.getMessage(), identifier, false);
      } catch (PeerParseException e) {
        throw new MessageInvalidException(ProtocolErrorMessage.REF_PARSE_ERROR, "Error parsing ref: "+e.getMessage(), identifier, false);
      } catch (ReferenceSignatureVerificationException e) {
        throw new MessageInvalidException(ProtocolErrorMessage.REF_SIGNATURE_INVALID, "Error adding ref: "+e.getMessage(), identifier, false);
      }
      if(Arrays.equals(pn.getPubKeyHash(), node.getOpennetPubKeyHash()))
        throw new MessageInvalidException(ProtocolErrorMessage.CANNOT_PEER_WITH_SELF, "Node cannot peer with itself", identifier, false);
      if(!node.addPeerConnection(pn)) {
        throw new MessageInvalidException(ProtocolErrorMessage.DUPLICATE_PEER_REF, "Node already has a peer with that identity", identifier, false);
      }
      System.out.println("Added opennet peer: "+pn);
    } else {
      try {
        pn = node.createNewDarknetNode(fs, trust, visibility);
      } catch (FSParseException e) {
        throw new MessageInvalidException(ProtocolErrorMessage.REF_PARSE_ERROR, "Error parsing ref: "+e.getMessage(), identifier, false);
      } catch (PeerParseException e) {
        throw new MessageInvalidException(ProtocolErrorMessage.REF_PARSE_ERROR, "Error parsing ref: "+e.getMessage(), identifier, false);
      } catch (ReferenceSignatureVerificationException e) {
        throw new MessageInvalidException(ProtocolErrorMessage.REF_SIGNATURE_INVALID, "Error adding ref: "+e.getMessage(), identifier, false);
      }
      if(Arrays.equals(pn.getPubKeyHash(), node.getDarknetPubKeyHash()))
        throw new MessageInvalidException(ProtocolErrorMessage.CANNOT_PEER_WITH_SELF, "Node cannot peer with itself", identifier, false);
      if(!node.addPeerConnection(pn)) {
        throw new MessageInvalidException(ProtocolErrorMessage.DUPLICATE_PEER_REF, "Node already has a peer with that identity", identifier, false);
      }
      System.out.println("Added darknet peer: "+pn);
View Full Code Here

    //Recreate the request so that any sub-messages or unintended fields are not forwarded.
    final Message message = DMT.createProbeRequest(htl, uid, type);
    PeerNode[] peers;
    //Degree of the local node.
    int degree;
    PeerNode candidate;
    /*
     * Attempt to forward until success or until reaching the send attempt limit.
     */
    for (int sendAttempts = 0; sendAttempts < MAX_SEND_ATTEMPTS; sendAttempts++) {
      peers = node.getConnectedPeers();
      degree = peers.length;
      //Can't handle a probe request if not connected to peers.
      if (degree == 0 ) {
        if (logMINOR) {
          Logger.minor(Probe.class, "Aborting probe request: no connections.");
        }

        /*
         * If this is a locally-started request, not a relayed one, give an error.
         * Otherwise, in this case there's nowhere to send the error.
         */
        listener.onError(Error.DISCONNECTED, null, true);
        return true;
      }

      candidate = peers[node.random.nextInt(degree)];

      if (candidate.isConnected()) {
        //acceptProbability is the MH correction.
        float acceptProbability;
        int candidateDegree = candidate.getDegree();
        /* Candidate's degree is unknown; fall back to random walk by accepting this candidate
         * regardless of its degree.
         */
        if (candidateDegree == 0) acceptProbability = 1.0f;
        else acceptProbability = (float)degree / candidateDegree;

        if (logDEBUG) Logger.debug(Probe.class, "acceptProbability is " + acceptProbability);
        if (node.random.nextFloat() < acceptProbability) {
          if (logDEBUG) Logger.debug(Probe.class, "Accepted candidate.");
          //Filter for response to this probe with requested result type.
          final MessageFilter filter = createResponseFilter(type, candidate, uid, htl);
          message.set(DMT.HTL, htl);
          try {
            node.getUSM().addAsyncFilter(filter, new ResultListener(listener), this);
            if (logDEBUG) Logger.debug(Probe.class, "Sending.");
            candidate.sendAsync(message, null, this);
            return true;
          } catch (NotConnectedException e) {
            if (logMINOR) Logger.minor(Probe.class, "Peer became disconnected between check and send attempt.", e);
            // Peer no longer connected - sending was not successful. Try again.
          } catch (DisconnectedException e) {
View Full Code Here

        node2.connect(node1, trust, visibility);
        // No swapping
        node1.start(true);
        node2.start(true);
        // Ping
        PeerNode pn = node1.getPeerNodes()[0];
        int pingID = 0;
        Thread.sleep(20000);
        //node1.usm.setDropProbability(4);
        while(true) {
            Logger.error(RealNodePingTest.class, "Sending PING "+pingID);
            boolean success;
            try {
                success = pn.ping(pingID);
            } catch (NotConnectedException e1) {
                Logger.error(RealNodePingTest.class, "Not connected");
                continue;
            }
            if(success)
View Full Code Here

TOP

Related Classes of freenet.node.PeerNode$SyncMessageCallback

Copyright © 2018 www.massapicom. 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.