Package org.jmule.core.edonkey.packet.tag

Examples of org.jmule.core.edonkey.packet.tag.TagList


      int serverPort, Map<PeerFeatures, Integer> clientFeatures)
      throws JMException {

    int misc_optins1 = Utils.peerFeatures1ToInt(clientFeatures);
    int misc_optins2 = Utils.peerFeatures2ToInt(clientFeatures);
    TagList tagList = new TagList();
    tagList.addTag(new StringTag(TAG_NAME_NAME, userName));
    tagList.addTag(new IntTag(TAG_NAME_MISC_OPTIONS1, misc_optins1));
    tagList.addTag(new IntTag(TAG_NAME_MISC_OPTIONS2, misc_optins2));

    tagList.addTag(new IntTag(TAG_NAME_PROTOCOLVERSION, ProtocolVersion));
    tagList.addTag(new IntTag(TAG_NAME_CLIENTVER, E2DKConstants.getSoftwareVersion()));
    tagList.addTag(new IntTag(TAG_NAME_FLAGS, SUPPORTED_FLAGS));
    tagList.addTag(new IntTag(TAG_NAME_UDP_PORT_PEER,
        ConfigurationManagerSingleton.getInstance().getUDP()));

    int tag_list_size = tagList.getByteSize();

    Packet packet = new Packet(1 + 1 + 16 + 4 + 2 + 4 + 4 + 2 + 2
        + tag_list_size + 4 + 2, PROTO_EDONKEY_TCP);
    packet.setCommand(OP_PEERHELLOANSWER);// hello answer tag

    packet.insertData(userHash.getUserHash());// insert user hash
    if (clientID == null)
      packet.insertData(new byte[] { 0, 0, 0, 0 });
    else
      packet.insertData(clientID.getClientID());// insert user ID

    packet.insertData((short) myPort);// insert my active port

    packet.insertData(tagList.size());

    packet.insertData(tagList.getAsByteBuffer());

    if (serverIP != null)
      packet.insertData(serverIP);
    else
      packet.insertData(new byte[] { 0, 0, 0, 0 });// Server IP
View Full Code Here


  }
 
 
 
  public static Packet getEMulePeerHelloPacket() throws JMException {
    TagList tag_list = new TagList();
    tag_list.addTag(new IntTag(ET_COMPRESSION, DefaultJMuleFeatures.get(PeerFeatures.DataCompressionVer)));
    tag_list.addTag(new IntTag(ET_UDPPORT, (ConfigurationManagerSingleton.getInstance().getUDP())));
    tag_list.addTag(new IntTag(ET_UDPVER, DefaultJMuleFeatures.get(PeerFeatures.UDPVer)));
    tag_list.addTag(new IntTag(ET_SOURCEEXCHANGE, DefaultJMuleFeatures.get(PeerFeatures.SourceExchange1Ver) ));
    tag_list.addTag(new IntTag(ET_COMMENTS, DefaultJMuleFeatures.get(PeerFeatures.AcceptCommentVer)));
    tag_list.addTag(new IntTag(ET_EXTENDEDREQUEST, DefaultJMuleFeatures.get(PeerFeatures.ExtendedRequestsVer) ));
    tag_list.addTag(new IntTag(ET_FEATURES, DefaultJMuleFeatures.get(PeerFeatures.NoViewSharedFiles)));
   
    Packet packet = new Packet(1 + 4 + 1 + 1 + 1 + 4 + tag_list.getByteSize(),
        PROTO_EMULE_EXTENDED_TCP);
    packet.setCommand(OP_EMULE_HELLO);
    packet.insertData(Convert.intToByte(E2DKConstants.ClientVersion[1]));
    packet.insertData((byte)1);
    packet.insertData(tag_list.size());
    packet.insertData(tag_list.getAsByteBuffer());
    return packet;
  }
