fixed server crash on startup
authorVictor Kirhenshtein <victor@netxms.org>
Wed, 8 Jan 2014 12:54:45 +0000 (14:54 +0200)
committerVictor Kirhenshtein <victor@netxms.org>
Wed, 8 Jan 2014 12:54:45 +0000 (14:54 +0200)
include/strophe.h
src/agent/subagents/sunos/system.cpp
src/libstrophe/Makefile.am
src/libstrophe/thread.c [deleted file]
src/libstrophe/thread.h [deleted file]

index 6370d9e..ad928ca 100644 (file)
@@ -159,7 +159,6 @@ typedef void (*xmpp_log_handler)(void * const userdata,
 struct _xmpp_log_t {
     xmpp_log_handler handler;
     void *userdata;
 struct _xmpp_log_t {
     xmpp_log_handler handler;
     void *userdata;
-    /* mutex_t lock; */
 };
 
 /* return a default logger filtering at a given level */
 };
 
 /* return a default logger filtering at a given level */
index 90e9819..3e837e4 100644 (file)
@@ -319,10 +319,6 @@ static UINT64 s_swapTotal = 0;
  */
 static void UpdateSwapInfo()
 {
  */
 static void UpdateSwapInfo()
 {
-   swaptable* swapTable;
-   swapent* swapEntry;
-   char* path;
-   int i;
    static char METHOD_NAME[16] = "UpdateSwapInfo";
 
    int num = swapctl(SC_GETNSWP, NULL);
    static char METHOD_NAME[16] = "UpdateSwapInfo";
 
    int num = swapctl(SC_GETNSWP, NULL);
@@ -332,36 +328,37 @@ static void UpdateSwapInfo()
       return;
    }
 
       return;
    }
 
-   swapTable = (swaptable*) malloc(num * sizeof(swapent_t) + sizeof(int));
-   if (swapTable == NULL)   {
+   swaptable *swapTable = (swaptable *)malloc(num * sizeof(swapent_t) + sizeof(int));
+   if (swapTable == NULL)
+   {
       AgentWriteDebugLog(6, _T("%s: %s: failed to allocate the swap table"), AGENT_NAME, METHOD_NAME);
       return;
    }
    swapTable->swt_n = num;
 
       AgentWriteDebugLog(6, _T("%s: %s: failed to allocate the swap table"), AGENT_NAME, METHOD_NAME);
       return;
    }
    swapTable->swt_n = num;
 
-   swapEntry = swapTable->swt_ent;
-
    int ret = swapctl(SC_LIST, swapTable);
    if (ret == -1)
    {
       AgentWriteDebugLog(6, _T("%s: %s: call to swapctl(SC_LIST) failed"), AGENT_NAME, METHOD_NAME);
    int ret = swapctl(SC_LIST, swapTable);
    if (ret == -1)
    {
       AgentWriteDebugLog(6, _T("%s: %s: call to swapctl(SC_LIST) failed"), AGENT_NAME, METHOD_NAME);
-      delete swapEntry;
+      free(swapTable);
       return;
    }
 
       return;
    }
 
-   UINT64 free, total = 0;
-   int bytesPerPage = (int) ((sysconf(_SC_PAGESIZE) >> DEV_BSHIFT) * DEV_BSIZE);
+   UINT64 freeBytes, totalBytes = 0;
+   int bytesPerPage = (int)((sysconf(_SC_PAGESIZE) >> DEV_BSHIFT) * DEV_BSIZE);
 
 
-   for(i = 0; i < num; i++) {
-      total += swapEntry[i].ste_pages * bytesPerPage;
-      free += swapEntry[i].ste_free * bytesPerPage;
+   swapent *swapEntry = swapTable->swt_ent;
+   for(int i = 0; i < num; i++)
+   {
+      totalBytes += swapEntry[i].ste_pages * bytesPerPage;
+      freeBytes += swapEntry[i].ste_free * bytesPerPage;
    }
 
    }
 
-   delete swapEntry;
+   free(swapTable);
 
 
-   s_swapTotal = total;
-   s_swapFree = free;
-   s_swapUsed = total - free;
+   s_swapTotal = totalBytes;
+   s_swapFree = freeBytes;
+   s_swapUsed = totalBytes - freeBytes;
 }
 
 static void UpdateSwapInfo2()
 }
 
 static void UpdateSwapInfo2()
index 4abb6fb..3502465 100644 (file)
@@ -1,7 +1,7 @@
 lib_LTLIBRARIES = libstrophe.la
 libstrophe_la_SOURCES = auth.c conn.c ctx.c event.c handler.c hash.c jid.c \
                         md5.c parser_expat.c sasl.c snprintf.c sock.c \
 lib_LTLIBRARIES = libstrophe.la
 libstrophe_la_SOURCES = auth.c conn.c ctx.c event.c handler.c hash.c jid.c \
                         md5.c parser_expat.c sasl.c snprintf.c sock.c \
