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?? } }
/** * 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?? }