object tools import working; GUIDs added to object tools; added simple GUID generatio...
authorVictor Kirhenshtein <victor@netxms.org>
Fri, 24 Apr 2015 14:07:27 +0000 (17:07 +0300)
committerVictor Kirhenshtein <victor@netxms.org>
Fri, 24 Apr 2015 14:07:27 +0000 (17:07 +0300)
14 files changed:
ChangeLog
configure.ac
include/netxmsdb.h
netxms.sln
sql/objtools.in
sql/schema.in
src/server/core/import.cpp
src/server/core/objtools.cpp
src/server/include/nms_core.h
src/server/tools/nxdbmgr/upgrade.cpp
src/tools/Makefile.am
src/tools/nxgenguid/Makefile.am [new file with mode: 0644]
src/tools/nxgenguid/nxgenguid.cpp [new file with mode: 0644]
src/tools/nxgenguid/nxgenguid.vcproj [new file with mode: 0644]

index a74dc54..135f352 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,7 +15,7 @@
 - Fixed broken PING subagent
 - Fixed database upgrade issues on MS SQL
 - IPv6 support in PING subagent
-- Fixed issues: #655, #657, #804
+- Fixed issues: #655, #657, #696, #804
 
 
 *
index 0434eae..6b9e306 100644 (file)
@@ -2894,6 +2894,7 @@ AC_CONFIG_FILES([
        src/tools/Makefile
        src/tools/nxdevcfg/Makefile
        src/tools/nxencpasswd/Makefile
+       src/tools/nxgenguid/Makefile
        src/zlib/Makefile
        sql/Makefile
        tests/Makefile
index 5031fb7..32f7169 100644 (file)
@@ -23,6 +23,6 @@
 #ifndef _netxmsdb_h
 #define _netxmsdb_h
 
-#define DB_FORMAT_VERSION   351
+#define DB_FORMAT_VERSION   352
 
 #endif
index c875588..7137b32 100644 (file)
@@ -5,23 +5,23 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libexpat", "src\libexpat\li
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnetxms", "src\libnetxms\libnetxms.vcproj", "{B1745870-F3ED-4ACB-B813-0C4F47EF0793}"
        ProjectSection(ProjectDependencies) = postProject
-               {6A88EF62-C4F2-4295-A833-549DAE4DF5ED} = {6A88EF62-C4F2-4295-A833-549DAE4DF5ED}
                {406AE5C7-343D-4C88-B8F3-84E46255B830} = {406AE5C7-343D-4C88-B8F3-84E46255B830}
+               {6A88EF62-C4F2-4295-A833-549DAE4DF5ED} = {6A88EF62-C4F2-4295-A833-549DAE4DF5ED}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnxlp", "src\libnxlp\libnxlp.vcproj", "{64EFC0C2-C67B-41F6-851D-F11DAB27A60B}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
-               {6A88EF62-C4F2-4295-A833-549DAE4DF5ED} = {6A88EF62-C4F2-4295-A833-549DAE4DF5ED}
                {406AE5C7-343D-4C88-B8F3-84E46255B830} = {406AE5C7-343D-4C88-B8F3-84E46255B830}
+               {6A88EF62-C4F2-4295-A833-549DAE4DF5ED} = {6A88EF62-C4F2-4295-A833-549DAE4DF5ED}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxagentd", "src\agent\core\nxagentd.vcproj", "{57598B02-3295-4FE8-9322-94CE871CC84D}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
-               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
                {6B249E47-4BAF-4DE2-B62B-C6DD0330753F} = {6B249E47-4BAF-4DE2-B62B-C6DD0330753F}
+               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "subagents", "subagents", "{451F583D-C2DB-4414-870C-7FA0189BE7DD}"
@@ -61,8 +61,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sms", "src\agent\subagents\
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portcheck", "src\agent\subagents\portcheck\portcheck.vcproj", "{F66A27F0-2943-4A16-ACC7-B450314B5163}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {406AE5C7-343D-4C88-B8F3-84E46255B830} = {406AE5C7-343D-4C88-B8F3-84E46255B830}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ping", "src\agent\subagents\ping\ping.vcproj", "{C5CCF5DE-152E-40F3-AC6C-C5E54BB7C45F}"
@@ -77,8 +77,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "odbcquery", "src\agent\suba
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "logwatch", "src\agent\subagents\logwatch\logwatch.vcproj", "{F8A8749E-E539-4A3B-A21C-2C5C86AE33EA}"
        ProjectSection(ProjectDependencies) = postProject
-               {64EFC0C2-C67B-41F6-851D-F11DAB27A60B} = {64EFC0C2-C67B-41F6-851D-F11DAB27A60B}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {64EFC0C2-C67B-41F6-851D-F11DAB27A60B} = {64EFC0C2-C67B-41F6-851D-F11DAB27A60B}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ecs", "src\agent\subagents\ecs\ecs.vcproj", "{BBE9028E-725C-45C6-97C9-BFC443F19DB6}"
@@ -97,106 +97,106 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{39BF23C9
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxalarm", "src\client\nxalarm\nxalarm.vcproj", "{F9FFAAE9-D669-451E-B9EF-18BC8AD37FAB}"
        ProjectSection(ProjectDependencies) = postProject
-               {B2C8E7C8-E047-46E8-ADDB-0BB819F72288} = {B2C8E7C8-E047-46E8-ADDB-0BB819F72288}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {B2C8E7C8-E047-46E8-ADDB-0BB819F72288} = {B2C8E7C8-E047-46E8-ADDB-0BB819F72288}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxevent", "src\client\nxevent\nxevent.vcproj", "{C7A460E8-12A8-4FC7-9F59-C9C5CE17ED20}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {B2C8E7C8-E047-46E8-ADDB-0BB819F72288} = {B2C8E7C8-E047-46E8-ADDB-0BB819F72288}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxpush", "src\client\nxpush\nxpush.vcproj", "{B8671BF7-94E1-4615-A8C2-F5C78DB8C515}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {B2C8E7C8-E047-46E8-ADDB-0BB819F72288} = {B2C8E7C8-E047-46E8-ADDB-0BB819F72288}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxsms", "src\client\nxsms\nxsms.vcproj", "{B0A70A32-A8F0-4071-8044-FDA3C834A5C5}"
        ProjectSection(ProjectDependencies) = postProject
-               {B2C8E7C8-E047-46E8-ADDB-0BB819F72288} = {B2C8E7C8-E047-46E8-ADDB-0BB819F72288}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {B2C8E7C8-E047-46E8-ADDB-0BB819F72288} = {B2C8E7C8-E047-46E8-ADDB-0BB819F72288}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnxsnmp", "src\snmp\libnxsnmp\libnxsnmp.vcproj", "{7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {E7410EB4-3355-4C83-8E05-D2877581CDA1} = {E7410EB4-3355-4C83-8E05-D2877581CDA1}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxzlib", "src\zlib\nxzlib.vcproj", "{E7410EB4-3355-4C83-8E05-D2877581CDA1}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxsnmpget", "src\snmp\nxsnmpget\nxsnmpget.vcproj", "{0A4CE471-020A-42C6-91C0-DFEFA7E815E0}"
        ProjectSection(ProjectDependencies) = postProject
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxsnmpset", "src\snmp\nxsnmpset\nxsnmpset.vcproj", "{9EA98E79-EB7D-4F6C-8105-AC7B231ABB10}"
        ProjectSection(ProjectDependencies) = postProject
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxsnmpwalk", "src\snmp\nxsnmpwalk\nxsnmpwalk.vcproj", "{5FA3AADC-3AD7-4B17-A581-D5E02DE17727}"
        ProjectSection(ProjectDependencies) = postProject
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxmibc", "src\snmp\nxmibc\nxmibc.vcproj", "{9F722C62-78FD-4D8C-A7C7-2815B09F1943}"
        ProjectSection(ProjectDependencies) = postProject
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnxsrv", "src\server\libnxsrv\libnxsrv.vcproj", "{CB89D905-C8BE-4027-B2D8-F96C245E9160}"
        ProjectSection(ProjectDependencies) = postProject
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxcore", "src\server\core\nxcore.vcproj", "{3B172035-5EEC-45A3-8471-2C390B7ED683}"
        ProjectSection(ProjectDependencies) = postProject
-               {AB386821-B630-49F5-95C3-677B9DCE1270} = {AB386821-B630-49F5-95C3-677B9DCE1270}
-               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
-               {64EFC0C2-C67B-41F6-851D-F11DAB27A60B} = {64EFC0C2-C67B-41F6-851D-F11DAB27A60B}
-               {406AE5C7-343D-4C88-B8F3-84E46255B830} = {406AE5C7-343D-4C88-B8F3-84E46255B830}
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
-               {B2988503-1921-4B9F-BBC1-5E5CF62F335E} = {B2988503-1921-4B9F-BBC1-5E5CF62F335E}
-               {F4169894-5C48-4E11-A82E-1055F9572EEF} = {F4169894-5C48-4E11-A82E-1055F9572EEF}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {F4169894-5C48-4E11-A82E-1055F9572EEF} = {F4169894-5C48-4E11-A82E-1055F9572EEF}
+               {B2988503-1921-4B9F-BBC1-5E5CF62F335E} = {B2988503-1921-4B9F-BBC1-5E5CF62F335E}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+               {406AE5C7-343D-4C88-B8F3-84E46255B830} = {406AE5C7-343D-4C88-B8F3-84E46255B830}
+               {64EFC0C2-C67B-41F6-851D-F11DAB27A60B} = {64EFC0C2-C67B-41F6-851D-F11DAB27A60B}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
+               {AB386821-B630-49F5-95C3-677B9DCE1270} = {AB386821-B630-49F5-95C3-677B9DCE1270}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "nxsl", "nxsl", "{CE0DA89E-CF0C-452C-9C33-75A143355BDC}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnxsl", "src\libnxsl\libnxsl.vcproj", "{B2988503-1921-4B9F-BBC1-5E5CF62F335E}"
        ProjectSection(ProjectDependencies) = postProject
-               {406AE5C7-343D-4C88-B8F3-84E46255B830} = {406AE5C7-343D-4C88-B8F3-84E46255B830}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {406AE5C7-343D-4C88-B8F3-84E46255B830} = {406AE5C7-343D-4C88-B8F3-84E46255B830}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxscript", "src\nxscript\nxscript.vcproj", "{BA263F92-D5A9-4F26-9606-5A1C1495FEA5}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {B2988503-1921-4B9F-BBC1-5E5CF62F335E} = {B2988503-1921-4B9F-BBC1-5E5CF62F335E}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "netxmsd", "src\server\netxmsd\netxmsd.vcproj", "{E417A0C4-41F1-4F87-8C33-8526ECB1F8AF}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {3B172035-5EEC-45A3-8471-2C390B7ED683} = {3B172035-5EEC-45A3-8471-2C390B7ED683}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{64482674-7B36-4A14-A612-247333174315}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxaction", "src\server\tools\nxaction\nxaction.vcproj", "{BF5CE6BA-C84A-4448-B1B7-1B355AC77D12}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxadm", "src\server\tools\nxadm\nxadm.vcproj", "{67E35735-2115-45FF-9E93-EE67AF5C9C2C}"
@@ -206,43 +206,43 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxadm", "src\server\tools\n
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxget", "src\server\tools\nxget\nxget.vcproj", "{1AC3C8D1-E309-4327-9E17-0E4CE0FC68CF}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxupload", "src\server\tools\nxupload\nxupload.vcproj", "{DA863269-ED58-4910-AA6A-2572A3EE745D}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxdbmgr", "src\server\tools\nxdbmgr\nxdbmgr.vcproj", "{4940613E-A11C-4259-95C8-8D23217EE60E}"
        ProjectSection(ProjectDependencies) = postProject
-               {AB386821-B630-49F5-95C3-677B9DCE1270} = {AB386821-B630-49F5-95C3-677B9DCE1270}
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
-               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
-               {87CAA25D-991E-45E1-BB69-337D45121F19} = {87CAA25D-991E-45E1-BB69-337D45121F19}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {87CAA25D-991E-45E1-BB69-337D45121F19} = {87CAA25D-991E-45E1-BB69-337D45121F19}
+               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {AB386821-B630-49F5-95C3-677B9DCE1270} = {AB386821-B630-49F5-95C3-677B9DCE1270}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "smsdrv", "smsdrv", "{5818CCA9-B585-44B8-B29E-98B1DC278A3C}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generic", "src\server\smsdrv\generic\generic.vcproj", "{41A5009F-4467-4D89-A171-5A919FEFE16E}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxagent", "src\server\smsdrv\nxagent\nxagent.vcproj", "{C317231C-B984-4423-ACF2-C19DE8B6AA3F}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxlptest", "src\nxlptest\nxlptest.vcproj", "{1EA79FC6-F395-43DF-9E3C-2030CA05ED1D}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {64EFC0C2-C67B-41F6-851D-F11DAB27A60B} = {64EFC0C2-C67B-41F6-851D-F11DAB27A60B}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxsqlite", "src\sqlite\nxsqlite.vcproj", "{87CAA25D-991E-45E1-BB69-337D45121F19}"
@@ -288,14 +288,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pgsql", "src\db\dbdrv\pgsql
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "src\db\dbdrv\sqlite\sqlite.vcproj", "{AA18FD4D-7B01-4932-BA04-B0F54F001F66}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {87CAA25D-991E-45E1-BB69-337D45121F19} = {87CAA25D-991E-45E1-BB69-337D45121F19}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxconfig", "src\server\tools\nxconfig\nxconfig.vcproj", "{A76CCCF5-D70B-4307-B84C-219289CEAA6D}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "flow analyzer", "flow analyzer", "{89B3A66E-5853-4B14-A5E3-9E4C6524BE65}"
@@ -307,9 +307,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libipfix", "src\flow_analyz
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxflowd", "src\flow_analyzer\nxflowd\nxflowd.vcproj", "{D7F709ED-7483-49F0-8B17-ABB705606FEA}"
        ProjectSection(ProjectDependencies) = postProject
-               {2DEF303B-5FEF-4F5E-87C4-FB7895058F59} = {2DEF303B-5FEF-4F5E-87C4-FB7895058F59}
-               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
+               {2DEF303B-5FEF-4F5E-87C4-FB7895058F59} = {2DEF303B-5FEF-4F5E-87C4-FB7895058F59}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "db2", "src\db\dbdrv\db2\db2.vcproj", "{297D9A45-B928-4470-91B5-0E07A20C2405}"
@@ -319,8 +319,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "db2", "src\db\dbdrv\db2\db2
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxap", "src\server\tools\nxap\nxap.vcproj", "{36749C31-C8C6-4DD2-A11C-E41ED86927C7}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtre", "src\libtre\libtre.vcproj", "{406AE5C7-343D-4C88-B8F3-84E46255B830}"
@@ -329,52 +329,52 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "drivers", "drivers", "{5399
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "baystack", "src\server\drivers\baystack\baystack.vcproj", "{13A91F2E-A17B-4ABA-B5B2-285807BD7832}"
        ProjectSection(ProjectDependencies) = postProject
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
-               {DA651576-4E4F-448C-A0A3-9EDD15C81078} = {DA651576-4E4F-448C-A0A3-9EDD15C81078}
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {DA651576-4E4F-448C-A0A3-9EDD15C81078} = {DA651576-4E4F-448C-A0A3-9EDD15C81078}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ers8000", "src\server\drivers\ers8000\ers8000.vcproj", "{076E6815-4B6B-4F1E-A36C-CD3DD26EA5AC}"
        ProjectSection(ProjectDependencies) = postProject
-               {DA651576-4E4F-448C-A0A3-9EDD15C81078} = {DA651576-4E4F-448C-A0A3-9EDD15C81078}
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {DA651576-4E4F-448C-A0A3-9EDD15C81078} = {DA651576-4E4F-448C-A0A3-9EDD15C81078}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib", "lib", "{D73BB67D-032B-4FB7-AEB8-5795B246A072}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "avaya-ers", "src\server\drivers\lib\avaya-ers\avaya-ers.vcproj", "{DA651576-4E4F-448C-A0A3-9EDD15C81078}"
        ProjectSection(ProjectDependencies) = postProject
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cisco", "src\server\drivers\lib\cisco\cisco.vcproj", "{375F95BD-EFBA-4AA3-8DA3-E79779A12896}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cat2900xl", "src\server\drivers\cat2900xl\cat2900xl.vcproj", "{FEEF505B-75AE-4E52-8177-51FFC4AB2ED2}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
                {375F95BD-EFBA-4AA3-8DA3-E79779A12896} = {375F95BD-EFBA-4AA3-8DA3-E79779A12896}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portech", "src\server\smsdrv\portech\portech.vcproj", "{7D0A15A1-7F6E-480D-9926-13BB6DAA0E10}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "netscreen", "src\server\drivers\netscreen\netscreen.vcproj", "{500DE9BF-6FC1-4ACB-91A9-308BA1D37F37}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "informix", "src\db\dbdrv\informix\informix.vcproj", "{7DE4A043-48B8-4D66-8D3F-8CF5C757EEB5}"
@@ -384,35 +384,35 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "informix", "src\db\dbdrv\in
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "informix", "src\agent\subagents\informix\informix.vcproj", "{12F5AF3E-A688-4852-A0ED-921D0E088AC4}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dbemu", "src\server\smsdrv\dbemu\dbemu.vcproj", "{912783D2-CF6F-4040-B564-4E2436EB0827}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
-               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxinstall", "src\nxinstall\nxinstall.vcproj", "{C177FB94-66E8-424E-BDBE-A96C75D2672C}"
        ProjectSection(ProjectDependencies) = postProject
-               {B2988503-1921-4B9F-BBC1-5E5CF62F335E} = {B2988503-1921-4B9F-BBC1-5E5CF62F335E}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {B2988503-1921-4B9F-BBC1-5E5CF62F335E} = {B2988503-1921-4B9F-BBC1-5E5CF62F335E}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "catalyst", "src\server\drivers\catalyst\catalyst.vcproj", "{F343CDCB-1DB5-4563-86DF-6AF1596090B2}"
        ProjectSection(ProjectDependencies) = postProject
-               {375F95BD-EFBA-4AA3-8DA3-E79779A12896} = {375F95BD-EFBA-4AA3-8DA3-E79779A12896}
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+               {375F95BD-EFBA-4AA3-8DA3-E79779A12896} = {375F95BD-EFBA-4AA3-8DA3-E79779A12896}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "oracle", "src\agent\subagents\oracle\oracle.vcproj", "{90B762AB-B7BA-42D6-9819-C687AB3F59D0}"
        ProjectSection(ProjectDependencies) = postProject
-               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
-               {406AE5C7-343D-4C88-B8F3-84E46255B830} = {406AE5C7-343D-4C88-B8F3-84E46255B830}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {406AE5C7-343D-4C88-B8F3-84E46255B830} = {406AE5C7-343D-4C88-B8F3-84E46255B830}
+               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{896A7CDA-423A-460A-83E2-6ED37DAE187C}"
@@ -424,28 +424,28 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxapush", "src\agent\tools\
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "procurve", "src\server\drivers\procurve\procurve.vcproj", "{B51F1406-AF43-4396-96C0-31176DDAA3FB}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dell-pwc", "src\server\drivers\dell-pwc\dell-pwc.vcproj", "{4CD8D04D-375D-40B5-AB1C-C8AC8A38FB45}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cisco-esw", "src\server\drivers\cisco-esw\cisco-esw.vcproj", "{15B67A25-48BB-4A05-8FF5-9FE747F6D3EB}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnxsd", "src\agent\libnxsd\libnxsd.vcproj", "{DFE2F1AF-D5E5-49DD-B2AD-4F4FB8651D8A}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dbquery", "src\agent\subagents\dbquery\dbquery.vcproj", "{784D1668-124C-46D9-B985-51276FFA282A}"
        ProjectSection(ProjectDependencies) = postProject
-               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appagent", "src\agent\appagent\appagent.vcproj", "{6B249E47-4BAF-4DE2-B62B-C6DD0330753F}"
@@ -455,15 +455,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appagent", "src\agent\appag
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxappget", "src\agent\tools\nxappget\nxappget.vcproj", "{21D35413-495C-4DD2-BDBF-7BD708C70B74}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {6B249E47-4BAF-4DE2-B62B-C6DD0330753F} = {6B249E47-4BAF-4DE2-B62B-C6DD0330753F}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dlink", "src\server\drivers\dlink\dlink.vcproj", "{45C17A03-3478-4BA4-90B2-F74FE13BFB83}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxencpasswd", "src\tools\nxencpasswd\nxencpasswd.vcproj", "{49F5280F-147B-46D0-98BF-931F0646CF82}"
@@ -473,31 +473,31 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxencpasswd", "src\tools\nx
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "symbol-ws", "src\server\drivers\symbol-ws\symbol-ws.vcproj", "{AB4F7846-5024-4666-8F5E-56B2D9FBF55F}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dummy", "src\server\smsdrv\dummy\dummy.vcproj", "{60BB5936-BF12-423F-9276-26F179E9C230}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntws", "src\server\drivers\ntws\ntws.vcproj", "{E614F3CF-58CC-4B7F-9B2D-975921E06522}"
        ProjectSection(ProjectDependencies) = postProject
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{3AB343C9-A67D-49F1-A8CD-EA0D9CA98467}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "driverloader", "src\server\tools\driverloader\driverloader.vcproj", "{3FE49724-9935-4988-9573-156668B1E20C}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "java", "src\agent\subagents\java\java.vcproj", "{4967B29B-4272-4D7B-9CF6-8ABFF9D21348}"
@@ -507,16 +507,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "java", "src\agent\subagents
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ping3", "src\server\drivers\ping3\ping3.vcproj", "{741E8D29-2362-4022-85D6-C1383A413BD6}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "at", "src\server\drivers\at\at.vcproj", "{01924916-D158-4370-97C8-D17B8D2A7D4F}"
        ProjectSection(ProjectDependencies) = postProject
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxcproxy", "src\nxcproxy\nxcproxy.vcproj", "{C6F495E0-71D7-4B7E-AC3A-ABBEFBFFD2DF}"
@@ -531,14 +531,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libstrophe", "src\libstroph
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "netsvc", "src\agent\subagents\netsvc\netsvc.vcproj", "{17C5C5F3-3F13-47F4-8606-1EC9B5416DB2}"
        ProjectSection(ProjectDependencies) = postProject
-               {406AE5C7-343D-4C88-B8F3-84E46255B830} = {406AE5C7-343D-4C88-B8F3-84E46255B830}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {406AE5C7-343D-4C88-B8F3-84E46255B830} = {406AE5C7-343D-4C88-B8F3-84E46255B830}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cisco-sb", "src\server\drivers\cisco-sb\cisco-sb.vcproj", "{6D040459-7E6D-44A5-95EE-636853A05033}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "devemu", "src\agent\subagents\devemu\devemu.vcproj", "{BBE9028E-725C-45C6-97C9-BFC443F19DB7}"
@@ -548,47 +548,47 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "devemu", "src\agent\subagen
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "websms", "src\server\smsdrv\websms\websms.vcproj", "{60BB5936-BF12-423F-9276-26F179E9C231}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "hdlink", "hdlink", "{80EB59BF-5CEC-4248-BF3B-7C30E67063B8}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jira", "src\server\hdlink\jira\jira.vcproj", "{01924916-D158-4370-97C8-D17B8D2A7D4E}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
-               {3B172035-5EEC-45A3-8471-2C390B7ED683} = {3B172035-5EEC-45A3-8471-2C390B7ED683}
                {12D6E037-84D8-406A-8A9B-3E00D3E0D426} = {12D6E037-84D8-406A-8A9B-3E00D3E0D426}
+               {3B172035-5EEC-45A3-8471-2C390B7ED683} = {3B172035-5EEC-45A3-8471-2C390B7ED683}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jansson", "src\jansson\jansson.vcproj", "{12D6E037-84D8-406A-8A9B-3E00D3E0D426}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mikrotik", "src\server\drivers\mikrotik\mikrotik.vcproj", "{500DE9BF-6FC1-4ACB-91AA-308BA1D37F38}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "airespace", "src\server\drivers\airespace\airespace.vcproj", "{AB4F7846-5024-4666-8F5E-56B2D9FCF77F}"
        ProjectSection(ProjectDependencies) = postProject
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ubnt", "src\server\drivers\ubnt\ubnt.vcproj", "{500DE9BF-6FC1-4ACB-91AA-308BA2D33F38}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "db2", "src\agent\subagents\db2\db2.vcproj", "{90B762AB-B7BA-42D6-9819-C787AB3F59D1}"
        ProjectSection(ProjectDependencies) = postProject
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filemgr", "src\agent\subagents\filemgr\filemgr.vcproj", "{BBE9028E-725C-45C6-97C9-BFC443F19EA8}"
@@ -603,8 +603,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "src\libpng\libpng
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxsagent", "src\agent\nxsagent\nxsagent.vcproj", "{9C6790BA-385D-476D-944A-552C87018733}"
        ProjectSection(ProjectDependencies) = postProject
-               {C1A5E28A-CF47-4D96-9656-3312F16E3724} = {C1A5E28A-CF47-4D96-9656-3312F16E3724}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {C1A5E28A-CF47-4D96-9656-3312F16E3724} = {C1A5E28A-CF47-4D96-9656-3312F16E3724}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{6FC2F162-5E91-47D7-AE00-45C595ED8C85}"
@@ -618,28 +618,28 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pds-drivers", "pds-drivers"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rrdtool", "src\server\pdsdrv\rrdtool\rrdtool.vcproj", "{1B7CA1B1-C702-49D7-8339-7FF82B188D32}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
-               {3B172035-5EEC-45A3-8471-2C390B7ED683} = {3B172035-5EEC-45A3-8471-2C390B7ED683}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {3B172035-5EEC-45A3-8471-2C390B7ED683} = {3B172035-5EEC-45A3-8471-2C390B7ED683}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h3c", "src\server\drivers\h3c\h3c.vcproj", "{B51F1406-AF43-4396-96C0-31176DDAA3FC}"
        ProjectSection(ProjectDependencies) = postProject
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-libnxdb", "tests\test-libnxdb\test-libnxdb.vcproj", "{CB4F1D89-AC66-49AF-9273-BA77D39E7707}"
        ProjectSection(ProjectDependencies) = postProject
-               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {F3E29541-3A0E-45EC-8BEC-E193F2401622}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kannel", "src\server\smsdrv\kannel\kannel.vcproj", "{60BB5936-BF12-423F-9276-26F179E9C232}"
        ProjectSection(ProjectDependencies) = postProject
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tuxedo", "src\agent\subagents\tuxedo\tuxedo.vcproj", "{30630D53-7B8E-45CF-BFBB-652D9206ED66}"
@@ -649,9 +649,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tuxedo", "src\agent\subagen
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hpsw", "src\server\drivers\hpsw\hpsw.vcproj", "{B51F1406-AF43-4396-96C0-31176DDCA4FC}"
        ProjectSection(ProjectDependencies) = postProject
-               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
-               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
+               {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnxclient", "src\client\libnxclient\libnxclient.vcproj", "{B2C8E7C8-E047-46E8-ADDB-0BB819F72288}"
@@ -661,9 +661,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnxclient", "src\client\l
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qtech-olt", "src\server\drivers\qtech-olt\qtech-olt.vcproj", "{AB4F7846-5024-4666-8F5E-56B2D9FBF731}"
        ProjectSection(ProjectDependencies) = postProject
+               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
+               {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
                {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB} = {7DC90EE4-E31C-4F12-8F1E-81F10E9099FB}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nxgenguid", "src\tools\nxgenguid\nxgenguid.vcproj", "{49F5280F-147B-46D0-98BF-931F0646CF97}"
+       ProjectSection(ProjectDependencies) = postProject
                {B1745870-F3ED-4ACB-B813-0C4F47EF0793} = {B1745870-F3ED-4ACB-B813-0C4F47EF0793}
-               {CB89D905-C8BE-4027-B2D8-F96C245E9160} = {CB89D905-C8BE-4027-B2D8-F96C245E9160}
        EndProjectSection
 EndProject
 Global
@@ -1530,6 +1535,14 @@ Global
                {AB4F7846-5024-4666-8F5E-56B2D9FBF731}.Release|Win32.Build.0 = Release|Win32
                {AB4F7846-5024-4666-8F5E-56B2D9FBF731}.Release|x64.ActiveCfg = Release|x64
                {AB4F7846-5024-4666-8F5E-56B2D9FBF731}.Release|x64.Build.0 = Release|x64
+               {49F5280F-147B-46D0-98BF-931F0646CF97}.Debug|Win32.ActiveCfg = Debug|Win32
+               {49F5280F-147B-46D0-98BF-931F0646CF97}.Debug|Win32.Build.0 = Debug|Win32
+               {49F5280F-147B-46D0-98BF-931F0646CF97}.Debug|x64.ActiveCfg = Debug|x64
+               {49F5280F-147B-46D0-98BF-931F0646CF97}.Debug|x64.Build.0 = Debug|x64
+               {49F5280F-147B-46D0-98BF-931F0646CF97}.Release|Win32.ActiveCfg = Release|Win32
+               {49F5280F-147B-46D0-98BF-931F0646CF97}.Release|Win32.Build.0 = Release|Win32
+               {49F5280F-147B-46D0-98BF-931F0646CF97}.Release|x64.ActiveCfg = Release|x64
+               {49F5280F-147B-46D0-98BF-931F0646CF97}.Release|x64.Build.0 = Release|x64
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
@@ -1611,6 +1624,7 @@ Global
                {60BB5936-BF12-423F-9276-26F179E9C232} = {5818CCA9-B585-44B8-B29E-98B1DC278A3C}
                {49F5280F-147B-46D0-98BF-931F0646CF82} = {3AB343C9-A67D-49F1-A8CD-EA0D9CA98467}
                {1EA79FC6-F395-43DF-9E3C-2030CA05ED1D} = {3AB343C9-A67D-49F1-A8CD-EA0D9CA98467}
+               {49F5280F-147B-46D0-98BF-931F0646CF97} = {3AB343C9-A67D-49F1-A8CD-EA0D9CA98467}
                {44417A1C-341A-4D06-8F86-1D8027A10FF3} = {2AD11F39-3F76-4269-A6E9-4B9A294F8F48}
                {F3E29541-3A0E-45EC-8BEC-E193F2401622} = {2AD11F39-3F76-4269-A6E9-4B9A294F8F48}
                {A429ACFD-1E61-4EE4-8391-15DBA65B0EF0} = {44417A1C-341A-4D06-8F86-1D8027A10FF3}
index 34df29d..fbfb567 100644 (file)
@@ -3,89 +3,89 @@
 ** ex: syntax=sql
 */
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text,command_name,command_short_name,icon)
-       VALUES (1,'&Shutdown system',TOOL_TYPE_ACTION,'System.Shutdown',74,'','Shutdown target node via NetXMS agent',
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text,command_name,command_short_name,icon)
+       VALUES (1,'7373a74b-e805-1a49-b52c-19410c1c347f','&Shutdown system',TOOL_TYPE_ACTION,'System.Shutdown',74,'','Shutdown target node via NetXMS agent',
            'Host %OBJECT_NAME% (%OBJECT_IP_ADDR%) will be shut down. Are you sure?', 'Shutdown system','Shutdown',
            '89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff610000000473424954080808087c086488000002bf49444154388d95933f689c7518c73fbf3f7779efaede995c137369d54123ba4843070b1204c10ed24db182939b90c1c1e2eee05871e8d0d2b98a8ba0c52ee2d0cb622acd99222dd1084d9a18cd3597f7bd6bdebbdffbfbe7701d82e8e0071ebec303dfe7e1e1fb883fea7542aba54c080dac153c261ed1a30540b51a8f359bd9c9e565afedd4943ab6b4f4d56873f38d5014ff6af04f95950aaad5fa7e7d7dfdbcee1d1c3cd95d59395b5a5c7c82ffc1fd4ee7acc9f349fd683090b1db15499ae2013b3f8f1c0e296f6f539c380140796707333747a856296d6ca081d1e1a138cc73a95d8cc28f468834459f3ecd7367cee0b38ccd7bf7787e711180dfaf5ee599850544a3c1760898d5556c51e06314d2c5288be150186b995d58404bc9eef5ebb87e86140229257690b17be33b4a4a3173ea14236b71d60a17a3901684b59652b34952ab31dcda6470f76794c9b0b6c0160665320eefae317ab04552ad529e9ec6c78003292dc861bf2f4408e369fb7b948a8cb2cd7085c115868998936887eb75514a617a3db66eb68505211d30f86b97dde536420844a341b17e8bf8db0a21ed12d23ddcda0ff46f7e4dac24482939b8b386b3060f4207206a457afb16be9f519f7f91f22baf52f9e91bfca7ef00829a4fb1af9fa3fed2cbf8419f6c75054a0a0fc800a025f151cafdcb17514af3ecc79f939fbf40d69c259d9ca1ffd687cc7d7411a5145b573e230e52d0120f68ffd8400ad8b97685c9934f31f9ee07b4de5e227ff37d8c311c4f12aad50afb5f5c62e7da65a400519204408f37108408de471e5cfa04fbe3b74c9d7b8ff2d32f1042805f7e25bdf1257fdeee103c8408528d53afa356c85a42b107d6812920bdd3c16f7448cae3d81a0b837cdc2b1c380f724203445d8ff161767cb66df1afe5380a0d3d05ca8d0f148110c02bb035b013109b1a17747b06baa20d3c84897dc93420feeb0b8f22203603dd19307f037f0665861328b32e0000000049454e44ae426082'
            );
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text,command_name,command_short_name,icon)
-       VALUES (2,'&Restart system',TOOL_TYPE_ACTION,'System.Restart',74,'','Restart target node via NetXMS agent',
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text,command_name,command_short_name,icon)
+       VALUES (2,'b1e6192c-ff80-c842-a532-c60e40cb9fa4','&Restart system',TOOL_TYPE_ACTION,'System.Restart',74,'','Restart target node via NetXMS agent',
            'Host %OBJECT_NAME% (%OBJECT_IP_ADDR%) will be restarted. Are you sure?', 'Restart system','Restart',
            '89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff610000000473424954080808087c0864880000029849444154388d85934d8b1c5514869f73eeadaaae6ea77bda388999882241fc5c0e09ae4484c4857b4177fa0b5474256edcfa075cbacbc23f6074a12332a0a2200a2189e8c468a23d93e99e9eaeaaae7beb1e1733f9902c7ce06c0ebc2f2fe7f0ca5fe311fdd71e77d93332922e08b749dcc5fe3bc9f72d5d1fcf861f7dd6f9f295353778ebdd0b71ff977374ad60f7888e1003bbb3379ceb930f4e7fbe7be5a7573da7f65697db17cf2ff2e757fe6e06a00e1141040aab59ebb5dc47076efbdb739cacc63edc9aabee4f64796248efb10dbcf738e750556268e97eff14b937ce6d1607126e55eae33c4956d5f4f72f21ae40d6cfe0bc4755c9f39cd4ccc0d27d7a695ae23c896fe7a645d5482c26340f0d19e639beb9811463c85788610a29c1d11d4284cc416a82848589861a49754bab390fac3f4ba69174f963ba7040d745249f4136033f63efd859769f78933a792c244265ea436d9a9a99e86895bc28b0e90fc03632bd88e463acb787580696f3e0fa299ade09e275a5feed2b09b5898f4ba35bdc40bb6b0034f5357cda4277bec354400d0b0d5d75406a5e42caa751d90596c425e22d00aa48771933a3c99e6230a8d1b241dcd1eb03a4a2c4563600f07615bc622da80510149aefa1b982ef3dc24d7d071b7afc71f0c781d58c83d107e48347d1f62a1a7f44f4d0c0130c4c4196d89fefa1273f215f7d9d4b379fa4dfdf22cb32bc7f99b5f533c45893edbc4fe75a8c0116c05b008b408434fd9a327f031b7d08c73670ee2c65595296259afe20fbe76de2fc9ba39e1cd6c6a7e4b0ae87d5200a4cbea4acce3318bd8865cfe1a283dd9fe9a65f901615a982d400c96360be9eda4ebbfdf0a6ec752f741ac11f1a89db02d9ba5bc8d483ae877587e2f0abdfac2b26b209488fa218b07627d7ff636dc524d52cff0513e53f37235ac3190000000049454e44ae426082'
            );
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text,command_name,command_short_name,icon)
-       VALUES (3,'&Wakeup node',TOOL_TYPE_INTERNAL,'wakeup',64,'','Wakeup node using Wake-On-LAN magic packet','','Wakeup node using Wake-On-LAN','Wakeup',
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text,command_name,command_short_name,icon)
+       VALUES (3,'74cc4d38-9239-7b4f-9905-7f7adc4d489a','&Wakeup node',TOOL_TYPE_INTERNAL,'wakeup',64,'','Wakeup node using Wake-On-LAN magic packet','','Wakeup node using Wake-On-LAN','Wakeup',
            '89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff610000000473424954080808087c086488000000097048597300000dd700000dd70142289b780000001974455874536f667477617265007777772e696e6b73636170652e6f72679bee3c1a0000023649444154388d8d924f48545114c67ff7bd37ff7cf9071bc70a4d47271ca15c848d448185b40a89204890362d8568eb2270d7a2762d5cb7711504d1ae10c195218895a488528e4e06a653d338de7bdfbcf75ac84ce38c901f9ccdb9e7fbce39f77c627ce6872df6dd71f01f781e1d9c00866003215efaf99de7d6763afb1078721262053a800908ed5a5aa9b1e3bb0802a600c0717d3cdf3fae6cccd24a25abb302a80b990c265a009859d941299763249296d6b2a6732468d25a1f24156f00e0cbd62e9b5a71a0dd9a490cad14a570b4266c780cf546797cab1b1317139747435ddcec69266c78385a53c9b1b45265b548d022d51563f45a9c778b69ce35850058de928c0cb4933fd04c7ffece812e9639e5158480865098ebc9181fbfeef07a6e9dc68805c0af8243f45480ab174e33bb9426e7484a9b942710020c3b40e24c236f3facb1bd9b634d3a00d8e100ab992cb7af7421bc225aa9b280a195a414524972054d5f679488e5a394442949d8f4b8d4d14caea09115f55a490cad155a2b9452ecfdcef37e619ddef6287706ba89c76ce2319be1fe4e926d51663e6d90cdeda3d42147ebaa4fcc161da6a61739df52cfe88d8b0ca712f8be871d0e31bb94666a7a916c2e8feb7aff3cd33ef2f4c8612dd3a0a5d1a6bfa78d544f1bbeef33bf9a617e65939fb902c50a328068bd3bb10c1c71a3210401cb24143cbc82d2459c62ad8980154b2b3909bca87e91c09fea642d26ad67f7fb32afe6bebd5958dd1c2c48ddf45f8a10d87591bdcb89b3b3f7063a337f01f30f1c1c580292640000000049454e44ae426082'
            );
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (4,'Restart &agent',TOOL_TYPE_ACTION,'Agent.Restart',10,'','Restart NetXMS agent on target node',
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (4,'1223b7fe-2098-2a4d-8618-67bdb66a907e','Restart &agent',TOOL_TYPE_ACTION,'Agent.Restart',10,'','Restart NetXMS agent on target node',
            'NetXMS agent on host %OBJECT_NAME% (%OBJECT_IP_ADDR%) will be restarted. Are you sure?');
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (5,'&Info->&Switch forwarding database (FDB)',TOOL_TYPE_TABLE_SNMP,'Forwarding database',1,'','Show switch forwarding database','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (5,'adc5168f-7e0b-f449-a876-cc4720d1a29a','&Info->&Switch forwarding database (FDB)',TOOL_TYPE_TABLE_SNMP,'Forwarding database',1,'','Show switch forwarding database','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (5,0,'MAC Address','.1.3.6.1.2.1.17.4.3.1.1',CFMT_MAC_ADDR,0);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (5,1,'Port','.1.3.6.1.2.1.17.4.3.1.2',CFMT_IFINDEX,0);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (6,'&Connect->Open &web browser',TOOL_TYPE_URL,'http://%OBJECT_IP_ADDR%',0,'','Open embedded web browser to node','');
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (7,'&Connect->Open &web browser (HTTPS)',TOOL_TYPE_URL,'https://%OBJECT_IP_ADDR%',0,'','Open embedded web browser to node using HTTPS','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (6,'fa403c91-28d6-2b49-a96b-fd4d688c5862','&Connect->Open &web browser',TOOL_TYPE_URL,'http://%OBJECT_IP_ADDR%',0,'','Open embedded web browser to node','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (7,'a4d9c827-916b-2640-b6e2-d5bf512c39d7','&Connect->Open &web browser (HTTPS)',TOOL_TYPE_URL,'https://%OBJECT_IP_ADDR%',0,'','Open embedded web browser to node using HTTPS','');
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (8,'&Info->&Agent->&Subagent list',TOOL_TYPE_TABLE_AGENT,'Subagent List\7fAgent.SubAgentList\7f^(.*) (.*) (.*) (.*)',2,'','Show list of loaded subagents','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (8,'ded1f018-9659-c548-8adb-4af5c759c7ba','&Info->&Agent->&Subagent list',TOOL_TYPE_TABLE_AGENT,'Subagent List\7fAgent.SubAgentList\7f^(.*) (.*) (.*) (.*)',2,'','Show list of loaded subagents','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (8,0,'Name',' ',CFMT_STRING,1);
+       VALUES (8,0,'Name','',CFMT_STRING,1);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (8,1,'Version',' ',CFMT_STRING,2);
+       VALUES (8,1,'Version','',CFMT_STRING,2);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (8,2,'File',' ',CFMT_STRING,4);
+       VALUES (8,2,'File','',CFMT_STRING,4);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (8,3,'Module handle',' ',CFMT_STRING,3);
+       VALUES (8,3,'Module handle','',CFMT_STRING,3);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (9,'&Info->&Agent->Supported &parameters',TOOL_TYPE_TABLE_AGENT,'Supported parameters\7fAgent.SupportedParameters\7f^(.*)',2,'','Show list of parameters supported by agent','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (9,'cf606f35-ea88-2446-bdf5-366799e615c9','&Info->&Agent->Supported &parameters',TOOL_TYPE_TABLE_AGENT,'Supported parameters\7fAgent.SupportedParameters\7f^(.*)',2,'','Show list of parameters supported by agent','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (9,0,'Parameter',' ',CFMT_STRING,1);
+       VALUES (9,0,'Parameter','',CFMT_STRING,1);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (10,'&Info->&Agent->Supported &lists',TOOL_TYPE_TABLE_AGENT,'Supported lists\7fAgent.SupportedLists\7f^(.*)',2,'','Show list of lists supported by agent','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (10,'84c8b119-fda0-5d4f-b480-75229315ce20','&Info->&Agent->Supported &lists',TOOL_TYPE_TABLE_AGENT,'Supported lists\7fAgent.SupportedLists\7f^(.*)',2,'','Show list of lists supported by agent','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (10,0,'Parameter',' ',CFMT_STRING,1);
+       VALUES (10,0,'Parameter','',CFMT_STRING,1);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (11,'&Info->&Agent->Supported &actions',TOOL_TYPE_TABLE_AGENT,'Supported actions\7fAgent.ActionList\7f^(.*) (.*) "(.*)".*',2,'','Show list of actions supported by agent','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (11,'d6ea7dcf-c342-b04e-a91b-566beda73c4d','&Info->&Agent->Supported &actions',TOOL_TYPE_TABLE_AGENT,'Supported actions\7fAgent.ActionList\7f^(.*) (.*) "(.*)".*',2,'','Show list of actions supported by agent','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (11,0,'Name',' ',CFMT_STRING,1);
+       VALUES (11,0,'Name','',CFMT_STRING,1);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (11,1,'Type',' ',CFMT_STRING,2);
+       VALUES (11,1,'Type','',CFMT_STRING,2);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (11,2,'Data',' ',CFMT_STRING,3);
+       VALUES (11,2,'Data','',CFMT_STRING,3);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (12,'&Info->&Agent->Configured &ICMP targets',TOOL_TYPE_TABLE_AGENT,'Configured ICMP targets\7fICMP.TargetList\7f^(.*) (.*) (.*) (.*) (.*)',2,'','Show list of actions supported by agent','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (12,'780a1b84-e600-a748-89af-c5e02e5b8cfc','&Info->&Agent->Configured &ICMP targets',TOOL_TYPE_TABLE_AGENT,'Configured ICMP targets\7fICMP.TargetList\7f^(.*) (.*) (.*) (.*) (.*)',2,'','Show list of actions supported by agent','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (12,0,'IP Address',' ',CFMT_STRING,1);
+       VALUES (12,0,'IP Address','',CFMT_STRING,1);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (12,1,'Name',' ',CFMT_STRING,5);
+       VALUES (12,1,'Name','',CFMT_STRING,5);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (12,2,'Packet size',' ',CFMT_STRING,4);
+       VALUES (12,2,'Packet size','',CFMT_STRING,4);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (12,3,'Last RTT',' ',CFMT_STRING,2);
+       VALUES (12,3,'Last RTT','',CFMT_STRING,2);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (12,4,'Average RTT',' ',CFMT_STRING,3);
+       VALUES (12,4,'Average RTT','',CFMT_STRING,3);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (13,'&Info->&Process list',TOOL_TYPE_TABLE_AGENT,
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (13,'7afea6f9-ccd2-1d45-9e8c-3aafe14cb565','&Info->&Process list',TOOL_TYPE_TABLE_AGENT,
            'Process List\7fSystem.ProcessList\7f^([0-9]+) (.*)',2,'','Show list of currently running processes','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (13,0,'PID',' ',CFMT_STRING,1);
+       VALUES (13,0,'PID','',CFMT_STRING,1);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (13,1,'Name',' ',CFMT_STRING,2);
+       VALUES (13,1,'Name','',CFMT_STRING,2);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (14,'&Info->Topology table (Nortel)',TOOL_TYPE_TABLE_SNMP,'Topology table',1,'','Show topology table (Nortel protocol)','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (14,'80f3c244-87b1-954e-99e1-3c94062a2cc7','&Info->Topology table (Nortel)',TOOL_TYPE_TABLE_SNMP,'Topology table',1,'','Show topology table (Nortel protocol)','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (14,0,'Peer IP','.1.3.6.1.4.1.45.1.6.13.2.1.1.3',CFMT_IP_ADDR,0);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
@@ -95,8 +95,8 @@ INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (14,3,'Port','.1.3.6.1.4.1.45.1.6.13.2.1.1.2',CFMT_INTEGER,0);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (15,'&Info->Topology table (CDP)',TOOL_TYPE_TABLE_SNMP,'Topology table',1,'','Show topology table (CDP)','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (15,'e7f69f34-7956-674b-aa5f-aa6d07e3bba3','&Info->Topology table (CDP)',TOOL_TYPE_TABLE_SNMP,'Topology table',1,'','Show topology table (CDP)','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (15,0,'Device ID','.1.3.6.1.4.1.9.9.23.1.2.1.1.6',CFMT_STRING,0);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
@@ -108,18 +108,18 @@ INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (15,4,'Port','.1.3.6.1.4.1.9.9.23.1.2.1.1.7',CFMT_STRING,0);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (16,'&Info->Active &user sessions',TOOL_TYPE_TABLE_AGENT,
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (16,'87370de4-e760-904a-9f9d-dfdf15f4dd9e','&Info->Active &user sessions',TOOL_TYPE_TABLE_AGENT,
            'Active User Sessions\7fSystem.ActiveUserSessions\7f^"(.*)" "(.*)" "(.*)"',2,'','Show list of active user sessions','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (16,0,'User',' ',CFMT_STRING,1);
+       VALUES (16,0,'User','',CFMT_STRING,1);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (16,1,'Terminal',' ',CFMT_STRING,2);
+       VALUES (16,1,'Terminal','',CFMT_STRING,2);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
-       VALUES (16,2,'From',' ',CFMT_STRING,3);
+       VALUES (16,2,'From','',CFMT_STRING,3);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (17,'&Info->AR&P cache (SNMP)',TOOL_TYPE_TABLE_SNMP,'ARP Cache',1,'','Show ARP cache','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (17,'81a0f545-3dbf-6c47-acfc-43ae88465360','&Info->AR&P cache (SNMP)',TOOL_TYPE_TABLE_SNMP,'ARP Cache',1,'','Show ARP cache','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (17,0,'IP Address','.1.3.6.1.2.1.4.22.1.3',CFMT_IP_ADDR,0);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
@@ -127,8 +127,8 @@ INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (17,2,'Interface','.1.3.6.1.2.1.4.22.1.1',CFMT_IFINDEX,0);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (18,'&Info->AR&P cache (Agent)',TOOL_TYPE_TABLE_AGENT,
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (18,'86b9772e-b939-1849-bc5b-d2c1a170ec96','&Info->AR&P cache (Agent)',TOOL_TYPE_TABLE_AGENT,
            'ARP Cache\7fNet.ArpCache\7f(.*) (.*) (.*)',2,'','Show ARP cache','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (18,0,'IP Address','.1.3.6.1.2.1.4.22.1.3',CFMT_STRING,2);
@@ -137,8 +137,8 @@ INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (18,2,'Interface','.1.3.6.1.2.1.4.22.1.1',CFMT_IFINDEX,3);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (19,'&Info->&Routing table (SNMP)',TOOL_TYPE_TABLE_SNMP,'Routing Table',1,'','Show IP routing table','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (19,'565bb6e4-cee3-4741-82d6-0f379c742c55','&Info->&Routing table (SNMP)',TOOL_TYPE_TABLE_SNMP,'Routing Table',1,'','Show IP routing table','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (19,0,'Destination','.1.3.6.1.2.1.4.21.1.1',CFMT_IP_ADDR,0);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
@@ -150,8 +150,8 @@ INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (19,4,'Interface','.1.3.6.1.2.1.4.21.1.2',CFMT_IFINDEX,0);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
-       VALUES (20,'&Info->Topology table (LLDP)',TOOL_TYPE_TABLE_SNMP,'Topology Table',1,'','Show topology table (LLDP)','');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,flags,tool_filter,description,confirmation_text)
+       VALUES (20,'83eeea21-dd61-f84e-811d-3861ccee08ed','&Info->Topology table (LLDP)',TOOL_TYPE_TABLE_SNMP,'Topology Table',1,'','Show topology table (LLDP)','');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (20,0,'Chassis ID','.1.0.8802.1.1.2.1.4.1.1.5',CFMT_STRING,0);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
@@ -165,8 +165,8 @@ INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
        VALUES (20,5,'Remote port description','.1.0.8802.1.1.2.1.4.1.1.8',CFMT_STRING,0);
 
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,description,flags,tool_filter)
- VALUES (21,'QtechOLTsONT',2,'','Show ONTs on PON ports',5,'<objectToolFilter><toolOS></toolOS><toolTemplate></toolTemplate><snmpOid>.1.3.6.1.4.1.27514.1.10.4.1</snmpOid></objectToolFilter>');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,description,flags,tool_filter)
+ VALUES (21,'9b011dcc-a62a-c945-87c9-d12ea7b034ac','QtechOLTsONT',2,'','Show ONTs on PON ports',5,'<objectToolFilter><toolOS></toolOS><toolTemplate></toolTemplate><snmpOid>.1.3.6.1.4.1.27514.1.10.4.1</snmpOid></objectToolFilter>');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
  VALUES (21,0,'Num','.1.3.6.1.4.1.27514.1.11.4.1.1.1',1,1);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
@@ -186,8 +186,8 @@ INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
  VALUES (21,8,'Status','.1.3.6.1.4.1.27514.1.11.4.1.1.3',0,1);
  
-INSERT INTO object_tools (tool_id,tool_name,tool_type,tool_data,description,flags,tool_filter)
- VALUES (22,'QtechOLTsSFP',2,'','Show GPON SFP modules in PON ports',5,'<objectToolFilter><toolOS></toolOS><toolTemplate></toolTemplate><snmpOid>.1.3.6.1.4.1.27514.1.10.4.1</snmpOid></objectToolFilter>');
+INSERT INTO object_tools (tool_id,guid,tool_name,tool_type,tool_data,description,flags,tool_filter)
+ VALUES (22,'4bbcd005-18ab-4b4d-ad57-d978ced60d4f','QtechOLTsSFP',2,'','Show GPON SFP modules in PON ports',5,'<objectToolFilter><toolOS></toolOS><toolTemplate></toolTemplate><snmpOid>.1.3.6.1.4.1.27514.1.10.4.1</snmpOid></objectToolFilter>');
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
  VALUES (22,0,'Num','.1.3.6.1.4.1.27514.1.11.3.1.1.1.0',5,1);
 INSERT INTO object_tools_table_columns (tool_id,col_number,col_name,col_oid,col_format,col_substr)
index 41479dd..a6edc3d 100644 (file)
@@ -991,11 +991,9 @@ CREATE TABLE snmp_trap_pmap
        PRIMARY KEY(trap_id,parameter)
 ) TABLE_TYPE;
 
-
 /*
 ** Agent packages
 */
-
 CREATE TABLE agent_pkg
 (
        pkg_id integer not null,
@@ -1013,6 +1011,7 @@ CREATE TABLE agent_pkg
 CREATE TABLE object_tools
 (
        tool_id integer not null,
+   guid varchar(36) not null,
        tool_name varchar(255) null,
        tool_type integer not null,
        tool_data SQL_TEXT null,
index 38cdaa6..2579ceb 100644 (file)
@@ -368,8 +368,8 @@ NetObj *FindTemplateRoot(ConfigEntry *config)
  */
 UINT32 ImportConfig(Config *config, UINT32 flags)
 {
-       ObjectArray<ConfigEntry> *events = NULL, *traps = NULL, *templates = NULL, *rules = NULL, *scripts = NULL;
-       ConfigEntry *eventsRoot, *trapsRoot, *templatesRoot, *rulesRoot, *scriptsRoot;
+       ObjectArray<ConfigEntry> *events = NULL, *traps = NULL, *templates = NULL, *rules = NULL, *scripts = NULL, *objectTools = NULL;
+       ConfigEntry *eventsRoot, *trapsRoot, *templatesRoot, *rulesRoot, *scriptsRoot, *objectToolsRoot;
        UINT32 rcc = RCC_SUCCESS;
        int i;
 
@@ -432,7 +432,7 @@ UINT32 ImportConfig(Config *config, UINT32 flags)
        rulesRoot = config->getEntry(_T("/rules"));
        if (rulesRoot != NULL)
        {
-               rules = rulesRoot->getSubEntries(_T("rule#*"));
+               rules = rulesRoot->getOrderedSubEntries(_T("rule#*"));
                for(i = 0; i < rules->size(); i++)
                {
          EPRule *rule = new EPRule(rules->get(i));
@@ -453,12 +453,25 @@ UINT32 ImportConfig(Config *config, UINT32 flags)
                DbgPrintf(5, _T("ImportConfig(): scripts imported"));
        }
 
+       // Import object tools
+       objectToolsRoot = config->getEntry(_T("/objectTools"));
+       if (objectToolsRoot != NULL)
+       {
+               objectTools = objectToolsRoot->getSubEntries(_T("objectTool#*"));
+               for(i = 0; i < objectTools->size(); i++)
+               {
+         ImportObjectTool(objectTools->get(i));
+               }
+               DbgPrintf(5, _T("ImportConfig(): object tools imported"));
+       }
+
 stop_processing:
        delete events;
        delete traps;
        delete templates;
    delete rules;
    delete scripts;
+   delete objectTools;
 
        DbgPrintf(4, _T("ImportConfig() finished, rcc = %d"), rcc);
        return rcc;
index aa28854..43494e6 100644 (file)
@@ -51,14 +51,14 @@ struct SNMP_ENUM_ARGS
 };
 
 /**
- * Rollback all querys, release BD connection, free prepared statment if not NULL and return RCC_DB_FAILURE code
+ * Rollback all querys, release BD connection, free prepared statement if not NULL and return RCC_DB_FAILURE code
  */
-static UINT32 ReturnDBFailure(DB_HANDLE hdb, DB_STATEMENT statment)
+static UINT32 ReturnDBFailure(DB_HANDLE hdb, DB_STATEMENT hStmt)
 {
    DBRollback(hdb);
+   if (hStmt != NULL)
+      DBFreeStatement(hStmt);
    DBConnectionPoolReleaseConnection(hdb);
-   if(statment != NULL)
-      DBFreeStatement(statment);
    return RCC_DB_FAILURE;
 }
 
@@ -648,8 +648,7 @@ UINT32 ChangeObjectToolStatus(UINT32 toolId, bool enabled)
 UINT32 UpdateObjectToolFromMessage(NXCPMessage *pMsg)
 {
    TCHAR szBuffer[MAX_DB_STRING];
-   UINT32 i, dwToolId, dwAclSize, *pdwAcl;
-   DB_STATEMENT statment;
+   UINT32 i, dwAclSize, *pdwAcl;
 
    DB_HANDLE hdb = DBConnectionPoolAcquireConnection();
 
@@ -661,37 +660,38 @@ UINT32 UpdateObjectToolFromMessage(NXCPMessage *pMsg)
 
    // Insert or update common properties
    int nType = pMsg->getFieldAsUInt16(VID_TOOL_TYPE);
-   dwToolId = pMsg->getFieldAsUInt32(VID_TOOL_ID);
+   UINT32 dwToolId = pMsg->getFieldAsUInt32(VID_TOOL_ID);
+   bool newTool = false;
+   DB_STATEMENT hStmt;
    if (IsDatabaseRecordExist(hdb, _T("object_tools"), _T("tool_id"), dwToolId))
    {
-      statment = DBPrepare(hdb, _T("UPDATE object_tools SET tool_name=?,tool_type=?,")
+      hStmt = DBPrepare(hdb, _T("UPDATE object_tools SET tool_name=?,tool_type=?,")
                              _T("tool_data=?,description=?,flags=?,")
                              _T("tool_filter=?,confirmation_text=?,command_name=?,")
                              _T("command_short_name=?,icon=? ")
                              _T("WHERE tool_id=?"));
-      if (statment == NULL)
-         return ReturnDBFailure(hdb, statment);
    }
    else
    {
-      statment = DBPrepare(hdb, _T("INSERT INTO object_tools (tool_name,tool_type,")
+      hStmt = DBPrepare(hdb, _T("INSERT INTO object_tools (tool_name,tool_type,")
                              _T("tool_data,description,flags,tool_filter,")
                              _T("confirmation_text,command_name,command_short_name,")
-                             _T("icon,tool_id) VALUES ")
-                             _T("(?,?,?,?,?,?,?,?,?,?,?)"));
-      if (statment == NULL)
-         return ReturnDBFailure(hdb, statment);
+                             _T("icon,tool_id,guid) VALUES ")
+                             _T("(?,?,?,?,?,?,?,?,?,?,?,?)"));
+      newTool = true;
    }
-
-   DBBind(statment, 1, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(VID_NAME), DB_BIND_DYNAMIC);
-   DBBind(statment, 2, DB_SQLTYPE_INTEGER, nType);
-   DBBind(statment, 3, DB_SQLTYPE_TEXT, pMsg->getFieldAsString(VID_TOOL_DATA), DB_BIND_DYNAMIC);
-   DBBind(statment, 4, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(VID_DESCRIPTION), DB_BIND_DYNAMIC);
-   DBBind(statment, 5, DB_SQLTYPE_INTEGER, pMsg->getFieldAsUInt32(VID_FLAGS));
-   DBBind(statment, 6, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(VID_TOOL_FILTER), DB_BIND_DYNAMIC);
-   DBBind(statment, 7, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(VID_CONFIRMATION_TEXT), DB_BIND_DYNAMIC);
-   DBBind(statment, 8, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(VID_COMMAND_NAME), DB_BIND_DYNAMIC);
-   DBBind(statment, 9, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(VID_COMMAND_SHORT_NAME), DB_BIND_DYNAMIC);
+   if (hStmt == NULL)
+      return ReturnDBFailure(hdb, hStmt);
+
+   DBBind(hStmt, 1, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(VID_NAME), DB_BIND_DYNAMIC);
+   DBBind(hStmt, 2, DB_SQLTYPE_INTEGER, nType);
+   DBBind(hStmt, 3, DB_SQLTYPE_TEXT, pMsg->getFieldAsString(VID_TOOL_DATA), DB_BIND_DYNAMIC);
+   DBBind(hStmt, 4, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(VID_DESCRIPTION), DB_BIND_DYNAMIC);
+   DBBind(hStmt, 5, DB_SQLTYPE_INTEGER, pMsg->getFieldAsUInt32(VID_FLAGS));
+   DBBind(hStmt, 6, DB_SQLTYPE_TEXT, pMsg->getFieldAsString(VID_TOOL_FILTER), DB_BIND_DYNAMIC);
+   DBBind(hStmt, 7, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(VID_CONFIRMATION_TEXT), DB_BIND_DYNAMIC);
+   DBBind(hStmt, 8, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(VID_COMMAND_NAME), DB_BIND_DYNAMIC);
+   DBBind(hStmt, 9, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(VID_COMMAND_SHORT_NAME), DB_BIND_DYNAMIC);
 
    size_t size;
    BYTE *imageData = pMsg->getBinaryFieldPtr(VID_IMAGE_DATA, &size);
@@ -699,27 +699,34 @@ UINT32 UpdateObjectToolFromMessage(NXCPMessage *pMsg)
    {
       TCHAR *imageHexData = (TCHAR *)malloc((size * 2 + 1) * sizeof(TCHAR));
       BinToStr(imageData, size, imageHexData);
-      DBBind(statment, 10, DB_SQLTYPE_TEXT, imageHexData, DB_BIND_DYNAMIC);
+      DBBind(hStmt, 10, DB_SQLTYPE_TEXT, imageHexData, DB_BIND_DYNAMIC);
    }
    else
    {
-      DBBind(statment, 10, DB_SQLTYPE_TEXT, _T(""), DB_BIND_STATIC);
+      DBBind(hStmt, 10, DB_SQLTYPE_TEXT, _T(""), DB_BIND_STATIC);
    }
 
-   DBBind(statment, 11, DB_SQLTYPE_INTEGER, dwToolId);
+   DBBind(hStmt, 11, DB_SQLTYPE_INTEGER, dwToolId);
+   if (newTool)
+   {
+      uuid_t guid;
+      uuid_generate(guid);
+      TCHAR guidText[64];
+      DBBind(hStmt, 12, DB_SQLTYPE_VARCHAR, uuid_to_string(guid, guidText), DB_BIND_TRANSIENT);
+   }
 
-   if(!DBExecute(statment))
-      return ReturnDBFailure(hdb, statment);
-   DBFreeStatement(statment);
+   if (!DBExecute(hStmt))
+      return ReturnDBFailure(hdb, hStmt);
+   DBFreeStatement(hStmt);
 
    // Update ACL
-   statment = DBPrepare(hdb, _T("DELETE FROM object_tools_acl WHERE tool_id=?"));
-   if (statment == NULL)
-      return ReturnDBFailure(hdb, statment);
-   DBBind(statment, 1, DB_SQLTYPE_INTEGER, dwToolId);
-   if(!DBExecute(statment))
-      return ReturnDBFailure(hdb, statment);
-   DBFreeStatement(statment);
+   hStmt = DBPrepare(hdb, _T("DELETE FROM object_tools_acl WHERE tool_id=?"));
+   if (hStmt == NULL)
+      return ReturnDBFailure(hdb, hStmt);
+   DBBind(hStmt, 1, DB_SQLTYPE_INTEGER, dwToolId);
+   if(!DBExecute(hStmt))
+      return ReturnDBFailure(hdb, hStmt);
+   DBFreeStatement(hStmt);
 
    dwAclSize = pMsg->getFieldAsUInt32(VID_ACL_SIZE);
    if (dwAclSize > 0)
@@ -728,26 +735,26 @@ UINT32 UpdateObjectToolFromMessage(NXCPMessage *pMsg)
       pMsg->getFieldAsInt32Array(VID_ACL, dwAclSize, pdwAcl);
       for(i = 0; i < dwAclSize; i++)
       {
-         statment = DBPrepare(hdb, _T("INSERT INTO object_tools_acl (tool_id,user_id) VALUES (?,?)"));
-         if (statment == NULL)
-            return ReturnDBFailure(hdb, statment);
-         DBBind(statment, 1, DB_SQLTYPE_INTEGER, dwToolId);
-         DBBind(statment, 2, DB_SQLTYPE_INTEGER, pdwAcl[i]);
-         if(!DBExecute(statment))
-            return ReturnDBFailure(hdb, statment);
-         DBFreeStatement(statment);
+         hStmt = DBPrepare(hdb, _T("INSERT INTO object_tools_acl (tool_id,user_id) VALUES (?,?)"));
+         if (hStmt == NULL)
+            return ReturnDBFailure(hdb, hStmt);
+         DBBind(hStmt, 1, DB_SQLTYPE_INTEGER, dwToolId);
+         DBBind(hStmt, 2, DB_SQLTYPE_INTEGER, pdwAcl[i]);
+         if(!DBExecute(hStmt))
+            return ReturnDBFailure(hdb, hStmt);
+         DBFreeStatement(hStmt);
       }
    }
 
    // Update columns configuration
-   statment = DBPrepare(hdb, _T("DELETE FROM object_tools_table_columns WHERE tool_id=?"));
-   if (statment == NULL)
-      return ReturnDBFailure(hdb, statment);
-   DBBind(statment, 1, DB_SQLTYPE_INTEGER, dwToolId);
+   hStmt = DBPrepare(hdb, _T("DELETE FROM object_tools_table_columns WHERE tool_id=?"));
+   if (hStmt == NULL)
+      return ReturnDBFailure(hdb, hStmt);
+   DBBind(hStmt, 1, DB_SQLTYPE_INTEGER, dwToolId);
 
-   if(!DBExecute(statment))
-      return ReturnDBFailure(hdb, statment);
-   DBFreeStatement(statment);
+   if(!DBExecute(hStmt))
+      return ReturnDBFailure(hdb, hStmt);
+   DBFreeStatement(hStmt);
 
    if ((nType == TOOL_TYPE_TABLE_SNMP) ||
        (nType == TOOL_TYPE_TABLE_AGENT))
@@ -755,26 +762,29 @@ UINT32 UpdateObjectToolFromMessage(NXCPMessage *pMsg)
       UINT32 dwId, dwNumColumns;
 
       dwNumColumns = pMsg->getFieldAsUInt16(VID_NUM_COLUMNS);
-      for(i = 0, dwId = VID_COLUMN_INFO_BASE; i < dwNumColumns; i++)
+      if (dwNumColumns > 0)
       {
-         pMsg->getFieldAsString(dwId++, szBuffer, MAX_DB_STRING);
-         /* prepared stmt */
-         statment = DBPrepare(hdb, _T("INSERT INTO object_tools_table_columns (tool_id,")
+         hStmt = DBPrepare(hdb, _T("INSERT INTO object_tools_table_columns (tool_id,")
                                 _T("col_number,col_name,col_oid,col_format,col_substr) ")
                                 _T("VALUES (?,?,?,?,?,?)"));
-         if (statment == NULL)
-            return ReturnDBFailure(hdb, statment);
-
-         DBBind(statment, 1, DB_SQLTYPE_INTEGER, dwToolId);
-         DBBind(statment, 2, DB_SQLTYPE_INTEGER, i);
-         DBBind(statment, 3, DB_SQLTYPE_VARCHAR, szBuffer, DB_BIND_TRANSIENT);
-         DBBind(statment, 4, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(dwId++), DB_BIND_DYNAMIC);
-         DBBind(statment, 5, DB_SQLTYPE_INTEGER, pMsg->getFieldAsUInt16(dwId++));
-         DBBind(statment, 6, DB_SQLTYPE_INTEGER, pMsg->getFieldAsUInt16(dwId++));
-
-         if(!DBExecute(statment))
-            return ReturnDBFailure(hdb, statment);
-         DBFreeStatement(statment);
+         if (hStmt == NULL)
+            return ReturnDBFailure(hdb, hStmt);
+
+         for(i = 0, dwId = VID_COLUMN_INFO_BASE; i < dwNumColumns; i++)
+         {
+            pMsg->getFieldAsString(dwId++, szBuffer, MAX_DB_STRING);
+
+            DBBind(hStmt, 1, DB_SQLTYPE_INTEGER, dwToolId);
+            DBBind(hStmt, 2, DB_SQLTYPE_INTEGER, i);
+            DBBind(hStmt, 3, DB_SQLTYPE_VARCHAR, szBuffer, DB_BIND_STATIC);
+            DBBind(hStmt, 4, DB_SQLTYPE_VARCHAR, pMsg->getFieldAsString(dwId++), DB_BIND_DYNAMIC);
+            DBBind(hStmt, 5, DB_SQLTYPE_INTEGER, pMsg->getFieldAsUInt16(dwId++));
+            DBBind(hStmt, 6, DB_SQLTYPE_INTEGER, pMsg->getFieldAsUInt16(dwId++));
+
+            if (!DBExecute(hStmt))
+               return ReturnDBFailure(hdb, hStmt);
+         }
+         DBFreeStatement(hStmt);
       }
    }
 
@@ -785,13 +795,238 @@ UINT32 UpdateObjectToolFromMessage(NXCPMessage *pMsg)
 }
 
 /**
+ * Import failure exit
+ */
+static bool ImportFailure(DB_HANDLE hdb, DB_STATEMENT hStmt, const TCHAR *error)
+{
+   if (hStmt != NULL)
+      DBFreeStatement(hStmt);
+   DBRollback(hdb);
+   DBConnectionPoolReleaseConnection(hdb);
+   DbgPrintf(4, _T("ImportObjectTool: %s"), error);
+   return false;
+}
+
+/**
+ * Import object tool
+ */
+bool ImportObjectTool(ConfigEntry *config)
+{
+   const TCHAR *guid = config->getSubEntryValue(_T("guid"));
+   if (guid == NULL)
+   {
+      DbgPrintf(4, _T("ImportObjectTool: missing GUID"));
+      return false;
+   }
+
+   uuid_t temp;
+   if (uuid_parse(guid, temp) == -1)
+   {
+      DbgPrintf(4, _T("ImportObjectTool: GUID (%s) is invalid"), guid);
+      return false;
+   }
+
+   DB_HANDLE hdb = DBConnectionPoolAcquireConnection();
+
+   // Step 1: find existing tool ID by GUID
+   DB_STATEMENT hStmt = DBPrepare(hdb, _T("SELECT tool_id FROM object_tools WHERE guid=?"));
+   if (hStmt == NULL)
+   {
+      return ImportFailure(hdb, NULL, _T("DB failure"));
+   }
+
+   DBBind(hStmt, 1, DB_SQLTYPE_VARCHAR, guid, DB_BIND_STATIC);
+   DB_RESULT hResult = DBSelectPrepared(hStmt);
+   if (hResult == NULL)
+   {
+      return ImportFailure(hdb, hStmt, _T("DB failure"));
+   }
+
+   UINT32 toolId;
+   if (DBGetNumRows(hResult) > 0)
+   {
+      toolId = DBGetFieldULong(hResult, 0, 0);
+   }
+   else
+   {
+      toolId = 0;
+   }
+   DBFreeResult(hResult);
+   DBFreeStatement(hStmt);
+
+   // Step 2: create or update tool record
+       if (!DBBegin(hdb))
+       {
+      return ImportFailure(hdb, NULL, _T("DB failure"));
+       }
+
+   if (toolId != 0)
+   {
+      hStmt = DBPrepare(hdb, _T("UPDATE object_tools SET tool_name=?,tool_type=?,")
+                             _T("tool_data=?,description=?,flags=?,")
+                             _T("tool_filter=?,confirmation_text=?,command_name=?,")
+                             _T("command_short_name=?,icon=? ")
+                             _T("WHERE tool_id=?"));
+   }
+   else
+   {
+      hStmt = DBPrepare(hdb, _T("INSERT INTO object_tools (tool_name,tool_type,")
+                             _T("tool_data,description,flags,tool_filter,")
+                             _T("confirmation_text,command_name,command_short_name,")
+                             _T("icon,tool_id,guid) VALUES ")
+                             _T("(?,?,?,?,?,?,?,?,?,?,?,?)"));
+   }
+
+   if (hStmt == NULL)
+       {
+      return ImportFailure(hdb, NULL, _T("DB failure"));
+       }
+
+   DBBind(hStmt, 1, DB_SQLTYPE_VARCHAR, config->getSubEntryValue(_T("name")), DB_BIND_STATIC);
+   DBBind(hStmt, 2, DB_SQLTYPE_INTEGER, config->getSubEntryValueAsInt(_T("type")));
+   DBBind(hStmt, 3, DB_SQLTYPE_TEXT, config->getSubEntryValue(_T("data")), DB_BIND_STATIC);
+   DBBind(hStmt, 4, DB_SQLTYPE_VARCHAR, config->getSubEntryValue(_T("description")), DB_BIND_STATIC);
+   DBBind(hStmt, 5, DB_SQLTYPE_INTEGER, config->getSubEntryValueAsUInt(_T("flags")));
+   DBBind(hStmt, 6, DB_SQLTYPE_TEXT, config->getSubEntryValue(_T("filter")), DB_BIND_STATIC);
+   DBBind(hStmt, 7, DB_SQLTYPE_VARCHAR, config->getSubEntryValue(_T("confirmation")), DB_BIND_STATIC);
+   DBBind(hStmt, 8, DB_SQLTYPE_VARCHAR, config->getSubEntryValue(_T("commandName")), DB_BIND_STATIC);
+   DBBind(hStmt, 9, DB_SQLTYPE_VARCHAR, config->getSubEntryValue(_T("commandShortName")), DB_BIND_STATIC);
+   DBBind(hStmt, 10, DB_SQLTYPE_TEXT, config->getSubEntryValue(_T("image")), DB_BIND_STATIC);
+   if (toolId == 0)
+   {
+      toolId = CreateUniqueId(IDG_OBJECT_TOOL);
+      DBBind(hStmt, 11, DB_SQLTYPE_INTEGER, toolId);
+      DBBind(hStmt, 12, DB_SQLTYPE_VARCHAR, guid, DB_BIND_STATIC);
+   }
+   else
+   {
+      DBBind(hStmt, 11, DB_SQLTYPE_INTEGER, toolId);
+   }
+
+   if (!DBExecute(hStmt))
+      return ImportFailure(hdb, hStmt, _T("DB failure"));
+   DBFreeStatement(hStmt);
+
+   // Update ACL
+   hStmt = DBPrepare(hdb, _T("DELETE FROM object_tools_acl WHERE tool_id=?"));
+   if (hStmt == NULL)
+      return ImportFailure(hdb, hStmt, _T("DB failure"));
+   DBBind(hStmt, 1, DB_SQLTYPE_INTEGER, toolId);
+   if (!DBExecute(hStmt))
+      return ImportFailure(hdb, hStmt, _T("DB failure"));
+   DBFreeStatement(hStmt);
+
+   // Default ACL for imported tools - accessible by everyone
+   hStmt = DBPrepare(hdb, _T("INSERT INTO object_tools_acl (tool_id,user_id) VALUES (?,?)"));
+   if (hStmt == NULL)
+      return ImportFailure(hdb, hStmt, _T("DB failure"));
+   DBBind(hStmt, 1, DB_SQLTYPE_INTEGER, toolId);
+   DBBind(hStmt, 2, DB_SQLTYPE_INTEGER, GROUP_EVERYONE);
+   if (!DBExecute(hStmt))
+      return ImportFailure(hdb, hStmt, _T("DB failure"));
+   DBFreeStatement(hStmt);
+
+   // Update columns configuration
+   hStmt = DBPrepare(hdb, _T("DELETE FROM object_tools_table_columns WHERE tool_id=?"));
+   if (hStmt == NULL)
+      return ImportFailure(hdb, hStmt, _T("DB failure"));
+   DBBind(hStmt, 1, DB_SQLTYPE_INTEGER, toolId);
+
+   if (!DBExecute(hStmt))
+      return ImportFailure(hdb, hStmt, _T("DB failure"));
+   DBFreeStatement(hStmt);
+
+   int toolType = config->getSubEntryValueAsInt(_T("type"));
+   if ((toolType == TOOL_TYPE_TABLE_SNMP) ||
+       (toolType == TOOL_TYPE_TABLE_AGENT))
+   {
+       ConfigEntry *root = config->findEntry(_T("columns"));
+          if (root != NULL)
+          {
+                  ObjectArray<ConfigEntry> *columns = root->getOrderedSubEntries(_T("column#*"));
+         if (columns->size() > 0)
+         {
+            hStmt = DBPrepare(hdb, _T("INSERT INTO object_tools_table_columns (tool_id,")
+                                   _T("col_number,col_name,col_oid,col_format,col_substr) ")
+                                   _T("VALUES (?,?,?,?,?,?)"));
+            if (hStmt == NULL)
+               return ImportFailure(hdb, hStmt, _T("DB failure"));
+
+            for(int i = 0; i < columns->size(); i++)
+            {
+               ConfigEntry *c = columns->get(i);
+               DBBind(hStmt, 1, DB_SQLTYPE_INTEGER, toolId);
+               DBBind(hStmt, 2, DB_SQLTYPE_INTEGER, (INT32)i);
+               DBBind(hStmt, 3, DB_SQLTYPE_VARCHAR, c->getSubEntryValue(_T("name")), DB_BIND_STATIC);
+               DBBind(hStmt, 4, DB_SQLTYPE_VARCHAR, c->getSubEntryValue(_T("oid")), DB_BIND_STATIC);
+               DBBind(hStmt, 5, DB_SQLTYPE_INTEGER, (INT32)c->getSubEntryValueAsInt(_T("format")));
+               DBBind(hStmt, 6, DB_SQLTYPE_INTEGER, (INT32)c->getSubEntryValueAsInt(_T("captureGroup")));
+
+               if (!DBExecute(hStmt))
+               {
+                  delete columns;
+                  return ImportFailure(hdb, hStmt, _T("DB failure"));
+               }
+            }
+            DBFreeStatement(hStmt);
+         }
+         delete columns;
+      }
+   }
+
+   DBCommit(hdb);
+       DBConnectionPoolReleaseConnection(hdb);
+   NotifyClientSessions(NX_NOTIFY_OBJTOOLS_CHANGED, toolId);
+   return true;
+}
+
+/**
+ * Create export records for object tool columns
+ */
+static void CreateObjectToolColumnExportRecords(DB_HANDLE hdb, String &xml, UINT32 id)
+{
+   DB_STATEMENT hStmt = DBPrepare(hdb, _T("SELECT col_number,col_name,col_oid,col_format,col_substr FROM object_tools_table_columns WHERE tool_id=?"));
+   if (hStmt == NULL)
+      return;
+
+   DBBind(hStmt, 1, DB_SQLTYPE_INTEGER, id);
+   DB_RESULT hResult = DBSelectPrepared(hStmt);
+   if (hResult != NULL)
+   {
+      int count = DBGetNumRows(hResult);
+      if (count > 0)
+      {
+         xml.append(_T("\t\t\t<columns>\n"));
+         for(int i = 0; i < count; i++)
+         {
+            xml.append(_T("\t\t\t\t<column id=\""));
+            xml.append(DBGetFieldLong(hResult, i, 0) + 1);
+            xml.append(_T("\">\n\t\t\t\t\t<name>"));
+            xml.appendPreallocated(DBGetFieldForXML(hResult, i, 1));
+            xml.append(_T("</name>\n\t\t\t\t\t<oid>"));
+            xml.appendPreallocated(DBGetFieldForXML(hResult, i, 2));
+            xml.append(_T("</oid>\n\t\t\t\t\t<format>"));
+            xml.append(DBGetFieldLong(hResult, i, 3));
+            xml.append(_T("</format>\n\t\t\t\t\t<captureGroup>"));
+            xml.append(DBGetFieldLong(hResult, i, 4));
+            xml.append(_T("</captureGroup>\n\t\t\t\t</column>\n"));
+         }
+         xml.append(_T("\t\t\t</columns>\n"));
+      }
+      DBFreeResult(hResult);
+   }
+
+   DBFreeStatement(hStmt);
+}
+
+/**
  * Cerate export record for given object tool
  */
 void CreateObjectToolExportRecord(String &xml, UINT32 id)
 {
    DB_HANDLE hdb = DBConnectionPoolAcquireConnection();
 
-   DB_STATEMENT hStmt = DBPrepare(hdb, _T("SELECT tool_name,tool_type,tool_data,description,flags,tool_filter,confirmation_text,command_name,command_short_name,icon FROM object_tools WHERE tool_id=?"));
+   DB_STATEMENT hStmt = DBPrepare(hdb, _T("SELECT tool_name,guid,tool_type,tool_data,description,flags,tool_filter,confirmation_text,command_name,command_short_name,icon FROM object_tools WHERE tool_id=?"));
    if (hStmt == NULL)
    {
       DBConnectionPoolReleaseConnection(hdb);
@@ -808,25 +1043,29 @@ void CreateObjectToolExportRecord(String &xml, UINT32 id)
          xml.append(id);
          xml.append(_T("\">\n\t\t\t<name>"));
          xml.appendPreallocated(DBGetFieldForXML(hResult, 0, 0));
-         xml.append(_T("</name>\n\t\t\t<type>"));
-         xml.append(DBGetFieldLong(hResult, 0, 1));
+         xml.append(_T("</name>\n\t\t\t<guid>"));
+         xml.appendPreallocated(DBGetField(hResult, 0, 1, NULL, 0));
+         xml.append(_T("</guid>\n\t\t\t<type>"));
+         xml.append(DBGetFieldLong(hResult, 0, 2));
          xml.append(_T("</type>\n\t\t\t<data>"));
-         xml.appendPreallocated(DBGetFieldForXML(hResult, 0, 2));
-         xml.append(_T("</data>\n\t\t\t<description>"));
          xml.appendPreallocated(DBGetFieldForXML(hResult, 0, 3));
+         xml.append(_T("</data>\n\t\t\t<description>"));
+         xml.appendPreallocated(DBGetFieldForXML(hResult, 0, 4));
          xml.append(_T("</description>\n\t\t\t<flags>"));
-         xml.append(DBGetFieldLong(hResult, 0, 4));
+         xml.append(DBGetFieldLong(hResult, 0, 5));
          xml.append(_T("</flags>\n\t\t\t<filter>"));
-         xml.appendPreallocated(DBGetFieldForXML(hResult, 0, 5));
-         xml.append(_T("</filter>\n\t\t\t<confirmation>"));
          xml.appendPreallocated(DBGetFieldForXML(hResult, 0, 6));
-         xml.append(_T("</confirmation>\n\t\t\t<commandName>"));
+         xml.append(_T("</filter>\n\t\t\t<confirmation>"));
          xml.appendPreallocated(DBGetFieldForXML(hResult, 0, 7));
-         xml.append(_T("</commandName>\n\t\t\t<commandShortName>"));
+         xml.append(_T("</confirmation>\n\t\t\t<commandName>"));
          xml.appendPreallocated(DBGetFieldForXML(hResult, 0, 8));
-         xml.append(_T("</commandShortName>\n\t\t\t<icon>"));
+         xml.append(_T("</commandName>\n\t\t\t<commandShortName>"));
          xml.appendPreallocated(DBGetFieldForXML(hResult, 0, 9));
-         xml.append(_T("</icon>\n\t\t</objectTool>\n"));
+         xml.append(_T("</commandShortName>\n\t\t\t<image>"));
+         xml.appendPreallocated(DBGetFieldForXML(hResult, 0, 10));
+         xml.append(_T("</image>\n"));
+         CreateObjectToolColumnExportRecords(hdb, xml, id);
+         xml.append(_T("\t\t</objectTool>\n"));
       }
       DBFreeResult(hResult);
    }
index 1d72920..1495bf5 100644 (file)
@@ -933,6 +933,7 @@ UINT32 DeleteObjectToolFromDB(UINT32 dwToolId);
 UINT32 ChangeObjectToolStatus(UINT32 toolId, bool enabled);
 UINT32 UpdateObjectToolFromMessage(NXCPMessage *pMsg);
 void CreateObjectToolExportRecord(String &xml, UINT32 id);
+bool ImportObjectTool(ConfigEntry *config);
 
 UINT32 ModifySummaryTable(NXCPMessage *msg, LONG *newId);
 UINT32 DeleteSummaryTable(LONG tableId);
index 0e7366c..0263767 100644 (file)
 BOOL MigrateMaps();
 
 /**
+ * Generate GUIDs
+ */
+static bool GenerateGUID(const TCHAR *table, const TCHAR *idColumn, const TCHAR *guidColumn)
+{
+   TCHAR query[256];
+   _sntprintf(query, 256, _T("SELECT %s FROM %s"), idColumn, table);
+       DB_RESULT hResult = SQLSelect(query);
+       if (hResult == NULL)
+      return false;
+
+       int count = DBGetNumRows(hResult);
+       for(int i = 0; i < count; i++)
+       {
+               uuid_t guid;
+               TCHAR buffer[64];
+
+               uuid_generate(guid);
+               _sntprintf(query, 256, _T("UPDATE %s SET %s='%s' WHERE %s=%d"),
+                          table, guidColumn, uuid_to_string(guid, buffer), idColumn, DBGetFieldULong(hResult, i, 0));
+               if (!SQLQuery(query))
+      {
+       DBFreeResult(hResult);
+         return false;
+      }
+       }
+       DBFreeResult(hResult);
+   return true;
+}
+
+/**
  * Create table
  */
 static BOOL CreateTable(const TCHAR *pszQuery)
@@ -437,6 +467,17 @@ static BOOL ConvertNetMasks(const TCHAR *table, const TCHAR *column, const TCHAR
 }
 
 /**
+ * Upgrade from V351 to V352
+ */
+static BOOL H_UpgradeFromV351(int currVersion, int newVersion)
+{
+       CHK_EXEC(SQLQuery(_T("ALTER TABLE object_tools ADD guid varchar(36)")));
+   CHK_EXEC(GenerateGUID(_T("object_tools"), _T("tool_id"), _T("guid")));
+   CHK_EXEC(SQLQuery(_T("UPDATE metadata SET var_value='352' WHERE var_name='SchemaVersion'")));
+   return TRUE;
+}
+
+/**
  * Upgrade from V350 to V351
  */
 static BOOL H_UpgradeFromV350(int currVersion, int newVersion)
@@ -1671,25 +1712,7 @@ static BOOL H_UpgradeFromV292(int currVersion, int newVersion)
 static BOOL H_UpgradeFromV291(int currVersion, int newVersion)
 {
        CHK_EXEC(SQLQuery(_T("ALTER TABLE event_policy ADD rule_guid varchar(36)")));
-
-       // Generate GUIDs for all objects
-       DB_RESULT hResult = SQLSelect(_T("SELECT rule_id FROM event_policy"));
-       if (hResult != NULL)
-       {
-               int count = DBGetNumRows(hResult);
-               for(int i = 0; i < count; i++)
-               {
-                       uuid_t guid;
-                       TCHAR query[256], buffer[64];
-
-                       uuid_generate(guid);
-                       _sntprintf(query, 256, _T("UPDATE event_policy SET rule_guid='%s' WHERE rule_id=%d"),
-                                  uuid_to_string(guid, buffer), DBGetFieldULong(hResult, i, 0));
-                       CHK_EXEC(SQLQuery(query));
-               }
-               DBFreeResult(hResult);
-       }
-
+   CHK_EXEC(GenerateGUID(_T("event_policy"), _T("rule_id"), _T("rule_guid")));
    CHK_EXEC(SQLQuery(_T("UPDATE metadata SET var_value='292' WHERE var_name='SchemaVersion'")));
    return TRUE;
 }
@@ -8539,6 +8562,7 @@ static struct
    { 348, 349, H_UpgradeFromV348 },
    { 349, 350, H_UpgradeFromV349 },
    { 350, 351, H_UpgradeFromV350 },
+   { 351, 352, H_UpgradeFromV351 },
    { 0, 0, NULL }
 };
 
index 9d25171..a3092cf 100644 (file)
@@ -8,4 +8,4 @@
 # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
-SUBDIRS = nxdevcfg nxencpasswd
+SUBDIRS = nxdevcfg nxencpasswd nxgenguid
diff --git a/src/tools/nxgenguid/Makefile.am b/src/tools/nxgenguid/Makefile.am
new file mode 100644 (file)
index 0000000..ed81853
--- /dev/null
@@ -0,0 +1,7 @@
+bin_PROGRAMS = nxgenguid
+nxencpasswd_SOURCES = nxgenguid.cpp
+nxencpasswd_CPPFLAGS=-I@top_srcdir@/include
+nxencpasswd_LDADD = ../../libnetxms/libnetxms.la
+
+EXTRA_DIST = \
+       nxgenguid.vcproj
diff --git a/src/tools/nxgenguid/nxgenguid.cpp b/src/tools/nxgenguid/nxgenguid.cpp
new file mode 100644 (file)
index 0000000..560f03a
--- /dev/null
@@ -0,0 +1,64 @@
+/* 
+** nxencpasswd - command line tool for encrypting passwords using NetXMS server key
+** Copyright (C) 2004-2013 Victor Kirhenshtein
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+**
+** File: nxencpasswd.cpp
+**
+**/
+
+#include <nms_util.h>
+#include <uuid.h>
+
+/**
+ * main
+ */
+int main(int argc, char *argv[])
+{
+       int ch;
+
+   // Parse command line
+   opterr = 1;
+   while((ch = getopt(argc, argv, "hK:va")) != -1)
+   {
+      switch(ch)
+      {
+         case 'h':   // Display help and exit
+            printf("Usage: nxgenguid [<options>]\n"
+                   "Valid options are:\n"
+                   "   -h           : Display help and exit.\n"
+                   "   -v           : Display version and exit.\n"
+                   "\n");
+                               return 0;
+         case 'v':   // Print version and exit
+            printf("NetXMS GUID Generation Tool Version " NETXMS_VERSION_STRING_A "\n");
+                               return 0;
+         case '?':
+                               return 1;
+         default:
+            break;
+      }
+   }
+
+   uuid_t guid;
+   uuid_generate(guid);
+
+   TCHAR guidText[64];
+   uuid_to_string(guid, guidText);
+       _putts(guidText);
+
+       return 0;
+}
diff --git a/src/tools/nxgenguid/nxgenguid.vcproj b/src/tools/nxgenguid/nxgenguid.vcproj
new file mode 100644 (file)
index 0000000..a27680a
--- /dev/null
@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="8.00"
+       Name="nxgenguid"
+       ProjectGUID="{49F5280F-147B-46D0-98BF-931F0646CF97}"
+       RootNamespace="nxgenguid"
+       Keyword="Win32Proj"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+               <Platform
+                       Name="x64"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="..\..\..\include"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="true"
+                               DebugInformationFormat="4"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="libeay32.lib ws2_32.lib"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCWebDeploymentTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|x64"
+                       OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
+                       IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+                       ConfigurationType="1"
+                       CharacterSet="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               TargetEnvironment="3"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="..\..\..\include"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="true"
+                               DebugInformationFormat="3"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="libeay32.lib ws2_32.lib"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="17"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCWebDeploymentTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\include"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+                               RuntimeLibrary="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="true"
+                               DebugInformationFormat="3"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="libeay32.lib ws2_32.lib"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCWebDeploymentTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|x64"
+                       OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
+                       IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+                       ConfigurationType="1"
+                       CharacterSet="2"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               TargetEnvironment="3"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalIncludeDirectories="..\..\..\include"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+                               RuntimeLibrary="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="true"
+                               DebugInformationFormat="3"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="libeay32.lib ws2_32.lib"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="17"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCWebDeploymentTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+                       >
+                       <File
+                               RelativePath=".\nxgenguid.cpp"
+                               >
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+                       >
+                       <File
+                               RelativePath="..\..\..\include\base64.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\include\nms_common.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\include\nms_util.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\include\unicode.h"
+                               >
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+                       >
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>