-                        stanza.c thread.c tls_openssl.c util.c
+                        stanza.c tls_openssl.c util.c
 libstrophe_la_CPPFLAGS = -I@top_srcdir@/include
 libstrophe_la_LDFLAGS = -version-info $(NETXMS_LIBRARY_VERSION)
 libstrophe_la_LIBADD = -lssl
 libstrophe_la_CPPFLAGS = -I@top_srcdir@/include
 libstrophe_la_LDFLAGS = -version-info $(NETXMS_LIBRARY_VERSION)
 libstrophe_la_LIBADD = -lssl
@@ -20,6 +20,5 @@ EXTRA_DIST = \
        parser.h \
        sasl.h \
        sock.h \
        parser.h \
        sasl.h \
        sock.h \
-       thread.h \
        tls.h \
        util.h
        tls.h \
        util.h
diff --git a/src/libstrophe/thread.c b/src/libstrophe/thread.c
deleted file mode 100644 (file)
index a91aa79..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/* thread.c
-** strophe XMPP client library -- thread abstraction
-**
-** Copyright (C) 2005-2009 Collecta, Inc. 
-**
-**  This software is provided AS-IS with no warranty, either express
-**  or implied.
-**
-**  This software is distributed under license and may not be copied,
-**  modified or distributed except as expressly authorized under the
-**  terms of the license contained in the file LICENSE.txt in this
-**  distribution.
-*/
-
-/** @file
- *  Thread absraction.
- */
-
-#include <nms_common.h>
-#include <strophe.h>
-#include "common.h"
-#include "thread.h"
-
-struct _mutex_t {
-    const xmpp_ctx_t *ctx;
-
-#ifdef _WIN32
-    HANDLE mutex;
-#else
-    pthread_mutex_t *mutex;
-#endif
-};
-
-/* mutex functions */
-
-mutex_t *mutex_create(const xmpp_ctx_t * ctx)
-{
-    mutex_t *mutex;
-
-    mutex = xmpp_alloc(ctx, sizeof(mutex_t));
-    if (mutex) {
-       mutex->ctx = ctx;
-#ifdef _WIN32
-       mutex->mutex = CreateMutex(NULL, FALSE, NULL);
-#else
-       mutex->mutex = xmpp_alloc(ctx, sizeof(pthread_mutex_t));
-       if (mutex->mutex)
-           if (pthread_mutex_init(mutex->mutex, NULL) != 0) {
-               xmpp_free(ctx, mutex->mutex);
-               mutex->mutex = NULL;
-           }
-#endif
-       if (!mutex->mutex) {
-           xmpp_free(ctx, mutex);
-           mutex = NULL;
-       }
-    }
-
-    return mutex;
-}
-
-int mutex_destroy(mutex_t *mutex)
-{
-    int ret = 1;
-    const xmpp_ctx_t *ctx;
-
-#ifdef _WIN32
-    if (mutex->mutex)
-       ret = CloseHandle(mutex->mutex);
-#else
-    if (mutex->mutex)
-       ret = pthread_mutex_destroy(mutex->mutex) == 0;
-#endif
-    ctx = mutex->ctx;
-    xmpp_free(ctx, mutex);
-
-    return ret;
-}
-
-int mutex_lock(mutex_t *mutex)
-{
-    int ret;
-
-#ifdef _WIN32
-    ret = WaitForSingleObject(mutex->mutex, INFINITE) == 0;
-#else
-    ret = pthread_mutex_lock(mutex->mutex) == 0;
-#endif
-
-    return ret;
-}
-
-int mutex_trylock(mutex_t *mutex)
-{
-    /* TODO */
-    return 0;
-}
-
-int mutex_unlock(mutex_t *mutex)
-{
-    int ret;
-
-#ifdef _WIN32
-    ret = ReleaseMutex(mutex->mutex);
-#else
-    ret = pthread_mutex_unlock(mutex->mutex) == 0;
-#endif
-
-    return ret;
-}
diff --git a/src/libstrophe/thread.h b/src/libstrophe/thread.h
deleted file mode 100644 (file)
index 6dc155a..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* thread.h
-** strophe XMPP client library -- thread abstraction header
-**
-** Copyright (C) 2005-2009 Collecta, Inc. 
-**
-**  This software is provided AS-IS with no warranty, either express
-**  or implied.
-**
-**  This software is distributed under license and may not be copied,
-**  modified or distributed except as expressly authorized under the
-**  terms of the license contained in the file LICENSE.txt in this
-**  distribution.
-*/
-
-/** @file
- *  Threading abstraction API.
- */
-
-#ifndef __LIBSTROPHE_THREAD_H__
-#define __LIBSTROPHE_THREAD_H__
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#ifdef _WIN32
-#include <windows.h>
-#else
-#include <pthread.h>
-#endif
-
-#include "strophe.h"
-
-typedef struct _mutex_t mutex_t;
-
-/* mutex functions */
-
-mutex_t *mutex_create(const xmpp_ctx_t *ctx);
-int mutex_destroy(mutex_t *mutex);
-int mutex_lock(mutex_t *mutex);
-int mutex_trylock(mutex_t *mutex);
-int mutex_unlock(mutex_t *mutex);
-
-#endif /* __LIBSTROPHE_THREAD_H__ */