fixed problems with IPSO build
authorVictor Kirhenshtein <victor@netxms.org>
Sat, 31 Oct 2009 23:49:47 +0000 (23:49 +0000)
committerVictor Kirhenshtein <victor@netxms.org>
Sat, 31 Oct 2009 23:49:47 +0000 (23:49 +0000)
src/agent/subagents/ipso/disk.cpp
src/agent/subagents/ipso/ipso.cpp
src/agent/subagents/ipso/ipso.h
src/agent/subagents/ipso/net.cpp
src/agent/subagents/ipso/system.cpp
src/libexpat/libexpat/expat_external.h
src/libnetxms/string.cpp

index d4ff445..f6547d9 100644 (file)
@@ -31,7 +31,7 @@ LONG H_DiskInfo(char *pszParam, char *pArg, char *pValue)
        char szArg[512] = {0};
        struct statfs s;
 
-       NxGetParameterArg(pszParam, 1, szArg, sizeof(szArg));
+       AgentGetParameterArg(pszParam, 1, szArg, sizeof(szArg));
 
        if (szArg[0] != 0 && statfs(szArg, &s) == 0)
        {
index 9ef39de..eee85a7 100644 (file)
@@ -32,7 +32,7 @@ static LONG H_IPSCTL(char *pszParam, char *pArg, char *pValue)
 {
        char szName[256];
 
-       if (!NxGetParameterArg(pszParam, 1, szName, 256))
+       if (!AgentGetParameterArg(pszParam, 1, szName, 256))
                return SYSINFO_RC_UNSUPPORTED;
 
        return IPSCTLGetString(0, szName, pValue, MAX_RESULT_LENGTH);
index e1ec4f2..e75d4ea 100644 (file)
@@ -131,7 +131,7 @@ enum
 //
 
 LONG H_DiskInfo(char *, char *, char *);
-LONG H_ProcessList(char *, char *, NETXMS_VALUES_LIST *);
+LONG H_ProcessList(char *, char *, StringList *);
 LONG H_Uptime(char *, char *, char *);
 LONG H_Uname(char *, char *, char *);
 LONG H_Hostname(char *, char *, char *);
@@ -142,8 +142,8 @@ LONG H_ProcessCount(char *, char *, char *);
 LONG H_MemoryInfo(char *, char *, char *);
 LONG H_NetIpForwarding(char *, char *, char *);
 LONG H_NetIfStats(char *, char *, char *);
-LONG H_NetArpCache(char *, char *, NETXMS_VALUES_LIST *);
-LONG H_NetIfList(char *, char *, NETXMS_VALUES_LIST *);
-LONG H_NetRoutingTable(char *, char *, NETXMS_VALUES_LIST *);
+LONG H_NetArpCache(char *, char *, StringList *);
+LONG H_NetIfList(char *, char *, StringList *);
+LONG H_NetRoutingTable(char *, char *, StringList *);
 
 #endif /* __IPSO_H__ */
index 500b4d2..9b302d0 100644 (file)
@@ -65,7 +65,7 @@ typedef struct t_IfList
 typedef struct t_cbp
 {
        int nHandle;
-       NETXMS_VALUES_LIST *pList;
+       StringList *pList;
 } CBP;
 
 
@@ -190,7 +190,7 @@ LONG H_NetIfStats(char *pszParam, char *pArg, char *pValue)
                "ifphys:%s:stats:opackets"
        };
 
-       if (!NxGetParameterArg(pszParam, 1, szName, sizeof(szName)))
+       if (!AgentGetParameterArg(pszParam, 1, szName, sizeof(szName)))
                return SYSINFO_RC_UNSUPPORTED;
 
        if (szName[0] != 0)
@@ -253,7 +253,7 @@ static void ArpCallback(char *pszPath, CBP *pArg)
        TranslateStr(szMacAddr, ":", "");
        snprintf(szBuffer, 1024, "%s %s %d", szMacAddr, ptr,
                 if_nametoindex(szIfName) + 0x01000000);
-       NxAddResultString(pArg->pList, szBuffer);
+       pArg->pList->add(szBuffer);
 }
 
 
@@ -261,7 +261,7 @@ static void ArpCallback(char *pszPath, CBP *pArg)
 // Handler for Net.ArpCache enum
 //
 
-LONG H_NetArpCache(char *pszParam, char *pArg, NETXMS_VALUES_LIST *pValue)
+LONG H_NetArpCache(char *pszParam, char *pArg, StringList *pValue)
 {
        LONG nRet = SYSINFO_RC_ERROR;
        CBP data;
@@ -278,7 +278,7 @@ LONG H_NetArpCache(char *pszParam, char *pArg, NETXMS_VALUES_LIST *pValue)
        return nRet;
 }
 
