msg.putHeader(name, hdr);
msg.putHeader(getName(), hdr);
    public void sendGetMembersRequest() {        Message msg;        PingHeader hdr;        Vector gossip_rsps=null;        if(client != null) {            gossip_rsps=client.getMembers(group_addr);            if(gossip_rsps != null && gossip_rsps.size() > 0) {                // Set a temporary membership in the UDP layer, so that the following multicast                // will be sent to all of them                Event view_event=new Event(Event.TMP_VIEW, makeView(gossip_rsps));                passDown(view_event); // needed e.g. by failure detector or UDP            }            else {                passUp(new Event(Event.FIND_INITIAL_MBRS_OK, null));                return;            }            if(gossip_rsps != null && gossip_rsps.size() > 0) {                for(int i=0; i < gossip_rsps.size(); i++) {                    Address dest=(Address)gossip_rsps.elementAt(i);                    msg=new Message(dest, null, null);  // mcast msg                    msg.putHeader(name, new PingHeader(PingHeader.GET_MBRS_REQ, null));                    passDown(new Event(Event.MSG, msg));                }            }            Util.sleep(500);        }        else {            if(initial_hosts != null && initial_hosts.size() > 0) {                IpAddress h;                List hlist;                int numMemberInitialHosts;                int numMembers;                Address coord;                msg=new Message(null, null, null);                msg.putHeader(name, new PingHeader(PingHeader.GET_MBRS_REQ, null));                synchronized(members) {                    numMembers=members.size();                    numMemberInitialHosts=0;                    coord=numMembers > 0 ? (Address)members.firstElement() : local_addr;                }                for(Enumeration en=initial_hosts.elements(); en.hasMoreElements();) {                    hlist=(List)en.nextElement();                    boolean isMember=false;//                    for(Enumeration hen=hlist.elements(); hen.hasMoreElements() && !isMember && numMemberInitialHosts < numMembers;) {//                        h=(IpAddress)hen.nextElement();//                        if(members_set.contains(h)) {//                            //update the initial_members list for this already connected member//                            initial_members.add(new PingRsp(h, coord));//                            isMember=true;//                            numMemberInitialHosts++;//                            if(log.isDebugEnabled())//                                log.debug("[FIND_INITIAL_MBRS] " + h + " is already a member");//                        }//                    }                    for(Enumeration hen=hlist.elements(); hen.hasMoreElements() && !isMember;) {                        h=(IpAddress)hen.nextElement();                        msg.setDest(h);                        if(log.isTraceEnabled())                            log.trace("[FIND_INITIAL_MBRS] sending PING request to " + msg.getDest());                        passDown(new Event(Event.MSG, msg.copy()));                    }                }            }            else {                // 1. Mcast GET_MBRS_REQ message                hdr=new PingHeader(PingHeader.GET_MBRS_REQ, null);                msg=new Message(null, null, null);  // mcast msg                msg.putHeader(name, hdr);                sendMcastDiscoveryRequest(msg);            }        }    }