Examples of CorruptedPacketException


Examples of org.jmule.core.jkad.packet.CorruptedPacketException

        byte tag_count = rawData.get();
        List<Tag> tag_list = new LinkedList<Tag>();
        for (byte i = 0; i < tag_count; i++) {
          Tag tag = TagScanner.scanTag(rawData);
          if (tag == null)
            throw new CorruptedPacketException();
          tag_list.add(tag);
        }

        KadContact contact = routing_table.getContact(clientID);
        if (contact != null) {
          contact.setTCPPort(tcpPort);
          contact.setUDPPort(packet.getAddress().getPort());
          contact.setVersion(version);
        }

        KadPacket response = PacketFactory
            .getHello2ResPacket(TagList.EMPTY_TAG_LIST);
        _network_manager.sendKadPacket(response, sender_address,
            sender_port);
      } else if (packetOPCode == KADEMLIA2_HELLO_RES) {
        byte[] client_id_raw = new byte[16];
        rawData.get(client_id_raw);
        ClientID clientID = new ClientID(client_id_raw);
        int tcpPort = shortToInt(rawData.getShort());
        byte version = rawData.get();
        byte tag_count = rawData.get();
        List<Tag> tag_list = new LinkedList<Tag>();

        for (byte i = 0; i < tag_count; i++) {
          Tag tag = TagScanner.scanTag(rawData);
          if (tag == null)
            throw new CorruptedPacketException();
          tag_list.add(tag);
        }

        KadContact contact = routing_table.getContact(clientID);
        if (contact != null) {
          contact.setTCPPort(tcpPort);
          contact.setVersion(version);
        }
        // ignore message if contact is not in routing table
        /*
         * ContactAddress address = new ContactAddress(new
         * IPAddress(packet.getSender()),packet.getSender().getPort());
         * KadContact add_contact = new KadContact(clientID, address,
         * tcpPort,version, null);
         * routing_table.addContact(add_contact);
         *
         * add_contact.setConnected(true);
         */

      } else if (packetOPCode == KADEMLIA2_REQ) {
        byte type = rawData.get();

        byte[] client_id_raw = new byte[16];
        rawData.get(client_id_raw);
        ClientID targetClientID = new ClientID(client_id_raw);

        client_id_raw = new byte[16];
        rawData.get(client_id_raw);
        ClientID receiverClientID = new ClientID(client_id_raw);
        RequestType requestType = RequestType.FIND_VALUE;
        switch (type) {
        case JKadConstants.FIND_VALUE:
          requestType = RequestType.FIND_VALUE;
          break;

        case JKadConstants.STORE:
          requestType = RequestType.STORE;
          break;

        case JKadConstants.FIND_NODE:
          requestType = RequestType.FIND_NODE;
          break;
        }

        lookup.processRequest(packet.getAddress(), requestType,
            targetClientID, receiverClientID, 2);
      } else if (packetOPCode == KADEMLIA2_RES) {
        byte[] client_id_raw = new byte[16];
        rawData.get(client_id_raw);
        int contactCount = byteToInt(rawData.get());
        List<KadContact> contact_list = new LinkedList<KadContact>();
        for (int i = 0; i < contactCount; i++) {
          contact_list.add(getContact(rawData));
        }
        lookup.processResponse(packet.getAddress(), new ClientID(
            client_id_raw), contact_list);
      } else if (packetOPCode == KADEMLIA2_PUBLISH_KEY_REQ) {
        byte[] client_id = new byte[16];
        rawData.get(client_id);
        ClientID clientID = new ClientID(client_id);
        int count = rawData.getShort();
        for (int i = 0; i < count; i++) {
          byte[] hash = new byte[16];
          rawData.get(hash);
          byte tagCount = rawData.get();
          TagList tag_list = new TagList();
          for (int j = 0; j < tagCount; j++) {
            Tag tag = TagScanner.scanTag(rawData);
            if (tag == null)
              throw new CorruptedPacketException();
            tag_list.addTag(tag);
          }
          Source source = new Source(clientID, tag_list);
          source.setAddress(new IPAddress(packet.getAddress()));
          source.setUDPPort(packet.getAddress().getPort());

          KadContact contact = routing_table.getContact(clientID);
          if (contact != null)
            source.setTCPPort(contact.getTCPPort());

          indexer.addKeywordSource(new Int128(hash), source);
        }
        KadPacket response = PacketFactory.getPublishRes2Packet(
            clientID, indexer.getKeywordLoad());
        _network_manager.sendKadPacket(response, sender_address,
            sender_port);

      } else if (packetOPCode == KADEMLIA2_PUBLISH_RES) {
        byte targetID[] = new byte[16];
        rawData.get(targetID);
        int load = byteToInt(rawData.get());
        publisher.processGenericResponse(new ClientID(targetID), load);
      } else if (packetOPCode == KADEMLIA2_PUBLISH_SOURCE_REQ) {
        byte[] client_id = new byte[16];
        byte[] source_id = new byte[16];

        rawData.get(client_id);
        rawData.get(source_id);

        int tagCount = rawData.get();
        TagList tag_list = new TagList();
        for (int i = 0; i < tagCount; i++) {
          Tag tag = TagScanner.scanTag(rawData);
          if (tag == null)
            throw new CorruptedPacketException();
          tag_list.addTag(tag);
        }
        Source source = new Source(new ClientID(client_id), tag_list);
        source.setAddress(new IPAddress(packet.getAddress()));
        source.setUDPPort(packet.getAddress().getPort());
View Full Code Here
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.