- Implemented interface for SMS drivers
[public/netxms.git] / src / server / core / node.cpp
index d5fc5ba..747fd45 100644 (file)
@@ -120,9 +120,9 @@ BOOL Node::CreateFromDB(DWORD dwId)
    NetObj *pObject;
    BOOL bResult = FALSE;
 
-   _sntprintf(szQuery, 512, "SELECT name,status,primary_ip,is_snmp,is_agent,is_bridge,"
-                            "is_router,is_ospf,snmp_version,discovery_flags,auth_method,secret,"
-                            "agent_port,status_poll_type,community,snmp_oid,is_local_mgmt,"
+   _sntprintf(szQuery, 512, "SELECT name,status,primary_ip,node_flags,"
+                            "snmp_version,discovery_flags,auth_method,secret,"
+                            "agent_port,status_poll_type,community,snmp_oid,"
                             "image_id,is_deleted,description,node_type,agent_version,"
                             "platform_name,poller_node_id FROM nodes WHERE id=%d", dwId);
    hResult = DBSelect(g_hCoreDB, szQuery);
@@ -139,39 +139,25 @@ BOOL Node::CreateFromDB(DWORD dwId)
    strncpy(m_szName, DBGetField(hResult, 0, 0), MAX_OBJECT_NAME);
    m_iStatus = DBGetFieldLong(hResult, 0, 1);
    m_dwIpAddr = DBGetFieldIPAddr(hResult, 0, 2);
-
-   // Flags
-   if (DBGetFieldLong(hResult, 0, 3))
-      m_dwFlags |= NF_IS_SNMP;
-   if (DBGetFieldLong(hResult, 0, 4))
-      m_dwFlags |= NF_IS_NATIVE_AGENT;
-   if (DBGetFieldLong(hResult, 0, 5))
-      m_dwFlags |= NF_IS_BRIDGE;
-   if (DBGetFieldLong(hResult, 0, 6))
-      m_dwFlags |= NF_IS_ROUTER;
-   if (DBGetFieldLong(hResult, 0, 7))
-      m_dwFlags |= NF_IS_OSPF;
-   if (DBGetFieldLong(hResult, 0, 16))
-      m_dwFlags |= NF_IS_LOCAL_MGMT;
-
-   m_iSNMPVersion = DBGetFieldLong(hResult, 0, 8);
-   m_dwDiscoveryFlags = DBGetFieldULong(hResult, 0, 9);
-   m_wAuthMethod = (WORD)DBGetFieldLong(hResult, 0, 10);
-   strncpy(m_szSharedSecret, DBGetField(hResult, 0, 11), MAX_SECRET_LENGTH);
-   m_wAgentPort = (WORD)DBGetFieldLong(hResult, 0, 12);
-   m_iStatusPollType = DBGetFieldLong(hResult, 0, 13);
-   strncpy(m_szCommunityString, DBGetField(hResult, 0, 14), MAX_COMMUNITY_LENGTH);
-   strncpy(m_szObjectId, DBGetField(hResult, 0, 15), MAX_OID_LEN * 4);
-   m_dwImageId = DBGetFieldULong(hResult, 0, 17);
-   m_bIsDeleted = DBGetFieldLong(hResult, 0, 18);
-   m_pszDescription = _tcsdup(CHECK_NULL_EX(DBGetField(hResult, 0, 19)));
+   m_dwFlags = DBGetFieldULong(hResult, 0, 3);
+   m_iSNMPVersion = DBGetFieldLong(hResult, 0, 4);
+   m_dwDiscoveryFlags = DBGetFieldULong(hResult, 0, 5);
+   m_wAuthMethod = (WORD)DBGetFieldLong(hResult, 0, 6);
+   strncpy(m_szSharedSecret, DBGetField(hResult, 0, 7), MAX_SECRET_LENGTH);
+   m_wAgentPort = (WORD)DBGetFieldLong(hResult, 0, 8);
+   m_iStatusPollType = DBGetFieldLong(hResult, 0, 9);
+   strncpy(m_szCommunityString, DBGetField(hResult, 0, 10), MAX_COMMUNITY_LENGTH);
+   strncpy(m_szObjectId, DBGetField(hResult, 0, 11), MAX_OID_LEN * 4);
+   m_dwImageId = DBGetFieldULong(hResult, 0, 12);
+   m_bIsDeleted = DBGetFieldLong(hResult, 0, 13);
+   m_pszDescription = _tcsdup(CHECK_NULL_EX(DBGetField(hResult, 0, 14)));
    DecodeSQLString(m_pszDescription);
-   m_dwNodeType = DBGetFieldULong(hResult, 0, 20);
-   _tcsncpy(m_szAgentVersion, CHECK_NULL_EX(DBGetField(hResult, 0, 21)), MAX_AGENT_VERSION_LEN);
+   m_dwNodeType = DBGetFieldULong(hResult, 0, 15);
+   _tcsncpy(m_szAgentVersion, CHECK_NULL_EX(DBGetField(hResult, 0, 16)), MAX_AGENT_VERSION_LEN);
    DecodeSQLString(m_szAgentVersion);
-   _tcsncpy(m_szPlatformName, CHECK_NULL_EX(DBGetField(hResult, 0, 22)), MAX_PLATFORM_NAME_LEN);
+   _tcsncpy(m_szPlatformName, CHECK_NULL_EX(DBGetField(hResult, 0, 17)), MAX_PLATFORM_NAME_LEN);
    DecodeSQLString(m_szPlatformName);
-   m_dwPollerNode = DBGetFieldULong(hResult, 0, 23);
+   m_dwPollerNode = DBGetFieldULong(hResult, 0, 18);
 
    DBFreeResult(hResult);
 
@@ -262,42 +248,30 @@ BOOL Node::SaveToDB(void)
    if (bNewObject)
       snprintf(szQuery, 4096,
                "INSERT INTO nodes (id,name,status,is_deleted,primary_ip,"
-               "is_snmp,is_agent,is_bridge,is_router,snmp_version,community,"
-               "discovery_flags,status_poll_type,agent_port,auth_method,secret,"
-               "snmp_oid,is_local_mgmt,image_id,description,node_type,"
-               "agent_version,platform_name,poller_node_id,is_ospf)"
-               " VALUES (%d,'%s',%d,%d,'%s',%d,%d,%d,%d,%d,'%s',%d,%d,%d,%d,"
-               "'%s','%s',%d,%ld,'%s',%ld,'%s','%s',%ld,%d)",
+               "node_flags,snmp_version,community,discovery_flags,status_poll_type,"
+               "agent_port,auth_method,secret,snmp_oid,image_id,"
+               "description,node_type,agent_version,platform_name,"
+               "poller_node_id) VALUES (%ld,'%s',%d,%d,'%s',%ld,%d,'%s',%ld,%d,%d,%d,"
+               "'%s','%s',%ld,'%s',%ld,'%s','%s',%ld)",
                m_dwId, m_szName, m_iStatus, m_bIsDeleted, 
-               IpToStr(m_dwIpAddr, szIpAddr),
-               m_dwFlags & NF_IS_SNMP ? 1 : 0,
-               m_dwFlags & NF_IS_NATIVE_AGENT ? 1 : 0,
-               m_dwFlags & NF_IS_BRIDGE ? 1 : 0,
-               m_dwFlags & NF_IS_ROUTER ? 1 : 0,
+               IpToStr(m_dwIpAddr, szIpAddr), m_dwFlags,
                m_iSNMPVersion, m_szCommunityString, m_dwDiscoveryFlags, m_iStatusPollType,
-               m_wAgentPort,m_wAuthMethod,m_szSharedSecret, m_szObjectId,
-               m_dwFlags & NF_IS_LOCAL_MGMT ? 1 : 0, m_dwImageId,
-               pszEscDescr, m_dwNodeType, pszEscVersion, pszEscPlatform, 
-               m_dwPollerNode, m_dwFlags & NF_IS_OSPF ? 1 : 0);
+               m_wAgentPort, m_wAuthMethod, m_szSharedSecret, m_szObjectId,
+               m_dwImageId, pszEscDescr, m_dwNodeType, pszEscVersion, pszEscPlatform, 
+               m_dwPollerNode);
    else
       snprintf(szQuery, 4096,
                "UPDATE nodes SET name='%s',status=%d,is_deleted=%d,primary_ip='%s',"
-               "is_snmp=%d,is_agent=%d,is_bridge=%d,is_router=%d,snmp_version=%d,"
-               "community='%s',discovery_flags=%d,status_poll_type=%d,agent_port=%d,"
-               "auth_method=%d,secret='%s',snmp_oid='%s',is_local_mgmt=%d,"
-               "image_id=%ld,description='%s',node_type=%ld,agent_version='%s',"
-               "platform_name='%s',poller_node_id=%ld,is_ospf=%d WHERE id=%ld",
+               "node_flags=%ld,snmp_version=%d,community='%s',discovery_flags=%d,"
+               "status_poll_type=%d,agent_port=%d,auth_method=%d,secret='%s',"
+               "snmp_oid='%s',image_id=%ld,description='%s',node_type=%ld,"
+               "agent_version='%s',platform_name='%s',poller_node_id=%ld WHERE id=%ld",
                m_szName, m_iStatus, m_bIsDeleted, 
                IpToStr(m_dwIpAddr, szIpAddr), 
-               m_dwFlags & NF_IS_SNMP ? 1 : 0,
-               m_dwFlags & NF_IS_NATIVE_AGENT ? 1 : 0,
-               m_dwFlags & NF_IS_BRIDGE ? 1 : 0,
-               m_dwFlags & NF_IS_ROUTER ? 1 : 0,
-               m_iSNMPVersion, m_szCommunityString, m_dwDiscoveryFlags, 
+               m_dwFlags, m_iSNMPVersion, m_szCommunityString, m_dwDiscoveryFlags, 
                m_iStatusPollType, m_wAgentPort, m_wAuthMethod, m_szSharedSecret, 
-               m_szObjectId, m_dwFlags & NF_IS_LOCAL_MGMT ? 1 : 0, m_dwImageId, 
-               pszEscDescr, m_dwNodeType, pszEscVersion, pszEscPlatform,
-               m_dwPollerNode, m_dwFlags & NF_IS_OSPF ? 1 : 0, m_dwId);
+               m_szObjectId, m_dwImageId, pszEscDescr, m_dwNodeType, 
+               pszEscVersion, pszEscPlatform, m_dwPollerNode, m_dwId);
    bResult = DBQuery(g_hCoreDB, szQuery);
    free(pszEscDescr);
    free(pszEscVersion);