From: Robert W. <wrw...@us...> - 2007-09-12 15:52:47
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv3529/src Modified Files: iSNSquery.c iSNSreg.c Log Message: Change DD Member to lookup index from an iSCSI node rather than store it. Fixes lookup error Index: iSNSreg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSreg.c,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** iSNSreg.c 28 Aug 2007 17:49:06 -0000 1.33 --- iSNSreg.c 12 Sep 2007 15:52:40 -0000 1.34 *************** *** 1469,1489 **** SOIP_Dd_Member *p_member; SOIP_Dd_Member new_member; - SOIP_Iscsi *p_node; - int rval; - SOIP_DB_Entry lentry; - int index_number; ! __DEBUG (isns_reg_debug &1, Add_DD_Member:%s, p_node_name); ! ! rval = read_ISCSIObject(p_node_name, &p_node, &lentry); ! if ( rval != SUCCESS) ! { ! index_number = index; ! } ! else ! { ! index_number = p_node->iscsi_index; ! } ! pnode = NULL; while ((pnode = GetNextNode(&p_dd->member_list, pnode))) --- 1469,1476 ---- SOIP_Dd_Member *p_member; SOIP_Dd_Member new_member; ! __DEBUG (isns_reg_debug &1, Add iSCSI node:%s to Discovery Domain, p_node_name); ! ! /* search for member in list, if found then no need to add */ pnode = NULL; while ((pnode = GetNextNode(&p_dd->member_list, pnode))) *************** *** 1498,1512 **** } memset(&new_member, 0, sizeof(new_member)); - new_member.type = type; new_member.status = status; __ISNS_COPY (new_member.node_id, sizeof(new_member.node_id), p_node_name, strlen(p_node_name)); - new_member.node_idx = index_number; - - __DEBUG (isns_reg_debug &1, Add_DD_Member member.type:%i,new_member.type); __DEBUG (isns_reg_debug &1, Add_DD_Member member.node_id:%s,new_member.node_id); - __DEBUG (isns_reg_debug &1, Add_DD_Member member.node_idx:%i,new_member.node_idx); - AddNode(&p_dd->member_list, (char *)&new_member, sizeof(new_member)); --- 1485,1494 ---- } + /* not found, so add new member to Discovery Domain */ memset(&new_member, 0, sizeof(new_member)); new_member.type = type; new_member.status = status; __ISNS_COPY (new_member.node_id, sizeof(new_member.node_id), p_node_name, strlen(p_node_name)); __DEBUG (isns_reg_debug &1, Add_DD_Member member.node_id:%s,new_member.node_id); AddNode(&p_dd->member_list, (char *)&new_member, sizeof(new_member)); *************** *** 2969,2973 **** /* Active DD's Node Membership */ p_member->status = ISNS_DD_MEMBER_ENABLE; - p_member->node_idx = index; switch ( type ) --- 2951,2954 ---- Index: iSNSquery.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSquery.c,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** iSNSquery.c 28 Aug 2007 17:49:06 -0000 1.31 --- iSNSquery.c 12 Sep 2007 15:52:40 -0000 1.32 *************** *** 2137,2141 **** } - /******************************************************************** Gets the next DD iSCSI Member. --- 2137,2140 ---- *************** *** 2155,2158 **** --- 2154,2159 ---- int foundFlag; int rval; + SOIP_Iscsi *p_node; + SOIP_DB_Entry lentry; ISNSParseMsg( &p_md->msg, attr_indx, key_indx, &src_attr ); *************** *** 2189,2193 **** continue; ! if ( p_member->node_idx == p_attr->val.index ) { foundFlag = TRUE; --- 2190,2195 ---- continue; ! rval = read_ISCSIObject(p_member->node_id, &p_node, &lentry); ! if ( rval == SUCCESS && p_node->iscsi_index == p_attr->val.index ) { foundFlag = TRUE; *************** *** 2206,2211 **** /* Append Attribute */ p_member = (SOIP_Dd_Member *)GetNodeData(plnode); ! ISNSAppendAttr(p_rspmsg, ISNS_DD_ISCSI_MEMBER_IDX, ISNS_ISCSI_IDX_SIZE, ! NULL, p_member->node_idx); } --- 2208,2216 ---- /* Append Attribute */ p_member = (SOIP_Dd_Member *)GetNodeData(plnode); ! rval = read_ISCSIObject(p_member->node_id, &p_node, &lentry); ! if ( rval == SUCCESS) ! ISNSAppendAttr(p_rspmsg, ISNS_DD_ISCSI_MEMBER_IDX, ISNS_ISCSI_IDX_SIZE, NULL, p_node->iscsi_index); ! else ! ISNSAppendAttr(p_rspmsg, ISNS_DD_ISCSI_MEMBER_IDX, ISNS_ISCSI_IDX_SIZE, NULL, 0); } *************** *** 2213,2217 **** } - int ISNSdbProcessDDSOpAttr (ISNS_Msg * p_msg, ISNS_Attr ** attr_indx, --- 2218,2221 ---- *************** *** 2291,2294 **** --- 2295,2300 ---- int rval; SOIP_Dds *p_dds; + SOIP_Iscsi *p_node; + SOIP_DB_Entry lentry2; for (ii = 0; (ii < SNS_MAX_ATTRS) && (attr_indx[ii]); ii++) *************** *** 2340,2346 **** if (index_Flag != -1 ) if (p_member->type == ISNS_DD_ISCSI_MEMBER) ! ISNSAppendAttr (p_msg, ISNS_DD_ISCSI_MEMBER_IDX, ! ISNS_DD_ISCSI_MEMBER_IDX_SIZE, ! NULL, p_member->node_idx); } } --- 2346,2359 ---- if (index_Flag != -1 ) if (p_member->type == ISNS_DD_ISCSI_MEMBER) ! { ! /* find index from iscsi node record from node_id*/ ! rval = read_ISCSIObject(p_member->node_id, &p_node, &lentry2); ! if (rval == SUCCESS) ! ISNSAppendAttr (p_msg, ISNS_DD_ISCSI_MEMBER_IDX, ISNS_DD_ISCSI_MEMBER_IDX_SIZE, ! NULL, p_node->iscsi_index); ! else ! ISNSAppendAttr (p_msg, ISNS_DD_ISCSI_MEMBER_IDX, ISNS_DD_ISCSI_MEMBER_IDX_SIZE, ! NULL, 0); ! } } } *************** *** 2359,2365 **** if (index_Flag != -1 ) if (p_member->type == ISNS_DD_ISCSI_MEMBER) ! ISNSAppendAttr (p_msg, ISNS_DD_ISCSI_MEMBER_IDX, ! ISNS_DD_ISCSI_MEMBER_IDX_SIZE, ! NULL, p_member->node_idx); } } --- 2372,2385 ---- if (index_Flag != -1 ) if (p_member->type == ISNS_DD_ISCSI_MEMBER) ! { ! /* find index from iscsi node record from node_id*/ ! rval = read_ISCSIObject(p_member->node_id, &p_node, &lentry2); ! if (rval == SUCCESS) ! ISNSAppendAttr (p_msg, ISNS_DD_ISCSI_MEMBER_IDX, ISNS_DD_ISCSI_MEMBER_IDX_SIZE, ! NULL, p_node->iscsi_index); ! else ! ISNSAppendAttr (p_msg, ISNS_DD_ISCSI_MEMBER_IDX, ISNS_DD_ISCSI_MEMBER_IDX_SIZE, ! NULL, 0); ! } } } |