-LONG H_NetRoutingTable(char *pszParam, char *pArg, NETXMS_VALUES_LIST *pValue)
+LONG H_NetRoutingTable(char *pszParam, char *pArg, StringList *pValue)
 {
 #define sa2sin(x) ((struct sockaddr_in *)x)
 #define ROUNDUP(a) \
@@ -381,7 +381,7 @@ LONG H_NetRoutingTable(char *pszParam, char *pArg, NETXMS_VALUES_LIST *pValue)
                                                (rtm->rtm_flags & RTF_GATEWAY) == 0 ? 3 : 4);
                                strcat(szOut, szTmp);
 
-                               NxAddResultString(pValue, szOut);
+                               pValue->add(szOut);
                        }
                }
 
@@ -552,7 +552,7 @@ static void IpAddrCallback(char *pszPath, IFLIST *pList)
 // Handler for Net.InterfaceList enum
 //
 
-LONG H_NetIfList(char *pszParam, char *pArg, NETXMS_VALUES_LIST *pValue)
+LONG H_NetIfList(char *pszParam, char *pArg, StringList *pValue)
 {
        int i, nSize, nHandle;
        IFLIST ifList;
@@ -593,7 +593,7 @@ LONG H_NetIfList(char *pszParam, char *pArg, NETXMS_VALUES_LIST *pValue)
                                        ifList.pData[i].szIpAddr, ifList.pData[i].nMask,
                                        ifList.pData[i].nType, ifList.pData[i].szMacAddr,
                                        ifList.pData[i].szName);
-                               NxAddResultString(pValue, szBuffer);
+                               pValue->add(szBuffer);
                        }
                }
                ipsctl_close(nHandle);
index d836e1e..c6286a2 100644 (file)
@@ -118,7 +118,7 @@ LONG H_CpuLoad(char *pszParam, char *pArg, char *pValue)
        double dLoad[3];
 
        // get processor
-   //NxGetParameterArg(pszParam, 1, szArg, sizeof(szArg));
+   //AgentGetParameterArg(pszParam, 1, szArg, sizeof(szArg));
 
        if (getloadavg(dLoad, 3) == 3)
        {
@@ -169,7 +169,7 @@ LONG H_ProcessCount(char *pszParam, char *pArg, char *pValue)
        kvm_t *kd;
        LONG nRet = SYSINFO_RC_ERROR;
 
-       NxGetParameterArg(pszParam, 1, szArg, sizeof(szArg));
+       AgentGetParameterArg(pszParam, 1, szArg, sizeof(szArg));
 
        kd = kvm_openfiles(NULL, NULL, NULL, O_RDONLY, NULL);
        if (kd != NULL)
@@ -276,7 +276,7 @@ printf("PageSize = %d\n",dwPageSize);
 // Handler for System.ProcessList enum
 //
 
-LONG H_ProcessList(char *pszParam, char *pArg, NETXMS_VALUES_LIST *pValue)
+LONG H_ProcessList(char *pszParam, char *pArg, StringList *pValue)
 {
        int i, nCount = -1;
        char *kp;
@@ -295,7 +295,7 @@ LONG H_ProcessList(char *pszParam, char *pArg, NETXMS_VALUES_LIST *pValue)
 
                                snprintf(szBuff, sizeof(szBuff), "%d %s",
                                        KP_PID(kp), KP_PNAME(kp));
-                               NxAddResultString(pValue, szBuff);
+                               pValue->add(szBuff);
                        }
                }
                kvm_close(kd);
index 2c03284..bacf13e 100644 (file)
 #define XML_USE_MSC_EXTENSIONS 1
 #endif
 
+/* NetXMS node: we use this file only internally in case when Expat
+   is not available on target platform; thus we can use compiler's
+       default calling conventions whatever they are.
+   Leaving XMLCALL defined to __attribute__((cdecl)) with old gcc
+       causes lot of compilation errors; this broke IPSO build.
+*/
+
+#define XMLCALL
+
 /* Expat tries very hard to make the API boundary very specifically
    defined.  There are two macros defined to control this boundary;
    each of these can be defined before including this header to
index fbcc733..a72493b 100644 (file)
@@ -137,7 +137,7 @@ void String::addFormattedStringV(const TCHAR *format, va_list args)
 
 #else          /* UNICODE */
 
-#if HAVE_VASPRINTF
+#if HAVE_VASPRINTF && !defined(_IPSO)
        vasprintf(&buffer, format, args);
 #elif HAVE_VSCPRINTF && HAVE_DECL_VA_COPY
        va_list argsCopy;