View Full Code Here

          packet_data.get(client_id);
          ClientID clientID = new ClientID(client_id);

          int tcpPort = Convert.shortToInt(packet_data.getShort());

          TagList tag_list = readTagList(packet_data);

          byte[] server_ip_array = new byte[4];
          packet_data.get(server_ip_array);
          String server_ip = Convert.IPtoString(server_ip_array);
          int server_port;
          server_port = Convert.shortToInt(packet_data.getShort());

          _network_manager.receivedHelloFromPeerAndRespondTo(peerIP,
              peerPort, userHash, clientID, tcpPort, tag_list,
              server_ip, server_port);

          break;
        }

        case OP_PEERHELLOANSWER: {
          byte[] data = new byte[16];
          packet_data.get(data);
          UserHash userHash = new UserHash(data);

          byte client_id[] = new byte[4];
          packet_data.get(client_id);
          ClientID clientID = new ClientID(client_id);

          int tcpPort = Convert.shortToInt(packet_data.getShort());

          TagList tag_list = readTagList(packet_data);

          byte[] server_ip_array = new byte[4];
          packet_data.get(server_ip_array);
          String server_ip = Convert.IPtoString(server_ip_array);
          int server_port;
          server_port = Convert.shortToInt(packet_data.getShort());

          _network_manager.receivedHelloAnswerFromPeer(peerIP,
              peerPort, userHash, clientID, tcpPort, tag_list,
              server_ip, server_port);

          break;
        }

        case OP_SENDINGPART: {
          byte[] file_hash = new byte[16];
          packet_data.get(file_hash);
          long chunk_start = Convert.intToLong(packet_data.getInt());
          long chunk_end = Convert.intToLong(packet_data.getInt());
          ByteBuffer chunk_content = Misc.getByteBuffer(chunk_end
              - chunk_start);
          packet_data.get(chunk_content.array());
          _network_manager.receivedRequestedFileChunkFromPeer(peerIP,
              peerPort, new FileHash(file_hash), new FileChunk(
                  chunk_start, chunk_end, chunk_content));

          break;
        }

        case OP_REQUESTPARTS: {
          byte[] file_hash = new byte[16];
          packet_data.get(file_hash);
          long[] startPos = new long[3];
          long[] endPos = new long[3];
          List<FileChunkRequest> chunks = new LinkedList<FileChunkRequest>();
          for (int i = 0; i < 3; i++)
            startPos[i] = Convert.intToLong(packet_data.getInt());

          for (int i = 0; i < 3; i++)
            endPos[i] = Convert.intToLong(packet_data.getInt());

          for (int i = 0; i < 3; i++) {
            if ((startPos[i] == endPos[i]) && (startPos[i] == 0))
              break;
            chunks
                .add(new FileChunkRequest(startPos[i],
                    endPos[i]));
          }

          _network_manager.receivedFileChunkRequestFromPeer(peerIP,
              peerPort, new FileHash(file_hash), chunks);

          break;
        }

        case OP_END_OF_DOWNLOAD: {
          _network_manager.receivedEndOfDownloadFromPeer(peerIP,
              peerPort);
          break;
        }

        case OP_HASHSETREQUEST: {
          byte[] file_hash = new byte[16];
          packet_data.get(file_hash);

          _network_manager.receivedHashSetRequestFromPeer(peerIP,
              peerPort, new FileHash(file_hash));
          break;
        }

        case OP_HASHSETANSWER: {
          byte[] file_hash = new byte[16];
          packet_data.get(file_hash);
          int partCount = Convert.shortToInt(packet_data.getShort());
          PartHashSet partSet = new PartHashSet(new FileHash(
              file_hash));
          byte[] partHash = new byte[16];

          for (short i = 1; i <= partCount; i++) {
            packet_data.get(partHash);
            partSet.add(partHash);
          }
          _network_manager.receivedHashSetResponseFromPeer(peerIP,
              peerPort, partSet);
          break;
        }

        case OP_SLOTREQUEST: {
          byte[] file_hash = new byte[16];
          packet_data.get(file_hash);
          _network_manager.receivedSlotRequestFromPeer(peerIP,
              peerPort, new FileHash(file_hash));
          break;
        }

        case OP_SLOTGIVEN: {
          _network_manager
              .receivedSlotGivenFromPeer(peerIP, peerPort);
          break;
        }

        case OP_SLOTRELEASE: {
          _network_manager.receivedSlotReleaseFromPeer(peerIP,
              peerPort);
          break;
        }

        case OP_SLOTTAKEN: {
          _network_manager
              .receivedSlotTakenFromPeer(peerIP, peerPort);
          break;
        }

        case OP_FILEREQUEST: {
          byte[] file_hash = new byte[16];
          packet_data.get(file_hash);

          _network_manager.receivedFileRequestFromPeer(peerIP,
              peerPort, new FileHash(file_hash));
          break;
        }

        case OP_FILEREQANSWER: {
          byte[] file_hash = new byte[16];
          packet_data.get(file_hash);
          int name_length = Convert
              .shortToInt(packet_data.getShort());
          ByteBuffer str_bytes = Misc.getByteBuffer(name_length);
          packet_data.get(str_bytes.array());
          _network_manager.receivedFileRequestAnswerFromPeer(peerIP,
              peerPort, new FileHash(file_hash), new String(
                  str_bytes.array()));
          break;
        }

        case OP_FILEREQANSNOFILE: {
          byte[] file_hash = new byte[16];
          packet_data.get(file_hash);

          _network_manager.receivedFileNotFoundFromPeer(peerIP,
              peerPort, new FileHash(file_hash));
          break;
        }

        case OP_FILESTATREQ: {
          byte[] file_hash = new byte[16];
          packet_data.get(file_hash);

          _network_manager.receivedFileStatusRequestFromPeer(peerIP,
              peerPort, new FileHash(file_hash));

          break;
        }

        case OP_FILESTATUS: {
          byte[] file_hash = new byte[16];
          packet_data.get(file_hash);
          short partCount = packet_data.getShort();
          int count = (partCount + 7) / 8;
          // if (((partCount + 7) / 8) != 0)
          // if (count == 0)
          // count++;

          byte[] data = new byte[count];
          for (int i = 0; i < count; i++)
            data[i] = packet_data.get();

          JMuleBitSet bitSet;
          bitSet = Convert.byteToBitset(data);
          bitSet.setPartCount(partCount);

          _network_manager.receivedFileStatusResponseFromPeer(peerIP,
              peerPort, new FileHash(file_hash), bitSet);
          break;
        }

        case OP_MESSAGE: {
          int message_length = Convert.shortToInt(packet_data
              .getShort());
          ByteBuffer message_bytes = Misc
              .getByteBuffer(message_length);
          packet_data.get(message_bytes.array());
          String message = new String(message_bytes.array());
          message_bytes.clear();
          message_bytes = null;
          _peer_manager.receivedMessage(peerIP, peerPort, message);
          break;
        }

        default: {
          throw new UnknownPacketException(packet_header,
              packet_opcode, packet_data.array());
        }
        }
      else if (packet_header == PROTO_EMULE_EXTENDED_TCP)
        switch (packet_opcode) {
        case OP_EMULE_HELLO: {
          byte client_version = packet_data.get();
          byte protocol_version = packet_data.get();
          TagList tag_list = readTagList(packet_data);
          _network_manager.receivedEMuleHelloFromPeer(peerIP,
              peerPort, client_version, protocol_version,
              tag_list);
          break;
        }

        case OP_EMULEHELLOANSWER: {
          byte client_version = packet_data.get();
          byte protocol_version = packet_data.get();
          TagList tag_list = readTagList(packet_data);
          _network_manager.receivedEMuleHelloAnswerFromPeer(peerIP,
              peerPort, client_version, protocol_version,
              tag_list);
          break;
        }
View Full Code Here

              new_packet = true;
            }
          packet_content.position(packet_content.position() - 4);
          if (new_packet) {
            int challenge = packet_content.getInt();
            TagList tag_list = readTagList(packet_content);
            _network_manager.receivedNewServerDescription(ip, port,
                challenge, tag_list);
            return;
          }
          String server_name = readString(packet_content);
