Esempio n. 1
0
  public static void recordRequestMessage(
      InetSocketAddress isa, DirectoryRequest dr, ASNObj da, String transport, String msg_type) {
    DirMessage m;
    // recording request message
    m = new DirMessage(null);
    m.sourceIP = isa.toString();
    m.sourceGID = dr.initiator_globalID; // dr.globalID;
    m.sourceInstance = dr.initiator_instance;
    m.MsgType = transport + ":" + msg_type;
    m.timestamp = m.getCurrentDateAndTime();
    m.requestedPeerGIDhash = D_Peer.getGIDHashFromGID(dr.globalID); // Looking for
    m.initiatorGIDhash = D_Peer.getGIDHashFromGID(dr.initiator_globalID);
    m.requestTerms = dr.terms_default;
    // Why terms are null : client issue!
    //		if(dr.terms==null)
    //			System.out.println("terms==null !!!!!!!!!!!!!!!!!!!!!!!!!");
    //		else
    //			System.out.println("terms!=null -------------------------");

    DirectoryMessageStorage.addNoPingMsg(dr.initiator_globalID /*dr.globalID*/, m); // GID??
    if (DirMessage.REQUEST_ANSWER.equals(msg_type)) {
      m.msg = da;
      m.respondTerms = null; // da.terms;
      // only one service offered (address of the requested peer (registered peer) )
      // no support for Symmetric NAT case (Bridging) ??
      String status = "rejected: no address avaliable";
      if (da != null) {
        if (DEBUG)
          System.out.println("DirectoryServer: recordRequestMessage: handle da: " + (da != null));
        if (da instanceof DirectoryAnswerMultipleIdentities) {
          DirectoryAnswerMultipleIdentities _da = ((DirectoryAnswerMultipleIdentities) da);
          if (DEBUG)
            System.out.println(
                "DirectoryServer: recordRequestMessage: handle da.known: " + _da.known);
          if (_da.known) status = "accepted";
        } else {
          DirectoryAnswer _da = ((DirectoryAnswer) da);
          if (DEBUG)
            System.out.println(
                "DirectoryServer: recordRequestMessage: handle da.addr: " + _da.addresses);
          if (_da.addresses != null && _da.addresses.size() != 0) status = "accepted";
        }
      } else {
        status = "accepted"; // TODO?
      }
      m.status = status;
      DirectoryMessageStorage.addNoPingMsg(dr.initiator_globalID /*dr.globalID*/, m); // GID??
      DirectoryMessageStorage.addLatestRequest_storage(
          dr.initiator_globalID /*dr.globalID*/, m); // record the latest request
      if (DEBUG) System.out.println("DirectoryServer:recording Answer message: " + m);
    } else {
      m.msg = dr;
      DirectoryMessageStorage.addNoPingMsg(dr.initiator_globalID /*dr.globalID*/, m); // GID??
    }
  }
Esempio n. 2
0
 public static void recordPingMessage(
     InetSocketAddress risa, ASNUDPPing aup, String transport, String type) {
   DirMessage m;
   // recording UDP EmptyPing message (to open the nat)
   m = new DirMessage(aup);
   m.sourceIP = risa.toString();
   m.MsgType = transport + ":" + type;
   m.timestamp = m.getCurrentDateAndTime();
   if (DirMessage.PING.equals(type)) {
     m.sourceGID = aup.initiator_globalID;
     // m.sourceInstance = aup.instance();
     m.peerGID = aup.peer_globalID;
     m.peerAddress = aup.peer_domain + ":" + aup.peer_port;
   }
   DirectoryMessageStorage.addPingMsg(m); // GID?? m.sourceGID=dr.globalID;
 }
Esempio n. 3
0
 /**
  * Create an announcement message and enqueue it as the last message received from this GID (with
  * crt timestamp, instance, IP)
  *
  * @param isa
  * @param da
  * @param daa
  * @param transport
  * @param msg_type
  */
 public static void recordAnnouncementMessage(
     InetSocketAddress isa,
     DirectoryAnnouncement da,
     DirectoryAnnouncement_Answer daa,
     String transport,
     String msg_type) {
   // recording answer message
   DirMessage m;
   m = new DirMessage(null);
   if (DirMessage.ANNOUNCEMENT.equals(msg_type)) {
     m.msg = da;
   } else m.msg = daa;
   m.sourceIP = isa.toString();
   m.sourceGID = da.getGID();
   m.sourceInstance = da.instance; // ?? set or not
   m.MsgType = transport + ":" + msg_type; // +DirMessage.ANN_ANSWER;
   m.timestamp = m.getCurrentDateAndTime();
   DirectoryMessageStorage.addAnnouncementMsg(da.getGID(), m); // GID??
 }