You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(23) |
Dec
(85) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(19) |
Feb
(13) |
Mar
(7) |
Apr
|
May
(2) |
Jun
(1) |
Jul
|
Aug
(31) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Robert W. <wrw...@us...> - 2007-01-02 20:15:27
|
Update of /cvsroot/linuxisns/isnsNT/isnsclient/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24842/isnsclient/src Modified Files: iscsi.c isns.c Log Message: add control node Index: isns.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/src/isns.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** isns.c 18 Dec 2006 23:00:04 -0000 1.5 --- isns.c 2 Jan 2007 20:15:24 -0000 1.6 *************** *** 133,140 **** src_type = 0; ! if (0 != ! GetInput (cmdLine, ! "SRC type", ! "*0:NONE 1:iSCSI Node 3:iFCP Node", sizeof (cmdLine))) { src_type = atoi (cmdLine); --- 133,138 ---- src_type = 0; ! if (0 != GetInput (cmdLine,"SRC type", ! "*0:Control Node 1:iSCSI Node 3:iFCP Node", sizeof (cmdLine))) { src_type = atoi (cmdLine); *************** *** 144,153 **** { case 0: ! ISNSAppendAttr (p_cmd, 0, 0, NULL, 0); break; case 1: ! if (0 == ! GetInput (cmdLine, "SRC: iSCSI Node Id", "(none)", ! sizeof (cmdLine))) { printf ("***ERROR: You must enter an iSCSI Node Id.\n"); --- 142,156 ---- { case 0: ! if (0 == GetInput (cmdLine, "SRC: iSCSI Node Id", "(none)",sizeof (cmdLine))) ! { ! ISNSAppendAttr (p_cmd, ISNS_ISCSI_NODE_ID, PAD4 (strlen (CONTROL_NODE)),CONTROL_NODE, 0); ! } ! else ! ISNSAppendAttr (p_cmd, ISNS_ISCSI_NODE_ID, PAD4 (strlen (cmdLine)),cmdLine, 0); ! break; + case 1: ! if (0 == GetInput (cmdLine, "SRC: iSCSI Node Id", "(none)", sizeof (cmdLine))) { printf ("***ERROR: You must enter an iSCSI Node Id.\n"); *************** *** 155,166 **** } ! ISNSAppendAttr (p_cmd, ISNS_ISCSI_NODE_ID, PAD4 (strlen (cmdLine)), ! cmdLine, 0); break; case 2: ! if (0 == ! GetHexInput (cmdLine, "SRC: iFCP Node WWPN", NULL, ! sizeof (cmdLine))) { printf ("***ERROR: You must enter an iFCP Node WWPN.\n"); --- 158,166 ---- } ! ISNSAppendAttr (p_cmd, ISNS_ISCSI_NODE_ID, PAD4 (strlen (cmdLine)),cmdLine, 0); break; case 2: ! if (0 == GetHexInput (cmdLine, "SRC: iFCP Node WWPN", NULL, sizeof (cmdLine))) { printf ("***ERROR: You must enter an iFCP Node WWPN.\n"); Index: iscsi.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/src/iscsi.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** iscsi.c 20 Dec 2006 17:04:24 -0000 1.7 --- iscsi.c 2 Jan 2007 20:15:24 -0000 1.8 *************** *** 468,473 **** ISNSCreateHdr (ISNS_REG_DD_REQ, &cmd, sizeof (cmd), 0); ! /* Zero out the src field. */ ! ISNSAppendAttr (&cmd, 0, 0, NULL, 0); /* Get DD ID */ --- 468,474 ---- ISNSCreateHdr (ISNS_REG_DD_REQ, &cmd, sizeof (cmd), 0); ! /* Insert SRC */ ! if (-1 == GetSrc (&cmd, 0)) ! return; /* Get DD ID */ |
From: Robert W. <wrw...@us...> - 2007-01-02 20:12:15
|
Update of /cvsroot/linuxisns/iscsiClient/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv23569/src Modified Files: config.c initiator.c parse.c target.c Log Message: add src attr and portal group support Index: config.c =================================================================== RCS file: /cvsroot/linuxisns/iscsiClient/src/config.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** config.c 11 Dec 2006 18:50:04 -0000 1.2 --- config.c 2 Jan 2007 20:12:07 -0000 1.3 *************** *** 198,202 **** { listelement * tempp; - printf ("Added %s to the initiator list.\n", listpointer->InitiatorName); tempp = (listelement*) listpointer->link; free (listpointer); --- 198,201 ---- Index: initiator.c =================================================================== RCS file: /cvsroot/linuxisns/iscsiClient/src/initiator.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** initiator.c 11 Dec 2006 18:50:04 -0000 1.7 --- initiator.c 2 Jan 2007 20:12:07 -0000 1.8 *************** *** 41,45 **** #define CLIENT_VERSION "1.1" ! #define MAX_VERSION 6 #define MIN_VERSION 0 --- 41,45 ---- #define CLIENT_VERSION "1.1" ! #define MAX_VERSION 1 #define MIN_VERSION 0 *************** *** 140,153 **** int type = 2; SOIP_Ver ver; printf ("Registering ISCSI Node.\n"); ISNSCreateHdr (ISNS_REG_DEV_ATTR_REQ, &cmd, sizeof (cmd), ISNS_FLAG_REPLACE_REG); ! /* src attribute */ ! ISNSAppendAttr (&cmd, 0, 0, NULL, 0); /* delimiter */ ISNSAppendAttr (&cmd, 0, 0, NULL, 0); memset (&ver, 0, sizeof (ver)); ver.max = MAX_VERSION; --- 140,164 ---- int type = 2; SOIP_Ver ver; + int ip; + int port_type; printf ("Registering ISCSI Node.\n"); ISNSCreateHdr (ISNS_REG_DEV_ATTR_REQ, &cmd, sizeof (cmd), ISNS_FLAG_REPLACE_REG); ! /* Add the Target ID to the PDU */ ! ISNSAppendAttr (&cmd, ISNS_ISCSI_NODE_ID, PAD4 (strlen (input->iscsiID)), ! input->iscsiID, 0); /* delimiter */ ISNSAppendAttr (&cmd, 0, 0, NULL, 0); + /* Add the Entity */ + ISNSAppendAttr (&cmd, ISNS_ENTITY_ID, PAD4 (strlen(input->EntityID)), + input->EntityID, 0); + + /* Add the Entity Period */ + ISNSAppendAttr (&cmd, ISNS_ENTITY_PERIOD, 4, NULL, input->EntityPeriod); + + memset (&ver, 0, sizeof (ver)); ver.max = MAX_VERSION; *************** *** 161,170 **** ISNSAppendAttr ((struct cmd *)&cmd, ISNS_PROT_VER, 4, (char *)&ver, 0); } - /* Add the Entity Period */ - ISNSAppendAttr (&cmd, ISNS_ENTITY_PERIOD, 4, NULL, input->EntityPeriod); - /* Add the Entity */ - ISNSAppendAttr (&cmd, ISNS_ENTITY_ID, PAD4 (strlen(input->EntityID)), - input->EntityID, 0); printf ("ID [%s] > %s\n", input->iscsiID, input->iscsiID); --- 172,176 ---- *************** *** 184,187 **** --- 190,210 ---- ISNSAppendAttr (&cmd, ISNS_ISCSI_TYPE, 4, NULL, type); + /* Get IP */ + ip = inet_addr (input->PortalIP); + { + char tempb[256]; + memset (tempb, 0, sizeof (tempb)); + memcpy (tempb + 12, &ip, sizeof (ip)); + ISNSAppendAttr (&cmd, ISNS_PORTAL_IP, 16, tempb, 0); + } + + /* Port Type is always TCP*/ + port_type = 1; + + /* Get Port */ + ISNSAppendAttr (&cmd, ISNS_PORTAL_PORT, 4, NULL, + input->Port | (port_type == 1 ? 0 : 0x10000)); + + if (0 == ISNSSendCmd2 (&cmd, buffer, sizeof (buffer))) { *************** *** 203,208 **** ISNSCreateHdr (ISNS_REG_DEV_ATTR_REQ, &cmd, sizeof (cmd), ISNS_FLAG_REPLACE_REG); ! /* src attribute */ ! ISNSAppendAttr (&cmd, 0, 0, NULL, 0); ISNSAppendAttr (&cmd, ISNS_ENTITY_ID, PAD4 (strlen (current->EntityID)), --- 226,231 ---- ISNSCreateHdr (ISNS_REG_DEV_ATTR_REQ, &cmd, sizeof (cmd), ISNS_FLAG_REPLACE_REG); ! ISNSAppendAttr (&cmd, ISNS_ISCSI_NODE_ID, PAD4 (strlen (current->iscsiID)), ! current->iscsiID, 0); ISNSAppendAttr (&cmd, ISNS_ENTITY_ID, PAD4 (strlen (current->EntityID)), *************** *** 269,272 **** --- 292,299 ---- ISNSAppendAttr (&cmd, ISNS_PORTAL_IP, 0, NULL, 0); ISNSAppendAttr (&cmd, ISNS_PORTAL_PORT, 0, NULL, 0); + ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP_ISCSI_NAME, 0, NULL, 0); + ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP_IP, 0, NULL, 0); + ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP_PORT, 0, NULL, 0); + ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP_TAG, 0, NULL, 0); if (0 == ISNSSendCmd2 (&cmd, buffer, sizeof (buffer))) Index: target.c =================================================================== RCS file: /cvsroot/linuxisns/iscsiClient/src/target.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** target.c 11 Dec 2006 18:50:04 -0000 1.6 --- target.c 2 Jan 2007 20:12:07 -0000 1.7 *************** *** 166,178 **** int type = 1; SOIP_Ver ver; printf ("Registering ISCSI Node.\n"); ISNSCreateHdr (ISNS_REG_DEV_ATTR_REQ, &cmd, sizeof (cmd), ISNS_FLAG_REPLACE_REG); ! ISNSAppendAttr (&cmd, 0, 0, NULL, 0); /* delimiter */ ISNSAppendAttr (&cmd, 0, 0, NULL, 0); memset (&ver, 0, sizeof (ver)); /* MAX_VERSION and MIN_VERSION are global constants set above */ --- 166,184 ---- int type = 1; SOIP_Ver ver; + int ip; + int port_type; printf ("Registering ISCSI Node.\n"); ISNSCreateHdr (ISNS_REG_DEV_ATTR_REQ, &cmd, sizeof (cmd), ISNS_FLAG_REPLACE_REG); ! /* Add the Target ID to the PDU */ ! ISNSAppendAttr (&cmd, ISNS_ISCSI_NODE_ID, PAD4 (strlen(input->iscsiID)),input->iscsiID,0); /* delimiter */ ISNSAppendAttr (&cmd, 0, 0, NULL, 0); + /* Add the Entity ID */ + ISNSAppendAttr (&cmd, ISNS_ENTITY_ID, PAD4(strlen(input->EntityID)),input->EntityID,0); + memset (&ver, 0, sizeof (ver)); /* MAX_VERSION and MIN_VERSION are global constants set above */ *************** *** 188,194 **** } - /* Add the Entity ID */ - ISNSAppendAttr (&cmd, ISNS_ENTITY_ID, PAD4(strlen(input->EntityID)),input->EntityID,0); - /* Add the Entity Period */ ISNSAppendAttr (&cmd, ISNS_ENTITY_PERIOD, 4, NULL, input->EntityPeriod); --- 194,197 ---- *************** *** 208,211 **** --- 211,232 ---- ISNSAppendAttr (&cmd, ISNS_ISCSI_TYPE, 4, NULL, type); + /* Get IP */ + ip = inet_addr (input->PortalIP); + { + char tempb[256]; + memset (tempb, 0, sizeof (tempb)); + memcpy (tempb + 12, &ip, sizeof (ip)); + ISNSAppendAttr (&cmd, ISNS_PORTAL_IP, 16, tempb, 0); + } + + /* Port Type is TCP*/ + port_type = 1; + + /* Get Port */ + ISNSAppendAttr (&cmd, ISNS_PORTAL_PORT, 4, NULL, + input->Port | (port_type == 1 ? 0 : 0x10000)); + + ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP_ISCSI_NAME, PAD4 (strlen("TEST")),"TEST",0); + /* Send the command, parse the response. We will get the entity ID back from this */ if (0 == ISNSSendCmd2 (&cmd, buffer, sizeof (buffer))) *************** *** 230,234 **** /* We are adding a portal to our target's entity */ ! ISNSAppendAttr (&cmd, ISNS_ENTITY_ID, PAD4 (strlen (current->EntityID)), current->EntityID, 0); --- 251,255 ---- /* We are adding a portal to our target's entity */ ! ISNSAppendAttr (&cmd, ISNS_ENTITY_ID, PAD4 (strlen (current->EntityID)), current->EntityID, 0); *************** *** 335,340 **** ISNSCreateHdr (ISNS_REG_DDS_REQ, &cmd, sizeof (cmd),0); ! /* Delimiter */ ! ISNSAppendAttr (&cmd, 0, 0, NULL, 0); /* The target's DDS ID is sent */ --- 356,361 ---- ISNSCreateHdr (ISNS_REG_DDS_REQ, &cmd, sizeof (cmd),0); ! /* The source type is iSCSI node and the name is the name of the target */ ! ISNSAppendAttr (&cmd, ISNS_ISCSI_NODE_ID, PAD4 (strlen (current->iscsiID)), current->iscsiID, 0); /* The target's DDS ID is sent */ *************** *** 361,365 **** ISNSCreateHdr (ISNS_REG_DD_REQ, &cmd, sizeof (cmd), 0); ! ISNSAppendAttr (&cmd, 0, 0, NULL, 0); /* Zero out the src field. */ --- 382,387 ---- ISNSCreateHdr (ISNS_REG_DD_REQ, &cmd, sizeof (cmd), 0); ! /* The source type is iSCSI node and the name is the name of the target */ ! ISNSAppendAttr (&cmd, ISNS_ISCSI_NODE_ID, PAD4 (strlen (current->iscsiID)), current->iscsiID, 0); /* Zero out the src field. */ *************** *** 394,398 **** ISNSCreateHdr (ISNS_REG_DD_REQ, &cmd, sizeof (cmd), 0); ! ISNSAppendAttr (&cmd, 0, 0, NULL, 0); /* Zero out the src field. */ --- 416,421 ---- ISNSCreateHdr (ISNS_REG_DD_REQ, &cmd, sizeof (cmd), 0); ! /* The source type is iSCSI node and the name is the name of the target */ ! ISNSAppendAttr (&cmd, ISNS_ISCSI_NODE_ID, PAD4 (strlen (current->iscsiID)), current->iscsiID, 0); /* Zero out the src field. */ Index: parse.c =================================================================== RCS file: /cvsroot/linuxisns/iscsiClient/src/parse.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** parse.c 11 Dec 2006 00:42:28 -0000 1.2 --- parse.c 2 Jan 2007 20:12:07 -0000 1.3 *************** *** 75,79 **** case ISNS_REL_SW_ID_REQ : return("Release Switch ID Request"); case ISNS_GET_SW_ID_REQ : return("Get Switch ID Request"); - case ISNS_SAVE_DB_REQ : return("Save Database Request"); case ISNS_REG_DEV_ATTR_RES : return("Register Device Attribute Response"); case ISNS_DEV_ATTR_QRY_RES : return("Device Attribute Query Response"); --- 75,78 ---- *************** *** 92,96 **** case ISNS_REL_SW_ID_RES : return("Release Switch ID Response"); case ISNS_GET_SW_ID_RES : return("Get Switch ID Response"); - case ISNS_SAVE_DB_RES : return("Save Database Response"); default : return(""); } --- 91,94 ---- *************** *** 115,119 **** case ISNS_ESI_INTERVAL : return("ESI Interval"); case ISNS_ESI_PORT : return("ESI/SCN UDP Port"); - case ISNS_PORTAL_GROUP : return("Portal Group"); case ISNS_PORTAL_CERT : return("Portal Certificate"); case ISNS_ISCSI_NODE_ID : return("iSCSI Name"); --- 113,116 ---- *************** *** 135,139 **** case ISNS_IFCP_SCN_BITMAP : return("iFCP Node SCN bitmap"); case ISNS_IFCP_NODE_CERT : return("iFCP Node Certificate"); - case iSNS_FC3_TYPE_QUERY_KEY : return("FC-4 Type Code"); case ISNS_NODE_NAME : return("FC Device WWNN"); case ISNS_NODE_SYM_NAME : return("FC Device Sym Node Name"); --- 132,135 ---- *************** *** 153,156 **** --- 149,156 ---- case ISNS_PORTAL_IDX : return("Portal Index"); case ISNS_DD_ISCSI_MEMBER_IDX: return("Discovery Domain iSCSI Member Index"); + case ISNS_PORTAL_GROUP_ISCSI_NAME : return("Portal Group ISCSI Name"); + case ISNS_PORTAL_GROUP_IP : return ("Portal Group IP address"); + case ISNS_PORTAL_GROUP_PORT : return ("Portal Group Port"); + case ISNS_PORTAL_GROUP_TAG : return ("Portal Group Tag"); default : return("Unknown TAG code"); *************** *** 243,246 **** --- 243,247 ---- case ISNS_DDS_ID : case ISNS_DD_ID : + case ISNS_PORTAL_GROUP_PORT : printf ("Tag: %s = %d\n", isnsTagText(attrtag), ntohl(p_attr->val.etype)); break; *************** *** 249,253 **** case ISNS_DDS_SYM_NAME : case ISNS_DD_SYM_NAME : - case ISNS_PORTAL_GROUP : case ISNS_ISCSI_NODE_ID : case ISNS_ISCSI_ALIAS : --- 250,253 ---- *************** *** 258,261 **** --- 258,262 ---- case ISNS_DD_ISCSI_MEMBER : case ISNS_DD_IFCP_MEMBER : + case ISNS_PORTAL_GROUP_ISCSI_NAME : printf ("Tag: %s = \"%s\"\n", isnsTagText(attrtag), &p_attr->val); break; *************** *** 268,271 **** --- 269,273 ---- case ISNS_FC_PORT_IP : case ISNS_FC_NODE_IP : + case ISNS_PORTAL_GROUP_IP : { char ipaddr[45]; *************** *** 330,337 **** case ISNS_IFCP_SCN_BITMAP : case ISNS_IFCP_NODE_CERT : - case iSNS_FC3_TYPE_QUERY_KEY : case ISNS_NODE_NAME : case ISNS_FC_NODE_CERT : case ISNS_COMPANY_OUI : default: printf ("Tag: %s = ", isnsTagText(attrtag)); --- 332,339 ---- case ISNS_IFCP_SCN_BITMAP : case ISNS_IFCP_NODE_CERT : case ISNS_NODE_NAME : case ISNS_FC_NODE_CERT : case ISNS_COMPANY_OUI : + case ISNS_PORTAL_GROUP_TAG : default: printf ("Tag: %s = ", isnsTagText(attrtag)); |
From: Robert W. <wrw...@us...> - 2007-01-02 20:12:10
|
Update of /cvsroot/linuxisns/iscsiClient/include In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv23569/include Modified Files: iSNSdefs.h Log Message: add src attr and portal group support Index: iSNSdefs.h =================================================================== RCS file: /cvsroot/linuxisns/iscsiClient/include/iSNSdefs.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** iSNSdefs.h 2 Apr 2002 02:57:40 -0000 1.1.1.1 --- iSNSdefs.h 2 Jan 2007 20:12:06 -0000 1.2 *************** *** 1,43 **** #if 0 ! /*********************************************************************** ! / Copyright (c) 2001, Nishan Systems, Inc. ! / All rights reserved. ! / ! / Redistribution and use in source and binary forms, with or without ! / modification, are permitted provided that the following conditions are ! / met: ! / ! / - Redistributions of source code must retain the above copyright notice, ! / this list of conditions and the following disclaimer. ! / ! / - Redistributions in binary form must reproduce the above copyright ! / notice, this list of conditions and the following disclaimer in the ! / documentation and/or other materials provided with the distribution. ! / ! / - Neither the name of the Nishan Systems, Inc. nor the names of its ! / contributors may be used to endorse or promote products derived from ! / this software without specific prior written permission. ! / ! / THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ! / AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! / IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A ! / PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NISHAN SYSTEMS, INC. ! / OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ! / EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ! / PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ! / OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ! / WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ! / OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ! / ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ! / ! /***********************************************************************/ ! ! /* Contribuing authors: ! *Tom McSweeney <rf4...@us...>, ! *Curt du Laney <du...@us...> ! *IBM Research Triangle Park ! * ! /***********************************************************************/ ! #endif --- 1,35 ---- #if 0 ! *********************************************************************** ! Copyright (c) 2001, Nishan Systems, Inc. ! All rights reserved. ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions are ! met: ! ! - Redistributions of source code must retain the above copyright notice, ! this list of conditions and the following disclaimer. ! ! - Redistributions in binary form must reproduce the above copyright ! notice, this list of conditions and the following disclaimer in the ! documentation and/or other materials provided with the distribution. ! ! - Neither the name of the Nishan Systems, Inc. nor the names of its ! contributors may be used to endorse or promote products derived from ! this software without specific prior written permission. ! ! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ! AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A ! PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NISHAN SYSTEMS, INC. ! OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ! EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ! ! ***********************************************************************/ #endif *************** *** 45,50 **** #define _ISNSDEFS_H_ #define ISNS_ISCSI_TYPE_SIZE (4) ! #define ISNS_COMPANY_OUI_SIZE (256) #define ISNS_VENDOR_ID_SIZE (256) #define ISNS_NODE_ACTIVE_SIZE (4) --- 37,44 ---- #define _ISNSDEFS_H_ + #define ISNS_VER_SIZE (4) + #define ISNS_DD_FEATURE_BITMAP_SIZE (4) #define ISNS_ISCSI_TYPE_SIZE (4) ! #define ISNS_COMPANY_OUI_SIZE (4) #define ISNS_VENDOR_ID_SIZE (256) #define ISNS_NODE_ACTIVE_SIZE (4) *************** *** 64,67 **** --- 58,63 ---- #define ISNS_PORTAL_IP_SIZE (16) #define ISNS_PORTAL_PORT_SIZE (4) + #define ISNS_PORTAL_GROUP_IP_SIZE (16) + #define ISNS_PORTAL_GROUP_PORT_SIZE (4) #define ISNS_ESI_PORT_SIZE (4) #define PORTAL_NAME_SIZE (ISNS_PORTAL_PORT_SIZE+ISNS_PORTAL_IP_SIZE) *************** *** 94,98 **** #define FC_DESCRIPTOR_SIZE (256) #define ISNS_SCN_BITMAP_SIZE (4) ! #define ISNS_PORTAL_GROUP_SIZE (4) #define DD_SET_ID_SIZE (4) --- 90,94 ---- #define FC_DESCRIPTOR_SIZE (256) #define ISNS_SCN_BITMAP_SIZE (4) ! #define ISNS_PORTAL_GROUP_TAG_SIZE (4) #define DD_SET_ID_SIZE (4) *************** *** 123,126 **** --- 119,124 ---- #define ISNS_ISCSI_TYPE_REMOTE (0x8) + #define ISNS_DD_FEATURE_BOOT_LIST_BIT (0x1) + /* ISNS FUNCTION IDs */ typedef enum { *************** *** 145,156 **** ISNS_REL_SW_ID_REQ, ISNS_GET_SW_ID_REQ, - ISNS_SAVE_DB_REQ=0x100, - - /* Nishan specific messages */ - ISNS_SCN_CALLBACK_REQ, ISNS_DDS_GET_NXT_MEMBER_REQ, ISNS_DD_GET_NXT_ISCSI_MEMBER_REQ, ISNS_ENTITY_GET_NXT_PORTAL_REQ, ! /* End */ ISNS_END_VALID_REQ_FUNC_ID, --- 143,150 ---- ISNS_REL_SW_ID_REQ, ISNS_GET_SW_ID_REQ, ISNS_DDS_GET_NXT_MEMBER_REQ, ISNS_DD_GET_NXT_ISCSI_MEMBER_REQ, ISNS_ENTITY_GET_NXT_PORTAL_REQ, ! ISNS_END_VALID_REQ_FUNC_ID, *************** *** 173,184 **** ISNS_REL_SW_ID_RES, ISNS_GET_SW_ID_RES, - ISNS_SAVE_DB_RES=0x8100, - - /* Nishan specific messages */ - ISNS_SCN_CALLBACK_RES, ISNS_DDS_GET_NXT_MEMBER_RES, ISNS_DD_GET_NXT_ISCSI_MEMBER_RES, ISNS_ENTITY_GET_NXT_PORTAL_RES, - /* End */ ISNS_END_VALID_RES_FUNC_ID, --- 167,173 ---- *************** *** 196,200 **** ISNS_TIMESTAMP, ISNS_PROT_VER, ! ISNS_ENTITY_PERIOD, ISNS_ENTITY_SCN_BITMAP, ISNS_ENTITY_IDX=14, --- 185,189 ---- ISNS_TIMESTAMP, ISNS_PROT_VER, ! ISNS_ENTITY_PERIOD, /* REGISTRATION PERIOD */ ISNS_ENTITY_SCN_BITMAP, ISNS_ENTITY_IDX=14, *************** *** 206,211 **** ISNS_ESI_INTERVAL, ISNS_ESI_PORT, ! ISNS_PORTAL_GROUP, ! ISNS_PORTAL_IDX, ISNS_PORTAL_CERT=31, --- 195,202 ---- ISNS_ESI_INTERVAL, ISNS_ESI_PORT, ! /* ISNS_PORTAL_GROUP, -- tag removed from RFC spec */ ! ISNS_PORTAL_IDX=22, ! ISNS_SCN_PORT=23, ! ISNS_PORTAL_SECURITY_BITMAP=27, ISNS_PORTAL_CERT=31, *************** *** 217,220 **** --- 208,216 ---- ISNS_ISCSI_CERT=40, + ISNS_PORTAL_GROUP_ISCSI_NAME=48, + ISNS_PORTAL_GROUP_IP, + ISNS_PORTAL_GROUP_PORT, + ISNS_PORTAL_GROUP_TAG=51, + ISNS_PORT_NAME=64, /* 64 */ ISNS_PORT_ID, *************** *** 230,234 **** ISNS_IFCP_SCN_BITMAP, ISNS_IFCP_NODE_CERT=80, ! iSNS_FC3_TYPE_QUERY_KEY=95, ISNS_NODE_NAME=96, --- 226,230 ---- ISNS_IFCP_SCN_BITMAP, ISNS_IFCP_NODE_CERT=80, ! iSNS_FC4_TYPE_QUERY_KEY=95, ISNS_NODE_NAME=96, *************** *** 246,256 **** ISNS_DD_ISCSI_MEMBER, ISNS_DD_IFCP_MEMBER, ISNS_COMPANY_OUI = 256, ! /* Nishan specific tags */ ! ISNS_SCN_CALLBACK = 257, /* Vendor Specific */ ! ISNS_DD_ACTIVE, /* Vendor Specific */ ! ISNS_NODE_ACTIVE, /* Vendor Specific */ ISNS_END_VALID_TAG --- 242,262 ---- ISNS_DD_ISCSI_MEMBER, ISNS_DD_IFCP_MEMBER, + ISNS_DD_FEATURE_BITMAP, + + /* Server specific tags */ + ISNS_VENDOR_ID = 131, + ISNS_VENDOR_REV, + ISNS_PRIMARY_VER, + ISNS_PRIMARY_IP, + ISNS_PRIMARY_TCP_PORT, + ISNS_PRIMARY_UDP_PORT, + ISNS_PRIMARY_MGMT_IP, ISNS_COMPANY_OUI = 256, ! /* Nishan vendor specific tags */ ! ISNS_SCN_CALLBACK = 257, ! ISNS_DD_ACTIVE, ! ISNS_NODE_ACTIVE, ISNS_END_VALID_TAG *************** *** 259,263 **** /* ISNS Entity types */ typedef enum { ! ENTITY_TYPE_ISCSI=1, ENTITY_TYPE_IFCP, } ISNS_ENITITY_TYPES; --- 265,270 ---- /* ISNS Entity types */ typedef enum { ! NO_PROTOCOL=1, ! ENTITY_TYPE_ISCSI, ENTITY_TYPE_IFCP, } ISNS_ENITITY_TYPES; *************** *** 298,302 **** #ifndef PAD4 ! #define PAD4(a) ( (a%4)?(4-a%4)+a:(a+4) ) #endif --- 305,309 ---- #ifndef PAD4 ! #define PAD4(a) ( (a % 4) ? (4 - (a % 4) ) + a: (a+4) ) #endif |
From: Robert W. <wrw...@us...> - 2006-12-29 20:40:22
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv13536/src Modified Files: iSNSdb.c iSNSdereg.c iSNSreg.c iSNSscn.c Log Message: bring scn processing up to latest spec Index: iSNSreg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSreg.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** iSNSreg.c 21 Dec 2006 23:28:12 -0000 1.20 --- iSNSreg.c 29 Dec 2006 20:40:18 -0000 1.21 *************** *** 56,60 **** extern int sns_esi_interval; extern uint32_t *dlist_node; /*[MAX_DD_PER_LIST];*/ - extern ISNS_LIST scn_list; extern ISNS_LIST scn_callback_list; extern ISNS_Msg *p_scn_msg_buffer; --- 56,59 ---- *************** *** 625,630 **** { p_iscsi_name = (char *) GetNodeData( pnode2 ); ! send_scn_object_change_to_all( ISNS_ISCSI_NODE_ID, PAD4(strlen(p_iscsi_name)), p_iscsi_name, ! ISNS_SCN_OBJ_UPDATED); } } --- 624,628 ---- { p_iscsi_name = (char *) GetNodeData( pnode2 ); ! send_iscsi_scn_to_members ( NULL, p_iscsi_name, p_scn_all_msg_buffer, ISNS_SCN_OBJ_ADDED ); } } *************** *** 1260,1274 **** } - if ( newRegFlag ) - new_scn_bitmap |= ISNS_SCN_OBJ_ADDED; - else if ( updateFlag ) - new_scn_bitmap |= ISNS_SCN_OBJ_UPDATED; - - if ( newMemberFlag ) - new_scn_bitmap |= ISNS_SCN_MEMBER_ADDED; - - if ( new_scn_bitmap ) - send_scn_parameter_change_to_all( p_scn_all_msg_buffer, new_scn_bitmap ); - attr = (ISNS_Attr *)(attr_indx[ saveIndex ]); ddKeyIndex = -1; --- 1258,1261 ---- *************** *** 1444,1454 **** ISNSAppendKey(p_scn_all_msg_buffer, ISNS_DD_ID, ISNS_DD_ID_SIZE, NULL, p_dd->id); - if (entry.data_type != DD_ID_KEY) - { - DEBUG_2 (isns_reg_debug & 1, (database key does not match %u %u), - entry.data_type, DD_ID_KEY); - return ISNS_UNKNOWN_ERR; - } - stopFlag = FALSE; newMemberFlag = FALSE; --- 1431,1434 ---- *************** *** 1477,1492 **** if ( FALSE == Check_Unique_DD_Sym ( p_dd, (char *)&attr->val ) ) { ! DEBUG_0 ( isns_reg_debug & 1, ! (Error DD Symbolic name not unique) ); ! ! if ( newRegFlag ) ! { ! DeleteList( &p_dd->dds_list ); ! DeleteList( &p_dd->member_list ); ! } ! return ( ISNS_INVALID_REG_ERR ); } strncpy ( p_dd->sym_name, (char *)&attr->val, sizeof(p_dd->sym_name) ); ISNSAppendKey( p_scn_all_msg_buffer, ISNS_DD_SYM_NAME, attr->len, (char *)&attr->val, 0 ); --- 1457,1465 ---- if ( FALSE == Check_Unique_DD_Sym ( p_dd, (char *)&attr->val ) ) { ! DEBUG_0 ( isns_reg_debug & 1,Error DD Symbolic name not unique); return ( ISNS_INVALID_REG_ERR ); } strncpy ( p_dd->sym_name, (char *)&attr->val, sizeof(p_dd->sym_name) ); + ISNSAppendKey( p_scn_all_msg_buffer, ISNS_DD_SYM_NAME, attr->len, (char *)&attr->val, 0 ); *************** *** 1510,1517 **** s == ISNS_NO_ERR?ISNS_DD_MEMBER_ENABLE:ISNS_DD_MEMBER_DISABLE, iscsi_idx); ! if (s == ISNS_NO_ERR && IsDDActive(p_dd->id, 0)) ! send_iscsi_scn_on_dd_mem_change ( NULL, (char *)&attr->val, p_dd, 0, ISNS_SCN_OBJ_ADDED ); ! ISNSAppendKey( p_scn_all_msg_buffer, ISNS_DD_ISCSI_MEMBER, attr->len, ! (char *)&attr->val, 0); newMemberFlag = TRUE; iscsi_idx = 0; --- 1483,1489 ---- s == ISNS_NO_ERR?ISNS_DD_MEMBER_ENABLE:ISNS_DD_MEMBER_DISABLE, iscsi_idx); ! ISNSAppendKey( p_scn_all_msg_buffer, ISNS_DD_ISCSI_MEMBER, attr->len, (char *)&attr->val, 0); ! send_iscsi_scn_to_members (NULL, (char *)&attr->val, p_scn_all_msg_buffer, ISNS_SCN_OBJ_ADDED); ! newMemberFlag = TRUE; iscsi_idx = 0; *************** *** 1527,1530 **** --- 1499,1504 ---- updateFlag = TRUE; ISNSAppendKey( p_scn_all_msg_buffer, ISNS_DD_IFCP_MEMBER, attr->len, (char *)&attr->val, 0); + send_iscsi_scn_to_members (NULL, (char *)&attr->val, p_scn_all_msg_buffer, ISNS_SCN_OBJ_ADDED); + break; } *************** *** 1553,1568 **** ISNSAppendKey (p_rspmsg, ISNS_DD_ID, ISNS_DD_ID_SIZE, NULL, p_dd->id); - if ( newRegFlag ) - new_scn_bitmap |= ISNS_SCN_OBJ_ADDED; - else if ( updateFlag ) - new_scn_bitmap |= ISNS_SCN_OBJ_UPDATED; - - if ( newMemberFlag ) - new_scn_bitmap |= ISNS_SCN_MEMBER_ADDED; - - - if ( new_scn_bitmap ) - send_scn_parameter_change_to_all( p_scn_all_msg_buffer, new_scn_bitmap ); - attr = (ISNS_Attr *)(attr_indx[saveIndex]); ddKeyIndex = -1; --- 1527,1530 ---- *************** *** 1654,1658 **** _SNSdbAddAttrEntity ! Removes one or more entities from the database. *********************************************************************/ int --- 1616,1620 ---- _SNSdbAddAttrEntity ! Adds one or more entities *********************************************************************/ int *************** *** 1673,1678 **** char tempEntityId[ ENTITY_ID_SIZE ] = {0}; int updateFlag; - ISNS_LIST_NODE *pnode2; - char *p_iscsi_name; ISNS_DBKey read_key; --- 1635,1638 ---- *************** *** 1850,1865 **** /* ISNSDisplay_Entity (p_entity, HI_DETAIL); */ - /* Send out SCN */ - if ( newRegFlag || updateFlag ) - { - pnode2 = NULL; - while ( (pnode2 = GetNextNode( &p_entity->iscsi_node_list, pnode2)) ) - { - p_iscsi_name = (char *) GetNodeData(pnode2); - send_scn_object_change_to_all( ISNS_ISCSI_NODE_ID, PAD4(strlen(p_iscsi_name)), p_iscsi_name, - ISNS_SCN_OBJ_UPDATED); - } - } - return ( rval ); } --- 1810,1813 ---- *************** *** 2275,2283 **** p_ifcp_node->scn_sockfd = 0; } - - if (p_ifcp_node->scn_bitmap) - ISNSAddSCNEntry ( ISNS_PORT_NAME, p_ifcp_node->id.v, - p_ifcp_node->scn_bitmap, p_ifcp_node->scn_sockfd ); - break; default: --- 2223,2226 ---- *************** *** 2606,2612 **** } - if ( p_node->scn_bitmap ) - ISNSAddSCNEntry ( ISNS_ISCSI_NODE_ID, p_node->id.v, p_node->scn_bitmap, - p_node->scn_sockfd ); break; } --- 2549,2552 ---- *************** *** 2785,2791 **** } - ISNSAddSCNEntry ( ISNS_ISCSI_NODE_ID, p_node->id.v, p_node->scn_bitmap, - p_node->scn_sockfd ); - /* Store the node */ ISNS_DBKey update_key; --- 2725,2728 ---- *************** *** 2835,2841 **** } - ISNSAddSCNEntry ( ISNS_PORT_NAME, p_ifcp_node->entity_id.id, - p_ifcp_node->scn_bitmap, p_ifcp_node->scn_sockfd ); - /* Store the node */ ISNS_DBKey update_key; --- 2772,2775 ---- *************** *** 2939,2944 **** SOIP_DB_Entry lentry; SOIP_Dd *p_dd; - SOIP_DD_Key dd_key; - int scnFlag; ISNS_DBKey key; int rval; --- 2873,2876 ---- *************** *** 2946,2952 **** DEBUG_0 (isns_reg_debug &1, Add_dds_to_dd ); - scnFlag = FALSE; - dd_key.id = dd_id; - key.tag = DD_ID_KEY; key.val.dd_key.id = dd_id; --- 2878,2881 ---- *************** *** 2965,2969 **** { p_dd->activeFlag = TRUE; - scnFlag = TRUE; } --- 2894,2897 ---- *************** *** 2976,2984 **** ISNSdbWrite (&key,lentry); - if ( scnFlag ) - { - send_dd_iscsi_scn( p_dd, 0, ISNS_SCN_OBJ_ADDED ); - } - return ( ISNS_NO_ERR ); } --- 2904,2907 ---- *************** *** 3091,3160 **** ********************************************************************/ int - ISNSAddSCNEntry( uint32_t type, char *nodename, uint32_t bitmap, int sockfd ) - { - SOIP_Scn_Entry new_entry; - ISNS_LIST_NODE *pnode; - SOIP_Scn_Entry *p_entry; - int foundFlag; - - DEBUG_0 (isns_reg_debug &1,ISNSAddSCNEntry); - - memset( &new_entry, 0, sizeof( new_entry ) ); - new_entry.type = type; - new_entry.scn_bitmap = bitmap; - new_entry.scn_sockfd = sockfd; - - if ( ISNS_PORT_NAME == type ) - { - memcpy( new_entry.name.v, nodename, ISNS_PORT_NAME_SIZE ); - } - else if ( ISNS_ISCSI_NODE_ID == type ) - { - strncpy( new_entry.name.v, nodename, sizeof(new_entry.name.v) ); - } - else if ( ISNS_ENTITY_ID == type ) - { - strncpy( new_entry.name.v, nodename, sizeof(new_entry.name.v) ); - } - else - { - DEBUG_1( isns_reg_debug & 1, (SCN node type wrong: %u), type ); - return ( ERROR ); - } - - pnode = NULL; - foundFlag = FALSE; - while ((pnode = GetNextNode(&scn_list, pnode))) - { - p_entry = (SOIP_Scn_Entry *) GetNodeData( pnode ); - if (0 == strncmp(new_entry.name.v, p_entry->name.v, sizeof(new_entry.name.v))) - { - foundFlag = TRUE; - break; - } - } - - if ( foundFlag ) - { - /* Update */ - if ( p_entry ) - { - memcpy(p_entry, &new_entry, sizeof(new_entry)); - } - - } - else - { - /* Add */ - AddNode( &scn_list, (char *)&new_entry, sizeof( new_entry ) ); - } - - DEBUG_0 (isns_reg_debug &1,ISNSAddSCNEntry return); - return ( SUCCESS ); - } - - /******************************************************************** - ********************************************************************/ - int ISNSAddSCNCallbackEntry ( char *nodename, int type, int bitmap, void (*cfunc)(ISNS_ATTR_VALS_CB *avcb_ptr) ) --- 3014,3017 ---- *************** *** 3364,3370 **** break; } - - /* Send SCN out to DD */ - send_iscsi_scn_on_dd_mem_change(p_node, NULL, p_dd, 0, ISNS_SCN_OBJ_ADDED); } --- 3221,3224 ---- *************** *** 3404,3408 **** if ( memberAddedFlag ) { ! // send_scn_parameter_change_to_all( p_scn_all_msg_buffer, 0); } else --- 3258,3262 ---- if ( memberAddedFlag ) { ! send_iscsi_scn_to_members ( p_node, NULL, p_scn_all_msg_buffer, ISNS_SCN_OBJ_ADDED ); } else *************** *** 3531,3540 **** if (old_activeFlag != p_node->activeFlag) { - /* - send_iscsi_scn_on_dd_mem_change (p_node, NULL, p_dd, 0, - p_node->activeFlag?ISNS_SCN_OBJ_ADDED:ISNS_SCN_OBJ_REMOVED); - */ - send_iscsi_scn_to_members(p_node, NULL, NULL, p_node->activeFlag?ISNS_SCN_OBJ_ADDED:ISNS_SCN_OBJ_REMOVED); - key.tag = ISCSI_ID_KEY; strcpy(key.val.node_key.v,db_node_name.v); --- 3385,3388 ---- Index: iSNSdb.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSdb.c,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** iSNSdb.c 20 Dec 2006 01:02:34 -0000 1.25 --- iSNSdb.c 29 Dec 2006 20:40:17 -0000 1.26 *************** *** 83,87 **** SOIP_Dd_Member *ddmem; /* [100]; */ - ISNS_LIST scn_list; ISNS_LIST scn_callback_list; --- 83,86 ---- *************** *** 959,963 **** { DEBUG_0 (isns_db_debug &1, ISNSInitDBTables); - InitList(SCN_LIST, &scn_list ); InitList(SCN_CALLBACK_LIST, &scn_callback_list); } --- 958,961 ---- Index: iSNSscn.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSscn.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** iSNSscn.c 21 Dec 2006 23:28:12 -0000 1.9 --- iSNSscn.c 29 Dec 2006 20:40:18 -0000 1.10 *************** *** 80,86 **** static SOIP_DB_Entry scn_entry2; static SOIP_DB_Entry scn_entry3; - static SOIP_DB_Entry scn_entry4; - - static int scn_xid = 1; static ISNS_ATTR_VALS_CB * --- 80,83 ---- *************** *** 215,460 **** /******************************************************************** - ********************************************************************/ - int - send_dd_iscsi_scn( SOIP_Dd *p_dd, int dd_id, uint32_t scn_bitmap ) - { - SOIP_DB_Entry lentry; - SOIP_DB_Entry lentry2; - SOIP_Iscsi *p_node; - time_t t; - - ISNS_Msg *p_msg; - ISNS_LIST_NODE *lnode; - SOIP_Dd_Member *p_member; - int rval; - - p_msg=&p_scn_md->msg; - memset(p_scn_md, 0, sizeof(ISNS_Msg_Descp)); - - /* Fetch DD */ - if (!p_dd) - { - if (SUCCESS != SNSdbFetchDD (dd_id, &p_dd, &lentry)) - return (ERROR); - } - - /* Append all of the members to a buffer */ - memset(p_scn_msg_buffer, 0, sizeof(ISNS_Msg)); - p_scn_msg_buffer->hdr.type = ISNS_SCN; - - lnode = NULL; - while ( (lnode = GetNextNode(&p_dd->member_list, lnode)) ) - { - - p_member = (SOIP_Dd_Member *)GetNodeData(lnode); - if (p_member->type != ISNS_DD_ISCSI_MEMBER) - continue; - - /* Append as src attribute */ - ISNSAppendKey (p_scn_msg_buffer, ISNS_ISCSI_NODE_ID, - PAD4 (strlen (p_member->node_id)), p_member->node_id, 0); - - /* Append event bitmap */ - ISNSAppendKey (p_scn_msg_buffer, ISNS_ISCSI_SCN_BITMAP, ISNS_SCN_BITMAP_SIZE, - NULL, scn_bitmap); - } - - - /* For each member */ - lnode = NULL; - while ( (lnode = GetNextNode(&p_dd->member_list, lnode)) ) - { - SOIP_Dd_Member *p_member; - - p_member=(SOIP_Dd_Member *)GetNodeData(lnode); - if (p_member->type != ISNS_DD_ISCSI_MEMBER) - continue; - - /* Fetch Node */ - ISNS_DBKey key; - key.tag = ISCSI_ID_KEY; - strcpy(key.val.node_key.v,p_member->node_id); - rval = ISNSdbRead(&key,&lentry2); - if (rval != SUCCESS) - return ERROR; - - p_node = (SOIP_Iscsi *)&lentry2.data.node; - - if (!(p_node->scn_bitmap & scn_bitmap)) - continue; - - memset(p_scn_md, 0, sizeof(ISNS_Msg_Descp)); - p_msg->hdr.type = ISNS_SCN; - - /* Add Dest Attribute */ - ISNSAppendKey (p_msg, ISNS_ISCSI_NODE_ID, - PAD4 (strlen (p_member->node_id)), p_member->node_id, 0); - - /* Add Timestamp */ - ISNSAppendKey (p_msg, ISNS_TIMESTAMP, ISNS_TIMESTAMP_SIZE, - NULL, time (&t)); - - /* Copy the src attribute buffer into the msg */ - memcpy((char *)&p_msg->payload+p_msg->hdr.msg_len, - (char *)&p_scn_msg_buffer->payload, p_scn_msg_buffer->hdr.msg_len); - - p_msg->hdr.msg_len+=p_scn_msg_buffer->hdr.msg_len; - - /* Send SCN msg */ - send_iscsi_scn_md(p_member->node_id, p_scn_md); - } - - return ( SUCCESS ); - } - - - int - send_scn_parameter_change_to_all( ISNS_Msg *p_msg, uint32_t bitmap ) - { - ISNS_LIST_NODE *pnode; - ISNS_LIST_NODE *remove_node; - SOIP_Scn_Entry *p_entry; - - - /* Append Dest */ - - pnode = NULL; - remove_node = NULL; - while ( (pnode = GetNextNode(&scn_list, pnode)) ) - { - if ( remove_node ) - { - RemoveNode( &scn_list, remove_node ); - remove_node = NULL; - } - p_entry = (SOIP_Scn_Entry *)GetNodeData( pnode ); - if ( p_entry->type != ISNS_ISCSI_NODE_ID ) - continue; - - if ( !(p_entry->scn_bitmap & ISNS_DETAIL_SCN) ) - continue; - - /* Fill destination */ - memset(p_scn_md, 0, sizeof(ISNS_Msg_Descp)); - p_scn_md->msg.hdr.type = ISNS_SCN; - ISNSAppendKey( &p_scn_md->msg, ISNS_ISCSI_NODE_ID, - PAD4(strlen(p_entry->name.v)), p_entry->name.v, 0); - - ISNSAppendTimeStamp( &p_scn_md->msg ); - - memcpy( (char *)&p_scn_md->msg.payload + p_scn_md->msg.hdr.msg_len, - &p_msg->payload, p_msg->hdr.msg_len); - - p_scn_md->msg.hdr.msg_len += p_msg->hdr.msg_len; - p_scn_md->msg.hdr.xid = scn_xid++; - - if ( bitmap ) - ISNSAppendKey(&p_scn_md->msg, ISNS_ISCSI_SCN_BITMAP, ISNS_SCN_BITMAP_SIZE, NULL, bitmap); - /* else the upper level has inserted the bitmap already. */ - - /* Determine how to send */ - if (p_entry->scn_sockfd) - { - /* TCP */ - p_scn_md->cb.sock.socketType = ISNS_SOCKET_TYPE_TCP; - p_scn_md->cb.sock.sockfd = p_entry->scn_sockfd; - - if ( SUCCESS != ISNSSendMsg (p_scn_md) ) - { - DEBUG_0(sns_scn_debug & 1, (Warning: Failure sending SCN, removing SCN)); - - /* Remove Node from SCN List */ - remove_node = pnode; - } - } - else - { - /* UDP or callback */ - printf("Error: UDP SCN and Callback SCN has not been implemented.\n"); - } - } - - if ( remove_node ) - { - RemoveNode( &scn_list, remove_node ); - remove_node = NULL; - } - - return (SUCCESS); - } - - int - send_scn_object_change_to_all( uint32_t src_type, uint32_t src_len, - void *src_val, uint32_t bitmap ) - { - SOIP_Scn_Entry *p_entry; - ISNS_LIST_NODE *pnode; - ISNS_LIST_NODE *remove_node; - - /* Go through SCN list */ - /* Send out SCN only if the ALL bit is set */ - - memset(p_scn_md, 0, sizeof(ISNS_Msg_Descp)); - p_scn_md->msg.hdr.type = ISNS_SCN; - - pnode = NULL; - remove_node = NULL; - while ( (pnode = GetNextNode(&scn_list, pnode)) ) - { - if ( remove_node ) - { - RemoveNode( &scn_list, remove_node ); - remove_node = NULL; - } - p_entry = (SOIP_Scn_Entry *)GetNodeData( pnode ); - if ( p_entry->type != ISNS_ISCSI_NODE_ID ) - continue; - - if ( !(p_entry->scn_bitmap & ISNS_DETAIL_SCN ) ) - continue; - - memset( &p_scn_md->msg.payload, 0, sizeof(p_scn_md->msg.payload) ); - p_scn_md->msg.hdr.msg_len = 0; - /* Fill destination */ - ISNSAppendKey( &p_scn_md->msg, ISNS_ISCSI_NODE_ID, - PAD4(strlen(p_entry->name.v)), p_entry->name.v, 0); - - ISNSAppendTimeStamp( &p_scn_md->msg ); - - ISNSAppendKey( &p_scn_md->msg, src_type, src_len, src_val, 0); - ISNSAppendKey( &p_scn_md->msg, ISNS_ISCSI_SCN_BITMAP, ISNS_SCN_BITMAP_SIZE, 0, bitmap); - - /* Determine how to send */ - if ( p_entry->scn_sockfd ) - { - /* TCP */ - p_scn_md->cb.sock.socketType = ISNS_SOCKET_TYPE_TCP; - p_scn_md->cb.sock.sockfd = p_entry->scn_sockfd; - - if ( SUCCESS != ISNSSendMsg (p_scn_md) ) - { - DEBUG_0(sns_scn_debug & 1, (Warning: Failure sending SCN, removing SCN)); - - /* Remove Node from SCN List */ - remove_node = pnode; - } - } - else - { - /* UDP or callback */ - printf("Error: UDP SCN and Callback SCN has not been implemented.\n"); - } - } - - if ( remove_node ) - { - RemoveNode( &scn_list, remove_node ); - remove_node = NULL; - } - - return (SUCCESS); - } - - /******************************************************************** Sends a SCN to all the DD members of the node that's passed in. ********************************************************************/ --- 212,215 ---- *************** *** 470,473 **** --- 225,230 ---- SOIP_Iscsi *iscsi_node; + DEBUG_0 (sns_scn_debug &1, send_iscsi_scn_to_members); + p_msg=&p_scn_md->msg; memset(p_scn_md, 0, sizeof(ISNS_Msg_Descp)); *************** *** 502,505 **** --- 259,268 ---- p_dd = &scn_entry2.data.dd; + if ( !(p_dd->activeFlag) ) + { + DEBUG_1 (sns_scn_debug &1, Discovery Domain is not Active:%i,p_dd->id); + continue; + } + /* For each member */ pnode = NULL; *************** *** 558,734 **** /********************************************************************* - Non detailed SCN for object added/removed. - *********************************************************************/ - int - send_iscsi_scn_on_dd_mem_change( SOIP_Iscsi * p_src_node, char *p_src_name, - SOIP_Dd *p_dd, uint32_t dd_id, uint32_t event_bitmap) - { - int i; - int j; - int num_nodes; - int foundFlag; - SOIP_DD_Key dd_key; - ISNS_LIST_NODE *lnode; - SOIP_Dd_Member *p_member; - int rval; - - if ( p_src_node == NULL ) - { - if (p_src_name == NULL) - return (ERROR); - - /* Fetch the node */ - ISNS_DBKey read_key; - read_key.tag = ISCSI_ID_KEY; - strcpy(read_key.val.node_key.v,p_src_name); - rval = ISNSdbRead(&read_key,&scn_entry3); - if (rval != SUCCESS) - return rval; - - p_src_node = (SOIP_Iscsi *)&scn_entry3.data.node; - } - - if ( p_dd == NULL ) - { - /* Fetch the DD entry */ - dd_key.id = dd_id; - if (0 == dd_key.id) - { - DEBUG_0(sns_scn_debug & 1, (DD ID of zero is reserved)); - return(ISNS_INVALID_REG_ERR); - } - - ISNS_DBKey read_key; - read_key.tag = DD_ID_KEY; - read_key.val.dd_key.id = dd_key.id; - rval = ISNSdbRead(&read_key,&scn_entry4); - if (rval != SUCCESS) - return rval; - - p_dd = (SOIP_Dd *) &scn_entry4.data; - - } - - if (!p_dd->activeFlag) - return (SUCCESS); - - if (!p_src_node->activeFlag) - return (SUCCESS); - - memset(p_scn_msg_buffer, 0, sizeof(ISNS_Msg)); - p_scn_msg_buffer->hdr.type = ISNS_SCN; - - num_nodes = 0; - lnode = NULL; - while ( (lnode=GetNextNode(&p_dd->member_list, lnode)) ) - { - p_member = (SOIP_Dd_Member *)GetNodeData( lnode ); - - if ( p_member->status == ISNS_DD_MEMBER_DISABLE ) - continue; - - if ( !strcmp(p_member->node_id, p_src_node->id.v)) - continue; - - /* Fetch the Active dd lists */ - memset (dlist_src, 0, MAX_DD_PER_LIST*sizeof(uint32_t)); - memset (dlist_node, 0, MAX_DD_PER_LIST*sizeof(uint32_t)); - Get_Active_DD_List_From_ISCSI_Node (p_src_node->id.v, dlist_src, 0); - Get_Active_DD_List_From_ISCSI_Node (p_member->node_id, dlist_node, 0); - - /* Do a delta */ - foundFlag = FALSE; - for (i = 0; i < MAX_DD_PER_LIST; i++) - { - if (!dlist_src[i]) - break; - - if (dlist_src[i] == p_dd->id) - continue; - - for (j = 0; j < MAX_DD_PER_LIST; j++) - { - if (!dlist_node[j]) - break; - - if (dlist_node[j] == p_dd->id) - continue; - - if (dlist_src[i]==dlist_node[j]) - { - foundFlag = TRUE; - break; - } - } - - if (foundFlag) - break; - } - - if (foundFlag) - continue; - - num_nodes++; - - /* Save the node for sending to src node */ - ISNSAppendKey( p_scn_msg_buffer, ISNS_ISCSI_NODE_ID, - PAD4(strlen(p_member->node_id)), p_member->node_id, 0); - - /* Append Bitmap */ - ISNSAppendKey( p_scn_msg_buffer, ISNS_ISCSI_SCN_BITMAP, - ISNS_SCN_BITMAP_SIZE, NULL, event_bitmap); - - /* Prepare SCN msg */ - memset(p_scn_md, 0, sizeof(ISNS_Msg_Descp)); - p_scn_md->msg.hdr.type = ISNS_SCN; - - /* Append Dest */ - ISNSAppendKey( &p_scn_md->msg, ISNS_ISCSI_NODE_ID, - PAD4(strlen(p_member->node_id)), p_member->node_id, 0); - - /* Append Timestamp */ - ISNSAppendTimeStamp( &p_scn_md->msg ); - - /* Append Src */ - ISNSAppendKey( &p_scn_md->msg, ISNS_ISCSI_NODE_ID, - PAD4(strlen(p_src_node->id.v)), p_src_node->id.v, 0); - - /* Append Bitmap */ - ISNSAppendKey( &p_scn_md->msg, ISNS_ISCSI_SCN_BITMAP, - ISNS_SCN_BITMAP_SIZE, NULL, event_bitmap); - - /* Append All other attr */ - - /* We need to send an SCN for this node */ - send_iscsi_scn_md(p_member->node_id, p_scn_md); - } - - /* Send an scn to self about the new - nodes that came into scope */ - if ( num_nodes ) - { - memset(p_scn_md, 0, sizeof(ISNS_Msg_Descp)); - p_scn_md->msg.hdr.type = ISNS_SCN; - - /* Append Dest */ - ISNSAppendKey( &p_scn_md->msg, ISNS_ISCSI_NODE_ID, - PAD4(strlen(p_src_node->id.v)), p_src_node->id.v, 0); - - /* Append Timestamp */ - ISNSAppendTimeStamp( &p_scn_md->msg ); - - /* Copy over from the buffer */ - memcpy( (char *)&p_scn_md->msg.payload+p_scn_md->msg.hdr.msg_len, - &p_scn_msg_buffer->payload, p_scn_msg_buffer->hdr.msg_len ); - - p_scn_md->msg.hdr.msg_len+=p_scn_msg_buffer->hdr.msg_len; - - send_iscsi_scn_md(p_src_node->id.v, p_scn_md); - } - - return (SUCCESS); - } - - /********************************************************************* Processes a SCN Event request. *********************************************************************/ --- 321,324 ---- *************** *** 768,773 **** } ! //if (SUCCESS != send_iscsi_scn_to_members (NULL, (char *)&key->val, *(uint32_t *) &p_attr->val)) ! // return ( ISNS_SCN_EVENT_REJECTED_ERR ); break; --- 358,363 ---- } ! //if (SUCCESS != send_iscsi_scn_to_members (NULL, (char *)&key->val, *(uint32_t *) &p_attr->val),0) ! // return ( ISNS_SCN_EVENT_REJECTED_ERR ); break; *************** *** 780,785 **** } ! //if (SUCCESS != send_iscsi_scn_to_members (NULL, (char *)&key->val, *(uint32_t *) &p_attr->val)) ! // return ( ISNS_SCN_EVENT_REJECTED_ERR ); break; --- 370,375 ---- } ! //if (SUCCESS != send_iscsi_scn_to_members (NULL, (char *)&key->val, *(uint32_t *) &p_attr->val),0) ! // return ( ISNS_SCN_EVENT_REJECTED_ERR ); break; Index: iSNSdereg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSdereg.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** iSNSdereg.c 21 Dec 2006 23:28:11 -0000 1.20 --- iSNSdereg.c 29 Dec 2006 20:40:17 -0000 1.21 *************** *** 56,60 **** extern uint32_t isns_esi_interval; extern uint32_t *dlist_node; /*[MAX_DD_PER_LIST];*/ - extern ISNS_LIST scn_list; extern ISNS_LIST scn_callback_list; extern ISNS_Msg *p_scn_msg_buffer; --- 56,59 ---- *************** *** 218,226 **** } - memset(p_scn_all_msg_buffer, 0, sizeof(ISNS_Msg)); - p_scn_all_msg_buffer->hdr.type = ISNS_SCN; - - ISNSAppendKey(p_scn_all_msg_buffer, ISNS_DDS_ID, ISNS_DDS_ID_SIZE, NULL, p_dds->id); - /* Remove DDS from DD's DDS List */ memberRemovedFlag = FALSE; --- 217,220 ---- *************** *** 256,260 **** p_dd->activeFlag = FALSE; - ISNSAppendKey(p_scn_all_msg_buffer, ISNS_DD_ID, ISNS_DD_ID_SIZE, NULL, dd_key.id); memberRemovedFlag = TRUE; --- 250,253 ---- *************** *** 277,288 **** } - ISNSAppendKey( p_scn_all_msg_buffer, ISNS_ISCSI_SCN_BITMAP, - ISNS_SCN_BITMAP_SIZE, NULL, - ISNS_SCN_OBJ_REMOVED | (memberRemovedFlag?ISNS_SCN_MEMBER_REMOVED:0)); - DeleteList(&p_dds->dd_list); - send_scn_parameter_change_to_all(p_scn_all_msg_buffer, 0); - delete_key.tag = DDS_ID_KEY; delete_key.val.dds_key.id = dds_key.id; --- 270,275 ---- *************** *** 320,325 **** ISNS_DBKey read_key; - /* int wasActiveFlag; */ - /* int isActiveFlag; */ DEBUG_0 (isns_dereg_debug &1, RemoveAttrDDS_Member); --- 307,310 ---- *************** *** 340,348 **** } - /* Send all scn */ - memset(p_scn_all_msg_buffer, 0, sizeof(ISNS_Msg)); - p_scn_all_msg_buffer->hdr.type = ISNS_SCN; - ISNSAppendKey(p_scn_all_msg_buffer, ISNS_DDS_ID, ISNS_DDS_ID_SIZE, NULL, p_dds->id); - /* Remove DDS from DD's DDS List */ memberRemovedFlag = FALSE; --- 325,328 ---- *************** *** 375,379 **** } - ISNSAppendKey( p_scn_all_msg_buffer, ISNS_DD_ID, ISNS_DD_ID_SIZE, NULL, p_dd->id); memberRemovedFlag = TRUE; --- 355,358 ---- *************** *** 410,418 **** } - ISNSAppendKey( p_scn_all_msg_buffer, ISNS_ISCSI_SCN_BITMAP, - ISNS_SCN_BITMAP_SIZE, NULL, ISNS_SCN_MEMBER_REMOVED ); - if ( memberRemovedFlag ) - send_scn_parameter_change_to_all(p_scn_all_msg_buffer, 0); - /* Store Entry */ ISNS_DBKey add_key; --- 389,392 ---- *************** *** 790,794 **** /* Delete the iFCP Node */ - ISNSRemoveSCNEntry (ISNS_PORT_NAME, buffer); DeleteList(&p_ifcp_node->dd_id_list); --- 764,767 ---- *************** *** 1046,1049 **** --- 1019,1025 ---- DEBUG_1 (isns_dereg_debug & 1, (Deregistering iSCSI Node:%s),iscsi_node_key); + memset(p_scn_all_msg_buffer, 0, sizeof(ISNS_Msg)); + p_scn_all_msg_buffer->hdr.type = ISNS_SCN; + scn_bitmap = 0; key.tag = ISCSI_ID_KEY; *************** *** 1080,1100 **** p_dd = (SOIP_Dd *)&entry5.data; - /* Send SCN */ - send_iscsi_scn_on_dd_mem_change (p_node, NULL, p_dd, 0, ISNS_SCN_OBJ_REMOVED); - Disable_DD_Member (p_dd, p_node->id.v, ISNS_DD_ISCSI_MEMBER); - /* Prepare the SCN */ - memset( p_scn_all_msg_buffer, 0, sizeof(ISNS_Msg)); - p_scn_all_msg_buffer->hdr.type = ISNS_SCN; - - ISNSAppendKey( p_scn_all_msg_buffer, ISNS_DD_ID, ISNS_DD_ID_SIZE, NULL, p_dd->id); - ISNSAppendKey( p_scn_all_msg_buffer, ISNS_DD_ISCSI_MEMBER, - PAD4(strlen(p_node->id.v)), p_node->id.v, 0); - ISNSAppendKey( p_scn_all_msg_buffer, ISNS_ISCSI_SCN_BITMAP, ISNS_SCN_BITMAP_SIZE, - NULL, ISNS_SCN_MEMBER_REMOVED ); - - send_scn_parameter_change_to_all( p_scn_all_msg_buffer, 0 ); - /* Store Entry */ ISNS_DBKey key; --- 1056,1061 ---- *************** *** 1130,1138 **** DeleteList(&p_node->dd_id_list); ! send_scn_object_change_to_all( ISNS_ISCSI_NODE_ID, PAD4 (strlen (iscsi_node_key)), ! iscsi_node_key, ISNS_SCN_OBJ_REMOVED); ! if ( p_node->scn_bitmap ) ! ISNSRemoveSCNEntry (ISNS_ISCSI_NODE_ID, iscsi_node_key); rval = ISNSdbDelete(&key); --- 1091,1097 ---- DeleteList(&p_node->dd_id_list); ! ISNSAppendKey( p_scn_all_msg_buffer, ISNS_ISCSI_NODE_ID, PAD4(strlen(iscsi_node_key)),iscsi_node_key, 0); ! send_iscsi_scn_to_members ( NULL, iscsi_node_key, p_scn_all_msg_buffer, ISNS_SCN_OBJ_REMOVED ); rval = ISNSdbDelete(&key); *************** *** 1221,1224 **** --- 1180,1186 ---- DEBUG_0 (isns_dereg_debug & 1, (Deregistering Portal)); + memset(p_scn_all_msg_buffer, 0, sizeof(ISNS_Msg)); + p_scn_all_msg_buffer->hdr.type = ISNS_SCN; + read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,portal_key,sizeof(SOIP_Portal_Key)); *************** *** 1280,1285 **** { p_iscsi_name = (char *) GetNodeData( pnode2 ); ! send_scn_object_change_to_all( ISNS_ISCSI_NODE_ID, PAD4(strlen(p_iscsi_name)), p_iscsi_name, ! ISNS_SCN_OBJ_UPDATED); } --- 1242,1246 ---- { p_iscsi_name = (char *) GetNodeData( pnode2 ); ! send_iscsi_scn_to_members ( NULL, p_iscsi_name, p_scn_all_msg_buffer, ISNS_SCN_OBJ_REMOVED ); } *************** *** 1347,1354 **** } - memset(p_scn_all_msg_buffer, 0, sizeof(ISNS_Msg)); - p_scn_all_msg_buffer->hdr.type = ISNS_SCN; - ISNSAppendKey(p_scn_all_msg_buffer, ISNS_DD_ID, ISNS_DD_ID_SIZE, NULL, p_dd->id); - /* Remove DD Members */ pnode = NULL; --- 1308,1311 ---- *************** *** 1373,1378 **** return ( ISNS_UNKNOWN_ERR ); } - ISNSAppendKey( p_scn_all_msg_buffer, ISNS_ISCSI_NODE_ID, - PAD4(strlen(p_member->node_id)), p_member->node_id, 0); memberRemovedFlag = TRUE; break; --- 1330,1333 ---- *************** *** 1385,1390 **** return ( ISNS_UNKNOWN_ERR ); } - ISNSAppendKey( p_scn_all_msg_buffer, ISNS_PORT_NAME, - ISNS_PORT_NAME_SIZE, p_member->node_id, 0); memberRemovedFlag = TRUE; break; --- 1340,1343 ---- *************** *** 1399,1406 **** } - ISNSAppendKey( p_scn_all_msg_buffer, ISNS_ISCSI_SCN_BITMAP, - ISNS_SCN_BITMAP_SIZE, NULL, - ISNS_SCN_OBJ_REMOVED | (memberRemovedFlag?ISNS_SCN_MEMBER_REMOVED:0)); - pnode = NULL; while ( (pnode = GetNextNode( &p_dd->dds_list, pnode )) ) --- 1352,1355 ---- *************** *** 1434,1438 **** DeleteList( &p_dd->member_list ); DeleteList( &p_dd->dds_list ); - send_scn_parameter_change_to_all(p_scn_all_msg_buffer, 0); delete_key.tag=DD_ID_KEY; --- 1383,1386 ---- *************** *** 1505,1508 **** --- 1453,1458 ---- ISNS_SCN_MEMBER_REMOVED); removeMemberFlag = TRUE; + send_iscsi_scn_to_members ( NULL,(char *)&p_attr->val, p_scn_all_msg_buffer, ISNS_SCN_OBJ_REMOVED ); + break; case ISNS_DD_IFCP_MEMBER: *************** *** 1517,1520 **** --- 1467,1471 ---- ISNSAppendKey( p_scn_all_msg_buffer, ISNS_IFCP_SCN_BITMAP, ISNS_SCN_BITMAP_SIZE, NULL, ISNS_SCN_MEMBER_REMOVED); + send_iscsi_scn_to_members ( NULL, (char *)&p_attr->val, p_scn_all_msg_buffer, ISNS_SCN_OBJ_REMOVED ); removeMemberFlag = TRUE; break; *************** *** 1525,1531 **** } - if ( removeMemberFlag ) - send_scn_parameter_change_to_all( p_scn_all_msg_buffer, 0 ); - /* Store Entry */ key.tag = DD_ID_KEY; --- 1476,1479 ---- *************** *** 1602,1606 **** if ((p_lnode=FindNode(&p_node->dd_id_list, (char *)&p_dd->id, sizeof(p_dd->id)))) { - send_iscsi_scn_on_dd_mem_change (p_node, 0, p_dd, 0, ISNS_SCN_OBJ_REMOVED ); RemoveNode(&p_node->dd_id_list, p_lnode); --- 1550,1553 ---- *************** *** 1671,1709 **** } - /******************************************************************** - ********************************************************************/ - int - ISNSRemoveSCNEntry(uint32_t type, char *nodename) - { - SOIP_Scn_Entry new_entry; - ISNS_LIST_NODE *pnode; - - memset(&new_entry, 0, sizeof(new_entry)); - new_entry.type=type; - - if (ISNS_PORT_NAME==type) - { - memcpy(new_entry.name.v, nodename, ISNS_PORT_NAME_SIZE); - } - else if (ISNS_ISCSI_NODE_ID==type) - { - strncpy(new_entry.name.v, nodename, sizeof(new_entry.name.v) ); - } - else - { - DEBUG_1(isns_dereg_debug & 1, (SCN node type wrong: %u), type); - return (ERROR); - } - - if (NULL==(pnode=FindNode(&scn_list, (char *)&new_entry, sizeof(new_entry)))) - { - return (ERROR); - } - - RemoveNode(&scn_list, pnode); - - return (SUCCESS); - } - /********************************************************************* _Disable_DD_Member --- 1618,1621 ---- *************** *** 1820,1825 **** p_node->scn_sockfd = 0; - ISNSRemoveSCNEntry (ISNS_ISCSI_NODE_ID, p_node->id.v); - /* Store the node */ ISNS_DBKey key; --- 1732,1735 ---- *************** *** 1843,1847 **** p_ifcp_node->scn_bitmap=0; p_ifcp_node->scn_sockfd = 0; - ISNSRemoveSCNEntry (ISNS_PORT_NAME, p_ifcp_node->entity_id.id); /* Store the node */ --- 1753,1756 ---- *************** *** 1865,1869 **** p_entity->scn_bitmap=0; p_entity->scn_sockfd = 0; - ISNSRemoveSCNEntry (ISNS_ENTITY_ID, p_entity->eid.id); /* Store the node */ --- 1774,1777 ---- |
From: Robert W. <wrw...@us...> - 2006-12-29 20:40:21
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/include In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv13536/include Modified Files: iSNSscn.h Log Message: bring scn processing up to latest spec Index: iSNSscn.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNSscn.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** iSNSscn.h 21 Dec 2006 23:28:11 -0000 1.2 --- iSNSscn.h 29 Dec 2006 20:40:17 -0000 1.3 *************** *** 41,58 **** int - send_iscsi_scn_on_dd_mem_change( SOIP_Iscsi * p_src_node, char *p_src_name, - SOIP_Dd *p_dd, uint32_t dd_id, uint32_t event_bitmap); - - int - send_scn_parameter_change_to_all( ISNS_Msg *p_msg, uint32_t bitmap ); - - int - send_scn_object_change_to_all( uint32_t src_type, uint32_t src_len, - void *src_val, uint32_t bitmap ); - - int - send_dd_iscsi_scn( SOIP_Dd *p_dd, int dd_id, uint32_t scn_bitmap ); - - int send_iscsi_scn_to_members ( SOIP_Iscsi * p_src_node, char *p_src_name, ISNS_Msg *p_msg, uint32_t event_bitmap ); --- 41,44 ---- |
From: Robert W. <wrw...@us...> - 2006-12-21 23:28:15
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv12220/src Modified Files: iSNSdereg.c iSNSquery.c iSNSreg.c iSNSscn.c Log Message: upgrade State Change Notification feature Index: iSNSreg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSreg.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** iSNSreg.c 21 Dec 2006 00:50:51 -0000 1.19 --- iSNSreg.c 21 Dec 2006 23:28:12 -0000 1.20 *************** *** 2293,2301 **** return (ERROR); - //if (d.dptr == NULL) - //{ - // Send_IFCP_SCN (p_ifcp_node, NULL, ISNS_SCN_OBJ_REMOVED); - //} - /* Store Port Name */ ISNS_DBKey key; --- 2293,2296 ---- *************** *** 2384,2391 **** int updateFlag; uint32_t scn_bitmap= 0; - uint32_t new_scn_bitmap=0; uint32_t safe_len; int newIscsiNodeFlag; - /* ISNS_LIST_NODE *p_lnode; */ DEBUG_0 ( isns_reg_debug & 1, (Registering iSCSI Node) ); --- 2379,2384 ---- *************** *** 2550,2557 **** Check_if_member_of_DD (p_node->id.v); } - else - { - scn_bitmap |= ISNS_SCN_OBJ_UPDATED; - } memset( p_scn_all_msg_buffer, 0, sizeof(ISNS_Msg)); --- 2543,2546 ---- *************** *** 2657,2670 **** if ( newIscsiNodeFlag ) ! new_scn_bitmap |= ISNS_SCN_OBJ_ADDED; else if ( updateFlag ) ! new_scn_bitmap |= ISNS_SCN_OBJ_UPDATED; ! ! send_scn_parameter_change_to_all ( p_scn_all_msg_buffer, new_scn_bitmap); ! ! new_scn_bitmap = 0; ! ! if ( p_node->activeFlag ) ! send_iscsi_scn_to_members ( p_node, NULL, p_scn_all_msg_buffer, new_scn_bitmap ); /* Decide on Looping */ --- 2646,2652 ---- if ( newIscsiNodeFlag ) ! send_iscsi_scn_to_members ( p_node, NULL, p_scn_all_msg_buffer, ISNS_SCN_OBJ_ADDED ); else if ( updateFlag ) ! send_iscsi_scn_to_members ( p_node, NULL, p_scn_all_msg_buffer, ISNS_SCN_OBJ_UPDATED ); /* Decide on Looping */ *************** *** 3322,3328 **** } - memset( p_scn_all_msg_buffer, 0, sizeof(ISNS_Msg)); - p_scn_all_msg_buffer->hdr.type = ISNS_SCN; - /* Loop */ memberAddedFlag = FALSE; --- 3304,3307 ---- *************** *** 3425,3429 **** if ( memberAddedFlag ) { ! send_scn_parameter_change_to_all( p_scn_all_msg_buffer, 0); } else --- 3404,3408 ---- if ( memberAddedFlag ) { ! // send_scn_parameter_change_to_all( p_scn_all_msg_buffer, 0); } else Index: iSNSscn.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSscn.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** iSNSscn.c 19 Dec 2006 22:25:31 -0000 1.8 --- iSNSscn.c 21 Dec 2006 23:28:12 -0000 1.9 *************** *** 92,96 **** /********************************************************************* *********************************************************************/ ! int send_iscsi_scn_md(char *p_node_name, ISNS_Msg_Descp *p_md) { --- 92,96 ---- /********************************************************************* *********************************************************************/ ! static int send_iscsi_scn_md(char *p_node_name, ISNS_Msg_Descp *p_md) { *************** *** 460,480 **** ********************************************************************/ int ! send_iscsi_scn_to_members ( SOIP_Iscsi * p_src_node, char *p_src_name, ! ISNS_Msg *p_scn_msg, uint32_t event_bitmap ) { - int foundSCNPortal; - int kk; - ISNS_Attr *p_attr; - SOIP_Iscsi *p_iscsi_node; ISNS_Msg *p_msg; time_t t; - SOIP_Entity *p_entity; - SOIP_Portal *p_portal = NULL; - ISNS_LIST_NODE *pnode; - ISNS_ATTR_VALS_CB *attr_vals_cb; - char buffer[ 256 ] = {0}; int rval; ! if ( p_src_node == NULL ) { /* Fetch the node */ --- 460,477 ---- ********************************************************************/ int ! send_iscsi_scn_to_members ( SOIP_Iscsi * p_node, char *p_src_name, ! ISNS_Msg *p_scn_msg, uint32_t scn_bitmap ) { ISNS_Msg *p_msg; time_t t; int rval; + ISNS_LIST_NODE *ddnode; + ISNS_LIST_NODE *pnode; + SOIP_Iscsi *iscsi_node; ! p_msg=&p_scn_md->msg; ! memset(p_scn_md, 0, sizeof(ISNS_Msg_Descp)); ! ! if ( p_node == NULL ) { /* Fetch the node */ *************** *** 482,643 **** read_key.tag = ISCSI_ID_KEY; strcpy(read_key.val.node_key.v,p_src_name); ! rval = ISNSdbRead(&read_key,&scn_entry3); if (rval != SUCCESS ) return rval; ! p_src_node = (SOIP_Iscsi *)&scn_entry3.data.node; } ! /* Zero out msg */ ! /* Find Members */ ! memset (p_scn_md, 0, sizeof (ISNS_Msg_Descp)); ! memset (ddmem, 0, MAX_MEMBER_PER_DD*sizeof(SOIP_Dd_Member)); ! memset( dlist_node, 0, MAX_DD_PER_LIST*sizeof(uint32_t)); ! Copy_DD_List(&p_src_node->dd_id_list, dlist_node); ! Append_Nodes_From_DD_List (dlist_node, ddmem, ! ISNS_DD_ISCSI_MEMBER); ! ! for (kk = 0; kk < MAX_MEMBER_PER_DD && ddmem[ kk ].type != 0; kk++) { ! /* Fetch the node */ ! ISNS_DBKey read_key; ! read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_key.v,ddmem[kk].node_id); ! rval = ISNSdbRead(&read_key,&scn_entry); ! if (rval != SUCCESS) ! return rval; ! ! p_iscsi_node = (SOIP_Iscsi *)&scn_entry.data; ! ! /* Check to see if Node has scn registered */ ! if (p_iscsi_node->scn_bitmap & event_bitmap) ! { ! /* Send SCN */ ! ! memset (p_scn_md, 0, sizeof (ISNS_Msg_Descp)); ! p_attr = (ISNS_Attr *)(&p_scn_md->msg.payload); ! p_msg = &p_scn_md->msg; ! p_msg->hdr.type = ISNS_SCN; ! ! ! /* Append dest Attr */ ! ISNSAppendKey (p_msg, ISNS_ISCSI_NODE_ID, ! PAD4 (strlen (p_iscsi_node->id.v)), ! p_iscsi_node->id.v, 0); ! ! /* Append TimeStamp */ ! ISNSAppendKey (p_msg, ISNS_TIMESTAMP, ISNS_TIMESTAMP_SIZE, ! NULL, time (&t)); ! ! /* Copy from the scn buffer */ ! if (p_scn_msg) ! { ! memcpy( (char *)&p_msg->payload + p_msg->hdr.msg_len, ! &p_scn_msg->payload, p_scn_msg->hdr.msg_len); ! ! p_msg->hdr.msg_len += p_scn_msg->hdr.msg_len; ! } ! else ! { ! /* Save the node for sending to src node */ ! ISNSAppendKey( p_msg, ISNS_ISCSI_NODE_ID, ! PAD4(strlen(p_src_node->id.v)), p_src_node->id.v, 0); ! ! /* Append Bitmap */ ! ISNSAppendKey( p_msg, ISNS_ISCSI_SCN_BITMAP, ! ISNS_SCN_BITMAP_SIZE, NULL, event_bitmap); ! } ! ! ! p_scn_md->msg.hdr.xid = scn_xid++; ! ! /* Determine how to send */ ! if ( p_iscsi_node->scn_callback ) ! { ! /* local SCN */ ! attr_vals_cb = ISNSAttrGetList(p_scn_md); ! ! p_iscsi_node->scn_callback(attr_vals_cb); ! ! /* free memory */ ! ISNSFreeBuffer ((char *)attr_vals_cb->attr_val_sptr); ! ISNSFreeBuffer ((char *)attr_vals_cb); ! } ! else if ( p_iscsi_node->scn_sockfd ) ! { ! /* TCP */ ! p_scn_md->cb.sock.socketType = ISNS_SOCKET_TYPE_TCP; ! p_scn_md->cb.sock.sockfd = p_iscsi_node->scn_sockfd; ! ! if ( SUCCESS!=ISNSSendMsg (p_scn_md) ) ! { ! DEBUG_0(sns_scn_debug & 1, (Warning: Failure sending SCN)); ! p_iscsi_node->scn_bitmap=0; ! ISNS_DBKey key; ! key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_key.v,ddmem[kk].node_id); ! ISNSdbWrite(&key,scn_entry); ! } ! } ! else ! { ! /* Pick a portal, send out a SCN */ ! /* Fetch entity */ ! memset (buffer, 0, sizeof (buffer)); ! strncpy (buffer, p_iscsi_node->entity_id.id, sizeof(buffer) ); ! SNSdbFetchEntity (buffer, &p_entity, &scn_entry); ! /* Fetch portal */ ! foundSCNPortal = FALSE; ! pnode = NULL; ! while ( (pnode = GetNextNode(&p_entity->iportal_list, pnode)) ) ! { ! /* Fetch Portal */ ! ISNS_DBKey read_key; ! read_key.tag = PORTAL_ID_KEY; ! memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_DB_Portal)); ! rval = ISNSdbRead(&read_key,&scn_entry2); ! if (rval != SUCCESS) ! return rval; ! p_portal = (SOIP_Portal *)&scn_entry2.data; ! /* Get first ESI/SCN Portal */ ! if ( p_portal->esi_port != 0 ) ! { ! foundSCNPortal = TRUE; ! break; ! } ! } ! /* Send out SCN */ ! if ( foundSCNPortal ) ! { ! p_scn_md->cb.sock.socketType = ISNS_SOCKET_TYPE_UDP; ! p_scn_md->cb.sock.addr.sin_family = AF_INET; ! p_scn_md->cb.sock.len = sizeof (p_scn_md->cb.sock.addr); ! memcpy (&p_scn_md->cb.sock.addr.sin_addr.s_addr, ! p_portal->ip_addr.v + 12, ! sizeof (p_scn_md->cb.sock.addr.sin_addr.s_addr)); ! p_scn_md->cb.sock.addr.sin_port = ! htons ((short)(p_portal->esi_port & 0xFFFF)); ! ISNSSendMsg (p_scn_md); ! } ! else ! { ! DEBUG_0 (sns_scn_debug & 1, (No valid Portal to send SCN)); ! } ! } ! } } return ( SUCCESS ); } --- 479,557 ---- read_key.tag = ISCSI_ID_KEY; strcpy(read_key.val.node_key.v,p_src_name); ! rval = ISNSdbRead(&read_key,&scn_entry); if (rval != SUCCESS ) return rval; ! p_node = (SOIP_Iscsi *)&scn_entry.data.node; } ! ddnode = NULL; ! while ( (ddnode = GetNextNode(&p_node->dd_id_list, ddnode)) ) { ! int dd_id; ! dd_id = *(uint32_t *)GetNodeData (ddnode); ! SOIP_Dd *p_dd; ! ISNS_DBKey read_key; ! read_key.tag = DD_ID_KEY; ! read_key.val.dd_key.id = dd_id; ! rval = ISNSdbRead(&read_key,&scn_entry2); ! if (rval != SUCCESS) ! break; ! p_dd = &scn_entry2.data.dd; ! /* For each member */ ! pnode = NULL; ! while ( (pnode = GetNextNode(&p_dd->member_list, pnode)) ) ! { ! SOIP_Dd_Member *p_member; ! p_member=(SOIP_Dd_Member *)GetNodeData(pnode); ! if (p_member->type != ISNS_DD_ISCSI_MEMBER) ! continue; ! if ( !strcmp(p_node->id.v,p_member->node_id) ) ! { ! continue; ! } + /* Fetch Node */ + ISNS_DBKey key; + key.tag = ISCSI_ID_KEY; + strcpy(key.val.node_key.v,p_member->node_id); + rval = ISNSdbRead(&key,&scn_entry3); + if (rval != SUCCESS) + return ERROR; ! iscsi_node = (SOIP_Iscsi *)&scn_entry3.data.node; ! if (!(iscsi_node->scn_bitmap & scn_bitmap)) ! { ! continue; ! } ! ! memset(p_scn_md, 0, sizeof(ISNS_Msg_Descp)); ! p_msg->hdr.type = ISNS_SCN; ! /* Add Dest Attribute */ ! ISNSAppendKey (p_msg, ISNS_ISCSI_NODE_ID, ! PAD4 (strlen (p_member->node_id)), p_member->node_id, 0); ! /* Add Timestamp */ ! ISNSAppendKey (p_msg, ISNS_TIMESTAMP, ISNS_TIMESTAMP_SIZE, ! NULL, time (&t)); ! /* Copy the src attribute buffer into the msg */ ! memcpy((char *)&p_msg->payload+p_msg->hdr.msg_len, ! (char *)&p_scn_msg->payload, p_scn_msg->hdr.msg_len); ! p_msg->hdr.msg_len+=p_scn_msg->hdr.msg_len; ! /* Send SCN msg */ ! send_iscsi_scn_md(p_member->node_id, p_scn_md); ! } } + return ( SUCCESS ); } *************** *** 816,1177 **** } - #if 0 - /********************************************************************* - Sends an iSCSI SCN out to all the DD member that is passed in. - *********************************************************************/ - int - send_iscsi_scn_to_dd ( SOIP_Iscsi * p_src_node, char *p_src_name, - SOIP_Dd *p_dd, uint32_t dd_id, uint32_t event_bitmap ) - { - int foundSCNPortal; - ISNS_Attr *p_attr; - SOIP_Iscsi *p_iscsi_node; - ISNS_Msg *p_msg; - time_t t; - SOIP_Entity *p_entity; - SOIP_Portal *p_portal; - ISNS_LIST_NODE *pnode; - ISNS_LIST_NODE *pnode2; - ISNS_ATTR_VALS_CB *attr_vals_cb; - SOIP_DD_Key dd_key; - char buffer[ 256 ] = {0}; - - if ( p_src_node == NULL ) - { - /* Fetch the node */ - ISNS_key read_key; - read_key.tag = ISCSI_ID_KEY; - strcpy(read_key.val.node_name.v,p_src_name); - rval = ISNSdbRead(&read_key,&scn_entry3); - if (rval != SUCCESS) - return rval; - - p_src_node = (SOIP_Iscsi *)&scn_entry3.data.node; - } - - if ( p_dd == NULL ) - { - /* Fetch the DD entry */ - dd_key.id = dd_id; - if (0 == dd_key.id) - { - DEBUG_0(sns_scn_debug & 1, (DD ID of zero is reserved)); - return(ISNS_INVALID_REG_ERR); - } - - ISNS_DBKey read_key; - read_key.tag = DD_ID_KEY; - read_key.val.dd_id = dd_key.id; - rval = ISNSdbRead(&read_key,&scn_entry4); - if (rval != SUCCESS) - return rval; - - p_dd = (SOIP_Dd *) &scn_entry4.data; - - } - - /* Zero out msg */ - memset (p_scn_md, 0, sizeof (ISNS_Msg_Descp)); - - pnode2 = NULL; - while ( (pnode2 = GetNextNode(&p_dd->member_list, pnode2)) ) - { - SOIP_Dd_Member *p_member; - - p_member = (SOIP_Dd_Member *)GetNodeData( pnode2 ); - - if ( p_member->status == ISNS_DD_MEMBER_DISABLE ) - continue; - - /* Fetch the node */ - ISNS_DBKey read_key; - read_key.tag = ISCSI_ID_KEY; - strcpy(read_key.val,node_name.v,p_member->node_id); - rval = ISNSdbRead(&read_key,&scn_entry); - if (rval != SUCCESS) - return rval; - - p_iscsi_node = (SOIP_Iscsi *)&scn_entry.data; - - /* Check to see if Node has scn registered */ - if (p_iscsi_node->scn_bitmap & event_bitmap) - { - /* Send SCN */ - - memset (p_scn_md, 0, sizeof (ISNS_Msg_Descp)); - p_attr = (ISNS_Attr *)(&p_scn_md->msg.payload); - p_msg = &p_scn_md->msg; - p_msg->hdr.type = ISNS_SCN; - - - /* Append dest Attr */ - ISNSAppendKey (p_msg, ISNS_ISCSI_NODE_ID, - PAD4 (strlen (p_iscsi_node->id.v)), - p_iscsi_node->id.v, 0); - - /* Append TimeStamp */ - ISNSAppendKey (p_msg, ISNS_TIMESTAMP, ISNS_TIMESTAMP_SIZE, - NULL, time (&t)); - - /* Append src attr & event */ - ISNSAppendKey (p_msg, ISNS_ISCSI_NODE_ID, - PAD4 (strlen (p_src_node->id.v)), p_src_node->id.v, - 0); - - /* Append DD ID */ - ISNSAppendKey (p_msg, ISNS_DD_ID, ISNS_DD_ID_SIZE, NULL, p_dd->id); - - /* Append Bitmap */ - ISNSAppendKey (p_msg, ISNS_ISCSI_SCN_BITMAP, ISNS_SCN_BITMAP_SIZE, - NULL, event_bitmap); - - p_scn_md->msg.hdr.xid = scn_xid++; - - /* Determine how to send */ - if ( p_iscsi_node->scn_callback ) - { - /* local SCN */ - attr_vals_cb = ISNSAttrGetList(p_scn_md); - - p_iscsi_node->scn_callback(attr_vals_cb); - - /* free memory */ - ISNSFreeBuffer ((char *)attr_vals_cb->attr_val_sptr); - ISNSFreeBuffer ((char *)attr_vals_cb); - } - else if ( p_iscsi_node->scn_sockfd ) - { - /* TCP */ - p_scn_md->cb.sock.socketType = ISNS_SOCKET_TYPE_TCP; - p_scn_md->cb.sock.sockfd = p_iscsi_node->scn_sockfd; - - if ( SUCCESS!=ISNSSendMsg (p_scn_md) ) - { - DEBUG_0(sns_scn_debug & 1, (Warning: Failure sending SCN)); - p_iscsi_node->scn_bitmap=0; - - ISNS_DBKey key; - key.tag = ISCSI_ID_KEY; - strcpy(key.val.node_name.v,p_member->node_id); - ISNSdbWrite(&key,scn_entry); - } - } - else - { - /* Pick a portal, send out a SCN */ - - /* Fetch entity */ - memset (buffer, 0, sizeof (buffer)); - strncpy (buffer, p_iscsi_node->entity_id.id, sizeof(buffer) ); - SNSdbFetchEntity (buffer, &p_entity, &scn_entry); - - /* Fetch portal */ - foundSCNPortal = FALSE; - pnode = NULL; - while ( (pnode = GetNextNode(&p_entity->iportal_list, pnode)) ) - { - /* Fetch Portal */ - ISNS_DBKey read_key; - read_key.tag = PORTAL_ID_KEY; - memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_DB_Portal)); - rval = ISNSdbRead(&read_key,&scn_entry2); - if (rval != SUCCESS) - return rval; - - p_portal = (SOIP_Portal *)&scn_entry2.data; - - /* Get first ESI/SCN Portal */ - if ( p_portal->esi_port != 0 ) - { - foundSCNPortal = TRUE; - break; - } - } - - - /* Send out SCN */ - if ( foundSCNPortal ) - { - p_scn_md->cb.sock.socketType = ISNS_SOCKET_TYPE_UDP; - p_scn_md->cb.sock.addr.sin_family = AF_INET; - p_scn_md->cb.sock.len = sizeof (p_scn_md->cb.sock.addr); - - memcpy (p_scn_md->cb.sock.addr.sin_addr.s_addr, - p_portal->ip_addr.v + 12, - sizeof (p_scn_md->cb.sock.addr.sin_addr.s_addr)); - - p_scn_md->cb.sock.addr.sin_port = - htons ((short)(p_portal->esi_port & 0xFFFF)); - - ISNSSendMsg (&p_scn_md); - - } - else - { - DEBUG_0 (sns_scn_debug & 1, (No valid Portal to send SCN)); - } - - } - - } - } - return ( SUCCESS ); - } - #endif - - /********************************************************************* - Sends an iFCP SCN out. - *********************************************************************/ - int - Send_IFCP_SCN (SOIP_Ifcp * p_src_node, char *p_src_name, - uint32_t event_bitmap) - { - int kk; - int foundSCNPortal; - SOIP_DB_Entry lentry; - SOIP_DB_Entry lentry2; - SOIP_DB_Entry lentry3; - ISNS_Attr *p_attr; - SOIP_Entity *p_entity; - SOIP_Portal *p_portal = NULL; - SOIP_Ifcp *p_ifcp_node; - ISNS_Msg *p_msg; - time_t t; - ISNS_LIST_NODE *pnode; - int rval; - - foundSCNPortal = FALSE; - if (p_src_node == NULL) - { - ISNS_DBKey read_key; - read_key.tag = PORT_NAME_KEY; - memcpy(&read_key.val,p_src_name,PORT_NAME_SIZE); - rval = ISNSdbRead(&read_key,&lentry3); - if (rval != SUCCESS) - return rval; - - p_src_node = &lentry3.data.port; - } - - /* Zero out msg */ - memset (p_scn_md, 0, sizeof (ISNS_Msg_Descp)); - - memset (ddmem, 0, MAX_MEMBER_PER_DD*sizeof(SOIP_Dd_Member)); - memset( dlist_node, 0, MAX_DD_PER_LIST*sizeof(uint32_t)); - Copy_DD_List(&p_src_node->dd_id_list, dlist_node); - Append_Nodes_From_DD_List (dlist_node, ddmem, - ISNS_DD_IFCP_MEMBER); - - for (kk = 0; kk < MAX_MEMBER_PER_DD && ddmem[kk].type != 0; kk++) - { - /* Fetch the node */ - ISNS_DBKey read_key; - read_key.tag = PORT_NAME_KEY; - memcpy(&read_key.val,ddmem[kk].node_id,ISNS_PORT_NAME_SIZE); - rval = ISNSdbRead(&read_key,&lentry); - if (rval != SUCCESS) - return rval; - - p_ifcp_node = &lentry.data.port; - - /* Check to see if Node has scn registered */ - if (p_ifcp_node->scn_bitmap & event_bitmap) - { - /* Send SCN */ - - memset (p_scn_md, 0, sizeof (ISNS_Msg_Descp)); - p_attr = (ISNS_Attr *)(&p_scn_md->msg.payload); - p_msg = &p_scn_md->msg; - p_msg->hdr.type = ISNS_SCN; - - /* Append dest Attr */ - ISNSAppendKey (p_msg, ISNS_PORT_NAME, ISNS_PORT_NAME_SIZE, - p_ifcp_node->port_name.v, 0); - - /* Append TimeStamp */ - ISNSAppendKey (p_msg, ISNS_TIMESTAMP, ISNS_TIMESTAMP_SIZE, - NULL, time (&t)); - - /* Append src attr & event */ - ISNSAppendKey (p_msg, ISNS_PORT_NAME, ISNS_PORT_NAME_SIZE, - p_src_node->id.v, 0); - - /* Append Bitmap */ - ISNSAppendKey (p_msg, ISNS_IFCP_SCN_BITMAP, ISNS_SCN_BITMAP_SIZE, - NULL, event_bitmap); - - p_scn_md->msg.hdr.xid = scn_xid++; - /* Determine how to send */ - if (p_ifcp_node->scn_sockfd) - { - /* TCP */ - p_scn_md->cb.sock.socketType = ISNS_SOCKET_TYPE_TCP; - p_scn_md->cb.sock.sockfd = p_ifcp_node->scn_sockfd; - - if (SUCCESS != ISNSSendMsg (p_scn_md)) - { - ISNSRemoveSCNEntry (ISNS_PORT_NAME, p_ifcp_node->port_name.v); - } - } - else - { - char buffer[256]; - /* Pick a portal, send out a SCN */ - - /* Fetch entity */ - memset (buffer, 0, sizeof (buffer)); - strncpy (buffer, p_ifcp_node->entity_id.id, sizeof(buffer) ); - SNSdbFetchEntity (buffer, &p_entity, &lentry); - - /* Fetch portal */ - pnode=NULL; - while ((pnode=GetNextNode(&p_entity->iportal_list, pnode))) - { - /* Fetch Portal */ - ISNS_DBKey read_key; - read_key.tag = PORTAL_ID_KEY; - memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_DB_Portal)); - if (rval != SUCCESS) - return rval; - - p_portal = (SOIP_Portal *)&lentry2.data; - - /* Get first ESI/SCN Portal */ - if (p_portal->esi_port != 0) - { - foundSCNPortal = TRUE; - break; - } - } - - /* Send out SCN */ - if (foundSCNPortal) - { - p_scn_md->cb.sock.socketType = ISNS_SOCKET_TYPE_UDP; - p_scn_md->cb.sock.addr.sin_family = AF_INET; - p_scn_md->cb.sock.len = sizeof (p_scn_md->cb.sock.addr); - - memcpy (&p_scn_md->cb.sock.addr.sin_addr.s_addr, - p_portal->ip_addr.v + 12, - sizeof (p_scn_md->cb.sock.addr.sin_addr.s_addr)); - - p_scn_md->cb.sock.addr.sin_port = - htons ((short)(p_portal->esi_port & 0xFFFF)); - - ISNSSendMsg (p_scn_md); - - } - else - { - DEBUG_0 (sns_scn_debug & 1, (No valid Portal to send SCN)); - } - - } - } - } - return ( SUCCESS ); - } - - /********************************************************************* Processes a SCN Event request. --- 730,733 ---- *************** *** 1211,1218 **** return ( ISNS_SCN_EVENT_REJECTED_ERR ); } ! #if 0 ! if (SUCCESS != send_iscsi_scn_to_members (NULL, (char *)&key->val, *(uint32_t *) &p_attr->val)) ! return ( ISNS_SCN_EVENT_REJECTED_ERR ); ! #endif break; --- 767,773 ---- return ( ISNS_SCN_EVENT_REJECTED_ERR ); } ! ! //if (SUCCESS != send_iscsi_scn_to_members (NULL, (char *)&key->val, *(uint32_t *) &p_attr->val)) ! // return ( ISNS_SCN_EVENT_REJECTED_ERR ); break; *************** *** 1225,1230 **** } ! if (SUCCESS != Send_IFCP_SCN (NULL, (char *)&key->val, *(uint32_t *) &p_attr->val)) ! return ( ISNS_SCN_EVENT_REJECTED_ERR ); break; --- 780,785 ---- } ! //if (SUCCESS != send_iscsi_scn_to_members (NULL, (char *)&key->val, *(uint32_t *) &p_attr->val)) ! // return ( ISNS_SCN_EVENT_REJECTED_ERR ); break; Index: iSNSdereg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSdereg.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** iSNSdereg.c 19 Dec 2006 22:25:31 -0000 1.19 --- iSNSdereg.c 21 Dec 2006 23:28:11 -0000 1.20 *************** *** 682,686 **** ISNS_DD_IFCP_MEMBER)) return (ISNS_UNKNOWN_ERR); - Send_IFCP_SCN (p_ifcp_node, NULL, ISNS_SCN_OBJ_REMOVED); /* Store Entry */ --- 682,685 ---- *************** *** 1666,1670 **** { RemoveNode(&p_node->dd_id_list, p_lnode); - Send_IFCP_SCN (p_node, NULL, ISNS_SCN_OBJ_REMOVED ); } --- 1665,1668 ---- Index: iSNSquery.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSquery.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** iSNSquery.c 21 Dec 2006 00:50:51 -0000 1.15 --- iSNSquery.c 21 Dec 2006 23:28:11 -0000 1.16 *************** *** 53,67 **** /* Global */ extern int isns_query_debug; - extern uint32_t isns_esi_interval; extern uint32_t *dlist_src; /*[MAX_DD_PER_LIST];*/ extern uint32_t *dlist_node; /*[MAX_DD_PER_LIST];*/ extern SOIP_Dd_Member *ddmem; /* [100]; */ - extern ISNS_LIST scn_list; - extern ISNS_LIST scn_callback_list; - extern ISNS_Msg *p_scn_msg_buffer; - extern ISNS_Msg *p_scn_all_msg_buffer; - extern ISNS_Msg_Descp *p_scn_md; extern ISNS_Msg_Descp *p_rspMd; - extern dbStats iSNS_stats; /* --- 53,60 ---- |
From: Robert W. <wrw...@us...> - 2006-12-21 23:28:15
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/include In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv12220/include Modified Files: iSNSscn.h Log Message: upgrade State Change Notification feature Index: iSNSscn.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNSscn.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** iSNSscn.h 3 Nov 2006 20:22:29 -0000 1.1 --- iSNSscn.h 21 Dec 2006 23:28:11 -0000 1.2 *************** *** 55,73 **** int - Send_IFCP_SCN (SOIP_Ifcp * p_src_node, char *p_src_name, - uint32_t event_bitmap); - - int send_iscsi_scn_to_members ( SOIP_Iscsi * p_src_node, char *p_src_name, ISNS_Msg *p_msg, uint32_t event_bitmap ); int - SNSGet_Active_DD_List_From_Src (ISNS_Attr * src_attr, - ISNS_DD_LIST p_dlist_src, int flag); - - int - ISNS_Process_SCN_Event (ISNS_Msg *p_msg); - - int ISNS_Process_SCN_Event (ISNS_Msg *p_msg); --- 55,62 ---- |
From: Robert W. <wrw...@us...> - 2006-12-21 00:50:55
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv22581/src Modified Files: iSNSList.c iSNSquery.c iSNSreg.c Log Message: update adding members to dd Index: iSNSreg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSreg.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** iSNSreg.c 19 Dec 2006 20:34:38 -0000 1.18 --- iSNSreg.c 21 Dec 2006 00:50:51 -0000 1.19 *************** *** 1579,1583 **** *********************************************************************/ int ! Add_DD_Member ( SOIP_Dd * p_dd, char *ptr, int p_len, uint32_t type, uint32_t status, uint32_t index ) { --- 1579,1583 ---- *********************************************************************/ int ! Add_DD_Member ( SOIP_Dd * p_dd, char * p_node_name, int p_len, uint32_t type, uint32_t status, uint32_t index ) { *************** *** 1589,1638 **** int rval; SOIP_DB_Entry lentry; ! pnode = NULL; ! while ((pnode = GetNextNode(&p_dd->member_list, pnode))) ! { ! p_member = (SOIP_Dd_Member *)GetNodeData(pnode); ! ! if ((p_member->type == type) && ! (0 == memcmp (p_member->node_id, ptr, p_len))) ! /* found a match, do nothing */ ! return (ISNS_NO_ERR); ! } ! ! memset(&new_member, 0, sizeof(new_member)); /* Fetch iSCSI Node */ key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_key.v,ptr); rval = ISNSdbRead(&key,&lentry); if ( rval != SUCCESS) { ! new_member.node_idx = index; ! if (!new_member.node_idx) ! ! new_member.node_idx = ISNSGetNewISCSIIdx(); ! ISNS_DBKey idx_key; ! idx_key.tag = ISCSI_IDX_KEY; ! idx_key.val.idx.index_type = ISCSI_IDX_KEY; ! idx_key.val.idx.index = new_member.node_idx; ! SOIP_ISCSI_Node_Id *p_idx; ! memset (&entry3, 0, sizeof(SOIP_ISCSI_Node_Id)); ! entry3.data_type = ISCSI_IDX_KEY; ! p_idx = &entry3.data.iscsi_idx; ! memcpy(p_idx,&ptr,strlen(ptr)); ! rval = ISNSdbWrite(&idx_key,entry3); } else { p_node = (SOIP_Iscsi *)&lentry.data; ! new_member.node_idx = p_node->iscsi_index; } ! DEBUG_1 (isns_reg_debug &1, Add_DD_Member member.type:%i,type); new_member.type = type; new_member.status = status; ! memcpy (new_member.node_id, ptr, p_len); AddNode(&p_dd->member_list, (char *)&new_member, sizeof(new_member)); --- 1589,1648 ---- int rval; SOIP_DB_Entry lentry; + int index_number; ! DEBUG_1 (isns_reg_debug &1, Add_DD_Member:%s, p_node_name); /* Fetch iSCSI Node */ key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_key.v,p_node_name); rval = ISNSdbRead(&key,&lentry); if ( rval != SUCCESS) { ! index_number = index; } else { p_node = (SOIP_Iscsi *)&lentry.data; ! index_number = p_node->iscsi_index; } ! pnode = NULL; ! while ((pnode = GetNextNode(&p_dd->member_list, pnode))) ! { ! p_member = (SOIP_Dd_Member *)GetNodeData(pnode); ! ! if ((p_member->type == type) && ! (0 == memcmp (p_member->node_id, p_node_name, strlen(p_node_name) ))) ! { ! /* found a match */ ! /* update record */ ! key.tag = LIST_KEY; ! key.val.list.list_id = DD_MEMBER_LIST; ! key.val.list.list_index = pnode->index; ! key.val.list.key.dd.id = p_dd->id; ! rval = ISNSdbRead(&key,&lentry); ! if (rval != SUCCESS) ! return rval; ! ! p_member = &lentry.data.list.key.ddmember; ! p_member->node_idx = index_number; ! ! rval = ISNSdbWrite(&key,lentry); ! ! return (ISNS_NO_ERR); ! } ! } ! ! memset(&new_member, 0, sizeof(new_member)); ! new_member.type = type; new_member.status = status; ! memcpy (new_member.node_id, p_node_name, strlen(p_node_name)); ! new_member.node_idx = index_number; ! ! DEBUG_1 (isns_reg_debug &1, Add_DD_Member member.type:%i,new_member.type); ! DEBUG_1 (isns_reg_debug &1, Add_DD_Member member.node_id:%s,new_member.node_id); ! DEBUG_1 (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)); *************** *** 2498,2501 **** --- 2508,2512 ---- p_node->iscsi_index = ISNSGetNewISCSIIdx(); + ISNS_DBKey idx_key; idx_key.tag = ISCSI_IDX_KEY; *************** *** 2508,2511 **** --- 2519,2523 ---- memcpy(p_idx,&p_node->id.v,sizeof(SOIP_ISCSI_Node_Id)); rval = ISNSdbWrite(&idx_key,entry3); + strncpy ( p_node->entity_id.id, db_entity.id, sizeof(p_node->entity_id.id) ); InitList(ISCSI_DD_LIST, p_node ); *************** *** 2515,2521 **** if ( SUCCESS != SNSdbFetchEntity (db_entity.id, &p_entity, &entry2) ) { - if ( newRegFlag ) - DeleteList( &p_node->dd_id_list ); - return ( ISNS_INVALID_REG_ERR ); } --- 2527,2530 ---- *************** *** 2524,2531 **** { DEBUG_1( isns_reg_debug & 1, (Entity is not ISCSI type: %d), p_entity->eid_type ); - - if ( newRegFlag ) - DeleteList( &p_node->dd_id_list ); - return ( ISNS_UNKNOWN_ERR ); } --- 2533,2536 ---- *************** *** 2628,2655 **** } - if ( newIscsiNodeFlag ) - new_scn_bitmap |= ISNS_SCN_OBJ_ADDED; - else if ( updateFlag ) - new_scn_bitmap |= ISNS_SCN_OBJ_UPDATED; - - - send_scn_parameter_change_to_all ( p_scn_all_msg_buffer, new_scn_bitmap); - /* Activate DD Membership */ ! if ( newIscsiNodeFlag ) ! { ! if ( SUCCESS != Activate_DD_Membership ( ISNS_DD_ISCSI_MEMBER, p_node ) ) ! { ! if ( newIscsiNodeFlag ) ! DeleteList( &p_node->dd_id_list ); ! ! return ( ERROR ); ! } ! } /* Store iSCSI Node Entry */ - if ( newIscsiNodeFlag ) - iSNS_stats.num_iscsi++; - ISNS_DBKey key; key.tag = ISCSI_ID_KEY; --- 2633,2640 ---- } /* Activate DD Membership */ ! Activate_DD_Membership ( ISNS_DD_ISCSI_MEMBER, p_node ); /* Store iSCSI Node Entry */ ISNS_DBKey key; key.tag = ISCSI_ID_KEY; *************** *** 2657,2664 **** rval = ISNSdbWrite(&key,entry); - new_scn_bitmap = 0; - if ( newIscsiNodeFlag ) { ISNSAppendKey ( p_rspmsg, ISNS_ISCSI_NODE_ID, --- 2642,2648 ---- rval = ISNSdbWrite(&key,entry); if ( newIscsiNodeFlag ) { + iSNS_stats.num_iscsi++; ISNSAppendKey ( p_rspmsg, ISNS_ISCSI_NODE_ID, *************** *** 2672,2675 **** --- 2656,2668 ---- } + if ( newIscsiNodeFlag ) + new_scn_bitmap |= ISNS_SCN_OBJ_ADDED; + else if ( updateFlag ) + new_scn_bitmap |= ISNS_SCN_OBJ_UPDATED; + + send_scn_parameter_change_to_all ( p_scn_all_msg_buffer, new_scn_bitmap); + + new_scn_bitmap = 0; + if ( p_node->activeFlag ) send_iscsi_scn_to_members ( p_node, NULL, p_scn_all_msg_buffer, new_scn_bitmap ); *************** *** 2782,2787 **** /* Fetch portal */ foundSCNPortal = FALSE; ! pnode = GetNextNode(&p_entity->iportal_list, pnode); ! while (pnode) { ISNS_DBKey read_key; --- 2775,2780 ---- /* Fetch portal */ foundSCNPortal = FALSE; ! pnode = NULL; ! while ( (pnode = GetNextNode(&p_entity->iportal_list, pnode)) != NULL) { ISNS_DBKey read_key; *************** *** 2892,2897 **** Add_DD_to_ISCSI_Node (SOIP_Dd *p_dd, char *p_node_name) { - SOIP_Iscsi *p_node; SOIP_DB_Entry lentry; int id; ISNS_DBKey key; --- 2885,2890 ---- Add_DD_to_ISCSI_Node (SOIP_Dd *p_dd, char *p_node_name) { SOIP_DB_Entry lentry; + SOIP_Iscsi *p_node; int id; ISNS_DBKey key; *************** *** 2917,2922 **** p_node->activeFlag = TRUE; - key.tag = ISCSI_ID_KEY; - strcpy(key.val.node_key.v,p_node_name); ISNSdbWrite(&key,lentry); --- 2910,2913 ---- *************** *** 3307,3312 **** DEBUG_0 (isns_reg_debug &1,Activate_DD_Membership); - Create_Default_DD (); - /* Get First DD Entry */ key.tag = DD_ID_KEY; --- 3298,3301 ---- *************** *** 3374,3377 **** --- 3363,3375 ---- p_member->node_idx = index; + switch ( type ) + { + case ISNS_DD_ISCSI_MEMBER: + Add_DD_Member(p_dd,p_iscsi->id.v,PAD4(strlen(p_iscsi->id.v)),ISNS_DD_ISCSI_MEMBER,ISNS_DD_MEMBER_ENABLE,p_iscsi->iscsi_index); + break; + default: + break; + } + if ( p_dd->activeFlag ) { *************** *** 3388,3392 **** } - /* Send SCN out to DD */ send_iscsi_scn_on_dd_mem_change(p_node, NULL, p_dd, 0, ISNS_SCN_OBJ_ADDED); --- 3386,3389 ---- *************** *** 3424,3428 **** break; } ! } if ( memberAddedFlag ) --- 3421,3425 ---- break; } ! } if ( memberAddedFlag ) *************** *** 3433,3436 **** --- 3430,3434 ---- { Add_ISCSINode_Default_DD (p_node); + switch ( type ) { *************** *** 3899,3903 **** int found; - /* check if default DD exists, if not create it */ rval = 0; dd_key.tag = DD_ID_KEY; --- 3897,3900 ---- *************** *** 3908,3917 **** if (rval != SUCCESS) return rval; ! p_dd = (SOIP_Dd *)&lentry2.data; if ( !strcmp("default DD",p_dd->sym_name) ) { found = TRUE; } } if (found) { --- 3905,3917 ---- if (rval != SUCCESS) return rval; ! ! p_dd = &lentry2.data.dd; if ( !strcmp("default DD",p_dd->sym_name) ) { found = TRUE; + break; } } + if (found) { *************** *** 3920,3927 **** AddNode(&p_node->dd_id_list, (char *)&p_dd->id, sizeof(p_dd->id)); } - p_node->activeFlag = TRUE; ! DEBUG_1 (isns_reg_debug &1,Add_DD_to_ISCSI_Node rval:%i,rval); ! Add_DD_Member(p_dd,p_node->id.v,PAD4(strlen(p_node->id.v)),ISNS_DD_ISCSI_MEMBER,ISNS_DD_MEMBER_ENABLE,0); ISNSdbWrite(&dd_key,lentry2); } --- 3920,3929 ---- AddNode(&p_node->dd_id_list, (char *)&p_dd->id, sizeof(p_dd->id)); } ! if ( p_dd->activeFlag ) ! p_node->activeFlag = TRUE; ! ! Add_DD_Member(p_dd,p_node->id.v,PAD4(strlen(p_node->id.v)),ISNS_DD_ISCSI_MEMBER,ISNS_DD_MEMBER_ENABLE,p_node->iscsi_index); ! ISNSdbWrite(&dd_key,lentry2); } Index: iSNSquery.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSquery.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** iSNSquery.c 19 Dec 2006 22:25:31 -0000 1.14 --- iSNSquery.c 21 Dec 2006 00:50:51 -0000 1.15 *************** *** 683,686 **** --- 683,688 ---- int rval; + DEBUG_0 (isns_query_debug &1, SNSdbGetAttrDDEntry); + dd_key.id = id; key.tag = DD_ID_KEY; *************** *** 721,724 **** --- 723,728 ---- ISNS_LIST_NODE *pnode; + DEBUG_0 (isns_query_debug &1, SNSdbGetAttrDD); + ISNSTouchEntity( src_attr ); *************** *** 2611,2616 **** while ((pnode=GetNextNode(&p_dd->member_list, pnode))) { ! p_member=(SOIP_Dd_Member *)GetNodeData(pnode); ! if (p_member->type == ISNS_DD_ISCSI_MEMBER) ISNSAppendAttr (p_msg, ISNS_DD_ISCSI_MEMBER, PAD4 (strlen (p_member->node_id)), --- 2615,2620 ---- while ((pnode=GetNextNode(&p_dd->member_list, pnode))) { ! p_member=(SOIP_Dd_Member *)GetNodeData(pnode); ! if (p_member->type == ISNS_DD_ISCSI_MEMBER) ISNSAppendAttr (p_msg, ISNS_DD_ISCSI_MEMBER, PAD4 (strlen (p_member->node_id)), *************** *** 2633,2638 **** while ((pnode=GetNextNode(&p_dd->member_list, pnode))) { ! p_member=(SOIP_Dd_Member *)GetNodeData(pnode); ! if (p_member->type == ISNS_DD_ISCSI_MEMBER) ISNSAppendAttr (p_msg, ISNS_DD_ISCSI_MEMBER_IDX, ISNS_DD_ISCSI_MEMBER_IDX_SIZE, --- 2637,2642 ---- while ((pnode=GetNextNode(&p_dd->member_list, pnode))) { ! p_member=(SOIP_Dd_Member *)GetNodeData(pnode); ! if (p_member->type == ISNS_DD_ISCSI_MEMBER) ISNSAppendAttr (p_msg, ISNS_DD_ISCSI_MEMBER_IDX, ISNS_DD_ISCSI_MEMBER_IDX_SIZE, *************** *** 2864,2883 **** NULL, p_portal->portal_index); break; - default: - break; - } /* end for */ - } - } /* end for */ - } - - /* Process Portal Groups */ - for (jj = 0; (jj < SNS_MAX_ATTRS) && (attr_indx[jj]); jj++) - { - q_attr = (ISNS_Attr *) attr_indx[jj]; - DEBUG_1 (isns_query_debug &1, process attribute for portal group objects (%s),isnsTagText(q_attr->tag)); - - switch ( q_attr->tag ) - { - /* Located in the Portal object */ case ISNS_PORTAL_GROUP_PORT: DEBUG_1 (isns_query_debug &1,ISNS_PORTAL_GROUP_PORT:%i,p_portal->ip_port); --- 2868,2871 ---- *************** *** 2903,2907 **** } /* end for */ } ! return ( SUCCESS ); --- 2891,2896 ---- } /* end for */ } ! } /* end for */ ! } return ( SUCCESS ); Index: iSNSList.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSList.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** iSNSList.c 15 Dec 2006 18:17:18 -0000 1.10 --- iSNSList.c 21 Dec 2006 00:50:51 -0000 1.11 *************** *** 592,596 **** if (rval != SUCCESS) return NULL; ! node->data_size = sizeof(SOIP_DB_Portal); node->data = (char *)ISNSAllocBuffer(node->data_size+1); memcpy(node->data,&entry.data.list.key.portal,node->data_size); --- 592,596 ---- if (rval != SUCCESS) return NULL; ! node->data_size = sizeof(entry.data.list.key.portal); node->data = (char *)ISNSAllocBuffer(node->data_size+1); memcpy(node->data,&entry.data.list.key.portal,node->data_size); *************** *** 636,640 **** if (rval != SUCCESS) return NULL; ! node->data_size = sizeof(entry.data.list.key.dd); node->data = (char *)ISNSAllocBuffer(node->data_size+1); memcpy(node->data,&entry.data.list.key.dd,node->data_size); --- 636,640 ---- if (rval != SUCCESS) return NULL; ! node->data_size = sizeof(entry.data.list.key.ddmember); node->data = (char *)ISNSAllocBuffer(node->data_size+1); memcpy(node->data,&entry.data.list.key.dd,node->data_size); *************** *** 647,651 **** if (rval != SUCCESS) return NULL; ! node->data_size = sizeof(SOIP_DB_Portal); node->data = (char *)ISNSAllocBuffer(node->data_size+1); memcpy(node->data,&entry.data.list.key.portal,node->data_size); --- 647,651 ---- if (rval != SUCCESS) return NULL; ! node->data_size = sizeof(entry.data.list.key.portal); node->data = (char *)ISNSAllocBuffer(node->data_size+1); memcpy(node->data,&entry.data.list.key.portal,node->data_size); |
From: Robert W. <wrw...@us...> - 2006-12-21 00:50:55
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/include In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv22581/include Modified Files: iSNStypes.h Log Message: update adding members to dd Index: iSNStypes.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNStypes.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** iSNStypes.h 18 Dec 2006 19:02:46 -0000 1.10 --- iSNStypes.h 21 Dec 2006 00:50:51 -0000 1.11 *************** *** 354,358 **** uint32_t node_idx; ! } SOIP_Dd_Member; typedef uint32_t* ISNS_DD_LIST; --- 354,358 ---- uint32_t node_idx; ! } SOIP_Dd_Member, SOIP_DD_Member_Key; typedef uint32_t* ISNS_DD_LIST; *************** *** 677,680 **** --- 677,681 ---- SOIP_Node_Key node_name; SOIP_Portal_Key portal; + SOIP_DD_Member_Key ddmember; } key; } SOIP_DB_List; |
From: Robert W. <wrw...@us...> - 2006-12-20 17:04:28
|
Update of /cvsroot/linuxisns/isnsNT/isnsclient/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv32657/src Modified Files: iscsi.c Log Message: Add Portal Group Query Index: iscsi.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/src/iscsi.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** iscsi.c 19 Dec 2006 20:33:49 -0000 1.6 --- iscsi.c 20 Dec 2006 17:04:24 -0000 1.7 *************** *** 326,329 **** --- 326,333 ---- ISNSAppendAttr (&cmd, ISNS_PORTAL_IP, 0, NULL, 0); ISNSAppendAttr (&cmd, ISNS_PORTAL_PORT, 0, NULL, 0); + ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP_ISCSI_NAME, 0, NULL, 0); + ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP_PORT, 0, NULL, 0); + ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP_IP, 0, NULL, 0); + ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP_TAG, 0, NULL, 0); if (0 == ISNSSendCmd2 (&cmd, buffer, sizeof (buffer))) |
From: Robert W. <wrw...@us...> - 2006-12-20 07:14:37
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/include In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv15639/include Modified Files: iSNScomm.h Log Message: fix heartbeat Index: iSNScomm.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNScomm.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** iSNScomm.h 22 Nov 2006 21:01:52 -0000 1.3 --- iSNScomm.h 20 Dec 2006 07:14:32 -0000 1.4 *************** *** 111,114 **** --- 111,117 ---- SNSGetMgmtAddr(void); + extern int + SNSGetIPAddress(void); + #endif |
From: Robert W. <wrw...@us...> - 2006-12-20 07:14:36
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv15639/src Modified Files: iSNSMain.c iSNScomm.c Log Message: fix heartbeat Index: iSNScomm.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNScomm.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** iSNScomm.c 13 Dec 2006 19:45:57 -0000 1.8 --- iSNScomm.c 20 Dec 2006 07:14:33 -0000 1.9 *************** *** 32,36 **** ***********************************************************************/ #include <signal.h> ! #include "iSNS.h" #include "iSNStypes.h" --- 32,36 ---- ***********************************************************************/ #include <signal.h> ! #include <netdb.h> #include "iSNS.h" #include "iSNStypes.h" *************** *** 755,761 **** { char ip_addr[16]; if (ifAddrGet(sns_if_name, ip_addr) == ERROR) ! return(INADDR_ANY); else return(inet_addr(ip_addr)); --- 755,766 ---- { char ip_addr[16]; + int ip; if (ifAddrGet(sns_if_name, ip_addr) == ERROR) ! { ! //return(INADDR_ANY); ! ip = SNSGetIPAddress(); ! return ip; ! } else return(inet_addr(ip_addr)); *************** *** 804,805 **** --- 809,823 ---- return(inet_addr(ip_addr)); } + + int + SNSGetIPAddress() + { + char hostname[256]; + struct hostent *host; + struct in_addr h_addr; + + gethostname(hostname,sizeof(hostname)); + host = gethostbyname(hostname); + h_addr.s_addr= *(uint32_t *)(host->h_addr_list[0]); + return h_addr.s_addr; + } Index: iSNSMain.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSMain.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** iSNSMain.c 19 Dec 2006 22:25:31 -0000 1.13 --- iSNSMain.c 20 Dec 2006 07:14:33 -0000 1.14 *************** *** 302,306 **** break; case ISNS_HEART_BEAT: - DEBUG_0 (isns_main_debug & 1, ISNS_HEART_BEAT Not Implemented); break; case ISNS_REG_DDS_REQ: --- 302,305 ---- |
From: Robert W. <wrw...@us...> - 2006-12-20 01:02:40
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv27137/src Modified Files: iSNSdb.c Log Message: initilize key Index: iSNSdb.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSdb.c,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** iSNSdb.c 19 Dec 2006 23:37:30 -0000 1.24 --- iSNSdb.c 20 Dec 2006 01:02:34 -0000 1.25 *************** *** 607,610 **** --- 607,611 ---- key.tag = ENTITY_IDX_KEY; + key.len = 0; if (indx == 0) *************** *** 613,617 **** { index = key.val.idx.index; - printf("********** INDEX:%i\n",index); if ( index > indx ) indx = index; --- 614,617 ---- *************** *** 635,638 **** --- 635,639 ---- key.tag = ISCSI_IDX_KEY; + key.len = 0; if (indx == 0) *************** *** 641,645 **** { index = key.val.idx.index; - printf("********** INDEX:%i\n",index); if ( index > indx ) indx = index; --- 642,645 ---- *************** *** 663,666 **** --- 663,667 ---- key.tag = PORTAL_IDX_KEY; + key.len = 0; if (indx == 0) *************** *** 669,673 **** { index = key.val.idx.index; - printf("********** INDEX:%i\n",index); if ( index > indx ) indx = index; --- 670,673 ---- |
From: Robert W. <wrw...@us...> - 2006-12-19 23:37:39
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv17389/src Modified Files: iSNSdb.c Log Message: fix initial index counters Index: iSNSdb.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSdb.c,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** iSNSdb.c 18 Dec 2006 23:00:04 -0000 1.23 --- iSNSdb.c 19 Dec 2006 23:37:30 -0000 1.24 *************** *** 602,607 **** ISNSGetNewEntityIdx( void ) { ! static uint32_t indx = 1; ! return ( indx++ ); } --- 602,625 ---- ISNSGetNewEntityIdx( void ) { ! static uint32_t indx = 0; ! ISNS_DBKey key; ! int index = 0; ! ! key.tag = ENTITY_IDX_KEY; ! ! if (indx == 0) ! { ! while (SNSdbGetNextOfKey (&key) == SUCCESS) ! { ! index = key.val.idx.index; ! printf("********** INDEX:%i\n",index); ! if ( index > indx ) ! indx = index; ! } ! } ! ! indx++; ! ! return ( indx ); } *************** *** 612,617 **** ISNSGetNewISCSIIdx( void ) { ! static uint32_t indx = 1; ! return ( indx++ ); } --- 630,653 ---- ISNSGetNewISCSIIdx( void ) { ! static uint32_t indx = 0; ! ISNS_DBKey key; ! int index = 0; ! ! key.tag = ISCSI_IDX_KEY; ! ! if (indx == 0) ! { ! while (SNSdbGetNextOfKey (&key) == SUCCESS) ! { ! index = key.val.idx.index; ! printf("********** INDEX:%i\n",index); ! if ( index > indx ) ! indx = index; ! } ! } ! ! indx++; ! ! return ( indx ); } *************** *** 622,627 **** ISNSGetNewPortalIdx( void ) { ! static uint32_t indx = 1; ! return ( indx++ ); } --- 658,681 ---- ISNSGetNewPortalIdx( void ) { ! static uint32_t indx = 0; ! ISNS_DBKey key; ! int index = 0; ! ! key.tag = PORTAL_IDX_KEY; ! ! if (indx == 0) ! { ! while (SNSdbGetNextOfKey (&key) == SUCCESS) ! { ! index = key.val.idx.index; ! printf("********** INDEX:%i\n",index); ! if ( index > indx ) ! indx = index; ! } ! } ! ! indx++; ! ! return ( indx ); } |
From: Robert W. <wrw...@us...> - 2006-12-19 22:25:35
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv19280/src Modified Files: iSNSInit.c iSNSMain.c iSNSdereg.c iSNSquery.c iSNSscn.c Log Message: organize code in iSNSMain.c Index: iSNSInit.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSInit.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** iSNSInit.c 15 Dec 2006 01:13:29 -0000 1.4 --- iSNSInit.c 19 Dec 2006 22:25:31 -0000 1.5 *************** *** 54,57 **** --- 54,59 ---- #endif + char sns_errmsg[256]; + STATUS SNSInit (ISNS_Entity sns_role) Index: iSNSscn.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSscn.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** iSNSscn.c 18 Dec 2006 19:02:47 -0000 1.7 --- iSNSscn.c 19 Dec 2006 22:25:31 -0000 1.8 *************** *** 61,64 **** --- 61,66 ---- extern dbStats iSNS_stats; extern int sns_scn_debug; + extern int sns_cb_debug; + extern int sns_cb_msg_filter; extern int sns_scn_msg_filter; extern int sns_rsync_debug; *************** *** 82,85 **** --- 84,93 ---- static int scn_xid = 1; + static ISNS_ATTR_VALS_CB * + ISNSAttrGetList (ISNS_Msg_Descp *p_md); + + static void* + SNSAttrGetAttrValLocation (ISNS_Attr *sns_attr); + /********************************************************************* *********************************************************************/ *************** *** 1284,1285 **** --- 1292,1427 ---- } + static ISNS_ATTR_VALS_CB * + ISNSAttrGetList (ISNS_Msg_Descp *p_md) + { + ISNS_Key *p_key; + char *loc_ptr1; + uint16_t sns_attr_len; + ISNS_ATTR_VALS *p_aval; + ISNS_ATTR_VALS_CB *p_attr_vals_cb; + void *val_location; + int num_entries, ii; + int display_debug; + uint16_t len; + + display_debug = 0; + if ((sns_cb_debug == 3) && (p_md->msg.hdr.type != ISNS_SCN)) + display_debug = (sns_cb_msg_filter == p_md->msg.hdr.type); + + /* + * Initialize the vars and go to the start + * of the message.. + */ + p_aval = NULL; + p_attr_vals_cb = NULL; + len = 0; + + if (p_md->msg.hdr.type == ISNS_SCN) + { + /* No error Code */ + p_key = (ISNS_Key *)&p_md->msg.payload; + sns_attr_len = p_md->msg.hdr.msg_len; + } + else + { + /* Error Code */ + p_key = (ISNS_Key *)&p_md->msg.payload+ISNS_ERROR_CODE_SIZE; + sns_attr_len = p_md->msg.hdr.msg_len-ISNS_ERROR_CODE_SIZE; + } + DEBUG_1 (display_debug, (Attributes length : 0x%x), sns_attr_len); + + /* + * Go through the message's attributes and parse them into + * the Attribute list. NOTE: All the pointers are allocated + * here including the storage for the attribute values. + */ + num_entries = 0; + loc_ptr1 = (char *)p_key; + p_aval = (void *)ISNSAllocBuffer (sns_attr_len); + + while (((char *)loc_ptr1 - (char *)p_key) < sns_attr_len) + { + if (p_aval == NULL) + { + SNS_WARN(SNS_BUFFER_WARN, + "AttrGetList out of aval buffs (size)\n", + sns_attr_len, 0, 0); + return (NULL); + } + + /* Set the VALUE location for the attributes */ + val_location = SNSAttrGetAttrValLocation((ISNS_Attr *)loc_ptr1); + len = ((ISNS_Attr *)loc_ptr1)->len; + + if (val_location == NULL) + { + SNS_WARN(SNS_GETATTR_WARN, + "AttrGetList id not found (tag, msg id, xid)\n", + ((ISNS_Attr *)loc_ptr1)->tag, p_md->msg.hdr.type, + p_md->msg.hdr.xid); + ISNSFreeBuffer((char *)p_aval); + p_aval = NULL; + break; + } + + p_aval[num_entries].attr_id = ((ISNS_Attr *)loc_ptr1)->tag; + p_aval[num_entries].attr_len = len; + p_aval[num_entries].attr_val = val_location; + + /* Word Align values */ + if (len % 4) + len += 4 - (len % 4); + + /* Debugging */ + if ((sns_scn_debug == 3) && (p_md->msg.hdr.type == ISNS_SCN)) + { + if (p_aval[num_entries].attr_id == RSCN_EVENT) + display_debug = (sns_scn_msg_filter == + *(int *)p_aval[num_entries].attr_val); + } + DEBUG_2 (display_debug, (attr id %u, len %d), + p_aval[num_entries].attr_id, + p_aval[num_entries].attr_len); + if (display_debug) + { + for (ii = 0; ii < p_aval[num_entries].attr_len; ii++) + printf("%02x", *((char *)p_aval[num_entries].attr_val + ii)); + printf("\n"); + } + /* End Debugging */ + loc_ptr1 = (char *) loc_ptr1 + ISNS_SIZEOF_TAG + len; + num_entries++; + } + /* + * Set the attribute value control block. + */ + if (p_aval != NULL) + { + p_attr_vals_cb = (ISNS_ATTR_VALS_CB *) + ISNSAllocBuffer(sizeof (ISNS_ATTR_VALS_CB)); + + if (p_attr_vals_cb == NULL) + { + SNS_WARN(SNS_BUFFER_WARN, "AttrGetList out of cb buffs (size)\n", + (int)sizeof (ISNS_ATTR_VALS_CB), 0, 0); + } + else + { + p_attr_vals_cb->num_entries = num_entries; + p_attr_vals_cb->total_size = sns_attr_len; + p_attr_vals_cb->attr_val_sptr = p_aval; + } + } + return (p_attr_vals_cb); + } + + static void* + SNSAttrGetAttrValLocation (ISNS_Attr *sns_attr) + { + if (sns_attr->tag < ISNS_END_VALID_TAG) + { + return ((void *)&sns_attr->val); + } + + return (NULL); + } Index: iSNSdereg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSdereg.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** iSNSdereg.c 19 Dec 2006 20:34:38 -0000 1.18 --- iSNSdereg.c 19 Dec 2006 22:25:31 -0000 1.19 *************** *** 83,87 **** *********************************************************************/ int ! ISNSdbRemoveAttr ( ISNS_Msg_Descp * p_md ) { ISNS_Attr *p_attr; --- 83,87 ---- *********************************************************************/ int ! ISNSdbRemoveAttr ( ISNS_Msg_Descp * p_md, ISNS_Msg * p_rspmsg) { ISNS_Attr *p_attr; *************** *** 163,168 **** } - memset (p_rspMd, 0, sizeof (ISNS_Msg_Descp)); - status = ISNS_NO_ERR; if (deregEnitityFlag) --- 163,166 ---- *************** *** 177,186 **** status = SNSdbRemoveAttrISCSI (attr_indx, (char *)src_attr, p_md, &p_rspMd->msg); - if (status == ISNS_NO_ERR) - { - memcpy (&p_md->msg.payload, &p_rspMd->msg.payload, p_rspMd->msg.hdr.msg_len); - p_md->msg.hdr.msg_len = p_rspMd->msg.hdr.msg_len; - } - return status; } --- 175,178 ---- Index: iSNSquery.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSquery.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** iSNSquery.c 18 Dec 2006 23:00:05 -0000 1.13 --- iSNSquery.c 19 Dec 2006 22:25:31 -0000 1.14 *************** *** 121,125 **** *********************************************************************/ int ! ISNSdbGetAttr ( ISNS_Msg_Descp *p_md, ISNS_Msg_Descp * md ) { int status = ISNS_UNKNOWN_ERR; --- 121,125 ---- *********************************************************************/ int ! ISNSdbGetAttr ( ISNS_Msg_Descp *p_md, ISNS_Msg * p_rspmsg ) { int status = ISNS_UNKNOWN_ERR; *************** *** 148,152 **** /* Search entity table */ status = SNSdbGetAttrEntity ( attr_indx, key_indx, ! (ISNS_Attr *)src_attr, NULL, &md->msg); break; --- 148,152 ---- /* Search entity table */ status = SNSdbGetAttrEntity ( attr_indx, key_indx, ! (ISNS_Attr *)src_attr, NULL, p_rspmsg); break; *************** *** 158,162 **** case ISNS_PORTAL_IDX: status = SNSdbGetAttrPortal ( attr_indx, key_indx, ! (ISNS_Attr *)src_attr, NULL, &md->msg ); break; --- 158,162 ---- case ISNS_PORTAL_IDX: status = SNSdbGetAttrPortal ( attr_indx, key_indx, ! (ISNS_Attr *)src_attr, NULL, p_rspmsg ); break; *************** *** 166,170 **** case ISNS_FC_NODE_IPA: case ISNS_FC_NODE_CERT: ! status = SNSdbGetAttrNode ( attr_indx, key_indx, NULL, &md->msg ); break; --- 166,170 ---- case ISNS_FC_NODE_IPA: case ISNS_FC_NODE_CERT: ! status = SNSdbGetAttrNode ( attr_indx, key_indx, NULL, p_rspmsg ); break; *************** *** 181,185 **** case ISNS_FC4_FEATURE: status = SNSdbGetAttrPort ( attr_indx, key_indx, ! (ISNS_Attr *)src_attr, NULL, &md->msg ); break; case ISNS_ISCSI_TYPE: --- 181,185 ---- case ISNS_FC4_FEATURE: status = SNSdbGetAttrPort ( attr_indx, key_indx, ! (ISNS_Attr *)src_attr, NULL, p_rspmsg ); break; case ISNS_ISCSI_TYPE: *************** *** 189,193 **** case ISNS_ISCSI_IDX: status = ISNSdbGetAttrISCSI ( attr_indx, key_indx, ! (ISNS_Attr *)src_attr, NULL, &md->msg ); break; --- 189,193 ---- case ISNS_ISCSI_IDX: status = ISNSdbGetAttrISCSI ( attr_indx, key_indx, ! (ISNS_Attr *)src_attr, NULL, p_rspmsg ); break; *************** *** 195,199 **** case ISNS_DDS_SYM_NAME: case ISNS_DDS_STATUS: ! status = SNSdbGetAttrDDS ( attr_indx, key_indx, (ISNS_Attr *)src_attr, NULL, &md->msg ); break; --- 195,199 ---- case ISNS_DDS_SYM_NAME: case ISNS_DDS_STATUS: ! status = SNSdbGetAttrDDS ( attr_indx, key_indx, (ISNS_Attr *)src_attr, NULL, p_rspmsg ); break; *************** *** 204,208 **** case ISNS_DD_FEATURE_BITMAP: case ISNS_DD_ACTIVE: ! status = SNSdbGetAttrDD ( attr_indx, key_indx, (ISNS_Attr *)src_attr, NULL, &md->msg ); break; --- 204,208 ---- case ISNS_DD_FEATURE_BITMAP: case ISNS_DD_ACTIVE: ! status = SNSdbGetAttrDD ( attr_indx, key_indx, (ISNS_Attr *)src_attr, NULL, p_rspmsg ); break; Index: iSNSMain.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSMain.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** iSNSMain.c 15 Dec 2006 01:13:29 -0000 1.12 --- iSNSMain.c 19 Dec 2006 22:25:31 -0000 1.13 *************** *** 39,43 **** */ #ifdef SNS_LINUX - /* Linux */ #include <sched.h> #include <sys/types.h> --- 39,42 ---- *************** *** 45,54 **** #include <sys/un.h> #include <unistd.h> - - /* - * This file contains source code for implementing the - * main processing loop for the SoIP service task. - * - */ #include "iSNSLinux.h" #endif --- 44,47 ---- *************** *** 68,79 **** #include "iSNSesi.h" #include "iSNSscn.h" - - #ifdef SNS_DEBUG #include "iSNSdebug.h" - #endif - - extern int sns_ready; - extern void ISNSNotReady (); - extern int loadFlag; ISNS_Entity isns_role = 0; --- 61,65 ---- *************** *** 88,99 **** int sns_scn_debug = 0; /* state change debugging */ int sns_rsync_debug = 0; /* resync debugging. 1-brief. 2-detail */ - extern int sns_fsm_debug; /* state machine debugging */ - extern int sns_bcast_debug; /* broadcast debugging (except hb, scn) */ - - char sns_errmsg[256]; - int sns_hb_counter = 0; int sns_cb_msg_filter = 0; int sns_scn_msg_filter = 0xf; /* init non-zero since 0 is FLOGI */ /* --- 74,84 ---- int sns_scn_debug = 0; /* state change debugging */ int sns_rsync_debug = 0; /* resync debugging. 1-brief. 2-detail */ int sns_hb_counter = 0; int sns_cb_msg_filter = 0; int sns_scn_msg_filter = 0xf; /* init non-zero since 0 is FLOGI */ + int sns_request_retries = SNS_REQUEST_RETRIES; + int sns_request_timeout = 0; + + extern int sns_fsm_timeout; /* *************** *** 108,118 **** extern pthread_mutex_t sns_esi_timer; #else void *sns_request_timer; #endif - int sns_request_retries = SNS_REQUEST_RETRIES; - int sns_request_timeout = 0; - - extern int sns_fsm_timeout; /* * the current main message descriptor being processed --- 93,101 ---- extern pthread_mutex_t sns_esi_timer; #else + DWORD junk; + DWORD request_id; void *sns_request_timer; #endif /* * the current main message descriptor being processed *************** *** 125,162 **** static ISNS_Msg_Descp query_md; - - /* - * External functions. - */ - extern void SNSReady (); - - extern void sns_pong (ISNS_Msg_Descp *); - /* * Local function prototypes. */ static void regCallback(ISNS_Msg_Descp* p_md); - - static void* - SNSAttrGetAttrValLocation (ISNS_Attr *sns_attr); - static void SNSProcessRequest (ISNS_Msg_Descp *); - void SNSReqTimeoutHdlr (void); - int SNSExecCallback (ISNS_Msg_Descp *, int status); - - ISNS_ATTR_VALS_CB *ISNSAttrGetList (ISNS_Msg_Descp * p_md); - void SNSCheckTxQueue (); - void SNSCheckInitTxQueue (ISNS_Msg_Descp * p_md); - int TCP_RecvMain(); ! int rc; ! DWORD request_id; ! ! /* * Function Name: SNSMain * --- 108,125 ---- static ISNS_Msg_Descp query_md; /* * Local function prototypes. */ static void regCallback(ISNS_Msg_Descp* p_md); static void SNSProcessRequest (ISNS_Msg_Descp *); void SNSReqTimeoutHdlr (void); int SNSExecCallback (ISNS_Msg_Descp *, int status); void SNSCheckTxQueue (); void SNSCheckInitTxQueue (ISNS_Msg_Descp * p_md); int TCP_RecvMain(); + static int ISNSdbExec( ISNS_Msg_Descp *p_md, ISNS_Msg_Descp *p_rsp_md); + extern void ISNSNotReady (); ! /******************************************************************** * Function Name: SNSMain * *************** *** 172,189 **** * * ! */ int SNSMain (ISNS_Entity role) { pthread_t athread; - /* - * place holder for the received iSNS message - */ ISNS_Msg_Descp *p_md; - #ifdef SNS_LINUX - int res; - #endif - - #define BYTES_TO_SHOW 32 printf ("IETF iSNS Open Source, v%s.\n", ISNS_VERSION); --- 135,145 ---- * * ! ********************************************************************/ int SNSMain (ISNS_Entity role) { + int rc; pthread_t athread; ISNS_Msg_Descp *p_md; printf ("IETF iSNS Open Source, v%s.\n", ISNS_VERSION); *************** *** 195,200 **** if (SNSInit (role) == ERROR) ! taskDelete (taskIdSelf ()); #ifdef SNS_LINUX res = pthread_mutex_init (&sns_request_timer, NULL); /* Create AND initialize the request condition */ --- 151,159 ---- if (SNSInit (role) == ERROR) ! taskDelete (taskIdSelf ()); ! #ifdef SNS_LINUX + { + int res; res = pthread_mutex_init (&sns_request_timer, NULL); /* Create AND initialize the request condition */ *************** *** 223,230 **** } - { pthread_t hdle; - /* Linux */ - /*printf ("Creating thread for SNSReqTimeoutThread\n");*/ rc =(int)pthread_create (&hdle, NULL, (void *)SNSReqTimeoutThread, NULL); if (rc != 0){ --- 182,186 ---- *************** *** 234,253 **** } #else - /* - * Create the sns request timer - */ - sns_request_timer = CreateWaitableTimer (NULL, FALSE, NULL); - { ! DWORD junk; ! request_pid = ! CreateThread (0, 0, SNSReqTimeoutThread, &junk, 0, &request_id); } #endif ! //InitAllTables (); ! #ifndef SNS_LINUX ! if (loadFlag) ! ISNSdbLoad(); ! #endif /* * Wait for a message to arrive. --- 190,202 ---- } #else { ! /* ! * Create the sns request timer ! */ ! sns_request_timer = CreateWaitableTimer (NULL, FALSE, NULL); ! request_pid = CreateThread (0, 0, SNSReqTimeoutThread, &junk, 0, &request_id); } #endif ! /* * Wait for a message to arrive. *************** *** 257,281 **** for (;;) { ! extern int pauseFlag; ! if (pauseFlag) ! return (SUCCESS); ! ! if (SUCCESS == ReceiveIPCMessage (SNS_EP, (void *) p_md, ! sizeof (ISNS_Msg_Descp), ! 0)) { - if (!(isns_main_debug & 0x80)) - { - if (SUCCESS == SNSConvertPayloadNTOH (p_md)) - SNSProcessRequest (p_md); - else - DEBUG_0 (1, (Parse Error:Msg Dropped)); - - } - else - { SNSConvertPayloadNTOH (p_md); SNSProcessRequest (p_md); - } } --- 206,213 ---- for (;;) { ! if (SUCCESS == ReceiveIPCMessage (SNS_EP, (void *) p_md, sizeof (ISNS_Msg_Descp), 0)) { SNSConvertPayloadNTOH (p_md); SNSProcessRequest (p_md); } *************** *** 283,287 **** SNSCheckTxQueue (); - if (sns_fsm_timeout) SNSCheckInitTxQueue (p_md); --- 215,218 ---- *************** *** 289,299 **** return (SUCCESS); - } /* End SNSMain */ ! ! ! /* * Function Name: SNSProcessRequest * --- 220,227 ---- return (SUCCESS); } /* End SNSMain */ ! /******************************************************************** * Function Name: SNSProcessRequest * *************** *** 305,309 **** * * ! */ static void SNSProcessRequest (ISNS_Msg_Descp * p_md) --- 233,237 ---- * * ! ********************************************************************/ static void SNSProcessRequest (ISNS_Msg_Descp * p_md) *************** *** 620,623 **** --- 548,553 ---- + /******************************************************************** + ********************************************************************/ void SNSReqTimeoutHdlr (void) *************** *** 626,630 **** } ! /* * Function Name: SNSExecCallback * --- 556,560 ---- } ! /******************************************************************** * Function Name: SNSExecCallback * *************** *** 635,639 **** * Return value: SUCCESS or ERROR. * ! */ int SNSExecCallback (ISNS_Msg_Descp * p_md, int status) --- 565,569 ---- * Return value: SUCCESS or ERROR. * ! ********************************************************************/ int SNSExecCallback (ISNS_Msg_Descp * p_md, int status) *************** *** 694,697 **** --- 624,629 ---- } + /******************************************************************** + ********************************************************************/ void SNSCheckTxQueue () *************** *** 775,778 **** --- 707,712 ---- } + /******************************************************************** + ********************************************************************/ void SNSCheckInitTxQueue (ISNS_Msg_Descp * p_md) *************** *** 786,924 **** } ! ISNS_ATTR_VALS_CB * ! ISNSAttrGetList (ISNS_Msg_Descp *p_md) ! { ! ISNS_Key *p_key; ! char *loc_ptr1; ! uint16_t sns_attr_len; ! ISNS_ATTR_VALS *p_aval; ! ISNS_ATTR_VALS_CB *p_attr_vals_cb; ! void *val_location; ! int num_entries, ii; ! int display_debug; ! uint16_t len; ! ! display_debug = 0; ! if ((sns_cb_debug == 3) && (p_md->msg.hdr.type != ISNS_SCN)) ! display_debug = (sns_cb_msg_filter == p_md->msg.hdr.type); ! ! /* ! * Initialize the vars and go to the start ! * of the message.. ! */ ! p_aval = NULL; ! p_attr_vals_cb = NULL; ! len = 0; ! ! if (p_md->msg.hdr.type == ISNS_SCN) ! { ! /* No error Code */ ! p_key = (ISNS_Key *)&p_md->msg.payload; ! sns_attr_len = p_md->msg.hdr.msg_len; ! } ! else ! { ! /* Error Code */ ! p_key = (ISNS_Key *)&p_md->msg.payload+ISNS_ERROR_CODE_SIZE; ! sns_attr_len = p_md->msg.hdr.msg_len-ISNS_ERROR_CODE_SIZE; ! } ! DEBUG_1 (display_debug, (Attributes length : 0x%x), sns_attr_len); ! ! /* ! * Go through the message's attributes and parse them into ! * the Attribute list. NOTE: All the pointers are allocated ! * here including the storage for the attribute values. ! */ ! num_entries = 0; ! loc_ptr1 = (char *)p_key; ! p_aval = (void *)ISNSAllocBuffer (sns_attr_len); ! ! while (((char *)loc_ptr1 - (char *)p_key) < sns_attr_len) ! { ! if (p_aval == NULL) ! { ! SNS_WARN(SNS_BUFFER_WARN, ! "AttrGetList out of aval buffs (size)\n", ! sns_attr_len, 0, 0); ! return (NULL); ! } ! ! /* Set the VALUE location for the attributes */ ! val_location = SNSAttrGetAttrValLocation((ISNS_Attr *)loc_ptr1); ! len = ((ISNS_Attr *)loc_ptr1)->len; ! ! if (val_location == NULL) ! { ! SNS_WARN(SNS_GETATTR_WARN, ! "AttrGetList id not found (tag, msg id, xid)\n", ! ((ISNS_Attr *)loc_ptr1)->tag, p_md->msg.hdr.type, ! p_md->msg.hdr.xid); ! ISNSFreeBuffer((char *)p_aval); ! p_aval = NULL; ! break; ! } ! ! p_aval[num_entries].attr_id = ((ISNS_Attr *)loc_ptr1)->tag; ! p_aval[num_entries].attr_len = len; ! p_aval[num_entries].attr_val = val_location; ! ! /* Word Align values */ ! if (len % 4) ! len += 4 - (len % 4); ! ! /* Debugging */ ! if ((sns_scn_debug == 3) && (p_md->msg.hdr.type == ISNS_SCN)) ! { ! if (p_aval[num_entries].attr_id == RSCN_EVENT) ! display_debug = (sns_scn_msg_filter == ! *(int *)p_aval[num_entries].attr_val); ! } ! DEBUG_2 (display_debug, (attr id %u, len %d), ! p_aval[num_entries].attr_id, ! p_aval[num_entries].attr_len); ! if (display_debug) ! { ! for (ii = 0; ii < p_aval[num_entries].attr_len; ii++) ! printf("%02x", *((char *)p_aval[num_entries].attr_val + ii)); ! printf("\n"); ! } ! /* End Debugging */ ! loc_ptr1 = (char *) loc_ptr1 + ISNS_SIZEOF_TAG + len; ! num_entries++; ! } ! /* ! * Set the attribute value control block. ! */ ! if (p_aval != NULL) ! { ! p_attr_vals_cb = (ISNS_ATTR_VALS_CB *) ! ISNSAllocBuffer(sizeof (ISNS_ATTR_VALS_CB)); ! ! if (p_attr_vals_cb == NULL) ! { ! SNS_WARN(SNS_BUFFER_WARN, "AttrGetList out of cb buffs (size)\n", ! (int)sizeof (ISNS_ATTR_VALS_CB), 0, 0); ! } ! else ! { ! p_attr_vals_cb->num_entries = num_entries; ! p_attr_vals_cb->total_size = sns_attr_len; ! p_attr_vals_cb->attr_val_sptr = p_aval; ! } ! } ! return (p_attr_vals_cb); ! } ! ! static void* ! SNSAttrGetAttrValLocation (ISNS_Attr *sns_attr) ! { ! if (sns_attr->tag < ISNS_END_VALID_TAG) ! { ! return ((void *)&sns_attr->val); ! } ! ! return (NULL); ! } ! static void regCallback(ISNS_Msg_Descp* p_md) { --- 720,725 ---- } ! /******************************************************************** ! ********************************************************************/ static void regCallback(ISNS_Msg_Descp* p_md) { *************** *** 946,950 **** /******************************************************************** ********************************************************************/ ! int ISNSdbExec( ISNS_Msg_Descp *p_md, ISNS_Msg_Descp *p_rsp_md) { --- 747,751 ---- /******************************************************************** ********************************************************************/ ! static int ISNSdbExec( ISNS_Msg_Descp *p_md, ISNS_Msg_Descp *p_rsp_md) { *************** *** 988,992 **** case ISNS_DEREG_DEV_REQ: { ! errorCode = ISNSdbRemoveAttr( p_md ); break; } --- 789,793 ---- case ISNS_DEREG_DEV_REQ: { ! errorCode = ISNSdbRemoveAttr( p_md, &p_rsp_md->msg); break; } *************** *** 1002,1006 **** break; } - case ISNS_SCN: { --- 803,806 ---- *************** *** 1010,1014 **** case ISNS_DEV_ATTR_QRY_REQ: { ! errorCode = ISNSdbGetAttr ( p_md, p_rsp_md ); break; } --- 810,814 ---- case ISNS_DEV_ATTR_QRY_REQ: { ! errorCode = ISNSdbGetAttr ( p_md, &p_rsp_md->msg); break; } *************** *** 1035,1039 **** case ISNS_ESI_RSP: { ! ISNS_ProcessESI( p_md ); break; } --- 835,839 ---- case ISNS_ESI_RSP: { ! errorCode = ISNS_ProcessESI( p_md ); break; } |
From: Robert W. <wrw...@us...> - 2006-12-19 22:25:34
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/include In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv19280/include Modified Files: iSNSdb.h iSNSesi.h iSNSquery.h iSNSreg.h Log Message: organize code in iSNSMain.c Index: iSNSesi.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNSesi.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** iSNSesi.h 3 Nov 2006 20:22:29 -0000 1.1 --- iSNSesi.h 19 Dec 2006 22:25:31 -0000 1.2 *************** *** 42,51 **** int ISNS_SendESI(void); ! int ISNS_ProcessESI(ISNS_Msg_Descp* p_md); ! ! int ISNSdbExec(ISNS_Msg_Descp* p_md,ISNS_Msg_Descp* p_rsp_md); ! ! int ! ISNS_ProcessESI ( ISNS_Msg_Descp *p_md ); #endif --- 42,46 ---- int ISNS_SendESI(void); ! int ISNS_ProcessESI ( ISNS_Msg_Descp *p_md ); #endif Index: iSNSreg.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNSreg.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** iSNSreg.h 15 Dec 2006 18:17:18 -0000 1.4 --- iSNSreg.h 19 Dec 2006 22:25:31 -0000 1.5 *************** *** 70,74 **** int ! ISNSdbRemoveAttr (ISNS_Msg_Descp * p_md); int --- 70,74 ---- int ! ISNSdbRemoveAttr (ISNS_Msg_Descp * p_md, ISNS_Msg * rspmsg); int Index: iSNSquery.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNSquery.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** iSNSquery.h 15 Dec 2006 01:13:29 -0000 1.2 --- iSNSquery.h 19 Dec 2006 22:25:31 -0000 1.3 *************** *** 50,56 **** SNSdbGetPortName(IP_Address *ip, SOIP_Port_Id *id, SOIP_Port_Name *pn); - ISNS_ATTR_VALS_CB * - ISNSAttrGetList (ISNS_Msg_Descp *p_md); - int ISNS_GetDD_ID_from_sym ( char *p_sym ); --- 50,53 ---- *************** *** 69,75 **** int - ISNSdbGetAttr ( ISNS_Msg_Descp * p_md, ISNS_Msg_Descp * md ); - - int ISNSGetNextAttr( ISNS_Msg_Descp *p_md, ISNS_Msg * p_rspmsg ); --- 66,69 ---- *************** *** 139,143 **** int ! ISNSdbGetAttr ( ISNS_Msg_Descp * p_md, ISNS_Msg_Descp * md ); int --- 133,137 ---- int ! ISNSdbGetAttr ( ISNS_Msg_Descp * p_md, ISNS_Msg * p_rspmsg ); int Index: iSNSdb.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNSdb.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** iSNSdb.h 18 Dec 2006 19:02:46 -0000 1.8 --- iSNSdb.h 19 Dec 2006 22:25:31 -0000 1.9 *************** *** 49,60 **** /* - * These are dummy variables. - */ - #define SNS_DB_FILENAME "C:SNS_DB" - #define SNS_DB_FILENAME_LEN 64 - #define SNS_RAM_DISK "C:" - - - /* * Default initialization value for device attributes. * When a database table is created all attributes are --- 49,52 ---- *************** *** 82,91 **** ISNSdbClose (void); - int ISNSdbLoad(void); - - int ISNSdbSave(ISNS_Msg *p_msg); - - int ISNSdbExec(ISNS_Msg_Descp* p_md,ISNS_Msg_Descp* p_rsp_md); - int SNSdbGetNextOfKey (ISNS_DBKey * key); --- 74,77 ---- |
From: Robert W. <wrw...@us...> - 2006-12-19 20:34:44
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv5378/src Modified Files: iSNSdereg.c iSNSparse.c iSNSreg.c Log Message: Fix deregister to use attr not keys Index: iSNSparse.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSparse.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** iSNSparse.c 18 Dec 2006 23:00:05 -0000 1.16 --- iSNSparse.c 19 Dec 2006 20:34:38 -0000 1.17 *************** *** 97,100 **** --- 97,101 ---- case ISNS_ENTITY_GET_NXT_PORTAL_REQ: case ISNS_DEV_ATTR_QRY_RES: + case ISNS_DEREG_DEV_RES: parse_status = ISNSProfileKeysAttr (msg, attr_index, &num_attrs, key_index, &num_keys, (ISNS_Attr **)src_attr); Index: iSNSreg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSreg.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** iSNSreg.c 18 Dec 2006 23:00:05 -0000 1.17 --- iSNSreg.c 19 Dec 2006 20:34:38 -0000 1.18 *************** *** 1630,1634 **** new_member.node_idx = p_node->iscsi_index; } ! new_member.type = type; new_member.status = status; --- 1630,1635 ---- new_member.node_idx = p_node->iscsi_index; } ! ! DEBUG_1 (isns_reg_debug &1, Add_DD_Member member.type:%i,type); new_member.type = type; new_member.status = status; Index: iSNSdereg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSdereg.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** iSNSdereg.c 18 Dec 2006 23:00:05 -0000 1.17 --- iSNSdereg.c 19 Dec 2006 20:34:38 -0000 1.18 *************** *** 107,113 **** deregPortalFlag = FALSE; ! for (i = 0; i < MAX_PARSE_ATTRS && key_indx[i]; i++) { ! p_attr = (ISNS_Attr *)(key_indx[i]); switch (p_attr->tag) { --- 107,113 ---- deregPortalFlag = FALSE; ! for (i = 0; i < MAX_PARSE_ATTRS && attr_indx[i]; i++) { ! p_attr = (ISNS_Attr *)(attr_indx[i]); switch (p_attr->tag) { *************** *** 127,131 **** case ISNS_PORTAL_PORT: case ISNS_PORTAL_SYM_NAME: - // case ISNS_PORTAL_GROUP: deregPortalFlag = TRUE; break; --- 127,130 ---- *************** *** 168,180 **** status = ISNS_NO_ERR; if (deregEnitityFlag) ! status = SNSdbRemoveAttrEntity (key_indx, (ISNS_Attr *)src_attr, p_md, &p_rspMd->msg); if (deregPortalFlag && status == ISNS_NO_ERR) ! status = SNSdbRemoveAttrPortal (key_indx, src_attr, p_md, &p_rspMd->msg); if (deregFCNodeFlag && status == ISNS_NO_ERR) ! status = SNSdbRemoveAttrNode (key_indx, (char *)src_attr, p_md, &p_rspMd->msg); if (deregFCPortFlag && status == ISNS_NO_ERR) ! status = SNSdbRemoveAttrPort (key_indx, src_attr, p_md, &p_rspMd->msg); if (deregISCSIFlag && status == ISNS_NO_ERR) ! status = SNSdbRemoveAttrISCSI (key_indx, (char *)src_attr, p_md, &p_rspMd->msg); if (status == ISNS_NO_ERR) --- 167,179 ---- status = ISNS_NO_ERR; if (deregEnitityFlag) ! status = SNSdbRemoveAttrEntity (attr_indx, (ISNS_Attr *)src_attr, p_md, &p_rspMd->msg); if (deregPortalFlag && status == ISNS_NO_ERR) ! status = SNSdbRemoveAttrPortal (attr_indx, src_attr, p_md, &p_rspMd->msg); if (deregFCNodeFlag && status == ISNS_NO_ERR) ! status = SNSdbRemoveAttrNode (attr_indx, (char *)src_attr, p_md, &p_rspMd->msg); if (deregFCPortFlag && status == ISNS_NO_ERR) ! status = SNSdbRemoveAttrPort (attr_indx, src_attr, p_md, &p_rspMd->msg); if (deregISCSIFlag && status == ISNS_NO_ERR) ! status = SNSdbRemoveAttrISCSI (attr_indx, (char *)src_attr, p_md, &p_rspMd->msg); if (status == ISNS_NO_ERR) *************** *** 836,839 **** --- 835,840 ---- + DEBUG_0 (isns_dereg_debug &1, SSNSdbRemoveAttrPortal); + foundFlag = FALSE; saveIndex = 0; *************** *** 1052,1056 **** ISNS_DBKey remove_key; ! DEBUG_0 (isns_dereg_debug & 1, (Deregistering iSCSI Node)); scn_bitmap = 0; --- 1053,1057 ---- ISNS_DBKey remove_key; ! DEBUG_1 (isns_dereg_debug & 1, (Deregistering iSCSI Node:%s),iscsi_node_key); scn_bitmap = 0; *************** *** 1088,1104 **** p_dd = (SOIP_Dd *)&entry5.data; - /* - if (ISNS_NO_ERR != Remove_DD_ISCSI_Member(p_dd, p_node->id.v)) - return (ISNS_UNKNOWN_ERR); - */ /* Send SCN */ send_iscsi_scn_on_dd_mem_change (p_node, NULL, p_dd, 0, ISNS_SCN_OBJ_REMOVED); ! ! if (ISNS_NO_ERR != ! Disable_DD_Member (p_dd, p_node->id.v, ISNS_DD_ISCSI_MEMBER)) ! return (ISNS_UNKNOWN_ERR); ! ! /* Send SCN All */ /* Prepare the SCN */ --- 1089,1096 ---- p_dd = (SOIP_Dd *)&entry5.data; /* Send SCN */ send_iscsi_scn_on_dd_mem_change (p_node, NULL, p_dd, 0, ISNS_SCN_OBJ_REMOVED); ! Disable_DD_Member (p_dd, p_node->id.v, ISNS_DD_ISCSI_MEMBER); /* Prepare the SCN */ *************** *** 1726,1730 **** /********************************************************************* _Disable_DD_Member - Disables a DD member. This gets called when a node is deleted. *********************************************************************/ --- 1718,1721 ---- *************** *** 1735,1738 **** --- 1726,1731 ---- SOIP_Dd_Member *p_member; + DEBUG_0 (isns_dereg_debug &1, Disable_DD_Member); + pnode=NULL; while ((pnode=GetNextNode(&p_dd->member_list, pnode))) *************** *** 1741,1753 **** --- 1734,1754 ---- if (p_member->type != type) + { + DEBUG_2 (isns_dereg_debug &1, p_member->type:%i not equal to type:%i,p_member->type,type); continue; + } if (p_member->type == ISNS_DD_ISCSI_MEMBER && 0 != strcmp (p_member->node_id, ptr)) + { + DEBUG_0 (isns_dereg_debug &1, p_member->type not equal to type); continue; + } if (p_member->type == ISNS_DD_IFCP_MEMBER && 0 != memcmp (p_member->node_id, ptr, ISNS_PORT_NAME_SIZE)) + { continue; + } /* Match found */ *************** *** 1755,1758 **** --- 1756,1761 ---- return (ISNS_NO_ERR); } + + DEBUG_0 (isns_dereg_debug &1, Disable_DD_Member return error); return (ERROR); } |
From: Robert W. <wrw...@us...> - 2006-12-19 20:33:53
|
Update of /cvsroot/linuxisns/isnsNT/isnsclient/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv4948/src Modified Files: entity.c iscsi.c parse.c portal.c Log Message: Fix deregister to use attr not keys Index: portal.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/src/portal.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** portal.c 18 Dec 2006 23:00:04 -0000 1.7 --- portal.c 19 Dec 2006 20:33:49 -0000 1.8 *************** *** 56,59 **** --- 56,62 ---- return; + /* Add Delimiter */ + ISNSAppendAttr (&cmd, 0, 0, NULL, 0); + ip = inet_addr (DEFAULT_IP_ADDR); if (0 != *************** *** 71,81 **** /* Get Portal Type */ - // portal_type = 0; - // if (0 != - // GetInput (cmdLine, "Portal Type", "*0: UDP 1: TCP", sizeof (cmdLine))) - // { - // portal_type = atoi (cmdLine); - // } portal_type = 0; /* Get Port */ --- 74,83 ---- /* Get Portal Type */ portal_type = 0; + if (0 != + GetInput (cmdLine, "Portal Type", "*0: UDP 1: TCP", sizeof (cmdLine))) + { + portal_type = atoi (cmdLine); + } /* Get Port */ *************** *** 86,90 **** port = atoi (cmdLine); } ! printf("port:%i\n",port); ISNSAppendAttr (&cmd, ISNS_PORTAL_PORT, 4, NULL, port | (portal_type == 0 ? 0x10000 : 0)); --- 88,92 ---- port = atoi (cmdLine); } ! ISNSAppendAttr (&cmd, ISNS_PORTAL_PORT, 4, NULL, port | (portal_type == 0 ? 0x10000 : 0)); *************** *** 534,538 **** ISNSSendCmd (&cmd); } - - - --- 536,537 ---- Index: entity.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/src/entity.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** entity.c 8 Dec 2006 20:05:49 -0000 1.7 --- entity.c 19 Dec 2006 20:33:49 -0000 1.8 *************** *** 58,61 **** --- 58,64 ---- return; + /* Add Delimiter */ + ISNSAppendAttr (&cmd, 0, 0, NULL, 0); + /* Get Node */ flag = FALSE; *************** *** 239,244 **** if (0 != GetInput (cmdLine, "Entity ID", "(none)", sizeof (cmdLine))) { ! ISNSAppendAttr (&cmd, ISNS_ENTITY_ID, PAD4 (strlen (cmdLine)), cmdLine, ! 0); } --- 242,246 ---- if (0 != GetInput (cmdLine, "Entity ID", "(none)", sizeof (cmdLine))) { ! ISNSAppendAttr (&cmd, ISNS_ENTITY_ID, PAD4 (strlen (cmdLine)), cmdLine,0); } Index: iscsi.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/src/iscsi.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** iscsi.c 18 Dec 2006 23:00:03 -0000 1.5 --- iscsi.c 19 Dec 2006 20:33:49 -0000 1.6 *************** *** 350,353 **** --- 350,356 ---- return; + /* Delimiter */ + ISNSAppendAttr (&cmd, 0, 0, NULL, 0); + /* Get iSCSI Node ID */ if (0 == GetInput (cmdLine, "KEY: iSCSI Node Id", NULL, sizeof (cmdLine))) *************** *** 357,362 **** } ! ISNSAppendAttr (&cmd, ISNS_ISCSI_NODE_ID, PAD4 (strlen (cmdLine)), cmdLine, ! 0); ISNSSendCmd (&cmd); --- 360,365 ---- } ! ISNSAppendAttr (&cmd, ISNS_ISCSI_NODE_ID, PAD4 (strlen (cmdLine)), cmdLine, 0); ! ISNSSendCmd (&cmd); Index: parse.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/src/parse.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** parse.c 18 Dec 2006 23:00:04 -0000 1.5 --- parse.c 19 Dec 2006 20:33:49 -0000 1.6 *************** *** 139,146 **** case ISNS_DD_IFCP_MEMBER : return("Discovery Domain iFCP Member"); case ISNS_COMPANY_OUI : return("Company OUI"); ! case ISNS_ENTITY_IDX : return("Entity Index"); ! case ISNS_ISCSI_IDX : return("iSCSI Index"); ! case ISNS_PORTAL_IDX : return("Portal Index"); ! case ISNS_DD_ISCSI_MEMBER_IDX: return("Discovery Domain iSCSI Member Index"); default : return("Unknown TAG code"); --- 139,150 ---- case ISNS_DD_IFCP_MEMBER : return("Discovery Domain iFCP Member"); case ISNS_COMPANY_OUI : return("Company OUI"); ! case ISNS_ENTITY_IDX : return("Entity Index"); ! case ISNS_ISCSI_IDX : return("iSCSI Index"); ! case ISNS_PORTAL_IDX : return("Portal Index"); ! case ISNS_DD_ISCSI_MEMBER_IDX: return("Discovery Domain iSCSI Member Index"); ! case ISNS_PORTAL_GROUP_ISCSI_NAME : return("Portal Group ISCSI Name"); ! case ISNS_PORTAL_GROUP_IP : return("Portal Group IP Address"); ! case ISNS_PORTAL_GROUP_PORT : return("Portal Group Port"); ! case ISNS_PORTAL_GROUP_TAG : return("Portal Group Tag"); default : return("Unknown TAG code"); *************** *** 228,231 **** --- 232,236 ---- case ISNS_ENTITY_PERIOD : case ISNS_PORTAL_PORT : + case ISNS_PORTAL_GROUP_PORT : case ISNS_ESI_INTERVAL : case ISNS_ESI_PORT : *************** *** 247,250 **** --- 252,256 ---- case ISNS_DD_ISCSI_MEMBER : case ISNS_DD_IFCP_MEMBER : + case ISNS_PORTAL_GROUP_ISCSI_NAME : printf ("Tag: %s = \"%s\"\n", isnsTagText(attrtag),(char *)&p_attr->val); break; *************** *** 257,260 **** --- 263,267 ---- case ISNS_FC_PORT_IP : case ISNS_FC_NODE_IP : + case ISNS_PORTAL_GROUP_IP : { char ipaddr[45]; |
From: Robert W. <wrw...@us...> - 2006-12-18 23:00:09
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv7738/isnsserver/src Modified Files: iSNSUtil.c iSNSdb.c iSNSdereg.c iSNSparse.c iSNSquery.c iSNSreg.c Log Message: Portal Group Update Index: iSNSUtil.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSUtil.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** iSNSUtil.c 15 Dec 2006 01:13:29 -0000 1.12 --- iSNSUtil.c 18 Dec 2006 23:00:04 -0000 1.13 *************** *** 871,875 **** case ISNS_ESI_INTERVAL : return("ESI Interval"); case ISNS_ESI_PORT : return("ESI/SCN UDP Port"); - case ISNS_PORTAL_GROUP : return("Portal Group"); case ISNS_PORTAL_CERT : return("Portal Certificate"); case ISNS_ISCSI_NODE_ID : return("iSCSI Name"); --- 871,874 ---- *************** *** 1019,1023 **** case ISNS_DDS_SYM_NAME : case ISNS_DD_SYM_NAME : - case ISNS_PORTAL_GROUP : case ISNS_ISCSI_NODE_ID : case ISNS_ISCSI_ALIAS : --- 1018,1021 ---- Index: iSNSquery.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSquery.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** iSNSquery.c 18 Dec 2006 19:02:47 -0000 1.12 --- iSNSquery.c 18 Dec 2006 23:00:05 -0000 1.13 *************** *** 156,160 **** case ISNS_PORTAL_PORT: case ISNS_PORTAL_SYM_NAME: - case ISNS_PORTAL_GROUP: case ISNS_PORTAL_IDX: status = SNSdbGetAttrPortal ( attr_indx, key_indx, --- 156,159 ---- *************** *** 2695,2699 **** case ISNS_ESI_INTERVAL: case ISNS_ESI_PORT: - case ISNS_PORTAL_GROUP: case ISNS_PORTAL_CERT: fetchPortalFlag = TRUE; --- 2694,2697 ---- *************** *** 2847,2854 **** p_portal->sym_name, 0); break; - case ISNS_PORTAL_GROUP: - ISNSAppendAttr (p_msg, ISNS_PORTAL_GROUP, ISNS_PORTAL_GROUP_SIZE, - NULL, p_portal->group); - break; case ISNS_ESI_PORT: ISNSAppendAttr (p_msg, ISNS_ESI_PORT, ISNS_ESI_PORT_SIZE, --- 2845,2848 ---- *************** *** 2946,2953 **** p_portal->sym_name, 0 ); break; - case ISNS_PORTAL_GROUP: - ISNSAppendAttr ( p_msg, ISNS_PORTAL_GROUP, ISNS_PORTAL_GROUP_SIZE, - NULL, p_portal->group ); - break; case ISNS_ESI_PORT: ISNSAppendAttr ( p_msg, ISNS_ESI_PORT, ISNS_ESI_PORT_SIZE, --- 2940,2943 ---- Index: iSNSparse.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSparse.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** iSNSparse.c 15 Dec 2006 18:17:19 -0000 1.15 --- iSNSparse.c 18 Dec 2006 23:00:05 -0000 1.16 *************** *** 175,179 **** case ISNS_ESI_PORT: case ISNS_SCN_PORT: - case ISNS_PORTAL_GROUP: case ISNS_PORTAL_IDX: case ISNS_ISCSI_TYPE: --- 175,178 ---- *************** *** 440,444 **** case ISNS_IFCP_SCN_BITMAP: case ISNS_ISCSI_TYPE: - case ISNS_PORTAL_GROUP: case ISNS_ENTITY_PERIOD: case ISNS_DD_FEATURE_BITMAP: --- 439,442 ---- *************** *** 596,600 **** case ISNS_ISCSI_SCN_BITMAP: case ISNS_IFCP_SCN_BITMAP: - case ISNS_PORTAL_GROUP: case ISNS_ISCSI_TYPE: case ISNS_ENTITY_PERIOD: --- 594,597 ---- Index: iSNSdereg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSdereg.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** iSNSdereg.c 18 Dec 2006 19:02:47 -0000 1.16 --- iSNSdereg.c 18 Dec 2006 23:00:05 -0000 1.17 *************** *** 127,131 **** case ISNS_PORTAL_PORT: case ISNS_PORTAL_SYM_NAME: ! case ISNS_PORTAL_GROUP: deregPortalFlag = TRUE; break; --- 127,131 ---- case ISNS_PORTAL_PORT: case ISNS_PORTAL_SYM_NAME: ! // case ISNS_PORTAL_GROUP: deregPortalFlag = TRUE; break; Index: iSNSreg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSreg.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** iSNSreg.c 18 Dec 2006 19:02:47 -0000 1.16 --- iSNSreg.c 18 Dec 2006 23:00:05 -0000 1.17 *************** *** 130,134 **** case ISNS_PORTAL_PORT: case ISNS_PORTAL_SYM_NAME: - case ISNS_PORTAL_GROUP: case ISNS_PORTAL_CERT: case ISNS_ESI_INTERVAL: --- 130,133 ---- *************** *** 167,170 **** --- 166,172 ---- case ISNS_PORTAL_GROUP_ISCSI_NAME: + case ISNS_PORTAL_GROUP_TAG: + case ISNS_PORTAL_GROUP_PORT: + case ISNS_PORTAL_GROUP_IP: regPortalGroupFlag = TRUE; break; *************** *** 477,480 **** --- 479,483 ---- strcpy(p_portal->entity_id.id,p_entity->eid.id); + DEBUG_1 (isns_reg_debug &1, p_portal->entity_id.id is:%s,p_portal->entity_id.id); p_portal->entity_index = p_entity->entity_index; *************** *** 585,599 **** updateFlag = TRUE; break; - case ISNS_PORTAL_GROUP: - if (p_portal->group!=*(uint32_t *)&attr->val) - { - p_portal->group=*(uint32_t *)&attr->val; - - ISNSAppendKey( p_scn_all_msg_buffer, ISNS_PORTAL_GROUP, - ISNS_PORTAL_GROUP_SIZE, NULL, p_portal->group ); - - updateFlag = TRUE; - } - break; default: break; --- 588,591 ---- *************** *** 621,624 **** --- 613,618 ---- } + DEBUG_1(isns_reg_debug &1, Entity id:%s,p_portal->entity_id.id); + /* Send Out Detailed SCN */ if (newPortalRegFlag || updateFlag) *************** *** 691,699 **** ISNS_Attr *attr = NULL; SOIP_Portal_Group *p_portal_group; ! SOIP_Portal_Key db_portal_group; int ii; int rval; int portalIpIndex; int portalPortIndex; int saveIndex; int stopFlag = FALSE; --- 685,694 ---- ISNS_Attr *attr = NULL; SOIP_Portal_Group *p_portal_group; ! SOIP_Portal_Group_Key db_portal_group; int ii; int rval; int portalIpIndex; int portalPortIndex; + int iscsiIndex; int saveIndex; int stopFlag = FALSE; *************** *** 703,714 **** ISNS_DBKey read_key; ! DEBUG_0 (isns_reg_debug & 1, (Registering Portal)); newPortalRegFlag = FALSE; portalPortIndex = -1; portalIpIndex = -1; for (ii = 0; ii < SNS_MAX_ATTRS && key_indx[ ii ] ! && (portalIpIndex == -1 || portalPortIndex == -1); ii++) { key = (ISNS_Key *)( key_indx[ ii ] ); --- 698,710 ---- ISNS_DBKey read_key; ! DEBUG_0 (isns_reg_debug & 1, (Registering Portal Group)); newPortalRegFlag = FALSE; portalPortIndex = -1; portalIpIndex = -1; + iscsiIndex = -1; for (ii = 0; ii < SNS_MAX_ATTRS && key_indx[ ii ] ! && (portalIpIndex == -1 || portalPortIndex == -1 || iscsiIndex == -1); ii++) { key = (ISNS_Key *)( key_indx[ ii ] ); *************** *** 733,736 **** --- 729,741 ---- portalPortIndex = ii; break; + case ISNS_ISCSI_NODE_ID: + /* Check to see if we already have an iscsi name */ + if (iscsiIndex != -1) + { + DEBUG_0 (isns_reg_debug & 1, (ISCSI Name tag found twice)); + return ( ISNS_INVALID_REG_ERR ); + } + iscsiIndex = ii; + break; default: break; *************** *** 762,766 **** for ( ii = saveIndex; ii < SNS_MAX_ATTRS && attr_indx[ii] ! && (portalIpIndex == -1 || portalPortIndex == -1); ii++ ) { attr = (ISNS_Attr *) attr_indx[ ii ]; --- 767,771 ---- for ( ii = saveIndex; ii < SNS_MAX_ATTRS && attr_indx[ii] ! && (portalIpIndex == -1 || portalPortIndex == -1 || iscsiIndex == -1); ii++ ) { attr = (ISNS_Attr *) attr_indx[ ii ]; *************** *** 785,788 **** --- 790,802 ---- portalPortIndex = ii; break; + case ISNS_ISCSI_NODE_ID: + /* Check to see if we already had an iscsi name */ + if (iscsiIndex != -1) + { + DEBUG_0 (isns_reg_debug & 1, (ISCSI Node tag found twice)); + return ( ISNS_INVALID_REG_ERR ); + } + iscsiIndex = ii; + break; default: break; *************** *** 790,795 **** } ! /* Check to see if we have both indices */ ! if ( portalIpIndex == -1 || portalPortIndex == -1 ) { DEBUG_0 (isns_reg_debug & 1, (PORTAL REG, MISSING KEYS)); --- 804,809 ---- } ! /* Check to see if we have all three indices */ ! if ( portalIpIndex == -1 || portalPortIndex == -1 || iscsiIndex == -1) { DEBUG_0 (isns_reg_debug & 1, (PORTAL REG, MISSING KEYS)); *************** *** 797,803 **** } - DEBUG_1 (isns_reg_debug &1,(Portal ip_port:%i),attr->val.ip_port); attr = (ISNS_Attr *) attr_indx[ portalPortIndex ]; db_portal_group.ip_port = attr->val.ip_port; attr = (ISNS_Attr *) attr_indx[ portalIpIndex ]; --- 811,817 ---- } attr = (ISNS_Attr *) attr_indx[ portalPortIndex ]; db_portal_group.ip_port = attr->val.ip_port; + DEBUG_1 (isns_reg_debug &1,(Portal ip_port:%i),attr->val.ip_port); attr = (ISNS_Attr *) attr_indx[ portalIpIndex ]; *************** *** 805,825 **** ISNS_PORTAL_IP_SIZE ); saveIndex = ii; } else { - DEBUG_1 (isns_reg_debug &1,(Portal ip_port:%i),key->val.ip_port); /* Use Keys to fetch the portal Object */ key = (ISNS_Key *) key_indx[ portalPortIndex ]; db_portal_group.ip_port = key->val.ip_port; - DEBUG_1 (isns_reg_debug &1,(Portal ip_addr len:%i),key->len); key = (ISNS_Key *) key_indx[ portalIpIndex ]; memcpy ( (char *) db_portal_group.ip_addr.v, &key->val, key->len ); saveIndex = 0; } DEBUG_1 (isns_reg_debug &1,(read portal:%s),db_portal_group.ip_addr.v); read_key.tag = PORTAL_GROUP_ID_KEY; memcpy(&read_key.val,&db_portal_group,sizeof(SOIP_Portal_Group_Key)); --- 819,847 ---- ISNS_PORTAL_IP_SIZE ); + attr = (ISNS_Attr *) attr_indx[ iscsiIndex ]; + memcpy ( (char *) db_portal_group.id.v, &attr->val, MAX_ISCSI_NODE_ID_SIZE); + saveIndex = ii; } else { /* Use Keys to fetch the portal Object */ key = (ISNS_Key *) key_indx[ portalPortIndex ]; db_portal_group.ip_port = key->val.ip_port; + DEBUG_1 (isns_reg_debug &1,(Portal ip_port:%i),key->val.ip_port); key = (ISNS_Key *) key_indx[ portalIpIndex ]; memcpy ( (char *) db_portal_group.ip_addr.v, &key->val, key->len ); + DEBUG_1 (isns_reg_debug &1,(Portal ip_addr len:%i),key->len); + + attr = (ISNS_Attr *) key_indx[ iscsiIndex ]; + memcpy ( (char *) db_portal_group.id.v, &attr->val,MAX_ISCSI_NODE_ID_SIZE); + saveIndex = 0; } DEBUG_1 (isns_reg_debug &1,(read portal:%s),db_portal_group.ip_addr.v); + read_key.tag = PORTAL_GROUP_ID_KEY; memcpy(&read_key.val,&db_portal_group,sizeof(SOIP_Portal_Group_Key)); *************** *** 831,835 **** { DEBUG_0 (isns_reg_debug & 1,Deregistering PortalGroup); ! // SNSRemovePortalEntry ((char *)&db_portal_group, NULL, NULL); rval = ERROR; } --- 853,857 ---- { DEBUG_0 (isns_reg_debug & 1,Deregistering PortalGroup); ! rval = ISNSdbDelete(&read_key); rval = ERROR; } *************** *** 845,851 **** return ( ISNS_INVALID_REG_ERR ); } /* create a new node element */ memset (&entry2, 0, sizeof (SOIP_DB_Entry)); ! entry2.data_type = PORTAL_ID_KEY; attr = (ISNS_Attr *) attr_indx[portalIpIndex]; --- 867,874 ---- return ( ISNS_INVALID_REG_ERR ); } + /* create a new node element */ memset (&entry2, 0, sizeof (SOIP_DB_Entry)); ! entry2.data_type = PORTAL_GROUP_ID_KEY; attr = (ISNS_Attr *) attr_indx[portalIpIndex]; *************** *** 855,859 **** p_portal_group->ip_port = attr->val.ip_port; ! //p_portal_group->portal_index = ISNSGetNewPortalIdx(); newPortalRegFlag = TRUE; --- 878,883 ---- p_portal_group->ip_port = attr->val.ip_port; ! attr = (ISNS_Attr *) attr_indx[iscsiIndex]; ! memcpy (p_portal_group->id.v, attr->val.node_name.v, attr->len); newPortalRegFlag = TRUE; *************** *** 874,887 **** stopFlag = TRUE; break; ! case ISNS_PORTAL_GROUP: ! //if (p_portal->group!=*(uint32_t *)&attr->val) ! //{ ! // p_portal->group=*(uint32_t *)&attr->val; ! ! // ISNSAppendKey( p_scn_all_msg_buffer, ISNS_PORTAL_GROUP, ! // ISNS_PORTAL_GROUP_SIZE, NULL, p_portal->group ); ! //updateFlag = TRUE; ! //} break; default: --- 898,908 ---- stopFlag = TRUE; break; ! case ISNS_ISCSI_NODE_ID: ! { ! ISNSAppendKey( p_scn_all_msg_buffer, ISNS_ISCSI_NODE_ID, ! PAD4(strlen(p_portal_group->id.v)), p_portal_group->id.v,0); ! updateFlag = TRUE; ! } break; default: *************** *** 934,938 **** } ! DEBUG_0 (isns_reg_debug &1,return); return (ISNS_NO_ERR); } --- 955,959 ---- } ! DEBUG_0 (isns_reg_debug &1, End of AddAttrPortalGroup); return (ISNS_NO_ERR); } *************** *** 1567,1570 **** --- 1588,1592 ---- ISNS_DBKey key; int rval; + SOIP_DB_Entry lentry; pnode = NULL; *************** *** 1584,1588 **** key.tag = ISCSI_ID_KEY; strcpy(key.val.node_key.v,ptr); ! rval = ISNSdbRead(&key,&entry2); if ( rval != SUCCESS) --- 1606,1610 ---- key.tag = ISCSI_ID_KEY; strcpy(key.val.node_key.v,ptr); ! rval = ISNSdbRead(&key,&lentry); if ( rval != SUCCESS) *************** *** 1605,1609 **** else { ! p_node = (SOIP_Iscsi *)&entry2.data; new_member.node_idx = p_node->iscsi_index; } --- 1627,1631 ---- else { ! p_node = (SOIP_Iscsi *)&lentry.data; new_member.node_idx = p_node->iscsi_index; } Index: iSNSdb.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSdb.c,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** iSNSdb.c 18 Dec 2006 19:02:46 -0000 1.22 --- iSNSdb.c 18 Dec 2006 23:00:04 -0000 1.23 *************** *** 171,175 **** --- 171,178 ---- } if (entry->data_type != ENTITY_ID_KEY) + { + DEBUG_1 (isns_db_debug & 1, (read failed ENTITY node - invalid data in database %s),key->val.entity_key.id); return (ISNS_UNKNOWN_ERR); + } entry->data.entity.iportal_list.p_entry = &entry->data.entity; entry->data.entity.iscsi_node_list.p_entry = &entry->data.entity; *************** *** 329,332 **** --- 332,337 ---- k.dsize = 0; + entry.data_type = key->tag; + switch (key->tag) { *************** *** 357,361 **** --- 362,370 ---- break; case ENTITY_ID_KEY: + { + SOIP_Entity * p_entity; + p_entity = &entry.data.entity; DEBUG_1 (isns_db_debug &1,Entity write:%s,key->val.entity_key.id); + DEBUG_1 (isns_db_debug &1,Entity write:%s,p_entity->eid.id); k.dptr = (char *)key->val.entity_key.id; k.dsize = strlen(key->val.entity_key.id); *************** *** 365,368 **** --- 374,378 ---- //ISNSDisplay_Entity (&entry.data.entity,HI_DETAIL); break; + } case PORT_NAME_KEY: k.dptr = (char *)key->val.port_name.v; |
From: Robert W. <wrw...@us...> - 2006-12-18 23:00:08
|
Update of /cvsroot/linuxisns/isnsNT/isnsclient/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv7738/isnsclient/src Modified Files: ifcp.c iscsi.c isns.c parse.c portal.c Log Message: Portal Group Update Index: ifcp.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/src/ifcp.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ifcp.c 28 Nov 2006 22:00:47 -0000 1.3 --- ifcp.c 18 Dec 2006 23:00:03 -0000 1.4 *************** *** 269,273 **** /* Get Portal Group */ ! if (0 != GetInput (cmdLine, "Portal Group", NULL, sizeof (cmdLine))) { portal_group = atoi (cmdLine); --- 269,273 ---- /* Get Portal Group */ ! if (0 != GetInput (cmdLine, "Portal Group Tag", NULL, sizeof (cmdLine))) { portal_group = atoi (cmdLine); *************** *** 278,282 **** } memset (cmdLine, 0, sizeof (cmdLine)); ! ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP, 4, NULL, portal_group); } --- 278,282 ---- } memset (cmdLine, 0, sizeof (cmdLine)); ! ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP_TAG, 4, NULL, portal_group); } Index: isns.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/src/isns.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** isns.c 8 Dec 2006 20:05:49 -0000 1.4 --- isns.c 18 Dec 2006 23:00:04 -0000 1.5 *************** *** 1615,1625 **** } - void - SaveDb(void) - { - ISNSCreateHdr (ISNS_SAVE_DB_REQ, &cmd, sizeof (cmd), 0); - ISNSAppendAttr (&cmd, ISNS_COMPANY_OUI, ISNS_COMPANY_OUI_SIZE, NULL, NISHAN_OUI); - ISNSSendCmd(&cmd); - } --- 1615,1618 ---- Index: portal.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/src/portal.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** portal.c 14 Dec 2006 23:04:47 -0000 1.6 --- portal.c 18 Dec 2006 23:00:04 -0000 1.7 *************** *** 144,151 **** printf ("ESI Interval : %d.\n", p_attr->val.etype); break; - case ISNS_PORTAL_GROUP: - p_attr->val.etype = ntohl (p_attr->val.etype); - printf ("Portal Group: %#x.\n", p_attr->val.etype); - break; case ISNS_PORTAL_IDX: p_attr->val.etype = ntohl (p_attr->val.etype); --- 144,147 ---- *************** *** 256,260 **** ISNSAppendAttr (&cmd, ISNS_PORTAL_IDX, 0, NULL, 0); ISNSAppendAttr (&cmd, ISNS_PORTAL_PORT, 0, NULL, 0); - ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP, 0, NULL, 0); ISNSAppendAttr (&cmd, ISNS_PORTAL_SYM_NAME, 0, NULL, 0); ISNSAppendAttr (&cmd, ISNS_ESI_PORT, 0, NULL, 0); --- 252,255 ---- *************** *** 362,370 **** /* Get Portal Group */ ! if (0 != GetInput (cmdLine, "Portal Group", NULL, sizeof (cmdLine))) { portal_group = atoi (cmdLine); memset (cmdLine, 0, sizeof (cmdLine)); ! ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP, 4, NULL, portal_group); } --- 357,365 ---- /* Get Portal Group */ ! if (0 != GetInput (cmdLine, "Portal Group Tag", NULL, sizeof (cmdLine))) { portal_group = atoi (cmdLine); memset (cmdLine, 0, sizeof (cmdLine)); ! ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP_TAG, 4, NULL, portal_group); } Index: iscsi.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/src/iscsi.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** iscsi.c 28 Nov 2006 22:00:47 -0000 1.4 --- iscsi.c 18 Dec 2006 23:00:03 -0000 1.5 *************** *** 617,630 **** /* Get Portal Group */ ! if (0 != GetInput (cmdLine, "Portal Group", NULL, sizeof (cmdLine))) { portal_group = atoi (cmdLine); if (portal_group > 255 || portal_group == 0) { ! printf ("***ERROR: Invalid portal group.\n"); return; } memset (cmdLine, 0, sizeof (cmdLine)); ! ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP, 4, NULL, portal_group); } --- 617,630 ---- /* Get Portal Group */ ! if (0 != GetInput (cmdLine, "Portal Group Tag", NULL, sizeof (cmdLine))) { portal_group = atoi (cmdLine); if (portal_group > 255 || portal_group == 0) { ! printf ("***ERROR: Invalid portal group tag.\n"); return; } memset (cmdLine, 0, sizeof (cmdLine)); ! ISNSAppendAttr (&cmd, ISNS_PORTAL_GROUP_TAG, 4, NULL, portal_group); } Index: parse.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/src/parse.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** parse.c 8 Dec 2006 20:05:49 -0000 1.4 --- parse.c 18 Dec 2006 23:00:04 -0000 1.5 *************** *** 67,71 **** case ISNS_REL_SW_ID_REQ : return("Release Switch ID Request"); case ISNS_GET_SW_ID_REQ : return("Get Switch ID Request"); - case ISNS_SAVE_DB_REQ : return("Save Database Request"); case ISNS_REG_DEV_ATTR_RES : return("Register Device Attribute Response"); case ISNS_DEV_ATTR_QRY_RES : return("Device Attribute Query Response"); --- 67,70 ---- *************** *** 84,88 **** case ISNS_REL_SW_ID_RES : return("Release Switch ID Response"); case ISNS_GET_SW_ID_RES : return("Get Switch ID Response"); - case ISNS_SAVE_DB_RES : return("Save Database Response"); default : return(""); } --- 83,86 ---- *************** *** 107,111 **** case ISNS_ESI_INTERVAL : return("ESI Interval"); case ISNS_ESI_PORT : return("ESI/SCN UDP Port"); - case ISNS_PORTAL_GROUP : return("Portal Group"); case ISNS_PORTAL_CERT : return("Portal Certificate"); case ISNS_ISCSI_NODE_ID : return("iSCSI Name"); --- 105,108 ---- *************** *** 242,246 **** case ISNS_DDS_SYM_NAME : case ISNS_DD_SYM_NAME : - case ISNS_PORTAL_GROUP : case ISNS_ISCSI_NODE_ID : case ISNS_ISCSI_ALIAS : --- 239,242 ---- |
From: Robert W. <wrw...@us...> - 2006-12-18 23:00:07
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/include In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv7738/isnsserver/include Modified Files: iSNSdefs.h Log Message: Portal Group Update Index: iSNSdefs.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNSdefs.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** iSNSdefs.h 15 Dec 2006 18:17:18 -0000 1.7 --- iSNSdefs.h 18 Dec 2006 23:00:04 -0000 1.8 *************** *** 90,94 **** #define FC_DESCRIPTOR_SIZE (256) #define ISNS_SCN_BITMAP_SIZE (4) - #define ISNS_PORTAL_GROUP_SIZE (4) #define ISNS_PORTAL_GROUP_TAG_SIZE (4) --- 90,93 ---- *************** *** 196,201 **** ISNS_ESI_INTERVAL, ISNS_ESI_PORT, ! ISNS_PORTAL_GROUP, ! ISNS_PORTAL_IDX, ISNS_SCN_PORT=23, ISNS_PORTAL_SECURITY_BITMAP=27, --- 195,200 ---- ISNS_ESI_INTERVAL, ISNS_ESI_PORT, ! /* ISNS_PORTAL_GROUP, -- tag removed from RFC spec */ ! ISNS_PORTAL_IDX=22, ISNS_SCN_PORT=23, ISNS_PORTAL_SECURITY_BITMAP=27, |
From: Robert W. <wrw...@us...> - 2006-12-18 23:00:07
|
Update of /cvsroot/linuxisns/isnsNT/isnsclient/include In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv7738/isnsclient/include Modified Files: iSNSdefs.h Log Message: Portal Group Update Index: iSNSdefs.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsclient/include/iSNSdefs.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** iSNSdefs.h 2 Apr 2002 20:56:54 -0000 1.2 --- iSNSdefs.h 18 Dec 2006 23:00:03 -0000 1.3 *************** *** 58,61 **** --- 58,63 ---- #define ISNS_PORTAL_IP_SIZE (16) #define ISNS_PORTAL_PORT_SIZE (4) + #define ISNS_PORTAL_GROUP_IP_SIZE (16) + #define ISNS_PORTAL_GROUP_PORT_SIZE (4) #define ISNS_ESI_PORT_SIZE (4) #define PORTAL_NAME_SIZE (ISNS_PORTAL_PORT_SIZE+ISNS_PORTAL_IP_SIZE) *************** *** 88,92 **** #define FC_DESCRIPTOR_SIZE (256) #define ISNS_SCN_BITMAP_SIZE (4) ! #define ISNS_PORTAL_GROUP_SIZE (4) #define DD_SET_ID_SIZE (4) --- 90,94 ---- #define FC_DESCRIPTOR_SIZE (256) #define ISNS_SCN_BITMAP_SIZE (4) ! #define ISNS_PORTAL_GROUP_TAG_SIZE (4) #define DD_SET_ID_SIZE (4) *************** *** 145,151 **** ISNS_ENTITY_GET_NXT_PORTAL_REQ, - /* Nishan vendor specific messages */ - ISNS_SAVE_DB_REQ=0x100, - /* End */ ISNS_END_VALID_REQ_FUNC_ID, --- 147,150 ---- *************** *** 172,179 **** ISNS_ENTITY_GET_NXT_PORTAL_RES, - /* Nishan specific messages */ - ISNS_SAVE_DB_RES=0x8100, - /* End */ - ISNS_END_VALID_RES_FUNC_ID, --- 171,174 ---- *************** *** 200,205 **** ISNS_ESI_INTERVAL, ISNS_ESI_PORT, ! ISNS_PORTAL_GROUP, ! ISNS_PORTAL_IDX, ISNS_PORTAL_CERT=31, --- 195,201 ---- ISNS_ESI_INTERVAL, ISNS_ESI_PORT, ! ISNS_PORTAL_IDX=22, ! ISNS_SCN_PORT=23, ! ISNS_PORTAL_SECURITY_BITMAP=27, ISNS_PORTAL_CERT=31, *************** *** 211,214 **** --- 207,215 ---- ISNS_ISCSI_CERT=40, + ISNS_PORTAL_GROUP_ISCSI_NAME=48, + ISNS_PORTAL_GROUP_IP, + ISNS_PORTAL_GROUP_PORT, + ISNS_PORTAL_GROUP_TAG=51, + ISNS_PORT_NAME=64, /* 64 */ ISNS_PORT_ID, *************** *** 263,267 **** /* ISNS Entity types */ typedef enum { ! ENTITY_TYPE_ISCSI=1, ENTITY_TYPE_IFCP, } ISNS_ENITITY_TYPES; --- 264,269 ---- /* ISNS Entity types */ typedef enum { ! NO_PROTOCOL=1, ! ENTITY_TYPE_ISCSI, ENTITY_TYPE_IFCP, } ISNS_ENITITY_TYPES; *************** *** 302,306 **** #ifndef PAD4 ! #define PAD4(a) ( (a%4)?(4-a%4)+a:(a+4) ) #endif --- 304,308 ---- #ifndef PAD4 ! #define PAD4(a) ( (a % 4) ? (4 - (a % 4) ) + a: (a+4) ) #endif |
From: Robert W. <wrw...@us...> - 2006-12-18 19:02:51
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv10355/src Modified Files: iSNSdb.c iSNSdereg.c iSNSesi.c iSNSquery.c iSNSreg.c iSNSscn.c Log Message: Correct struct(s) in iSNStypes.h Index: iSNSquery.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSquery.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** iSNSquery.c 15 Dec 2006 18:17:19 -0000 1.11 --- iSNSquery.c 18 Dec 2006 19:02:47 -0000 1.12 *************** *** 241,245 **** SOIP_Ifcp *p_port; SOIP_Portal_Key db_portal; ! ISNS_Key read_key; int rval; --- 241,245 ---- SOIP_Ifcp *p_port; SOIP_Portal_Key db_portal; ! ISNS_DBKey read_key; int rval; *************** *** 334,338 **** key = (ISNS_Key *)(key_indx[entityKeyFlag]); DEBUG_1 (isns_query_debug &1,(Find Entity Index:%i),key->val.index); ! ISNS_Key read_key; read_key.tag = ENTITY_IDX_KEY; read_key.val.idx.index = key->val.index; --- 334,338 ---- key = (ISNS_Key *)(key_indx[entityKeyFlag]); DEBUG_1 (isns_query_debug &1,(Find Entity Index:%i),key->val.index); ! ISNS_DBKey read_key; read_key.tag = ENTITY_IDX_KEY; read_key.val.idx.index = key->val.index; *************** *** 407,411 **** key = (ISNS_Key *) key_indx[iFCPNodeKeyFlag]; ! ISNS_Key read_key; read_key.tag = PORT_NAME_KEY; strcpy(read_key.val.port_name.v,(char *)&key->val.port_name); --- 407,411 ---- key = (ISNS_Key *) key_indx[iFCPNodeKeyFlag]; ! ISNS_DBKey read_key; read_key.tag = PORT_NAME_KEY; strcpy(read_key.val.port_name.v,(char *)&key->val.port_name); *************** *** 441,445 **** { key = (ISNS_Key *)(key_indx[iSCSINodeIdxKeyFlag]); ! ISNS_Key read_key; read_key.tag = ISCSI_IDX_KEY; read_key.val.idx.index = key->val.index; --- 441,445 ---- { key = (ISNS_Key *)(key_indx[iSCSINodeIdxKeyFlag]); ! ISNS_DBKey read_key; read_key.tag = ISCSI_IDX_KEY; read_key.val.idx.index = key->val.index; *************** *** 469,475 **** } ! ISNS_Key read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_name.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 469,475 ---- } ! ISNS_DBKey read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_key.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 495,499 **** else { ! ISNS_Key key = { 0 }; /* Return all entity */ --- 495,499 ---- else { ! ISNS_DBKey key = { 0 }; /* Return all entity */ *************** *** 536,545 **** SOIP_Dds *p_dds; SOIP_DD_Key dds_key; ! ISNS_Key key; int rval; dds_key.id = id; key.tag = DDS_ID_KEY; ! key.val.dds_id = id; rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) --- 536,545 ---- SOIP_Dds *p_dds; SOIP_DD_Key dds_key; ! ISNS_DBKey key; int rval; dds_key.id = id; key.tag = DDS_ID_KEY; ! key.val.dds_key.id = id; rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) *************** *** 635,639 **** else { ! ISNS_Key key = { 0 }; /* retrieve all DDS */ key.tag = DDS_ID_KEY; --- 635,639 ---- else { ! ISNS_DBKey key = { 0 }; /* retrieve all DDS */ key.tag = DDS_ID_KEY; *************** *** 681,690 **** SOIP_Dd *p_dd; SOIP_DD_Key dd_key; ! ISNS_Key key; int rval; dd_key.id = id; key.tag = DD_ID_KEY; ! key.val.dd_id = id; rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) --- 681,690 ---- SOIP_Dd *p_dd; SOIP_DD_Key dd_key; ! ISNS_DBKey key; int rval; dd_key.id = id; key.tag = DD_ID_KEY; ! key.val.dd_key.id = id; rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) *************** *** 773,780 **** key = (ISNS_Key *)(key_indx[ddsKeyIndex]); /* Fetch the DDS */ ! dds_key.id = key->val.dd_key.id; ! ISNS_Key read_key; read_key.tag = DDS_ID_KEY; ! read_key.val.dds_id = dds_key.id; rval = ISNSdbRead(&read_key,&entry3); if (rval != SUCCESS) --- 773,780 ---- key = (ISNS_Key *)(key_indx[ddsKeyIndex]); /* Fetch the DDS */ ! dds_key.id = key->val.dd_id; ! ISNS_DBKey read_key; read_key.tag = DDS_ID_KEY; ! read_key.val.dds_key.id = dds_key.id; rval = ISNSdbRead(&read_key,&entry3); if (rval != SUCCESS) *************** *** 800,806 **** /* Fetch the node */ ! ISNS_Key read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_name.v,(char *)&key->val); rval = ISNSdbRead(&read_key,&entry3); if (rval != SUCCESS) --- 800,806 ---- /* Fetch the node */ ! ISNS_DBKey read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_key.v,(char *)&key->val); rval = ISNSdbRead(&read_key,&entry3); if (rval != SUCCESS) *************** *** 822,826 **** else { ! ISNS_Key key = { 0 }; /* retrieve all DD */ --- 822,826 ---- else { ! ISNS_DBKey key = { 0 }; /* retrieve all DD */ *************** *** 895,901 **** db_node_name.v[8] = (char)SOIP_DB_Node_Id; ! ISNS_Key read_key; read_key.tag = NODE_NAME_KEY; ! strcpy(read_key.val.node_name.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 895,901 ---- db_node_name.v[8] = (char)SOIP_DB_Node_Id; ! ISNS_DBKey read_key; read_key.tag = NODE_NAME_KEY; ! strcpy(read_key.val.node_key.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 913,917 **** memcpy (db_port_name.v, &key->val, key->len); ! ISNS_Key read_key; read_key.tag = PORT_NAME_KEY; strcpy(read_key.val.port_name.v,db_port_name.v); --- 913,917 ---- memcpy (db_port_name.v, &key->val, key->len); ! ISNS_DBKey read_key; read_key.tag = PORT_NAME_KEY; strcpy(read_key.val.port_name.v,db_port_name.v); *************** *** 934,940 **** db_node_name.v[8] = (char)SOIP_DB_Node_Id; ! ISNS_Key read_key; read_key.tag = NODE_NAME_KEY; ! strcpy(read_key.val.node_name.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 934,940 ---- db_node_name.v[8] = (char)SOIP_DB_Node_Id; ! ISNS_DBKey read_key; read_key.tag = NODE_NAME_KEY; ! strcpy(read_key.val.node_key.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 948,952 **** else { ! ISNS_Key key = { 0 }; /* Search the node table */ --- 948,952 ---- else { ! ISNS_DBKey key = { 0 }; /* Search the node table */ *************** *** 959,963 **** memset (&db_node_name, 0, sizeof (db_node_name)); memcpy ((char *) db_node_name.v, ! (char *) key.val.node_name.v, ISNS_NODE_NAME_SIZE); db_node_name.v[8] = (char)SOIP_DB_Node_Id; --- 959,963 ---- memset (&db_node_name, 0, sizeof (db_node_name)); memcpy ((char *) db_node_name.v, ! (char *) key.val.node_key.v, ISNS_NODE_NAME_SIZE); db_node_name.v[8] = (char)SOIP_DB_Node_Id; *************** *** 1001,1005 **** ISNS_LIST_NODE *pnode; char *p_portal_name; ! ISNS_Key key2 = { 0 }; int rval; --- 1001,1005 ---- ISNS_LIST_NODE *pnode; char *p_portal_name; ! ISNS_DBKey key2 = { 0 }; int rval; *************** *** 1060,1064 **** attr->len); ! ISNS_Key read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,&db_portal,sizeof(SOIP_Portal_Key)); --- 1060,1064 ---- attr->len); ! ISNS_DBKey read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,&db_portal,sizeof(SOIP_Portal_Key)); *************** *** 1082,1086 **** attr = (ISNS_Attr *) key_indx[portalIdxKeyFlag]; ! ISNS_Key idx_key; idx_key.tag = PORTAL_IDX_KEY; idx_key.val.idx.index = attr->val.index; --- 1082,1086 ---- attr = (ISNS_Attr *) key_indx[portalIdxKeyFlag]; ! ISNS_DBKey idx_key; idx_key.tag = PORTAL_IDX_KEY; idx_key.val.idx.index = attr->val.index; *************** *** 1099,1103 **** memcpy ((char *) &db_portal, ptr, sizeof(db_portal)); ! ISNS_Key read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,&db_portal,sizeof(SOIP_Portal_Key)); --- 1099,1103 ---- memcpy ((char *) &db_portal, ptr, sizeof(db_portal)); ! ISNS_DBKey read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,&db_portal,sizeof(SOIP_Portal_Key)); *************** *** 1127,1131 **** while ((pnode=GetNextNode(&p_entity->iportal_list, pnode))) { ! ISNS_Key read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_Portal_Key)); --- 1127,1131 ---- while ((pnode=GetNextNode(&p_entity->iportal_list, pnode))) { ! ISNS_DBKey read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_Portal_Key)); *************** *** 1148,1152 **** key = (ISNS_Key *)(key_indx[portNameKeyFlag]); ! ISNS_Key read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,&key->val.port_name,PORT_NAME_SIZE); --- 1148,1152 ---- key = (ISNS_Key *)(key_indx[portNameKeyFlag]); ! ISNS_DBKey read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,&key->val.port_name,PORT_NAME_SIZE); *************** *** 1168,1172 **** while ((pnode=GetNextNode(&p_entity->iportal_list, pnode))) { ! ISNS_Key read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_DB_Portal)); --- 1168,1172 ---- while ((pnode=GetNextNode(&p_entity->iportal_list, pnode))) { ! ISNS_DBKey read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_DB_Portal)); *************** *** 1196,1202 **** memcpy ((char *) db_node_name.v, (char *) &key->val, key->len); ! ISNS_Key read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_name.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 1196,1202 ---- memcpy ((char *) db_node_name.v, (char *) &key->val, key->len); ! ISNS_DBKey read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_key.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 1223,1227 **** while ((pnode=GetNextNode(&p_entity->iportal_list, pnode))) { ! ISNS_Key read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_DB_Portal)); --- 1223,1227 ---- while ((pnode=GetNextNode(&p_entity->iportal_list, pnode))) { ! ISNS_DBKey read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_DB_Portal)); *************** *** 1246,1250 **** while (SNSdbGetNextOfKey (&key2) == SUCCESS) { ! ISNS_Key read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,&key2.val,sizeof(SOIP_Portal_Key)); --- 1246,1250 ---- while (SNSdbGetNextOfKey (&key2) == SUCCESS) { ! ISNS_DBKey read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,&key2.val,sizeof(SOIP_Portal_Key)); *************** *** 1342,1346 **** int rval; ! ISNS_Key read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,&key->val.port_name,PORT_NAME_SIZE); --- 1342,1346 ---- int rval; ! ISNS_DBKey read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,&key->val.port_name,PORT_NAME_SIZE); *************** *** 1374,1378 **** int rval; ! ISNS_Key read_key; read_key.tag = NODE_NAME_KEY; memcpy(&read_key.val,&db_node_name.v,ISNS_NODE_NAME_SIZE); --- 1374,1378 ---- int rval; ! ISNS_DBKey read_key; read_key.tag = NODE_NAME_KEY; memcpy(&read_key.val,&db_node_name.v,ISNS_NODE_NAME_SIZE); *************** *** 1388,1392 **** char *pname=GetNodeData(pnode); ! ISNS_Key read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,pname,PORT_NAME_SIZE); --- 1388,1392 ---- char *pname=GetNodeData(pnode); ! ISNS_DBKey read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,pname,PORT_NAME_SIZE); *************** *** 1412,1418 **** strncpy ( db_entity_id.id, (char *)&key->val, sizeof(db_entity_id.id) ); ! ISNS_Key read_key; read_key.tag = ENTITY_ID_KEY; ! strcpy(read_key.val.node_name.v,db_entity_id.id); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 1412,1418 ---- strncpy ( db_entity_id.id, (char *)&key->val, sizeof(db_entity_id.id) ); ! ISNS_DBKey read_key; read_key.tag = ENTITY_ID_KEY; ! strcpy(read_key.val.node_key.v,db_entity_id.id); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 1426,1430 **** { /* Fetch the Port Object */ ! ISNS_Key read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,GetNodeData(pnode),PORT_NAME_SIZE); --- 1426,1430 ---- { /* Fetch the Port Object */ ! ISNS_DBKey read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,GetNodeData(pnode),PORT_NAME_SIZE); *************** *** 1460,1464 **** db_portal.ip_port=attr->val.ip_port; ! ISNS_Key read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,&db_portal,sizeof(SOIP_Portal_Key)); --- 1460,1464 ---- db_portal.ip_port=attr->val.ip_port; ! ISNS_DBKey read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,&db_portal,sizeof(SOIP_Portal_Key)); *************** *** 1471,1477 **** { /* Fetch entity from hash */ ! ISNS_Key read_key; read_key.tag = ENTITY_ID_KEY; ! strcpy(read_key.val.entity_id.id,p_portal->entity_id.id); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 1471,1477 ---- { /* Fetch entity from hash */ ! ISNS_DBKey read_key; read_key.tag = ENTITY_ID_KEY; ! strcpy(read_key.val.entity_key.id,p_portal->entity_id.id); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 1484,1488 **** while ((pnode=GetNextNode(&p_entity->ifcp_node_list, pnode))) { ! ISNS_Key read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,GetNodeData(pnode),PORT_NAME_SIZE); --- 1484,1488 ---- while ((pnode=GetNextNode(&p_entity->ifcp_node_list, pnode))) { ! ISNS_DBKey read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,GetNodeData(pnode),PORT_NAME_SIZE); *************** *** 1509,1513 **** else { ! ISNS_Key key = { 0 }; key.tag = PORT_NAME_KEY; --- 1509,1513 ---- else { ! ISNS_DBKey key = { 0 }; key.tag = PORT_NAME_KEY; *************** *** 1615,1621 **** memcpy ((char *) db_node_name.v, (char *) &key->val, key->len); ! ISNS_Key read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_name.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 1615,1621 ---- memcpy ((char *) db_node_name.v, (char *) &key->val, key->len); ! ISNS_DBKey read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_key.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 1643,1647 **** void *ptr; key = (ISNS_Key *)(key_indx[nodeIdxKeyIndex]); ! ISNS_Key idx_key; idx_key.tag = ISCSI_IDX_KEY; idx_key.val.idx.index = key->val.index; --- 1643,1647 ---- void *ptr; key = (ISNS_Key *)(key_indx[nodeIdxKeyIndex]); ! ISNS_DBKey idx_key; idx_key.tag = ISCSI_IDX_KEY; idx_key.val.idx.index = key->val.index; *************** *** 1662,1668 **** strncpy ((char *) db_node_name.v, ptr, sizeof(db_node_name.v) ); ! ISNS_Key read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_name.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 1662,1668 ---- strncpy ((char *) db_node_name.v, ptr, sizeof(db_node_name.v) ); ! ISNS_DBKey read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_key.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 1704,1710 **** { /* Fetch the iSCSI Node */ ! ISNS_Key read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_name.v,GetNodeData(pnode)); rval = ISNSdbRead(&read_key,&entry2); if (rval != SUCCESS) --- 1704,1710 ---- { /* Fetch the iSCSI Node */ ! ISNS_DBKey read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_key.v,GetNodeData(pnode)); rval = ISNSdbRead(&read_key,&entry2); if (rval != SUCCESS) *************** *** 1745,1749 **** memcpy (db_portal.ip_addr.v, key->val.ip_addr.v, key->len); ! ISNS_Key read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,&db_portal,sizeof(SOIP_Portal_Key)); --- 1745,1749 ---- memcpy (db_portal.ip_addr.v, key->val.ip_addr.v, key->len); ! ISNS_DBKey read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,&db_portal,sizeof(SOIP_Portal_Key)); *************** *** 1756,1762 **** { /* Fetch ENTITY */ ! ISNS_Key read_key; read_key.tag = ENTITY_ID_KEY; ! strcpy(read_key.val.entity_id.id,p_portal->entity_id.id); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 1756,1762 ---- { /* Fetch ENTITY */ ! ISNS_DBKey read_key; read_key.tag = ENTITY_ID_KEY; ! strcpy(read_key.val.entity_key.id,p_portal->entity_id.id); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 1770,1776 **** { /* Fetch the iSCSI Node */ ! ISNS_Key read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_name.v,GetNodeData(pnode)); rval = ISNSdbRead(&read_key,&entry2); if (rval != SUCCESS) --- 1770,1776 ---- { /* Fetch the iSCSI Node */ ! ISNS_DBKey read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_key.v,GetNodeData(pnode)); rval = ISNSdbRead(&read_key,&entry2); if (rval != SUCCESS) *************** *** 1792,1796 **** else { ! ISNS_Key qkey = { 0 }; DEBUG_0 (isns_query_debug &1,search node table); --- 1792,1796 ---- else { ! ISNS_DBKey qkey = { 0 }; DEBUG_0 (isns_query_debug &1,search node table); *************** *** 1857,1861 **** int ddKeyIndex; int ddsKeyIndex; ! ISNS_Key qkey = { 0 }; ISNS_Key *key; ISNS_Attr *src_attr; --- 1857,1861 ---- int ddKeyIndex; int ddsKeyIndex; ! ISNS_DBKey qkey = { 0 }; ISNS_Key *key; ISNS_Attr *src_attr; *************** *** 2032,2036 **** if (key->len && key->val.index) { ! ISNS_Key read_key; read_key.tag = ISCSI_IDX_KEY; read_key.val.idx.index = key->val.index; --- 2032,2036 ---- if (key->len && key->val.index) { ! ISNS_DBKey read_key; read_key.tag = ISCSI_IDX_KEY; read_key.val.idx.index = key->val.index; *************** *** 2111,2115 **** if (key->len && key->val.index) { ! ISNS_Key read_key; read_key.tag = ENTITY_IDX_KEY; read_key.val.idx.index = key->val.index; --- 2111,2115 ---- if (key->len && key->val.index) { ! ISNS_DBKey read_key; read_key.tag = ENTITY_IDX_KEY; read_key.val.idx.index = key->val.index; *************** *** 2219,2223 **** if (key->len && key->val.index) { ! ISNS_Key read_key; read_key.tag = PORTAL_IDX_KEY; read_key.val.idx.index = key->val.index; --- 2219,2223 ---- if (key->len && key->val.index) { ! ISNS_DBKey read_key; read_key.tag = PORTAL_IDX_KEY; read_key.val.idx.index = key->val.index; *************** *** 2313,2317 **** char *attr_indx[SNS_MAX_ATTRS]; char *key_indx[SNS_MAX_ATTRS]; ! ISNS_Key key; int rval; --- 2313,2317 ---- char *attr_indx[SNS_MAX_ATTRS]; char *key_indx[SNS_MAX_ATTRS]; ! ISNS_DBKey key; int rval; *************** *** 2330,2334 **** dds_key.id = p_attr->val.dds_id; key.tag = DDS_ID_KEY; ! key.val.dds_id = dds_key.id; rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) --- 2330,2334 ---- dds_key.id = p_attr->val.dds_id; key.tag = DDS_ID_KEY; ! key.val.dds_key.id = dds_key.id; rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) *************** *** 2392,2396 **** /* Entity ID found in key */ p_attr = (ISNS_Attr *)(key_indx[entityKeyIndex]); ! ISNS_Key read_key; read_key.tag = ENTITY_IDX_KEY; read_key.val.idx.index = p_attr->val.index; --- 2392,2396 ---- /* Entity ID found in key */ p_attr = (ISNS_Attr *)(key_indx[entityKeyIndex]); ! ISNS_DBKey read_key; read_key.tag = ENTITY_IDX_KEY; read_key.val.idx.index = p_attr->val.index; *************** *** 2481,2487 **** /* Fetch DDS */ dd_key.id = p_attr->val.dd_id; ! ISNS_Key read_key; read_key.tag = DD_ID_KEY; ! read_key.val.dd_id = dd_key.id; rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 2481,2487 ---- /* Fetch DDS */ dd_key.id = p_attr->val.dd_id; ! ISNS_DBKey read_key; read_key.tag = DD_ID_KEY; ! read_key.val.dd_key.id = dd_key.id; rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 2816,2820 **** { DEBUG_0 (isns_query_debug &1, get portal); ! ISNS_Key read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_Portal_Key)); --- 2816,2820 ---- { DEBUG_0 (isns_query_debug &1, get portal); ! ISNS_DBKey read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_Portal_Key)); *************** *** 3199,3208 **** SOIP_DD_Key dds_key; SOIP_DB_Entry lentry; ! ISNS_Key key; int rval; dds_key.id = dds_id; key.tag = DDS_ID_KEY; ! key.val.dds_id = dds_id; rval = ISNSdbRead(&key,&lentry); if (rval != SUCCESS) --- 3199,3208 ---- SOIP_DD_Key dds_key; SOIP_DB_Entry lentry; ! ISNS_DBKey key; int rval; dds_key.id = dds_id; key.tag = DDS_ID_KEY; ! key.val.dds_key.id = dds_id; rval = ISNSdbRead(&key,&lentry); if (rval != SUCCESS) *************** *** 3276,3282 **** /* Fetch DD */ dd_key.id = *(uint32_t *)GetNodeData(pnode); ! ISNS_Key read_key; read_key.tag = DD_ID_KEY; ! read_key.val.dd_id = dd_key.id; rval = ISNSdbRead(&read_key,&lentry2); if (rval != SUCCESS) --- 3276,3282 ---- /* Fetch DD */ dd_key.id = *(uint32_t *)GetNodeData(pnode); ! ISNS_DBKey read_key; read_key.tag = DD_ID_KEY; ! read_key.val.dd_key.id = dd_key.id; rval = ISNSdbRead(&read_key,&lentry2); if (rval != SUCCESS) *************** *** 3302,3306 **** SOIP_Ifcp *p_node; SOIP_DB_Entry lentry; ! ISNS_Key key; int rval; --- 3302,3306 ---- SOIP_Ifcp *p_node; SOIP_DB_Entry lentry; ! ISNS_DBKey key; int rval; *************** *** 3375,3384 **** SOIP_Iscsi *p_node; SOIP_DB_Entry lentry; ! ISNS_Key key; int rval; /* Fetch the node */ key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_name.v,nodename); rval = ISNSdbRead(&key,&lentry); if (rval != SUCCESS) --- 3375,3384 ---- SOIP_Iscsi *p_node; SOIP_DB_Entry lentry; ! ISNS_DBKey key; int rval; /* Fetch the node */ key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_key.v,nodename); rval = ISNSdbRead(&key,&lentry); if (rval != SUCCESS) *************** *** 3445,3449 **** SOIP_Iscsi *p_node; time_t t; ! ISNS_Key key; int rval; --- 3445,3449 ---- SOIP_Iscsi *p_node; time_t t; ! ISNS_DBKey key; int rval; *************** *** 3460,3464 **** key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_name.v,db_node_name.v); rval = ISNSdbRead(&key,&lentry); --- 3460,3464 ---- key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_key.v,db_node_name.v); rval = ISNSdbRead(&key,&lentry); *************** *** 3483,3487 **** key.tag = ENTITY_ID_KEY; ! strcpy(key.val.entity_id.id,db_entity.id); ISNSdbWrite(&key,lentry); --- 3483,3487 ---- key.tag = ENTITY_ID_KEY; ! strcpy(key.val.entity_key.id,db_entity.id); ISNSdbWrite(&key,lentry); Index: iSNSesi.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSesi.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** iSNSesi.c 15 Dec 2006 18:17:19 -0000 1.8 --- iSNSesi.c 18 Dec 2006 19:02:47 -0000 1.9 *************** *** 219,223 **** ISNS_DBKey key; key.tag = ENTITY_ID_KEY; ! strcpy(key.val.entity_id.id,db_entity_id.id); rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) --- 219,223 ---- ISNS_DBKey key; key.tag = ENTITY_ID_KEY; ! strcpy(key.val.entity_key.id,db_entity_id.id); rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) Index: iSNSdereg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSdereg.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** iSNSdereg.c 15 Dec 2006 18:17:19 -0000 1.15 --- iSNSdereg.c 18 Dec 2006 19:02:47 -0000 1.16 *************** *** 207,212 **** int updated_dd_list_size; int memberRemovedFlag; ! ISNS_Key delete_key; ! ISNS_Key read_key; --- 207,212 ---- int updated_dd_list_size; int memberRemovedFlag; ! ISNS_DBKey delete_key; ! ISNS_DBKey read_key; *************** *** 215,219 **** dds_key.id = id; read_key.tag = DDS_ID_KEY; ! read_key.val.dds_id = id; rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 215,219 ---- dds_key.id = id; read_key.tag = DDS_ID_KEY; ! read_key.val.dds_key.id = id; rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 242,246 **** dd_key.id = *(uint32_t *)GetNodeData(pnode); read_key.tag = DD_ID_KEY; ! read_key.val.dd_id = dd_key.id; rval = ISNSdbRead(&read_key,&entry2); if (rval != SUCCESS) --- 242,246 ---- dd_key.id = *(uint32_t *)GetNodeData(pnode); read_key.tag = DD_ID_KEY; ! read_key.val.dd_key.id = dd_key.id; rval = ISNSdbRead(&read_key,&entry2); if (rval != SUCCESS) *************** *** 269,275 **** /* Store Entry */ ! ISNS_Key update_key; update_key.tag = DD_ID_KEY; ! update_key.val.dd_id = dd_key.id; rval = ISNSdbWrite(&update_key,entry2); } --- 269,275 ---- /* Store Entry */ ! ISNS_DBKey update_key; update_key.tag = DD_ID_KEY; ! update_key.val.dd_key.id = dd_key.id; rval = ISNSdbWrite(&update_key,entry2); } *************** *** 279,283 **** dd_key.id = dlist_node[ count ]; read_key.tag = DD_ID_KEY; ! read_key.val.dd_id = dd_key.id; ISNSdbRead(&read_key,&entry2); p_dd = (SOIP_Dd *)&entry2.data; --- 279,283 ---- dd_key.id = dlist_node[ count ]; read_key.tag = DD_ID_KEY; ! read_key.val.dd_key.id = dd_key.id; ISNSdbRead(&read_key,&entry2); p_dd = (SOIP_Dd *)&entry2.data; *************** *** 295,299 **** delete_key.tag = DDS_ID_KEY; ! delete_key.val.dds_id = dds_key.id; if ( ISNSdbDelete (&delete_key) != SUCCESS) { --- 295,299 ---- delete_key.tag = DDS_ID_KEY; ! delete_key.val.dds_key.id = dds_key.id; if ( ISNSdbDelete (&delete_key) != SUCCESS) { *************** *** 327,331 **** int updated_dd_list_size; int memberRemovedFlag; ! ISNS_Key read_key; /* int wasActiveFlag; */ --- 327,331 ---- int updated_dd_list_size; int memberRemovedFlag; ! ISNS_DBKey read_key; /* int wasActiveFlag; */ *************** *** 336,340 **** dds_key.id = id; read_key.tag = DDS_ID_KEY; ! read_key.val.dds_id = id; rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 336,340 ---- dds_key.id = id; read_key.tag = DDS_ID_KEY; ! read_key.val.dds_key.id = id; rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 363,375 **** if (key->tag == ISNS_DD_ID) { ! if (ISNS_NO_ERR != Remove_dd_from_dds (p_dds, key->val.dd_key.id)) { return (ISNS_UNKNOWN_ERR); } ! dd_key.id = key->val.dd_key.id; ! ISNS_Key read_key; read_key.tag = DD_ID_KEY; ! read_key.val.dd_id = dd_key.id; rval = ISNSdbRead(&read_key,&entry2); if (rval != SUCCESS) --- 363,375 ---- if (key->tag == ISNS_DD_ID) { ! if (ISNS_NO_ERR != Remove_dd_from_dds (p_dds, key->val.dd_id)) { return (ISNS_UNKNOWN_ERR); } ! dd_key.id = key->val.dd_id; ! ISNS_DBKey read_key; read_key.tag = DD_ID_KEY; ! read_key.val.dd_key.id = dd_key.id; rval = ISNSdbRead(&read_key,&entry2); if (rval != SUCCESS) *************** *** 394,400 **** /* Store Entry */ ! ISNS_Key update_key; update_key.tag = DD_ID_KEY; ! update_key.val.dd_id = dd_key.id; ISNSdbWrite(&update_key,entry2); } --- 394,400 ---- /* Store Entry */ ! ISNS_DBKey update_key; update_key.tag = DD_ID_KEY; ! update_key.val.dd_key.id = dd_key.id; ISNSdbWrite(&update_key,entry2); } *************** *** 407,413 **** dd_key.id = dlist_node[ kk ]; ! ISNS_Key read_key; read_key.tag = DD_ID_KEY; ! read_key.val.dd_id = dd_key.id; rval = ISNSdbRead(&read_key,&entry2); if (rval != SUCCESS) --- 407,413 ---- dd_key.id = dlist_node[ kk ]; ! ISNS_DBKey read_key; read_key.tag = DD_ID_KEY; ! read_key.val.dd_key.id = dd_key.id; rval = ISNSdbRead(&read_key,&entry2); if (rval != SUCCESS) *************** *** 425,431 **** /* Store Entry */ ! ISNS_Key add_key; add_key.tag = DDS_ID_KEY; ! add_key.val.dds_id = id; rval = ISNSdbWrite(&add_key,entry); return (ISNS_NO_ERR); --- 425,431 ---- /* Store Entry */ ! ISNS_DBKey add_key; add_key.tag = DDS_ID_KEY; ! add_key.val.dds_key.id = id; rval = ISNSdbWrite(&add_key,entry); return (ISNS_NO_ERR); *************** *** 461,465 **** if (ISNS_NO_ERR != (rval = ! SNSdbRemoveAttrDDS_Member (key->val.dd_key.id, attr_indx, (ISNS_Attr *)src_attr, p_rspmsg))) return (rval); --- 461,465 ---- if (ISNS_NO_ERR != (rval = ! SNSdbRemoveAttrDDS_Member (key->val.dd_id, attr_indx, (ISNS_Attr *)src_attr, p_rspmsg))) return (rval); *************** *** 468,472 **** if (ISNS_NO_ERR != (rval = ! SNSdbRemoveAttrDDS_Entry (key->val.dd_key.id, (ISNS_Attr *)src_attr, p_rspmsg))) { --- 468,472 ---- if (ISNS_NO_ERR != (rval = ! SNSdbRemoveAttrDDS_Entry (key->val.dd_id, (ISNS_Attr *)src_attr, p_rspmsg))) { *************** *** 515,519 **** if (ISNS_NO_ERR != (rval = ! SNSdbRemoveDD_Member (key->val.dd_key.id, attr_indx, (ISNS_Attr *)src_attr, p_rspmsg))) { --- 515,519 ---- if (ISNS_NO_ERR != (rval = ! SNSdbRemoveDD_Member (key->val.dd_id, attr_indx, (ISNS_Attr *)src_attr, p_rspmsg))) { *************** *** 523,527 **** else if (ISNS_NO_ERR != (rval = ! SNSdbRemoveDD_Entry (key->val.dd_key.id, (ISNS_Attr *)src_attr, p_rspmsg))) { --- 523,527 ---- else if (ISNS_NO_ERR != (rval = ! SNSdbRemoveDD_Entry (key->val.dd_id, (ISNS_Attr *)src_attr, p_rspmsg))) { *************** *** 556,560 **** int rval; ISNS_LIST_NODE *pnode; ! ISNS_Key key; DEBUG_1 ( isns_dereg_debug & 1, (Deregistering Entity %s),p_entity_id); --- 556,560 ---- int rval; ISNS_LIST_NODE *pnode; ! ISNS_DBKey key; DEBUG_1 ( isns_dereg_debug & 1, (Deregistering Entity %s),p_entity_id); *************** *** 567,571 **** /* read entity from database */ key.tag = ENTITY_ID_KEY; ! strcpy(key.val.entity_id.id,p_entity_id); rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) --- 567,571 ---- /* read entity from database */ key.tag = ENTITY_ID_KEY; ! strcpy(key.val.entity_key.id,p_entity_id); rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) *************** *** 617,621 **** /* Remove Entity In Entity Index Database */ ! ISNS_Key remove_key; remove_key.tag = ENTITY_IDX_KEY; remove_key.val.idx.index = p_entity->entity_index; --- 617,621 ---- /* Remove Entity In Entity Index Database */ ! ISNS_DBKey remove_key; remove_key.tag = ENTITY_IDX_KEY; remove_key.val.idx.index = p_entity->entity_index; *************** *** 652,656 **** SOIP_DD_Key dd_key; ISNS_LIST_NODE *pnode; ! ISNS_Key delete_key; DEBUG_0 (isns_dereg_debug & 1, (Deregistering IFCP WWPN)); --- 652,656 ---- SOIP_DD_Key dd_key; ISNS_LIST_NODE *pnode; ! ISNS_DBKey delete_key; DEBUG_0 (isns_dereg_debug & 1, (Deregistering IFCP WWPN)); *************** *** 665,669 **** memset (buffer, 0, PORT_NAME_SIZE); memcpy (buffer, ifcp_node_key, PORT_NAME_SIZE); ! ISNS_Key read_key; read_key.tag = PORT_NAME_KEY; strcpy(read_key.val.port_name.v,(char *)buffer); --- 665,669 ---- memset (buffer, 0, PORT_NAME_SIZE); memcpy (buffer, ifcp_node_key, PORT_NAME_SIZE); ! ISNS_DBKey read_key; read_key.tag = PORT_NAME_KEY; strcpy(read_key.val.port_name.v,(char *)buffer); *************** *** 679,683 **** { dd_key.id = *(uint32_t *) GetNodeData(pnode); ! ISNS_Key read_key; read_key.tag = PORT_NAME_KEY; strcpy(read_key.val.port_name.v,GetNodeData(pnode)); --- 679,683 ---- { dd_key.id = *(uint32_t *) GetNodeData(pnode); ! ISNS_DBKey read_key; read_key.tag = PORT_NAME_KEY; strcpy(read_key.val.port_name.v,GetNodeData(pnode)); *************** *** 694,700 **** /* Store Entry */ ! ISNS_Key key; key.tag = PORT_NAME_KEY; ! key.val.dd_id = dd_key.id; rval = ISNSdbWrite(&key,entry5); } --- 694,700 ---- /* Store Entry */ ! ISNS_DBKey key; key.tag = PORT_NAME_KEY; ! key.val.dd_key.id = dd_key.id; rval = ISNSdbWrite(&key,entry5); } *************** *** 715,721 **** memcpy (db_node_name.v, p_ifcp_node->node_name.v, ISNS_NODE_NAME_SIZE); db_node_name.v[8] = (char)SOIP_DB_Node_Id; ! ISNS_Key read_key; read_key.tag = NODE_NAME_KEY; ! strcpy(read_key.val.node_name.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry3); if (rval != SUCCESS) --- 715,721 ---- memcpy (db_node_name.v, p_ifcp_node->node_name.v, ISNS_NODE_NAME_SIZE); db_node_name.v[8] = (char)SOIP_DB_Node_Id; ! ISNS_DBKey read_key; read_key.tag = NODE_NAME_KEY; ! strcpy(read_key.val.node_key.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry3); if (rval != SUCCESS) *************** *** 731,737 **** } ! ISNS_Key key; key.tag = NODE_NAME_KEY; ! strcpy(key.val.node_name.v,db_node_name.v); rval = ISNSdbWrite(&key,entry3); --- 731,737 ---- } ! ISNS_DBKey key; key.tag = NODE_NAME_KEY; ! strcpy(key.val.node_key.v,db_node_name.v); rval = ISNSdbWrite(&key,entry3); *************** *** 760,766 **** } ! ISNS_Key key; key.tag = ENTITY_ID_KEY; ! strcpy(key.val.entity_id.id,p_ifcp_node->entity_id.id); rval = ISNSdbWrite(&key,entry4); --- 760,766 ---- } ! ISNS_DBKey key; key.tag = ENTITY_ID_KEY; ! strcpy(key.val.entity_key.id,p_ifcp_node->entity_id.id); rval = ISNSdbWrite(&key,entry4); *************** *** 776,780 **** { /* Fetch Portal */ ! ISNS_Key read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_Portal_Key)); --- 776,780 ---- { /* Fetch Portal */ ! ISNS_DBKey read_key; read_key.tag = PORTAL_ID_KEY; memcpy(&read_key.val,GetNodeData(pnode),sizeof(SOIP_Portal_Key)); *************** *** 1048,1054 **** SOIP_DD_Key dd_key; ISNS_LIST_NODE *pnode; ! ISNS_Key key; ! ISNS_Key entity_key; ! ISNS_Key remove_key; DEBUG_0 (isns_dereg_debug & 1, (Deregistering iSCSI Node)); --- 1048,1054 ---- SOIP_DD_Key dd_key; ISNS_LIST_NODE *pnode; ! ISNS_DBKey key; ! ISNS_DBKey entity_key; ! ISNS_DBKey remove_key; DEBUG_0 (isns_dereg_debug & 1, (Deregistering iSCSI Node)); *************** *** 1056,1060 **** scn_bitmap = 0; key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_name.v,iscsi_node_key); rval = ISNSdbRead(&key,&entry2); if (rval != SUCCESS) --- 1056,1060 ---- scn_bitmap = 0; key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_key.v,iscsi_node_key); rval = ISNSdbRead(&key,&entry2); if (rval != SUCCESS) *************** *** 1079,1085 **** dd_key.id = *(uint32_t *)GetNodeData(pnode); ! ISNS_Key read_key; read_key.tag = DD_ID_KEY; ! read_key.val.dd_id = dd_key.id; rval = ISNSdbRead(&read_key,&entry5); if (rval != SUCCESS) --- 1079,1085 ---- dd_key.id = *(uint32_t *)GetNodeData(pnode); ! ISNS_DBKey read_key; read_key.tag = DD_ID_KEY; ! read_key.val.dd_key.id = dd_key.id; rval = ISNSdbRead(&read_key,&entry5); if (rval != SUCCESS) *************** *** 1115,1121 **** /* Store Entry */ ! ISNS_Key key; key.tag = DD_ID_KEY; ! key.val.dd_id = dd_key.id; rval = ISNSdbWrite(&key,entry5); } --- 1115,1121 ---- /* Store Entry */ ! ISNS_DBKey key; key.tag = DD_ID_KEY; ! key.val.dd_key.id = dd_key.id; rval = ISNSdbWrite(&key,entry5); } *************** *** 1123,1127 **** /* read entity from database */ entity_key.tag = ENTITY_ID_KEY; ! strcpy(entity_key.val.entity_id.id,p_node->entity_id.id); rval = ISNSdbRead(&entity_key,&entry4); if (rval != SUCCESS) --- 1123,1127 ---- /* read entity from database */ entity_key.tag = ENTITY_ID_KEY; ! strcpy(entity_key.val.entity_key.id,p_node->entity_id.id); rval = ISNSdbRead(&entity_key,&entry4); if (rval != SUCCESS) *************** *** 1176,1181 **** SOIP_DB_Node_Name db_node_name; ISNS_LIST_NODE *pnode; ! ISNS_Key delete_key; ! ISNS_Key read_key; DEBUG_0 (isns_dereg_debug & 1, (Deregistering FC Node)); --- 1176,1181 ---- SOIP_DB_Node_Name db_node_name; ISNS_LIST_NODE *pnode; ! ISNS_DBKey delete_key; ! ISNS_DBKey read_key; DEBUG_0 (isns_dereg_debug & 1, (Deregistering FC Node)); *************** *** 1187,1191 **** read_key.tag = NODE_NAME_KEY; ! strcpy(read_key.val.node_name.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry4); if (rval != SUCCESS) --- 1187,1191 ---- read_key.tag = NODE_NAME_KEY; ! strcpy(read_key.val.node_key.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry4); if (rval != SUCCESS) *************** *** 1197,1201 **** while ((pnode=GetNextNode(&p_fc_node->port_list, pnode))) { ! strcpy(read_key.val.node_name.v,GetNodeData(pnode)); rval = ISNSdbRead(&read_key,&entry5); if (rval != SUCCESS) --- 1197,1201 ---- while ((pnode=GetNextNode(&p_fc_node->port_list, pnode))) { ! strcpy(read_key.val.node_key.v,GetNodeData(pnode)); rval = ISNSdbRead(&read_key,&entry5); if (rval != SUCCESS) *************** *** 1213,1217 **** delete_key.tag = NODE_NAME_KEY; ! strcpy(delete_key.val.node_name.v,db_node_name.v); ISNSdbDelete (&delete_key); --- 1213,1217 ---- delete_key.tag = NODE_NAME_KEY; ! strcpy(delete_key.val.node_key.v,db_node_name.v); ISNSdbDelete (&delete_key); *************** *** 1234,1238 **** PORTAL_LIST_ENTRY portalListEntry; char *p_iscsi_name; ! ISNS_Key read_key; DEBUG_0 (isns_dereg_debug & 1, (Deregistering Portal)); --- 1234,1238 ---- PORTAL_LIST_ENTRY portalListEntry; char *p_iscsi_name; ! ISNS_DBKey read_key; DEBUG_0 (isns_dereg_debug & 1, (Deregistering Portal)); *************** *** 1263,1267 **** } ! ISNS_Key remove_key; remove_key.tag = PORTAL_IDX_KEY; remove_key.val.idx.index = p_portal->portal_index; --- 1263,1267 ---- } ! ISNS_DBKey remove_key; remove_key.tag = PORTAL_IDX_KEY; remove_key.val.idx.index = p_portal->portal_index; *************** *** 1272,1276 **** read_key.tag = ENTITY_ID_KEY; ! strcpy(read_key.val.entity_id.id,p_portal->entity_id.id); rval = ISNSdbRead(&read_key,&entry4); if (rval != SUCCESS) --- 1272,1276 ---- read_key.tag = ENTITY_ID_KEY; ! strcpy(read_key.val.entity_key.id,p_portal->entity_id.id); rval = ISNSdbRead(&read_key,&entry4); if (rval != SUCCESS) *************** *** 1344,1349 **** ISNS_LIST_NODE *pnode; int memberRemovedFlag; ! ISNS_Key delete_key; ! ISNS_Key key; --- 1344,1349 ---- ISNS_LIST_NODE *pnode; int memberRemovedFlag; ! ISNS_DBKey delete_key; ! ISNS_DBKey key; *************** *** 1351,1355 **** key.tag = DD_ID_KEY; ! key.val.dd_id = id; rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) --- 1351,1355 ---- key.tag = DD_ID_KEY; ! key.val.dd_key.id = id; rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) *************** *** 1426,1435 **** SOIP_DD_Key dds_key; ISNS_LIST_NODE *pnode2; ! ISNS_Key key; dds_key.id = *(uint32_t *) GetNodeData(pnode); key.tag = DDS_ID_KEY; ! key.val.dds_id = dds_key.id; rval = ISNSdbRead(&key,&entry2); if (rval != SUCCESS) --- 1426,1435 ---- SOIP_DD_Key dds_key; ISNS_LIST_NODE *pnode2; ! ISNS_DBKey key; dds_key.id = *(uint32_t *) GetNodeData(pnode); key.tag = DDS_ID_KEY; ! key.val.dds_key.id = dds_key.id; rval = ISNSdbRead(&key,&entry2); if (rval != SUCCESS) *************** *** 1445,1449 **** /* Store Entry */ key.tag = DDS_ID_KEY; ! key.val.dds_id = dds_key.id; rval = ISNSdbWrite(&key,entry2); } --- 1445,1449 ---- /* Store Entry */ key.tag = DDS_ID_KEY; ! key.val.dds_key.id = dds_key.id; rval = ISNSdbWrite(&key,entry2); } *************** *** 1454,1458 **** delete_key.tag=DD_ID_KEY; ! delete_key.val.dd_id = dd_key.id; if ( ISNSdbDelete(&delete_key) == ERROR ) { --- 1454,1458 ---- delete_key.tag=DD_ID_KEY; ! delete_key.val.dd_key.id = dd_key.id; if ( ISNSdbDelete(&delete_key) == ERROR ) { *************** *** 1479,1488 **** SOIP_DD_Key dd_key; int removeMemberFlag; ! ISNS_Key key; dd_key.id = id; key.tag = DD_ID_KEY; ! key.val.dd_id = dd_key.id; rval = ISNSdbRead(&key,&entry); if (rval !=SUCCESS) --- 1479,1488 ---- SOIP_DD_Key dd_key; int removeMemberFlag; ! ISNS_DBKey key; dd_key.id = id; key.tag = DD_ID_KEY; ! key.val.dd_key.id = dd_key.id; rval = ISNSdbRead(&key,&entry); if (rval !=SUCCESS) *************** *** 1547,1551 **** /* Store Entry */ key.tag = DD_ID_KEY; ! key.val.dd_id = dd_key.id; rval = ISNSdbWrite(&key,entry); --- 1547,1551 ---- /* Store Entry */ key.tag = DD_ID_KEY; ! key.val.dd_key.id = dd_key.id; rval = ISNSdbWrite(&key,entry); *************** *** 1606,1614 **** int activeFlag; SOIP_DD_Key dd_key; ! ISNS_Key key; int rval; key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_name.v,p_node_name); rval = ISNSdbRead(&key,&lentry); if (rval != SUCCESS) --- 1606,1614 ---- int activeFlag; SOIP_DD_Key dd_key; ! ISNS_DBKey key; int rval; key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_key.v,p_node_name); rval = ISNSdbRead(&key,&lentry); if (rval != SUCCESS) *************** *** 1635,1639 **** dd_key.id = id; key.tag = DD_ID_KEY; ! key.val.dd_id = id; rval = ISNSdbRead(&key,&lentry2); if (rval != SUCCESS) --- 1635,1639 ---- dd_key.id = id; key.tag = DD_ID_KEY; ! key.val.dd_key.id = id; rval = ISNSdbRead(&key,&lentry2); if (rval != SUCCESS) *************** *** 1651,1655 **** key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_name.v,p_node_name); ISNSdbWrite(&key,lentry); --- 1651,1655 ---- key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_key.v,p_node_name); ISNSdbWrite(&key,lentry); *************** *** 1668,1672 **** SOIP_DB_Entry lentry; ISNS_LIST_NODE *p_lnode; ! ISNS_Key key; int rval; --- 1668,1672 ---- SOIP_DB_Entry lentry; ISNS_LIST_NODE *p_lnode; ! ISNS_DBKey key; int rval; *************** *** 1815,1821 **** memcpy ((char *) db_node_name.v, (char *) &key->val, key->len); ! ISNS_Key read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_name.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) --- 1815,1821 ---- memcpy ((char *) db_node_name.v, (char *) &key->val, key->len); ! ISNS_DBKey read_key; read_key.tag = ISCSI_ID_KEY; ! strcpy(read_key.val.node_key.v,db_node_name.v); rval = ISNSdbRead(&read_key,&entry); if (rval != SUCCESS) *************** *** 1830,1836 **** /* Store the node */ ! ISNS_Key key; key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_name.v,db_node_name.v); ISNSdbWrite(&key,entry); } --- 1830,1836 ---- /* Store the node */ ! ISNS_DBKey key; key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_key.v,db_node_name.v); ISNSdbWrite(&key,entry); } *************** *** 1839,1843 **** key = (ISNS_Key *)(key_indx[ifcpKeyIndex]); ! ISNS_Key read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,&key->val,PORT_NAME_SIZE); --- 1839,1843 ---- key = (ISNS_Key *)(key_indx[ifcpKeyIndex]); ! ISNS_DBKey read_key; read_key.tag = PORT_NAME_KEY; memcpy(&read_key.val,&key->val,PORT_NAME_SIZE); *************** *** 1853,1857 **** /* Store the node */ ! ISNS_Key update_key; update_key.tag = PORT_NAME_KEY; strcpy(update_key.val.port_name.v,(char *)&key->val); --- 1853,1857 ---- /* Store the node */ ! ISNS_DBKey update_key; update_key.tag = PORT_NAME_KEY; strcpy(update_key.val.port_name.v,(char *)&key->val); *************** *** 1875,1881 **** /* Store the node */ ! ISNS_Key key; key.tag = ENTITY_ID_KEY; ! strcpy(key.val.entity_id.id,p_entity->eid.id); ISNSdbWrite(&key,entry); --- 1875,1881 ---- /* Store the node */ ! ISNS_DBKey key; key.tag = ENTITY_ID_KEY; ! strcpy(key.val.entity_key.id,p_entity->eid.id); ISNSdbWrite(&key,entry); *************** *** 1915,1919 **** ISNS_CheckEntities (void) { ! ISNS_Key key = { 0 }; SOIP_Entity *p_entity; time_t t; --- 1915,1919 ---- ISNS_CheckEntities (void) { ! ISNS_DBKey key = { 0 }; SOIP_Entity *p_entity; time_t t; Index: iSNSreg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSreg.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** iSNSreg.c 15 Dec 2006 18:17:19 -0000 1.15 --- iSNSreg.c 18 Dec 2006 19:02:47 -0000 1.16 *************** *** 255,259 **** PORTAL_LIST_ENTRY newPortalEntry; char *p_iscsi_name; ! ISNS_Key read_key; DEBUG_0 (isns_reg_debug & 1, (Registering Portal)); --- 255,259 ---- PORTAL_LIST_ENTRY newPortalEntry; char *p_iscsi_name; ! ISNS_DBKey read_key; DEBUG_0 (isns_reg_debug & 1, (Registering Portal)); *************** *** 412,416 **** p_portal->portal_index = ISNSGetNewPortalIdx(); ! ISNS_Key idx_key; idx_key.tag = PORTAL_IDX_KEY; idx_key.val.idx.index_type = PORTAL_IDX_KEY; --- 412,416 ---- p_portal->portal_index = ISNSGetNewPortalIdx(); ! ISNS_DBKey idx_key; idx_key.tag = PORTAL_IDX_KEY; idx_key.val.idx.index_type = PORTAL_IDX_KEY; *************** *** 440,446 **** DEBUG_0 (isns_reg_debug &1,Fetch entity); strncpy(db_entity_id.id, (char *)&attr->val, sizeof(db_entity_id.id)); ! ISNS_Key read_key; read_key.tag = ENTITY_ID_KEY; ! strcpy(read_key.val.entity_id.id,db_entity_id.id); rval = ISNSdbRead(&read_key,&entry); --- 440,446 ---- DEBUG_0 (isns_reg_debug &1,Fetch entity); strncpy(db_entity_id.id, (char *)&attr->val, sizeof(db_entity_id.id)); ! ISNS_DBKey read_key; read_key.tag = ENTITY_ID_KEY; ! strcpy(read_key.val.entity_key.id,db_entity_id.id); rval = ISNSdbRead(&read_key,&entry); *************** *** 641,645 **** /* Store the portal */ DEBUG_1 (isns_reg_debug &1,Store Portal:%s,db_portal.ip_addr.v); ! ISNS_Key update_key; update_key.tag = PORTAL_ID_KEY; memcpy(&update_key.val,&db_portal,sizeof(SOIP_Portal_Key)); --- 641,645 ---- /* Store the portal */ DEBUG_1 (isns_reg_debug &1,Store Portal:%s,db_portal.ip_addr.v); ! ISNS_DBKey update_key; update_key.tag = PORTAL_ID_KEY; memcpy(&update_key.val,&db_portal,sizeof(SOIP_Portal_Key)); *************** *** 701,705 **** int updateFlag; //char *p_iscsi_name; ! ISNS_Key read_key; DEBUG_0 (isns_reg_debug & 1, (Registering Portal)); --- 701,705 ---- int updateFlag; //char *p_iscsi_name; ! ISNS_DBKey read_key; DEBUG_0 (isns_reg_debug & 1, (Registering Portal)); *************** *** 895,899 **** /* Store the portal */ DEBUG_1 (isns_reg_debug &1,Store Portal Group:%s,db_portal_group.ip_addr.v); ! ISNS_Key update_key; update_key.tag = PORTAL_GROUP_ID_KEY; memcpy(&update_key.val,&db_portal_group,sizeof(SOIP_Portal_Group_Key)); --- 895,899 ---- /* Store the portal */ DEBUG_1 (isns_reg_debug &1,Store Portal Group:%s,db_portal_group.ip_addr.v); ! ISNS_DBKey update_key; update_key.tag = PORTAL_GROUP_ID_KEY; memcpy(&update_key.val,&db_portal_group,sizeof(SOIP_Portal_Group_Key)); *************** *** 976,981 **** int symIndex; char *p_sym; ! ISNS_Key add_key; ! ISNS_Key update_key; DEBUG_0 (isns_reg_debug & 1, (Registering DDS)); --- 976,981 ---- int symIndex; char *p_sym; ! ISNS_DBKey add_key; ! ISNS_DBKey update_key; DEBUG_0 (isns_reg_debug & 1, (Registering DDS)); *************** *** 1056,1062 **** } ! ISNS_Key read_key; read_key.tag = DDS_ID_KEY; ! read_key.val.dds_id = dds_key.id; rval = ISNSdbRead(&read_key,&entry); --- 1056,1062 ---- } ! ISNS_DBKey read_key; read_key.tag = DDS_ID_KEY; ! read_key.val.dds_key.id = dds_key.id; rval = ISNSdbRead(&read_key,&entry); *************** *** 1172,1176 **** /* ISNSDisplay_DDS ( p_dds, HI_DETAIL ); */ add_key.tag = DDS_ID_KEY; ! add_key.val.dds_id = dds_key.id; rval = ISNSdbWrite (&add_key,entry); if ( newRegFlag ) --- 1172,1176 ---- /* ISNSDisplay_DDS ( p_dds, HI_DETAIL ); */ add_key.tag = DDS_ID_KEY; ! add_key.val.dds_key.id = dds_key.id; rval = ISNSdbWrite (&add_key,entry); if ( newRegFlag ) *************** *** 1193,1199 **** /* Change status for all DD */ dd_key.id = dd_id; ! ISNS_Key key; key.tag = DD_ID_KEY; ! key.val.dd_id = dd_key.id; rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) --- 1193,1199 ---- /* Change status for all DD */ dd_key.id = dd_id; ! ISNS_DBKey key; key.tag = DD_ID_KEY; ! key.val.dd_key.id = dd_key.id; rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) *************** *** 1213,1217 **** /* Store Entry */ update_key.tag = DD_ID_KEY; ! update_key.val.dd_id = dd_id; ISNSdbWrite(&update_key,entry); } --- 1213,1217 ---- /* Store Entry */ update_key.tag = DD_ID_KEY; ! update_key.val.dd_key.id = dd_id; ISNSdbWrite(&update_key,entry); } *************** *** 1225,1231 **** dd_key.id = dlist_node[ count ]; ! ISNS_Key key; key.tag = DD_ID_KEY; ! key.val.dd_id = dd_key.id; rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) --- 1225,1231 ---- dd_key.id = dlist_node[ count ]; ! ISNS_DBKey key; key.tag = DD_ID_KEY; ! key.val.dd_key.id = dd_key.id; rval = ISNSdbRead(&key,&entry); if (rval != SUCCESS) *************** *** 1292,1297 **** int symIndex; uint32_t iscsi_idx; ! ISNS_Key add_key; ! ISNS_Key read_key; DEBUG_0 (isns_reg_debug & 1, (Registering DD)); --- 1292,1297 ---- int symIndex; uint32_t iscsi_idx; ! ISNS_DBKey add_key; ! ISNS_DBKey read_key; DEBUG_0 (isns_reg_debug & 1, (Registering DD)); *************** *** 1375,1379 **** read_key.tag = DD_ID_KEY; ! read_key.val.dd_id = dd_key.id; rval = ISNSdbRead(&read_key,&entry); p_dd = (SOIP_Dd *)&entry.data; --- 1375,1379 ---- read_key.tag = DD_ID_KEY; ! read_key.val.dd_key.id = dd_key.id; rval = ISNSdbRead(&read_key,&entry); p_dd = (SOIP_Dd *)&entry.data; *************** *** 1525,1529 **** DEBUG_1 (isns_reg_debug &1, now write dd record dds_list id:%i,entry.data.dd.dds_list.list_id); add_key.tag = DD_ID_KEY; ! add_key.val.dd_id = dd_key.id; rval = ISNSdbWrite(&add_key,entry); if ( newRegFlag ) --- 1525,1529 ---- DEBUG_1 (isns_reg_debug &1, now write dd record dds_list id:%i,entry.data.dd.dds_list.list_id); add_key.tag = DD_ID_KEY; ! add_key.val.dd_key.id = dd_key.id; rval = ISNSdbWrite(&add_key,entry); if ( newRegFlag ) *************** *** 1565,1569 **** SOIP_Dd_Member new_member; SOIP_Iscsi *p_node; ! ISNS_Key key; int rval; --- 1565,1569 ---- SOIP_Dd_Member new_member; SOIP_Iscsi *p_node; ! ISNS_DBKey key; int rval; *************** *** 1583,1587 **** /* Fetch iSCSI Node */ key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_name.v,ptr); rval = ISNSdbRead(&key,&entry2); --- 1583,1587 ---- /* Fetch iSCSI Node */ key.tag = ISCSI_ID_KEY; ! strcpy(key.val.node_key.v,ptr); rval = ISNSdbRead(&key,&entry2); *************** *** 1592,1596 **** new_member.node_idx = ISNSGetNewISCSIIdx(); ! ISNS_Key idx_key; idx_key.tag = ISCSI_IDX_KEY; idx_key.val.idx.index_type = ISCSI_IDX_KEY; --- 1592,1596 ---- new_member.node_idx = ISNSGetNewISCSIIdx(); ! ISNS_DBKey idx_key; idx_key.tag = ISCSI_IDX_KEY; idx_key.val.idx.index_type = ISCSI_IDX_KEY; *************** *** 1642,1646 **** ISNS_LIST_N... [truncated message content] |
From: Robert W. <wrw...@us...> - 2006-12-18 19:02:51
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/include In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv10355/include Modified Files: iSNSdb.h iSNStypes.h Log Message: Correct struct(s) in iSNStypes.h Index: iSNStypes.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNStypes.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** iSNStypes.h 15 Dec 2006 18:17:18 -0000 1.9 --- iSNStypes.h 18 Dec 2006 19:02:46 -0000 1.10 *************** *** 156,160 **** char v[ISNS_NODE_NAME_SIZE]; ! } SOIP_Node_Name; --- 156,160 ---- char v[ISNS_NODE_NAME_SIZE]; ! } SOIP_Node_Name, SOIP_Node_Key; *************** *** 176,180 **** char v[PORT_NAME_SIZE]; ! } SOIP_Port_Name; --- 176,180 ---- char v[PORT_NAME_SIZE]; ! } SOIP_Port_Name, SOIP_Port_Key; *************** *** 254,276 **** /* ! * Definition of Device Attribute Keys. SoIP device attributes ! * are stored in the service database using these keys. * */ typedef enum { ! START_SNS_DEVI_KEY = 1, /* 1 */ ! NODE_NAME_KEY = START_SNS_DEVI_KEY, PORT_NAME_KEY, - IP_ADDR_KEY, - PORT_TYPE_KEY, - FC4_TYPE_KEY, /* 5 */ - ZONE_TAG_KEY, - RSCN_TYPE_KEY, - NX_PORT_TYPE_KEY, ENTITY_ID_KEY, ! PORTAL_ID_KEY, /* 10 */ ! SPACE_ID_KEY, ! AREA_ID_KEY, DDS_ID_KEY, DD_ID_KEY, --- 254,266 ---- /* ! * Definition of Database Key. * */ typedef enum { ! NODE_NAME_KEY = 1, PORT_NAME_KEY, ENTITY_ID_KEY, ! PORTAL_ID_KEY, DDS_ID_KEY, DD_ID_KEY, *************** *** 280,288 **** ISCSI_IDX_KEY, PORTAL_IDX_KEY, ! LIST_KEY, ! ! END_SNS_DEVI_KEY ! } ISNS_Devi_Key; --- 270,276 ---- ISCSI_IDX_KEY, PORTAL_IDX_KEY, ! LIST_KEY ! } ISNS_Database_Key; *************** *** 293,296 **** --- 281,285 ---- * */ + typedef enum { *************** *** 333,336 **** --- 322,326 ---- } SNS_Devi_Attr; + /* RSCN_Types (defined to fit in one byte) */ *************** *** 390,396 **** } SOIP_Entity_Id; - typedef struct soip_entity_key { - char id[ ENTITY_ID_SIZE ]; - } SOIP_Entity_Key; /* * Definition of Node Name record stored in the SoIP --- 380,383 ---- *************** *** 420,424 **** - /* * Definition of Port Name record stored in the SoIP --- 407,410 ---- *************** *** 480,490 **** } SOIP_Port_List; - typedef struct soip_esi_entry { - IP_Address ip_addr; - uint32_t ip_port; - SOIP_Entity_Id eid; - } SOIP_Esi_Entry; - - typedef struct soip_scn_entry { uint32_t type; --- 466,469 ---- *************** *** 503,515 **** } SOIP_Zone; - typedef struct soip_san { - - uint32_t san_tag; - IP_Address ip_addr; - char sym_name[ SAN_SYM_NAME_SIZE ]; - int sym_name_len; - - } SOIP_San; - typedef enum { --- 482,485 ---- *************** *** 547,559 **** } SOIP_Entity; ! typedef struct soip_db_portal { ! IP_Address ip_addr; ! uint32_t ip_port; ! } SOIP_DB_Portal; ! ! typedef struct portal_list_entry { ! SOIP_DB_Portal portal_ip_port; ! uint32_t portal_idx; ! } PORTAL_LIST_ENTRY; typedef struct entity_list_entry { --- 517,523 ---- } SOIP_Entity; ! typedef struct soip_entity_key { ! char id[ ENTITY_ID_SIZE ]; ! } SOIP_Entity_Key; typedef struct entity_list_entry { *************** *** 583,587 **** uint32_t esiSent; time_t esi_timer; - void *ptr_cert; uint32_t cert_size; --- 547,550 ---- *************** *** 595,598 **** --- 558,571 ---- } SOIP_Portal_Key; + typedef struct soip_db_portal { + IP_Address ip_addr; + uint32_t ip_port; + } SOIP_DB_Portal; + + typedef struct portal_list_entry { + SOIP_DB_Portal portal_ip_port; + uint32_t portal_idx; + } PORTAL_LIST_ENTRY; + typedef struct soip_portal_group { SOIP_ISCSI_Node_Id id; *************** *** 613,626 **** /* - * switch ids - */ - typedef struct SOIP_switch_id { - - char space_id[SPACE_ID_SIZE]; - int area_id; - - } SOIP_Switch_Id; - - /* * Entities that communicate with the SOIP service * agent --- 586,589 ---- *************** *** 670,673 **** --- 633,640 ---- } SOIP_Iscsi; + typedef struct _soip_iscsi_node_name_key { + char v[MAX_ISCSI_NODE_ID_SIZE]; + } SOIP_ISCSI_Node_Id_Key; + /* ids for identifying which list */ typedef enum { *************** *** 692,700 **** int list_index; union { /* The key to which the list belongs */ ! SOIP_Entity_Id entity_id; ! SOIP_Dds dds; ! SOIP_Dd dd; ! SOIP_ISCSI_Node_Id node_name; ! SOIP_DB_Portal portal; } key; } SOIP_LIST_Key; --- 659,667 ---- int list_index; union { /* The key to which the list belongs */ ! SOIP_Entity_Key entity_id; ! SOIP_DDS_Key dds; ! SOIP_DD_Key dd; ! SOIP_Node_Key node_name; ! SOIP_Portal_Key portal; } key; } SOIP_LIST_Key; *************** *** 705,713 **** int prev_index; union { ! SOIP_Entity_Id entity_id; ! SOIP_Dds dds; ! SOIP_Dd dd; ! SOIP_Node_Name node_name; ! ENTITY_LIST_ENTRY portal; } key; } SOIP_DB_List; --- 672,680 ---- int prev_index; union { ! SOIP_Entity_Key entity_id; ! SOIP_DDS_Key dds; ! SOIP_DD_Key dd; ! SOIP_Node_Key node_name; ! SOIP_Portal_Key portal; } key; } SOIP_DB_List; *************** *** 721,729 **** * data associated with a database key. */ ! ISNS_Devi_Key data_type; union { SOIP_Entity entity; SOIP_Portal portal; SOIP_Fc_Node ifcp_node; SOIP_Iscsi scsi_node; --- 688,697 ---- * data associated with a database key. */ ! ISNS_Database_Key data_type; union { SOIP_Entity entity; SOIP_Portal portal; + SOIP_Portal_Group portal_group; SOIP_Fc_Node ifcp_node; SOIP_Iscsi scsi_node; *************** *** 737,746 **** SOIP_DB_Portal portal_idx; SOIP_DB_List list; - SOIP_Portal_Group portal_group; } data; } SOIP_DB_Entry; ! typedef struct ISNS_key { int tag; --- 705,713 ---- SOIP_DB_Portal portal_idx; SOIP_DB_List list; } data; } SOIP_DB_Entry; ! typedef struct ISNS_dbkey { int tag; *************** *** 748,752 **** --- 715,737 ---- union { + SOIP_Entity_Key entity_key; + SOIP_Node_Key node_key; + SOIP_Port_Key port_name; + SOIP_DD_Key dd_key; + SOIP_DD_Key dds_key; + SOIP_Portal_Key portal_key; + SOIP_Portal_Group_Key portal_group_key; + SOIP_IDX_Key idx; + SOIP_LIST_Key list; + } val; + + } ISNS_DBKey; + + typedef struct ISNS_key { + + int tag; + uint32_t len; + union { uint32_t index; uint32_t ip_port; *************** *** 756,773 **** SOIP_Dd dd; SOIP_Entity_Id entity_id; - SOIP_Entity_Key entity_key; SOIP_Node_Name node_name; SOIP_Port_Name port_name; IP_Address ip_addr; - SOIP_DD_Key dd_key; - SOIP_DD_Key dds_key; - uint32_t scn_bitmap; - SOIP_Prot_Ver prot_ver; - SOIP_Port_Type port_type; - SOIP_IDX_Key idx; - SOIP_LIST_Key list; } val; ! } ISNS_Key, ISNS_DBKey; /* --- 741,750 ---- SOIP_Dd dd; SOIP_Entity_Id entity_id; SOIP_Node_Name node_name; SOIP_Port_Name port_name; IP_Address ip_addr; } val; ! } ISNS_Key; /* *************** *** 790,816 **** SOIP_Node_Name node_name; char sym_node_name[NODE_SYM_NAME_SIZE]; ! ! SOIP_Port_Name port_name; ! SOIP_Port_Name fabric_port_name; ! char sym_port_name[PORT_SYM_NAME_SIZE]; ! SOIP_Port_Id port_id; ! IP_Address ip_addr; ! SOIP_Port_Type port_type; ! FC4_Types fc4_types; ! SOIP_COS cos; ! uint32_t portal_group; ! ! int priority; ! ! SOIP_Node_IPA ipa; ! SOIP_Hard_Addr hard_addr; ! ! char sym_san_name[SAN_SYM_NAME_SIZE]; ! ! uint32_t remote; ! SOIP_Device_Type dev_type; ! SOIP_Time timestamp; ! void (*scn_callback)(ISNS_ATTR_VALS_CB *attr_vals_sptr); ! SOIP_Entity_Id entity_id; } val; --- 767,788 ---- SOIP_Node_Name node_name; char sym_node_name[NODE_SYM_NAME_SIZE]; ! SOIP_Port_Name port_name; ! SOIP_Port_Name fabric_port_name; ! char sym_port_name[PORT_SYM_NAME_SIZE]; ! SOIP_Port_Id port_id; ! IP_Address ip_addr; ! SOIP_Port_Type port_type; ! FC4_Types fc4_types; ! SOIP_COS cos; ! uint32_t portal_group; ! int priority; ! SOIP_Node_IPA ipa; ! SOIP_Hard_Addr hard_addr; ! char sym_san_name[SAN_SYM_NAME_SIZE]; ! uint32_t remote; ! SOIP_Device_Type dev_type; ! SOIP_Time timestamp; ! void (*scn_callback)(ISNS_ATTR_VALS_CB *attr_vals_sptr); ! SOIP_Entity_Id entity_id; } val; Index: iSNSdb.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNSdb.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** iSNSdb.h 15 Dec 2006 18:17:18 -0000 1.7 --- iSNSdb.h 18 Dec 2006 19:02:46 -0000 1.8 *************** *** 89,93 **** int ! SNSdbGetNextOfKey (ISNS_Key * key); int --- 89,93 ---- int ! SNSdbGetNextOfKey (ISNS_DBKey * key); int *************** *** 102,112 **** int ! ISNSdbRead (ISNS_Key *key, SOIP_DB_Entry *entry); int ! ISNSdbWrite (ISNS_Key *key, SOIP_DB_Entry entry); int ! ISNSdbDelete (ISNS_Key *key); uint32_t ISNSGetNewPortalIdx(void); --- 102,112 ---- int ! ISNSdbRead (ISNS_DBKey *key, SOIP_DB_Entry *entry); int ! ISNSdbWrite (ISNS_DBKey *key, SOIP_DB_Entry entry); int ! ISNSdbDelete (ISNS_DBKey *key); uint32_t ISNSGetNewPortalIdx(void); |
From: Robert W. <wrw...@us...> - 2006-12-15 18:17:25
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/include In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv11562/include Modified Files: iSNSdb.h iSNSdefs.h iSNSreg.h iSNStypes.h Log Message: Adding support for Portal Groups Index: iSNStypes.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNStypes.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** iSNStypes.h 14 Dec 2006 23:04:27 -0000 1.8 --- iSNStypes.h 15 Dec 2006 18:17:18 -0000 1.9 *************** *** 276,280 **** DD_ID_KEY, ISCSI_ID_KEY, ! ESI_KEY, ENTITY_IDX_KEY, ISCSI_IDX_KEY, --- 276,280 ---- DD_ID_KEY, ISCSI_ID_KEY, ! PORTAL_GROUP_ID_KEY, ENTITY_IDX_KEY, ISCSI_IDX_KEY, *************** *** 523,533 **** } SOIP_Prot_Ver; - typedef struct soip_esi_type { - - /* SOIP_Entity_Type esi_port_type; */ - uint32_t ip_port; - - } SOIP_ESI_Type; - typedef struct soip_entity { --- 523,526 ---- *************** *** 536,543 **** uint32_t esi; SOIP_Entity_Type eid_type; - SOIP_ESI_Type esi_type; SOIP_Port_List port_list; - /* iSNS Stuff */ uint32_t entity_index; --- 529,534 ---- *************** *** 599,606 **** } SOIP_Portal; ! typedef struct soip_esi { IP_Address ip_addr; uint32_t ip_port; ! } SOIP_ESI, SOIP_Portal_Key; /* --- 590,614 ---- } SOIP_Portal; ! typedef struct soip_portal_key { IP_Address ip_addr; uint32_t ip_port; ! } SOIP_Portal_Key; ! ! typedef struct soip_portal_group { ! SOIP_ISCSI_Node_Id id; ! IP_Address ip_addr; ! uint32_t ip_port; ! uint32_t portal_tag; ! ! /* More iSNS Stuff */ ! uint32_t portal_group_index; ! ! } SOIP_Portal_Group; ! ! typedef struct soip_portal_group_key { ! SOIP_ISCSI_Node_Id id; ! IP_Address ip_addr; ! uint32_t ip_port; ! } SOIP_Portal_Group_Key; /* *************** *** 729,732 **** --- 737,741 ---- SOIP_DB_Portal portal_idx; SOIP_DB_List list; + SOIP_Portal_Group portal_group; } data; *************** *** 756,765 **** SOIP_Prot_Ver prot_ver; SOIP_Port_Type port_type; - uint32_t integer32; SOIP_IDX_Key idx; SOIP_LIST_Key list; } val; ! } ISNS_Key; /* --- 765,773 ---- SOIP_Prot_Ver prot_ver; SOIP_Port_Type port_type; SOIP_IDX_Key idx; SOIP_LIST_Key list; } val; ! } ISNS_Key, ISNS_DBKey; /* *************** *** 838,849 **** extern ISNS_Entity isns_role; - #ifndef PAD4 - #define PAD4(a) ((a%4)?(4-a%4)+a:(a+4)) - #endif - - #ifndef MAX - #define MAX(a,b) ((a) >= (b) ? (a) : (b)) - #endif - - #endif --- 846,848 ---- Index: iSNSreg.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNSreg.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** iSNSreg.h 14 Dec 2006 23:04:27 -0000 1.3 --- iSNSreg.h 15 Dec 2006 18:17:18 -0000 1.4 *************** *** 96,100 **** int ISNSdbAddAttrPortal (char **attr_indx, char **key_indx, ISNS_Msg_Descp * p_md, ! ISNS_Msg * p_rspmsg);\ int --- 96,103 ---- int ISNSdbAddAttrPortal (char **attr_indx, char **key_indx, ISNS_Msg_Descp * p_md, ! ISNS_Msg * p_rspmsg); ! ! int ! ISNSdbAddAttrPortalGroup (char **attr_indx, char **key_indx, ISNS_Msg_Descp * p_md, ISNS_Msg * p_rspmsg); int Index: iSNSdefs.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNSdefs.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** iSNSdefs.h 13 Dec 2006 23:53:01 -0000 1.6 --- iSNSdefs.h 15 Dec 2006 18:17:18 -0000 1.7 *************** *** 58,61 **** --- 58,63 ---- #define ISNS_PORTAL_IP_SIZE (16) #define ISNS_PORTAL_PORT_SIZE (4) + #define ISNS_PORTAL_GROUP_IP_SIZE (16) + #define ISNS_PORTAL_GROUP_PORT_SIZE (4) #define ISNS_ESI_PORT_SIZE (4) #define PORTAL_NAME_SIZE (ISNS_PORTAL_PORT_SIZE+ISNS_PORTAL_IP_SIZE) *************** *** 89,92 **** --- 91,95 ---- #define ISNS_SCN_BITMAP_SIZE (4) #define ISNS_PORTAL_GROUP_SIZE (4) + #define ISNS_PORTAL_GROUP_TAG_SIZE (4) #define DD_SET_ID_SIZE (4) *************** *** 303,307 **** #ifndef PAD4 ! #define PAD4(a) ( (a%4)?(4-a%4)+a:(a+4) ) #endif --- 306,310 ---- #ifndef PAD4 ! #define PAD4(a) ( (a % 4) ? (4 - (a % 4) ) + a: (a+4) ) #endif Index: iSNSdb.h =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/include/iSNSdb.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** iSNSdb.h 15 Dec 2006 01:13:29 -0000 1.6 --- iSNSdb.h 15 Dec 2006 18:17:18 -0000 1.7 *************** *** 73,76 **** --- 73,77 ---- int num_ifcp; int num_portals; + int num_portal_groups; } dbStats; |