osaf/libs/core/mds/mds_dt_trans.c                          |  108 ++++++++----
 osaf/services/infrastructure/dtms/dtm/dtm_intra.c          |    8 +-
 osaf/services/infrastructure/dtms/dtm/dtm_intra_svc.c      |   20 +-
 osaf/services/infrastructure/dtms/dtm/dtm_node.c           |    4 +-
 osaf/services/infrastructure/dtms/include/dtm_cb.h         |    5 +-
 osaf/services/infrastructure/dtms/include/dtm_intra.h      |    2 +-
 osaf/services/infrastructure/dtms/include/dtm_intra_disc.h |    5 +-
 7 files changed, 99 insertions(+), 53 deletions(-)


   This patch enhancement the Opensaf Transport provides  Node Name of the 
sender
                        as part of ncsmds_callback_info (NCSMDS_CALLBACK_INFO).

                        This enhancement is implemented for  both TCP & TIPC 
Transport.

                        In additional to TIPC Transport list DEC_INFO, 
RECEIVE_INFO & DIRECT_RECEIVE,
                        TCP Transport provides Node Name of the sender as part 
of NODE_EVENT event also.

                        Patch supports  in-serrvice upgrade  both TCP & TIPC 
Transport  (NOT YET TESTED).


                TCP MDS transport will provide  part of  ncsmds_callback_info 
for following events :

                - MDS_CALLBACK_NODE_EVENT_INFO
                - MDS_CALLBACK_DEC_INFO
                - MDS_CALLBACK_RECEIVE_INFO
                - MDS_CALLBACK_DIRECT_RECEIVE_INFO

                Example :

                Feb  5 11:41:02 SC-2 osafclmd[16086]: TEST LGS:node_name : SC-1 
 NCSMDS_NODE_UP ncsmds_callback_info
                Feb  5 11:41:02 SC-2 osafclmd[16086]: TEST LGS:node_name : SC-2 
 NCSMDS_NODE_UP ncsmds_callback_info

                Feb  5 11:41:06 SC-1 osaflogd[21413]: LGS: mds_dec() node_name 
: SC-1  evt.type :0 from ncsmds_callback_info
                Feb  5 11:41:06 SC-1 osaflogd[21413]: LGS: mds_rcv() node_name 
: SC-1  evt.type :4 from ncsmds_callback_info
                Feb  5 11:41:06 SC-1 osaflogd[21413]: LGS: mds_dec() node_name 
: SC-2  evt.type :0 from ncsmds_callback_info
                Feb  5 11:41:06 SC-1 osaflogd[21413]: LGS: mds_rcv() node_name 
: SC-2  evt.type :0 from ncsmds_callback_info

diff --git a/osaf/libs/core/mds/mds_dt_trans.c 
b/osaf/libs/core/mds/mds_dt_trans.c
--- a/osaf/libs/core/mds/mds_dt_trans.c
+++ b/osaf/libs/core/mds/mds_dt_trans.c
@@ -33,8 +33,9 @@
 #define MDTM_FRAG_HDR_PLUS_LEN_2_TCP (2 + MDS_SEND_ADDRINFO_TCP + 
MDTM_FRAG_HDR_LEN_TCP)
 
 /* Defines regarding to the Send and receive buff sizes */
-#define MDS_HDR_LEN_TCP         24     /* Mds_prot-4bit, Mds_version-2bit , 
Msg prior-2bit, Hdr_len-16bit, Seq_no-32bit, Enc_dec_type-2bit, 
Msg_snd_type-6bit,
-                                          Pwe_id-16bit, Sndr_vdest_id-16bit, 
Sndr_svc_id-16bit, Rcvr_vdest_id-16bit, Rcvr_svc_id-16bit, Exch_id-32bit, 
App_Vers-16bit */
+#define MDS_HDR_LEN_TCP         25     /* Mds_prot-4bit, Mds_version-2bit , 
Msg prior-2bit, Hdr_len-16bit, Seq_no-32bit, Enc_dec_type-2bit, 
Msg_snd_type-6bit,
+                                          Pwe_id-16bit, Sndr_vdest_id-16bit, 
Sndr_svc_id-16bit, Rcvr_vdest_id-16bit, Rcvr_svc_id-16bit, Exch_id-32bit, 
App_Vers-16bit
+                                          node_name_len-8bit, dynamic value 
node_name-<HOST_NAME_MAX>bits */
 
 #define MDTM_FRAG_HDR_LEN_TCP    8     /* Msg Seq_no-32bit, More Frag-1bit, 