View Full Code Here

    }
  }

  private static TagList readTagList(ByteBuffer packet) {
    int tag_count = packet.getInt();
    TagList tag_list = new TagList();
    for (int i = 0; i < tag_count; i++) {
      Tag Tag = TagScanner.scanTag(packet);
      tag_list.addTag(Tag);
    }
    return tag_list;
  }
View Full Code Here

   *     </tr>
   *   </tbody>
   * </table>
   */
  public static Packet getEMulePeerHelloAnswerPacket() throws JMException {
    TagList tag_list = new TagList();
    tag_list.addTag(new IntTag(ET_COMPRESSION, DefaultJMuleFeatures.get(PeerFeatures.DataCompressionVer)));
    tag_list.addTag(new IntTag(ET_UDPPORT, (ConfigurationManagerSingleton.getInstance().getUDP())));
    tag_list.addTag(new IntTag(ET_UDPVER, DefaultJMuleFeatures.get(PeerFeatures.UDPVer)));
    tag_list.addTag(new IntTag(ET_SOURCEEXCHANGE, DefaultJMuleFeatures.get(PeerFeatures.SourceExchange1Ver) ));
    tag_list.addTag(new IntTag(ET_COMMENTS, DefaultJMuleFeatures.get(PeerFeatures.AcceptCommentVer)));
    tag_list.addTag(new IntTag(ET_EXTENDEDREQUEST, DefaultJMuleFeatures.get(PeerFeatures.ExtendedRequestsVer) ));
    tag_list.addTag(new IntTag(ET_FEATURES, DefaultJMuleFeatures.get(PeerFeatures.NoViewSharedFiles)));
   
    Packet packet = new Packet(1 + 4 + 1 + 1 + 1 + 4 + tag_list.getByteSize(),
        PROTO_EMULE_EXTENDED_TCP);
    packet.setCommand(OP_EMULEHELLOANSWER);
    packet.insertData(Convert.intToByte(E2DKConstants.ClientVersion[1]));
    packet.insertData((byte)1);
    packet.insertData(tag_list.size());
    packet.insertData(tag_list.getAsByteBuffer());
    return packet;
  }
