From: Robert W. <wrw...@us...> - 2007-01-02 20:15:32
|
Update of /cvsroot/linuxisns/isnsNT/isnsserver/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv24842/isnsserver/src Modified Files: iSNSInit.c iSNSdereg.c iSNSquery.c iSNSreg.c Log Message: add control node Index: iSNSInit.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSInit.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** iSNSInit.c 19 Dec 2006 22:25:31 -0000 1.5 --- iSNSInit.c 2 Jan 2007 20:15:24 -0000 1.6 *************** *** 149,152 **** --- 149,153 ---- ISNSInitDBTables(); Create_Default_DD(); + strcpy(isns_control_node, CONTROL_NODE); if ( SNSStartFSM() == ERROR ) Index: iSNSreg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSreg.c,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** iSNSreg.c 29 Dec 2006 20:40:18 -0000 1.21 --- iSNSreg.c 2 Jan 2007 20:15:24 -0000 1.22 *************** *** 1002,1005 **** --- 1002,1009 ---- ISNSParseMsg( &p_md->msg, attr_indx, key_indx, &src_attr ); + rval = Check_Authorization (src_attr); + if (rval != SUCCESS) + return (ISNS_AUTH_FAILED_ERR); + /* Search the keys for DD_Set. */ ddKeyIndex = ISNSFindTag (0, ISNS_DDS_ID, key_indx); *************** *** 1306,1309 **** --- 1310,1317 ---- ISNSParseMsg(&p_md->msg, attr_indx, key_indx, &src_attr); + rval = Check_Authorization (src_attr); + if (rval != SUCCESS) + return (ISNS_AUTH_FAILED_ERR); + /* Search the keys for DD_Set. */ ddKeyIndex = ISNSFindTag (0, ISNS_DD_ID, key_indx); *************** *** 3636,3639 **** --- 3644,3649 ---- } + /********************************************************************* + *********************************************************************/ int Create_Default_DD () *************** *** 3758,3759 **** --- 3768,3781 ---- } + /********************************************************************* + *********************************************************************/ + int + Check_Authorization (ISNS_Attr *src_attr) + { + DEBUG_1 (isns_reg_debug &1,Check_Authorization:%s,src_attr->val.node_name.v); + + if ( 0 == strcmp (src_attr->val.node_name.v,isns_control_node) ) + return SUCCESS; + else + return ISNS_AUTH_FAILED_ERR; + } Index: iSNSdereg.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSdereg.c,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** iSNSdereg.c 29 Dec 2006 20:40:17 -0000 1.21 --- iSNSdereg.c 2 Jan 2007 20:15:24 -0000 1.22 *************** *** 210,219 **** return (rval); p_dds = (SOIP_Dds *)&entry.data; - - rval = Check_Permission(src_attr, DDS_ID_KEY, p_dds); - if (rval != SUCCESS) - { - return (ISNS_NO_SUCH_ENTRY_ERR); - } /* Remove DDS from DD's DDS List */ --- 210,213 ---- *************** *** 319,328 **** p_dds = (SOIP_Dds *)&entry.data; - rval = Check_Permission(src_attr, DDS_ID_KEY, p_dds); - if (rval != SUCCESS) - { - return (ISNS_NO_SUCH_ENTRY_ERR); - } - /* Remove DDS from DD's DDS List */ memberRemovedFlag = FALSE; --- 313,316 ---- *************** *** 416,419 **** --- 404,414 ---- ISNSParseMsg(&p_md->msg, attr_indx, key_indx, &src_attr); + + rval = Check_Authorization (src_attr); + if (rval != SUCCESS) + { + return (ISNS_AUTH_FAILED_ERR); + } + ddKeyIndex = ISNSFindTag (0, ISNS_DDS_ID, key_indx); keyRemovedFlag = FALSE; *************** *** 469,472 **** --- 464,474 ---- ISNSParseMsg( &p_md->msg, attr_indx, key_indx, &src_attr ); + + rval = Check_Authorization (src_attr); + if (rval != SUCCESS) + { + return (ISNS_AUTH_FAILED_ERR); + } + ddKeyIndex = ISNSFindTag (0, ISNS_DD_ID, key_indx); flag = FALSE; *************** *** 1302,1311 **** p_dd = (SOIP_Dd *)&entry.data; - rval = Check_Permission(src_attr, DD_ID_KEY, p_dd); - if (rval != SUCCESS) - { - return (ISNS_NO_SUCH_ENTRY_ERR); - } - /* Remove DD Members */ pnode = NULL; --- 1304,1307 ---- *************** *** 1422,1431 **** p_dd = (SOIP_Dd *)&entry.data; - rval = Check_Permission(src_attr, DD_ID_KEY, p_dd); - if (rval != SUCCESS) - { - return (ISNS_NO_SUCH_ENTRY_ERR); - } - /* Prepare the SCN */ memset(p_scn_all_msg_buffer, 0, sizeof(ISNS_Msg)); --- 1418,1421 ---- Index: iSNSquery.c =================================================================== RCS file: /cvsroot/linuxisns/isnsNT/isnsserver/src/iSNSquery.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** iSNSquery.c 21 Dec 2006 23:28:11 -0000 1.16 --- iSNSquery.c 2 Jan 2007 20:15:24 -0000 1.17 *************** *** 567,570 **** --- 567,574 ---- SOIP_Dds *p_dds; + rval = Check_Authorization (src_attr); + if (rval != SUCCESS) + return (ISNS_AUTH_FAILED_ERR); + ISNSTouchEntity( src_attr ); *************** *** 718,721 **** --- 722,729 ---- DEBUG_0 (isns_query_debug &1, SNSdbGetAttrDD); + rval = Check_Authorization (src_attr); + if (rval != SUCCESS) + return (ISNS_AUTH_FAILED_ERR); + ISNSTouchEntity( src_attr ); *************** *** 3487,3494 **** --- 3495,3508 ---- } + /********************************************************************* + *********************************************************************/ int Check_Permission (ISNS_Attr *src_attr, int rectype, void * ptr) { int rval; + + /* check if control node */ + if ( 0 == strcmp (src_attr->val.node_name.v, isns_control_node) ) + return SUCCESS; memset (dlist_src, 0, MAX_DD_PER_LIST*sizeof(uint32_t)); *************** *** 3496,3500 **** if (rval !=SUCCESS) { ! return (ISNS_INVALID_QUERY_ERR); } --- 3510,3514 ---- if (rval !=SUCCESS) { ! return (ISNS_AUTH_FAILED_ERR); } *************** *** 3514,3518 **** { DEBUG_0(isns_query_debug & 1, "***ERROR*** Invalid DD"); ! return (ISNS_INVALID_QUERY_ERR); } } --- 3528,3532 ---- { DEBUG_0(isns_query_debug & 1, "***ERROR*** Invalid DD"); ! return (ISNS_AUTH_FAILED_ERR); } } *************** *** 3533,3537 **** { DEBUG_0(isns_query_debug & 1, "***ERROR*** Invalid DD"); ! return (ISNS_INVALID_QUERY_ERR); } } --- 3547,3551 ---- { DEBUG_0(isns_query_debug & 1, "***ERROR*** Invalid DD"); ! return (ISNS_AUTH_FAILED_ERR); } } *************** *** 3549,3553 **** { DEBUG_0(isns_query_debug & 1, "***ERROR: Invalid DD"); ! return (ISNS_NO_SUCH_ENTRY_ERR); } } --- 3563,3567 ---- { DEBUG_0(isns_query_debug & 1, "***ERROR: Invalid DD"); ! return (ISNS_AUTH_FAILED_ERR); } } *************** *** 3567,3571 **** { DEBUG_0(isns_query_debug & 1, "***ERROR*** Invalid DD"); ! return (ISNS_INVALID_QUERY_ERR); } } --- 3581,3585 ---- { DEBUG_0(isns_query_debug & 1, "***ERROR*** Invalid DD"); ! return (ISNS_AUTH_FAILED_ERR); } } *************** *** 3610,3614 **** break; default: ! return (ISNS_INVALID_QUERY_ERR); break; } --- 3624,3628 ---- break; default: ! return (ISNS_AUTH_FAILED_ERR); break; } |