Frag_num-15bit, Frag_size-16bit */
 #define MDS_SEND_ADDRINFO_TCP    22    /* Identifier-32bit, Version-8bit, 
message type-8bit, DestNodeid-32bit, DestProcessid-32bit, SrcNodeid-32bit, 
SrcProcessid-32bit */
@@ -87,6 +88,15 @@ static uint32_t mdtm_add_mds_hdr_tcp(uin
        uint32_t zero_32 = 0;
 
        uint32_t xch_id = 0;
+       uint16_t mds_hdr_len_tcp;
+       int version = req->msg_arch_word & 0x7;
+       if (version > 1) {
+               mds_hdr_len_tcp = (MDS_HDR_LEN_TCP + 
gl_mds_mcm_cb->node_name_len);
+       } else {
+               /* Old MDS_HDR_LEN = 24 */
+               mds_hdr_len_tcp  = (MDS_HDR_LEN_TCP - 1);
+               syslog(LOG_ERR, "LOG: inservice-testing sending message to Old 
version Node mds_hdr_len_tcp  : %d", mds_hdr_len_tcp);
+        }
 
        uint8_t *ptr;
        ptr = buffer;
@@ -113,10 +123,9 @@ static uint32_t mdtm_add_mds_hdr_tcp(uin
        ncs_encode_32bit(&ptr, zero_32);
        ncs_encode_16bit(&ptr, zero_16);
        ncs_encode_16bit(&ptr, zero_16);
-
        /* MDS HDR */
        ncs_encode_8bit(&ptr, prot_ver);
-       ncs_encode_16bit(&ptr, (uint16_t)(MDS_HDR_LEN));        /* Will be 
updated if any additional options are being added at the end */
+       ncs_encode_16bit(&ptr, (uint16_t) mds_hdr_len_tcp);     /* Will be 
updated if any additional options are being added at the end */
        ncs_encode_32bit(&ptr, req->svc_seq_num);
        ncs_encode_8bit(&ptr, enc_snd_type);
        ncs_encode_16bit(&ptr, req->src_pwe_id);
@@ -146,7 +155,10 @@ static uint32_t mdtm_add_mds_hdr_tcp(uin
 
        ncs_encode_32bit(&ptr, xch_id);
        ncs_encode_16bit(&ptr, req->msg_fmt_ver);       /* New field */
-
+       if (version > 1) {
+               ncs_encode_8bit(&ptr, gl_mds_mcm_cb->node_name_len); /* New 
field 1 */
+               ncs_encode_octets(&ptr, (uint8_t *)gl_mds_mcm_cb->node_name, 
gl_mds_mcm_cb->node_name_len); /* New field 2 */
+       }
        return NCSCC_RC_SUCCESS;
 }
 
@@ -226,7 +238,20 @@ static uint32_t mdtm_frag_and_send_tcp(M
        uint8_t *p8;
        uint16_t i = 1;
        uint16_t frag_val = 0;
+       uint32_t sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp;
+       uint32_t mdtm_max_send_pkt_size_tcp;
+        int version = req->msg_arch_word & 0x7;
+       if (version > 1) {
 
+               sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp = 
(SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP + gl_mds_mcm_cb->node_name_len);
+               mdtm_max_send_pkt_size_tcp = (MDTM_MAX_SEND_PKT_SIZE_TCP + 
gl_mds_mcm_cb->node_name_len);
+
+       } else {
+               sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp = 
(SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP - 1);
+                mdtm_max_send_pkt_size_tcp = (MDTM_MAX_SEND_PKT_SIZE_TCP - 1);
+               syslog(LOG_ERR, "LOG: inservice-testing sending message to Old 
version Node  hdr_plus_len : %d", sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp);
+       }
+       
        switch (req->msg.encoding) {
        case MDS_ENC_TYPE_FULL:
                usrbuf = req->msg.data.fullenc_uba.start;
@@ -253,11 +278,11 @@ static uint32_t mdtm_frag_and_send_tcp(M
        while (len != 0) {
                if (len > MDS_DIRECT_BUF_MAXSIZE) {
                        if (i == 1) {
-                               len_buf = MDTM_MAX_SEND_PKT_SIZE_TCP;
+                               len_buf = mdtm_max_send_pkt_size_tcp;
                                frag_val = MORE_FRAG_BIT | i;
                        } else {
-                               if ((len + MDTM_FRAG_HDR_PLUS_LEN_2_TCP) > 
MDTM_MAX_SEND_PKT_SIZE_TCP) {
-                                       len_buf = MDTM_MAX_SEND_PKT_SIZE_TCP;
+                               if ((len + MDTM_FRAG_HDR_PLUS_LEN_2_TCP) > 
mdtm_max_send_pkt_size_tcp) {
+                                       len_buf = mdtm_max_send_pkt_size_tcp;
                                        frag_val = MORE_FRAG_BIT | i;
                                } else {
                                        len_buf = len + 
MDTM_FRAG_HDR_PLUS_LEN_2_TCP;
@@ -273,12 +298,12 @@ static uint32_t mdtm_frag_and_send_tcp(M
                        body = calloc(1, len_buf);
                        if (i == 1) {
                                p8 = (uint8_t *)m_MMGR_DATA_AT_START(usrbuf,
-                                                                 (len_buf - 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP),
+                                                                 (len_buf - 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp),
                                                                  (char *)
-                                                                 (body + 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP));
+                                                                 (body + 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp));
 
-                               if (p8 != (body + 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP))
-                                       memcpy((body + 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP), p8, (len_buf - 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP));
+                               if (p8 != (body + 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp))
+                                       memcpy((body + 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp), p8, (len_buf - 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp));
 
                                if (NCSCC_RC_SUCCESS != 
mdtm_add_mds_hdr_tcp(body, req, len_buf)) {
                                        m_MDS_LOG_ERR("MDTM: frg MDS hdr 
addition failed\n");
@@ -302,9 +327,9 @@ static uint32_t mdtm_frag_and_send_tcp(M
                                        return NCSCC_RC_FAILURE;
                                }
 
-                               m_MMGR_REMOVE_FROM_START(&usrbuf, len_buf - 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP);
+                               m_MMGR_REMOVE_FROM_START(&usrbuf, len_buf - 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp);
                                free(body);
-                               len = len - (len_buf - 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP);
+                               len = len - (len_buf - 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp);
                        } else {
                                p8 = (uint8_t *)m_MMGR_DATA_AT_START(usrbuf, 
len_buf - MDTM_FRAG_HDR_PLUS_LEN_2_TCP,
                                                                  (char *)(body 
+ MDTM_FRAG_HDR_PLUS_LEN_2_TCP));
@@ -360,6 +385,15 @@ static uint32_t mdtm_frag_and_send_tcp(M
 uint32_t mds_mdtm_send_tcp(MDTM_SEND_REQ *req)
 {
        uint32_t status = 0;
+       uint32_t sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp;
+       int version = req->msg_arch_word & 0x7;
+       if (version > 1) {
+               sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp = 
(SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP + gl_mds_mcm_cb->node_name_len);
+       } else {
+               sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp = 
(SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP - 1);
+               syslog(LOG_ERR, "LOG: inservice-testing sending message to Old 
version Node  hdr_plus_len : %d", sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp);
+       }
+
 
        if (req->to == DESTINATION_SAME_PROCESS) {
                MDS_DATA_RECV recv;
@@ -378,6 +412,8 @@ uint32_t mds_mdtm_send_tcp(MDTM_SEND_REQ
                recv.pri = req->pri;
                recv.msg_fmt_ver = req->msg_fmt_ver;
                recv.src_svc_sub_part_ver = req->src_svc_sub_part_ver;
+               strncpy((char *)recv.src_node_name, (char 
*)gl_mds_mcm_cb->node_name, gl_mds_mcm_cb->node_name_len);
+
 
                /* This is exclusively for the Bcast ENC and ENC_FLAT case */
                if (recv.msg.encoding == MDS_ENC_TYPE_FULL) {
@@ -407,7 +443,7 @@ uint32_t mds_mdtm_send_tcp(MDTM_SEND_REQ
 
                /* Only for the ack and not for any other message */
                if (req->snd_type == MDS_SENDTYPE_ACK || req->snd_type == 
MDS_SENDTYPE_RACK) {
-                       uint8_t len = SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP;
+                       uint8_t len = sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp;
                        uint8_t buffer_ack[len];
 
                        /* Add mds_hdr */
@@ -461,17 +497,17 @@ uint32_t mds_mdtm_send_tcp(MDTM_SEND_REQ
                                } else {
                                        uint8_t *p8;
                                        uint8_t *body = NULL;
-                                       body = calloc(1, len + 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP);
+                                       body = calloc(1, len + 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp);
 
                                        p8 = (uint8_t 
*)m_MMGR_DATA_AT_START(usrbuf, len, (char *)
-                                                                         (body 
+ SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP));
+                                                                         (body 
+ sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp));
 
-                                       if (p8 != (body + 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP))
-                                               memcpy((body + 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP), p8, len);
+                                       if (p8 != (body + 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp))
+                                               memcpy((body + 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp), p8, len);
 
                                        if (NCSCC_RC_SUCCESS !=
                                            mdtm_add_mds_hdr_tcp(body, req,
-                                                                len + 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP)) {
+                                                                (len + 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp))) {
                                                m_MDS_LOG_ERR("MDTM: Unable to 
add the mds Hdr to the send msg\n");
                                                m_MMGR_FREE_BUFR_LIST(usrbuf);
                                                free(body);
@@ -480,7 +516,7 @@ uint32_t mds_mdtm_send_tcp(MDTM_SEND_REQ
 
                                        if (NCSCC_RC_SUCCESS !=
                                            mdtm_add_frag_hdr_tcp((body + 24),
-                                                                 (len + 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP),
+                                                                 (len + 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp),
                                                                  frag_seq_num, 
0)) {
                                                m_MDS_LOG_ERR("MDTM: Unable to 
add the frag Hdr to the send msg\n");
                                                m_MMGR_FREE_BUFR_LIST(usrbuf);
@@ -492,7 +528,7 @@ uint32_t mds_mdtm_send_tcp(MDTM_SEND_REQ
                                            ("MDTM: Sending message with 
Service Seqno=%d, TO Dest_id=<0x%08x:%u> ",
                                             req->svc_seq_num, id.node_id, 
id.process_id);
 
-                                       if (NCSCC_RC_SUCCESS != 
mds_sock_send(body, (len + SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP))) {
+                                       if (NCSCC_RC_SUCCESS != 
mds_sock_send(body, (len + sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp))) {
                                                m_MDS_LOG_ERR("MDTM: Unable to 
send the msg \n");
                                                m_MMGR_FREE_BUFR_LIST(usrbuf);
                                                free(body);
@@ -508,7 +544,7 @@ uint32_t mds_mdtm_send_tcp(MDTM_SEND_REQ
                case MDS_ENC_TYPE_DIRECT_BUFF:
                        {
                                if (req->msg.data.buff_info.len >
-                                   (MDTM_MAX_DIRECT_BUFF_SIZE - 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP)) {
+                                   (MDTM_MAX_DIRECT_BUFF_SIZE - 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp)) {
                                        m_MDS_LOG_CRITICAL
                                            ("MDTM: Passed pkt len is more than 
the single send direct buff\n");
                                        
mds_free_direct_buff(req->msg.data.buff_info.buff);
@@ -519,12 +555,12 @@ uint32_t mds_mdtm_send_tcp(MDTM_SEND_REQ
                                               req->msg.data.buff_info.len, 
get_svc_names(req->src_svc_id), req->src_svc_id, 
get_svc_names(req->dest_svc_id), req->dest_svc_id);
 
                                uint8_t *body = NULL;
-                               body = calloc(1, (req->msg.data.buff_info.len + 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP));
+                               body = calloc(1, (req->msg.data.buff_info.len + 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp));
 
                                if (NCSCC_RC_SUCCESS !=
                                    mdtm_add_mds_hdr_tcp(body, req,
-                                                        
req->msg.data.buff_info.len +
-                                                        
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP)) {
+                                                        
(req->msg.data.buff_info.len +
+                                                        
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp))) {
                                        m_MDS_LOG_ERR("MDTM: Unable to add the 
mds Hdr to the send msg\n");
                                        free(body);
                                        
mds_free_direct_buff(req->msg.data.buff_info.buff);
@@ -533,16 +569,16 @@ uint32_t mds_mdtm_send_tcp(MDTM_SEND_REQ
                                if (NCSCC_RC_SUCCESS !=
                                    mdtm_add_frag_hdr_tcp((body + 24),
                                                          
req->msg.data.buff_info.len +
-                                                         
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP, frag_seq_num, 0)) {
+                                                         
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp, frag_seq_num, 0)) {
                                        m_MDS_LOG_ERR("MDTM: Unable to add the 
frag Hdr to the send msg\n");
                                        free(body);
                                        
mds_free_direct_buff(req->msg.data.buff_info.buff);
                                        return NCSCC_RC_FAILURE;
                                }
-                               memcpy((body + 
SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP), req->msg.data.buff_info.buff,
+                               memcpy((body + 
sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp), req->msg.data.buff_info.buff,
                                       req->msg.data.buff_info.len);
 
-                               if (NCSCC_RC_SUCCESS != mds_sock_send(body, 
(req->msg.data.buff_info.len + SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP))) {
+                               if (NCSCC_RC_SUCCESS != mds_sock_send(body, 
(req->msg.data.buff_info.len + sum_mds_hdr_plus_mdtm_hdr_plus_len_tcp))) {
                                        m_MDS_LOG_ERR("MDTM: Unable to send the 
msg \n");
                                        free(body);
                                        
mds_free_direct_buff(req->msg.data.buff_info.buff);
@@ -911,6 +947,7 @@ static uint32_t mds_mdtm_process_recvdat
                {
                        uint16_t addr_family; /* Indicates V4 or V6 */
                        char node_ip[INET6_ADDRSTRLEN];
+                       char node_name[HOST_NAME_MAX];
                        node_id = ncs_decode_32bit(&buffer);
                        ref_val = ncs_decode_64bit(&buffer);
 
@@ -922,13 +959,14 @@ static uint32_t mds_mdtm_process_recvdat
                        if (msg_type == MDTM_LIB_NODE_UP_TYPE) {
                                addr_family = ncs_decode_8bit(&buffer);
                                memset(node_ip,0, INET6_ADDRSTRLEN);
+                               memset(node_name,0, HOST_NAME_MAX);
                                memcpy(node_ip, (uint8_t *)buffer, 
INET6_ADDRSTRLEN);
-                               m_MDS_LOG_INFO("MDTM: NODE_UP node_ip:%s, 
node_id:%u addr_family:%d msg_type:%d",
-                                               node_ip, node_id, addr_family, 
msg_type);
-                               mds_mcm_node_up(svc_hdl, node_id, node_ip, 
addr_family);
-                       }
-
-                       if (msg_type == MDTM_LIB_NODE_DOWN_TYPE) {
+                               buffer = buffer+INET6_ADDRSTRLEN;
+                               memcpy(node_name, (uint8_t *)buffer, 
HOST_NAME_MAX);    
+                               m_MDS_LOG_INFO("MDTM: NODE_UP for node_name:%s, 
node_ip:%s, node_id:%u addr_family:%d msg_type:%d",
+                                               node_name, node_ip, node_id, 
addr_family, msg_type);
+                               mds_mcm_node_up(svc_hdl, node_id, node_ip, 
addr_family, node_name);
+                       } else if (msg_type == MDTM_LIB_NODE_DOWN_TYPE) {
                                m_MDS_LOG_INFO("MDTM: NODE_DOWN  node_id:%u 
msg_type:%d",node_id, msg_type);
                                /* TBD if required this can be AF_INET or 
AF_INET6
                                   for now to distinguished between TCP & TIPC  
 hardcoding to AF_INET
diff --git a/osaf/services/infrastructure/dtms/dtm/dtm_intra.c 
b/osaf/services/infrastructure/dtms/dtm/dtm_intra.c
--- a/osaf/services/infrastructure/dtms/dtm/dtm_intra.c
+++ b/osaf/services/infrastructure/dtms/dtm/dtm_intra.c
@@ -56,7 +56,7 @@ static struct pollfd *pfd_list;
 
 static int  dtm_intranode_max_fd;
 
-static uint32_t dtm_intra_processing_init(char *node_ip, DTM_IP_ADDR_TYPE 
i_addr_family, int32_t sndbuf_size, int32_t rcvbuf_size);
+static uint32_t dtm_intra_processing_init(char *node_name, char *node_ip, 
DTM_IP_ADDR_TYPE i_addr_family, int32_t sndbuf_size, int32_t rcvbuf_size);
 static void dtm_intranode_processing(void);
 static uint32_t dtm_intranode_add_poll_fdlist(int fd, uint16_t event);
 static uint32_t dtm_intranode_create_rcv_task(int task_hdl);
@@ -77,7 +77,7 @@ uint32_t dtm_socket_domain = AF_UNIX;
  */
 uint32_t dtm_service_discovery_init(DTM_INTERNODE_CB *dtms_cb)
 {
-       return dtm_intra_processing_init(dtms_cb->ip_addr, 
dtms_cb->i_addr_family, dtms_cb->sock_sndbuf_size,dtms_cb->sock_rcvbuf_size);
+       return dtm_intra_processing_init(dtms_cb->node_name, dtms_cb->ip_addr, 
dtms_cb->i_addr_family, dtms_cb->sock_sndbuf_size,dtms_cb->sock_rcvbuf_size);
 }
 
 
@@ -89,7 +89,7 @@ uint32_t dtm_service_discovery_init(DTM_
  * @return NCSCC_RC_FAILURE
  *
  */
-uint32_t dtm_intra_processing_init(char *node_ip, DTM_IP_ADDR_TYPE 
i_addr_family, int32_t sndbuf_size, int32_t rcvbuf_size)
+uint32_t dtm_intra_processing_init(char *node_name, char *node_ip, 
DTM_IP_ADDR_TYPE i_addr_family, int32_t sndbuf_size, int32_t rcvbuf_size)
 {
 
        int servlen;    /* For socket fd and server len */
@@ -260,7 +260,7 @@ uint32_t dtm_intra_processing_init(char 
                return NCSCC_RC_FAILURE;
        }
 
-       dtm_intranode_add_self_node_to_node_db(dtm_intranode_cb->nodeid, 
node_ip, i_addr_family);
+       dtm_intranode_add_self_node_to_node_db(dtm_intranode_cb->nodeid, 
node_name, node_ip, i_addr_family);
 
        if (m_NCS_IPC_CREATE(&dtm_intranode_cb->mbx) != NCSCC_RC_SUCCESS) {
                /* Mail box creation failed */
diff --git a/osaf/services/infrastructure/dtms/dtm/dtm_intra_svc.c 
b/osaf/services/infrastructure/dtms/dtm/dtm_intra_svc.c
--- a/osaf/services/infrastructure/dtms/dtm/dtm_intra_svc.c
+++ b/osaf/services/infrastructure/dtms/dtm/dtm_intra_svc.c
@@ -666,9 +666,11 @@ uint32_t dtm_intranode_process_node_subs
                        } else {
                                node_up_msg.node_id = node_db->node_id;
                                node_up_msg.ref_val = 
node_subscr_info->subtn_ref_val;
-                               strcpy(node_up_msg.node_ip, node_db->node_ip);
+                               strncpy(node_up_msg.node_ip, node_db->node_ip, 
INET6_ADDRSTRLEN);
+                               strncpy(node_up_msg.node_name, 
node_db->node_name, HOST_NAME_MAX); 
                                node_up_msg.i_addr_family = 
node_db->i_addr_family;
-                               TRACE("DTM: node_ip:%s, node_id:%u 
i_addr_family:%d ", node_up_msg.node_ip, node_up_msg.node_id, 
node_up_msg.i_addr_family);
+                               TRACE("DTM: node_ip:%s, node_id:%u 
i_addr_family:%d",
+                                               node_up_msg.node_ip, 
node_up_msg.node_id, node_up_msg.i_addr_family);
                                dtm_lib_prepare_node_up_msg(&node_up_msg, 
buffer);
                                dtm_lib_msg_snd_common(buffer,
                                                       
node_subscr_info->process_id, DTM_LIB_NODE_UP_MSG_SIZE_FULL);
@@ -1383,6 +1385,8 @@ static uint32_t dtm_lib_prepare_node_up_
        ncs_encode_64bit(&data, up_msg->ref_val);
        ncs_encode_8bit(&data, (uint8_t)up_msg->i_addr_family);
        memcpy(data, up_msg->node_ip, INET6_ADDRSTRLEN);
+       data = data+INET6_ADDRSTRLEN;
+       memcpy(data, up_msg->node_name, HOST_NAME_MAX);
        TRACE_LEAVE();
        return NCSCC_RC_SUCCESS;
 }
@@ -1437,7 +1441,8 @@ uint32_t dtm_intranode_process_node_up(N
        node_db_info->mbx = mbx;
        node_db_info->i_addr_family = i_addr_family;
        strcpy(node_db_info->node_ip, node_ip);
-       TRACE("node_ip:%s, node_id:%u i_addr_family:%d ", 
node_db_info->node_ip, node_db_info->node_id, node_db_info->i_addr_family);
+       TRACE("node_name:%s, node_ip:%s, node_id:%u i_addr_family:%d ", 
+                       node_db_info->node_name, node_db_info->node_ip, 
node_db_info->node_id, node_db_info->i_addr_family);
        /* Initialize the pat tree */
        pat_tree_params.key_size = sizeof(uint32_t);
        if (NCSCC_RC_SUCCESS != 
ncs_patricia_tree_init(&node_db_info->dtm_rem_node_svc_tree, &pat_tree_params)) 
{
@@ -1457,7 +1462,8 @@ uint32_t dtm_intranode_process_node_up(N
                uint8_t buffer[DTM_LIB_NODE_UP_MSG_SIZE_FULL];
                node_up_msg.node_id = node_id;
                node_up_msg.i_addr_family = i_addr_family;
-               strcpy(node_up_msg.node_ip, node_ip);
+               strncpy(node_up_msg.node_ip, node_ip, INET6_ADDRSTRLEN);
+               strncpy(node_up_msg.node_name, node_db_info->node_name, 
HOST_NAME_MAX);
                TRACE("DTM: node_ip:%s, node_id:%u i_addr_family:%d ", 
node_up_msg.node_ip, node_up_msg.node_id, node_up_msg.i_addr_family);
                dtm_lib_prepare_node_up_msg(&node_up_msg, buffer);
                while (NULL != node_subscr_info) {
@@ -1914,7 +1920,7 @@ uint32_t dtm_process_internode_service_d
             2 - NCSCC_RC_FAILURE
 
 *********************************************************/
-uint32_t dtm_intranode_add_self_node_to_node_db(NODE_ID node_id,char *node_ip, 
DTM_IP_ADDR_TYPE i_addr_family)
+uint32_t dtm_intranode_add_self_node_to_node_db(NODE_ID node_id, char 
*node_name, char *node_ip, DTM_IP_ADDR_TYPE i_addr_family)
 {
        /* Add to the node db list */
        DTM_INTRANODE_NODE_DB *node_db_info = NULL;
@@ -1925,7 +1931,9 @@ uint32_t dtm_intranode_add_self_node_to_
        node_db_info->node_id = node_id;
        node_db_info->i_addr_family = i_addr_family;
        memcpy(node_db_info->node_ip, node_ip, INET6_ADDRSTRLEN);
-       TRACE("DTM: node_ip:%s, node_id:%u i_addr_family:%d 
",node_db_info->node_ip,node_db_info->node_id,node_db_info->i_addr_family);
+       memcpy(node_db_info->node_name, node_name, HOST_NAME_MAX);
+       TRACE("DTM: nnode_name:%s, node_ip:%s, node_id:%u i_addr_family:%d ",
+                       node_db_info->node_name, 
node_db_info->node_ip,node_db_info->node_id,node_db_info->i_addr_family);
        if (NCSCC_RC_SUCCESS != (dtm_add_to_node_db_list(node_db_info))) {
                /* This is critical */
                LOG_ER("DTM INTRA: Unable to add the node to node_db_list");
diff --git a/osaf/services/infrastructure/dtms/dtm/dtm_node.c 
b/osaf/services/infrastructure/dtms/dtm/dtm_node.c
--- a/osaf/services/infrastructure/dtms/dtm/dtm_node.c
+++ b/osaf/services/infrastructure/dtms/dtm/dtm_node.c
@@ -29,7 +29,7 @@
 /* packet_size +  mds_indentifier + mds_version +  msg_type  +node_id + 
node_name_len + node_name */
 #define NODE_INFO_HDR_SIZE 16
 
-#define NODE_INFO_PKT_SIZE (NODE_INFO_HDR_SIZE + MAX_NAME_LENGTH)
+#define NODE_INFO_PKT_SIZE (NODE_INFO_HDR_SIZE + HOST_NAME_MAX)
 
 static struct pollfd fds[MAX_FD];      /* Poll fds global list */
 static int nfds = 0;
@@ -78,7 +78,7 @@ uint32_t dtm_process_node_info(DTM_INTER
        uint32_t node_id;
        DTM_NODE_DB *node;
        uint32_t nodename_len;
-       char nodename[MAX_NAME_LENGTH];
+       char nodename[HOST_NAME_MAX];
        int rc = 0;
        uint8_t *data = buffer;
        TRACE_ENTER();
diff --git a/osaf/services/infrastructure/dtms/include/dtm_cb.h 
b/osaf/services/infrastructure/dtms/include/dtm_cb.h
--- a/osaf/services/infrastructure/dtms/include/dtm_cb.h
+++ b/osaf/services/infrastructure/dtms/include/dtm_cb.h
@@ -18,7 +18,6 @@
 #ifndef DTM_CB_H
 #define DTM_CB_H
 
-#define MAX_NAME_LENGTH 256
 #define MAX_PORT_LENGTH 256
 
 typedef enum dtm_ip_addr_type {
@@ -38,7 +37,7 @@ typedef struct dtm_internode_unsent_msgs
 typedef struct node_list {
        uint16_t cluster_id;
        NODE_ID node_id;
-       char node_name[MAX_NAME_LENGTH];
+       char node_name[HOST_NAME_MAX];
        char node_ip[INET6_ADDRSTRLEN];
        DTM_IP_ADDR_TYPE i_addr_family; /* Indicates V4 or V6 */
        int comm_socket;
@@ -66,7 +65,7 @@ char remoteIP[INET6_ADDRSTRLEN];
 typedef struct dtm_internode_cb {
        uint16_t cluster_id;
        NODE_ID node_id;        /* Self  Node Id  */
-       char node_name[MAX_NAME_LENGTH];        /* optional */
+       char node_name[HOST_NAME_MAX];  /* optional */
        char ip_addr[INET6_ADDRSTRLEN]; /* ipv4 ipv6 addrBuffer */
        char mcast_addr[INET6_ADDRSTRLEN];      /* ipv4 ipv6 addrBuffer */
        char bcast_addr[INET6_ADDRSTRLEN];
diff --git a/osaf/services/infrastructure/dtms/include/dtm_intra.h 
b/osaf/services/infrastructure/dtms/include/dtm_intra.h
--- a/osaf/services/infrastructure/dtms/include/dtm_intra.h
+++ b/osaf/services/infrastructure/dtms/include/dtm_intra.h
@@ -46,7 +46,7 @@ typedef enum dtm_lib_types {
        DTM_LIB_MESSAGE_TYPE = 5,
 } DTM_LIB_TYPES;
 
-extern uint32_t dtm_intranode_add_self_node_to_node_db(NODE_ID node_id, char 
*node_ip, DTM_IP_ADDR_TYPE i_addr_family);
+extern uint32_t dtm_intranode_add_self_node_to_node_db(NODE_ID node_id, char 
*node_name, char *node_ip, DTM_IP_ADDR_TYPE i_addr_family);
 uint32_t dtm_intranode_reset_poll_fdlist(int fd);
 
 #endif
diff --git a/osaf/services/infrastructure/dtms/include/dtm_intra_disc.h 
b/osaf/services/infrastructure/dtms/include/dtm_intra_disc.h
--- a/osaf/services/infrastructure/dtms/include/dtm_intra_disc.h
+++ b/osaf/services/infrastructure/dtms/include/dtm_intra_disc.h
@@ -32,7 +32,7 @@
 /* 2 -len(0), 4 - iden(2), 1- ver(6), 1-msg type(7), 4- node_id (8),
                        8 -ref_val(12) */
 
-#define DTM_LIB_NODE_UP_MSG_SIZE (18 + 1 /*i_addr_family*/ + 46 /*ip_addr*/)
+#define DTM_LIB_NODE_UP_MSG_SIZE (18 + 1 /*i_addr_family*/ + 46 /*ip_addr*/ + 
HOST_NAME_MAX  /* node_name */)
 
 #define DTM_LIB_NODE_DOWN_MSG_SIZE 18
 
@@ -65,6 +65,7 @@ typedef struct dtm_lib_node_up_msg {
        uint64_t ref_val;
        DTM_IP_ADDR_TYPE i_addr_family; /* Indicates V4 or V6 */
        char node_ip[INET6_ADDRSTRLEN];
+       char node_name[HOST_NAME_MAX];
 } DTM_LIB_NODE_UP_MSG;
 
 typedef DTM_LIB_NODE_UP_MSG DTM_LIB_NODE_DOWN_MSG;
@@ -114,7 +115,7 @@ typedef struct dtm_intranode_pid_info {
 typedef struct dtm_intranode_node_db {
        struct dtm_intranode_node_db *next;
        NODE_ID node_id;
-       char node_name[255];
+       char node_name[HOST_NAME_MAX];
        SYSF_MBX mbx;
        int fd;
        DTM_IP_ADDR_TYPE i_addr_family;

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to