View Full Code Here

  private LookupTask lookup_task;
 
  public PublishNoteTask(PublishTaskListener listener, Int128 publishID, List<Tag> tagList) {
    super(publishID, listener);
    this.tagList = new TagList(tagList);
  }
View Full Code Here

 
  private LookupTask lookup_task;
 
  public PublishKeywordTask(PublishTaskListener listener,Int128 publishID, List<Tag> tagList) {
    super(publishID,listener);
    this.tagList = new TagList(tagList);
  }
View Full Code Here

      known_met_entity.setPartHashSet(partHash);
   
      data = Misc.getByteBuffer(4);
      fileChannel.read(data);
      int tagCount = data.getInt(0);
      TagList tagList = new TagList();
      for(int i = 0;i<tagCount;i++) {
        Tag tag = TagScanner.scanTag(fileChannel);
        if (tag != null)
          tagList.addTag(tag);
      }
      known_met_entity.setTagList(tagList);
   
      try {
        String file_name = (String)known_met_entity.getTagList().getTag(FT_FILENAME).getValue();
View Full Code Here

        data.put(file.getHashSet().get(a));
        data.position(0);
        fileChannel.write(data);
      }
     
      TagList tagList = file.getTagList();
     
      data = Misc.getByteBuffer(4);
      data.putInt(tagList.size());
      data.position(0);
      fileChannel.write(data);
      for(Tag tag : tagList) {
        ByteBuffer raw_tag = tag.getAsByteBuffer();
        fileChannel.write(raw_tag);
View Full Code Here

TOP

Related Classes of org.jmule.core.edonkey.packet.tag.TagList

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.