fixed OpenBSD 4.8 compatibility issues (non-UNICODE build only)
authorVictor Kirhenshtein <victor@netxms.org>
Thu, 10 Aug 2017 19:39:59 +0000 (22:39 +0300)
committerVictor Kirhenshtein <victor@netxms.org>
Thu, 10 Aug 2017 19:40:47 +0000 (22:40 +0300)
configure.ac
include/nms_util.h
src/agent/core/datacoll.cpp
src/db/dbdrv/sqlite/sqlite.cpp
src/libnetxms/unicode.cpp

index 4d36bb0..47650f6 100644 (file)
@@ -2494,6 +2494,7 @@ AC_CHECK_FUNCS([wopen wstat waccess wgetenv wrename wunlink wremove wchdir])
 AC_CHECK_FUNCS([wmkdir wrmdir wsystem wmkstemp wpopen wctime wchmod vwscanf])
 AC_CHECK_FUNCS([vswscanf vfwscanf wcscasecmp wcsncasecmp wcstombs wcsrtombs])
 AC_CHECK_FUNCS([mbstowcs mbsrtowcs itow _itow wcsftime wcstok wutime])
+AC_CHECK_FUNCS([wprintf vwprintf swprintf vswprintf fwprintf vfwprintf])
 
 AC_CHECK_DECLS([putws],,,[
 #if HAVE_WCHAR_H
index ea275b4..e493246 100644 (file)
@@ -2174,6 +2174,7 @@ int LIBNETXMS_EXPORTABLE MultiByteToWideChar(int iCodePage, UINT32 dwFlags, cons
                                              int cchByteChar, WCHAR *pWideCharStr,
                                              int cchWideChar);
 
+#ifdef UNICODE
 int LIBNETXMS_EXPORTABLE nx_wprintf(const WCHAR *format, ...);
 int LIBNETXMS_EXPORTABLE nx_fwprintf(FILE *fp, const WCHAR *format, ...);
 int LIBNETXMS_EXPORTABLE nx_swprintf(WCHAR *buffer, size_t size, const WCHAR *format, ...);
@@ -2187,6 +2188,7 @@ int LIBNETXMS_EXPORTABLE nx_swscanf(const WCHAR *str, const WCHAR *format, ...);
 int LIBNETXMS_EXPORTABLE nx_vwscanf(const WCHAR *format, va_list args);
 int LIBNETXMS_EXPORTABLE nx_vfwscanf(FILE *fp, const WCHAR *format, va_list args);
 int LIBNETXMS_EXPORTABLE nx_vswscanf(const WCHAR *str, const WCHAR *format, va_list args);
+#endif
 
 #endif /* _WIN32 */
 
index c0e5ecb..ecd03df 100644 (file)
@@ -599,7 +599,7 @@ static THREAD_RESULT THREAD_CALL ReconciliationThread(void *arg)
             {
                DataCollectionItem *dci = s_items.get(i);
                _sntprintf(query, 256, _T("UPDATE dc_config SET last_poll=") UINT64_FMT _T(" WHERE server_id=") UINT64_FMT _T(" AND dci_id=%d"),
-                          dci->getLastPollTime(), dci->getServerId(), dci->getId());
+                          (UINT64)dci->getLastPollTime(), (UINT64)dci->getServerId(), dci->getId());
                DBQuery(hdb, query);
             }
             DBCommit(hdb);
index 0e2f91b..e88b7a1 100644 (file)
@@ -789,7 +789,13 @@ extern "C" DWORD EXPORT DrvRollback(SQLITE_CONN *pConn)
 extern "C" int EXPORT DrvIsTableExist(SQLITE_CONN *pConn, const WCHAR *name)
 {
    WCHAR query[256];
+#if HAVE_SWPRINTF
    swprintf(query, 256, L"SELECT count(*) FROM sqlite_master WHERE type='table' AND upper(name)=upper('%ls')", name);
+#else
+   wcscpy(query, L"SELECT count(*) FROM sqlite_master WHERE type='table' AND upper(name)=upper('");
+   wcscat(query, name);
+   wcscat(query, L"')");
+#endif
    DWORD error;
    WCHAR errorText[DBDRV_MAX_ERROR_TEXT];
    int rc = DBIsTableExist_Failure;
index 4d25b23..acce2de 100644 (file)
@@ -914,8 +914,6 @@ WCHAR *wcserror_r(int errnum, WCHAR *strerrbuf, size_t buflen)
 
 #endif /* !HAVE_WCSERROR_R && HAVE_STRERROR_R */
 
-#endif /* defined(UNICODE) */
-
 /**
  * Wrappers for wprintf/wscanf family
  *
@@ -1066,7 +1064,7 @@ static WCHAR *ReplaceFormatSpecs(const WCHAR *oldFormat)
                case L'h':      // check for %hs
                   hmod = true;
                   break;
-               default:                // All other cahacters means end of format
+               default:                // All other characters means end of format
                   state = 0;
                   break;
 
@@ -1154,6 +1152,9 @@ int LIBNETXMS_EXPORTABLE nx_vswscanf(const WCHAR *str, const WCHAR *format, va_l
    free(fmt);
    return rc;
 }
+
+#endif /* defined(UNICODE) */
+
 #endif /* !defined(_WIN32) */
 
 /**