Refine search
protected void queueMessage(Message msg, long seqno) { if(become_server_queue != null) { become_server_queue.add(msg); log.trace("%s: message %s::%d was added to queue (not yet server)", local_addr, msg.getSrc(), seqno); } else log.trace("%s: message %s::%d was discarded (not yet server)", local_addr, msg.getSrc(), seqno); }
public Object up(Message msg) { Frag3Header hdr=msg.getHeader(this.id); if(hdr != null) { // needs to be defragmented Message assembled_msg=unfragment(msg, hdr); if(assembled_msg != null) { assembled_msg.setSrc(msg.getSrc()); // needed ? YES, because fragments have a null src !! up_prot.up(assembled_msg); avg_size_up.add(assembled_msg.length()); } return null; } return up_prot.up(msg); }
public Object up(Message msg) { if(msg.getDest() == null || msg.isFlagSet(Message.Flag.NO_RELIABILITY)) // only handle unicast messages return up_prot.up(msg); // pass up UnicastHeader3 hdr=msg.getHeader(this.id); if(hdr == null) return up_prot.up(msg); Address sender=msg.getSrc(); switch(hdr.type) { case UnicastHeader3.DATA: // received regular message if(is_trace) log.trace("%s <-- DATA(%s: #%d, conn_id=%d%s)", local_addr, sender, hdr.seqno, hdr.conn_id, hdr.first? ", first" : ""); if(Objects.equals(local_addr, sender)) handleDataReceivedFromSelf(sender, hdr.seqno, msg); else handleDataReceived(sender, hdr.seqno, hdr.conn_id, hdr.first, msg); break; // we pass the deliverable message up in handleDataReceived() default: handleUpEvent(sender, msg, hdr); break; } return null; }
public void passMessageUp(Message msg, byte[] cluster_name, boolean perform_cluster_name_matching, boolean multicast, boolean discard_own_mcast) { if(is_trace) log.trace("%s: received %s, headers are %s", local_addr, msg, msg.printHeaders()); if(up_prot == null) return; if(multicast && discard_own_mcast && local_addr != null && local_addr.equals(msg.getSrc())) return; // Discard if message's cluster name is not the same as our cluster name if(perform_cluster_name_matching && this.cluster_name != null && !this.cluster_name.equals(cluster_name)) { if(log_discard_msgs && log.isWarnEnabled()) { Address sender=msg.getSrc(); if(suppress_log_different_cluster != null) suppress_log_different_cluster.log(SuppressLog.Level.warn, sender, suppress_time_different_cluster_warnings, new AsciiString(cluster_name),this.cluster_name, sender); else log.warn(Util.getMessage("MsgDroppedDiffCluster"), new AsciiString(cluster_name),this.cluster_name, sender); } return; } up_prot.up(msg); }
/** * Sends a message msg to the requester. We have to wrap the original message into a retransmit message, as we need * to preserve the original message's properties, such as src, headers etc. * @param dest * @param msg */ protected void sendXmitRsp(Address dest, Message msg) { if(msg == null) return; if(stats) xmit_rsps_sent.increment(); if(msg.getSrc() == null) msg.setSrc(local_addr); if(use_mcast_xmit) { // we simply send the original multicast message down_prot.down(msg); return; } Message xmit_msg=msg.copy(true, true).dest(dest); // copy payload and headers NakAckHeader2 hdr=xmit_msg.getHeader(id); NakAckHeader2 newhdr=hdr.copy(); newhdr.type=NakAckHeader2.XMIT_RSP; // change the type in the copy from MSG --> XMIT_RSP xmit_msg.putHeader(id, newhdr); down_prot.down(xmit_msg); }
public boolean handleUpMessage(Message msg) { ChallengeResponseHeader hdr=msg.getHeader(ID); if(hdr == null) return true; switch(hdr.type) { case ChallengeResponseHeader.CHALLENGE: long hash=hash(encrypt(hdr.payload)); Message response=new Message(msg.getSrc()).setFlag(Message.Flag.OOB) .putHeader(ID, new ChallengeResponseHeader(hash)); log.trace("%s: received CHALLENGE from %s; sending RESPONSE (hash=%d)", auth.getAddress(), msg.src(), hash); auth.getDownProtocol().down(response); break; case ChallengeResponseHeader.RESPONSE: log.trace("%s: received RESPONSE from %s", auth.getAddress(), msg.getSrc()); Entry entry=pending_requests.get(msg.getSrc()); if(entry != null) entry.setResponse(hdr.hash); break; } return false; // don't pass up }
pingPonger.sendPongMessage(myChannel, jgAddress, jgmsg.getSrc()); } catch (Exception e) { logger.info("Failed sending Pong response to " + jgmsg.getSrc()); NakAckHeader2 header = (NakAckHeader2) jgmsg.getHeader(nackack2HeaderId); if (header != null && !jgmsg.isFlagSet(Flag.OOB)) { recordScheduledSeqno(msg.getSender(), header.getSeqno());
public Object up(Message msg) { FdHeader hdr=msg.getHeader(this.id); if(hdr == null) { if(msg_counts_as_heartbeat) updateTimestamp(msg.getSrc()); return up_prot.up(msg); // message did not originate from FD layer, just pass up Address hb_sender=msg.getSrc(); log.trace("%s: received are-you-alive from %s, sending response", local_addr, hb_sender); sendHeartbeatResponse(hb_sender); break; // don't pass up ! if(hdr.mbrs == null) return null; log.trace("%s: received suspect message: %s", local_addr, hdr); log.warn("%s: I was suspected by %s; ignoring the SUSPECT message and sending back a HEARTBEAT_ACK", local_addr, msg.src()); sendHeartbeatResponse(msg.getSrc()); continue; if(!suspects.isEmpty()) { log.debug("%s: suspecting %s", local_addr, suspects); up_prot.up(new Event(Event.SUSPECT, suspects)); down_prot.down(new Event(Event.SUSPECT, suspects));
public Object up(Message msg) { FragHeader hdr=msg.getHeader(this.id); if(hdr != null) { // needs to be defragmented Message assembled_msg=unfragment(msg, hdr); if(assembled_msg != null) { assembled_msg.setSrc(msg.getSrc()); // needed ? YES, because fragments have a null src !! up_prot.up(assembled_msg); avg_size_up.add(assembled_msg.length()); } return null; } return up_prot.up(msg); }
public boolean authenticate(AuthToken token, Message msg) { Address sender=msg.getSrc(); if(match_ip_address) { PhysicalAddress src=sender != null? (PhysicalAddress)auth.down(new Event(Event.GET_PHYSICAL_ADDRESS, sender)) : null; String ip_addr=src != null? src.toString() : null; if(ip_addr != null) { Matcher matcher=pattern.matcher(ip_addr); boolean result=matcher.matches(); if(log.isTraceEnabled()) log.trace("matching ip_address: pattern= " + pattern + ", input= " + ip_addr + ", result= " + result); if(result) return true; } } if(match_logical_name) { String logical_name=sender != null? NameCache.get(sender) : null; if(logical_name != null) { Matcher matcher=pattern.matcher(logical_name); boolean result=matcher.matches(); if(log.isTraceEnabled()) log.trace("matching logical_name: pattern= " + pattern + ", input= " + logical_name + ", result= " + result); if(result) return true; } } return false; }
public void receive(long id, Message msg) { Address sender=msg.getSrc(); if(sender == null) { if(log.isErrorEnabled()) log.error(local_addr + ": sender is null, cannot deliver message " + "::" + id); return; } if(!canDeliver(sender, id)) { if(log.isWarnEnabled()) log.warn(local_addr + ": dropped duplicate message " + sender + "::" + id); return; } if(log.isTraceEnabled()) log.trace(local_addr + ": delivering " + sender + "::" + id); up_prot.up(msg); }
public void receive(Message msg) { MPerfHeader hdr=msg.getHeader(ID); switch(hdr.type) { case MPerfHeader.DATA: handleData(msg.getSrc(), hdr.seqno, num_threads == 1 && !oob); break; result_collector=msg.getSrc(); sendMessages(); break; Address sender=msg.getSrc(); Stats tmp=received_msgs.get(sender); if(tmp != null) results.add(msg.getSrc(), res); if(initiator && results.hasAllResponses()) { initiator=false; send(msg.getSrc(), null, MPerfHeader.ACK, Message.Flag.OOB); handleConfigRequest(msg.getSrc()); ack_collector.ack(msg.getSrc()); break;
public boolean handleUpMessage(Message msg) { ChallengeResponseHeader hdr=msg.getHeader(ID); if(hdr == null) return true; switch(hdr.type) { case ChallengeResponseHeader.CHALLENGE: long hash=hash(encrypt(hdr.payload)); Message response=new Message(msg.getSrc()).setFlag(Message.Flag.OOB) .putHeader(ID, new ChallengeResponseHeader(hash)); log.trace("%s: received CHALLENGE from %s; sending RESPONSE (hash=%d)", auth.getAddress(), msg.src(), hash); auth.getDownProtocol().down(response); break; case ChallengeResponseHeader.RESPONSE: log.trace("%s: received RESPONSE from %s", auth.getAddress(), msg.getSrc()); Entry entry=pending_requests.get(msg.getSrc()); if(entry != null) entry.setResponse(hdr.hash); break; } return false; // don't pass up }
public Object up(Message msg) { CounterHeader hdr=msg.getHeader(id); if(hdr == null) return up_prot.up(msg); try { Object obj=streamableFromBuffer(msg.getRawBuffer(), msg.getOffset(), msg.getLength()); if(log.isTraceEnabled()) log.trace("[" + local_addr + "] <-- [" + msg.getSrc() + "] " + obj); if(obj instanceof Request) { handleRequest((Request)obj, msg.getSrc()); } else if(obj instanceof Response) { handleResponse((Response)obj, msg.getSrc()); } else { log.error(Util.getMessage("ReceivedObjectIsNeitherARequestNorAResponse") + obj); } } catch(Exception ex) { log.error(Util.getMessage("FailedHandlingMessage"), ex); } return null; }
public Object up(Message msg) { Address sender=msg.getSrc(); Header hdr=msg.getHeader(this.id); if(hdr != null) { update(sender); // updates the heartbeat entry for 'sender' num_heartbeats_received++; unsuspect(sender); return null; // consume heartbeat message, do not pass to the layer above } else if(msg_counts_as_heartbeat) { // message did not originate from FD_ALL layer, but still count as heartbeat update(sender); // update when data is received too ? maybe a bit costly if(has_suspected_mbrs) unsuspect(sender); } return up_prot.up(msg); // pass up to the layer above us }
boolean multicast=dest == null; if(msg.getSrc() == null) msg.setSrc(localAddress()); if(dest == null) { up_prot.up(msg); return null; if(r < down) { if(excludeItself && dest != null && dest.equals(localAddress())) { if(log.isTraceEnabled()) log.trace("excluding itself"); log.trace("dropping message"); num_down++; return null;