mirror of https://github.com/tp4a/teleport
temp.
parent
7e7c63253a
commit
5155d4ff5d
|
@ -1,155 +1,158 @@
|
|||
#ifndef __LIB_EX_PLATFORM_H__
|
||||
#define __LIB_EX_PLATFORM_H__
|
||||
|
||||
#if defined(_WIN32) || defined(WIN32)
|
||||
# define EX_OS_WIN32
|
||||
#elif defined(__linux__)
|
||||
# define EX_OS_LINUX
|
||||
# define EX_OS_UNIX
|
||||
#elif defined(__APPLE__)
|
||||
# define EX_OS_MACOS
|
||||
# define EX_OS_UNIX
|
||||
#else
|
||||
# error unsupported platform.
|
||||
#endif
|
||||
|
||||
// compiler
|
||||
#ifdef EX_OS_WIN32
|
||||
# ifndef _MSC_VER
|
||||
# error need VisualStudio on Windows.
|
||||
# endif
|
||||
# if _MSC_VER < 1900 // need VisualStudio 2015 and above.
|
||||
# error need VisualStudio 2015 and above.
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef EX_OS_WIN32
|
||||
# if !defined(UNICODE) && !defined(_UNICODE)
|
||||
# error "Does not support `Multi-Byte Character Set` on Windows."
|
||||
# endif
|
||||
# ifdef _DEBUG
|
||||
# ifndef EX_DEBUG
|
||||
# define EX_DEBUG
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef EX_OS_MACOS
|
||||
# ifdef DEBUG
|
||||
# define EX_DEBUG
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef EX_OS_WIN32
|
||||
# ifndef _WIN32_WINNT
|
||||
# define _WIN32_WINNT 0x0502 // 0x0502 = WinServer2003 (libuv need this) 0x0501 = WinXP, 0x0500 = Win2000
|
||||
# endif
|
||||
# define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||
# define _CRT_RAND_S // for rand_s().
|
||||
# include <windows.h>
|
||||
# include <tchar.h>
|
||||
# include <shlwapi.h>
|
||||
# include <shellapi.h>
|
||||
# define _CSTDIO_
|
||||
# define _CSTRING_
|
||||
# define _CWCHAR_
|
||||
# include <strsafe.h>
|
||||
# include <WinSock2.h>
|
||||
# include <direct.h>
|
||||
#else
|
||||
# include <locale.h>
|
||||
# include <string.h>
|
||||
# include <stdio.h>
|
||||
# include <stdlib.h> // free()
|
||||
# include <stdarg.h> // va_start()
|
||||
# include <unistd.h> // readlink()
|
||||
# include <wchar.h>
|
||||
# include <sys/stat.h>
|
||||
# include <sys/types.h>
|
||||
# include <sys/socket.h>
|
||||
# include <netinet/in.h>
|
||||
#endif
|
||||
#ifdef EX_OS_MACOS
|
||||
# include <mach-o/dyld.h> // for _NSGetExecutablePath
|
||||
# ifndef _T
|
||||
# define _T(x) L##x
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* On Windows PATH_MAX does not exist but MAX_PATH does.
|
||||
* WinAPI MAX_PATH limit is only 256. MSVCR fuctions does not have this limit.
|
||||
* Redefine PATH_MAX for Windows to support longer path names.
|
||||
*/
|
||||
#if defined(EX_OS_WIN32)
|
||||
# ifdef PATH_MAX
|
||||
# undef PATH_MAX /* On Windows override PATH_MAX if defined. */
|
||||
# endif
|
||||
# define PATH_MAX 1024
|
||||
#elif defined(EX_OS_LINUX)
|
||||
# ifndef PATH_MAX
|
||||
# define PATH_MAX 1024
|
||||
# endif
|
||||
#elif defined(EX_OS_MACOS)
|
||||
# define PATH_MAX 1024 /* Recommended value for OSX. */
|
||||
#endif
|
||||
|
||||
// assert
|
||||
#ifdef EX_DEBUG
|
||||
# define ASSERT(exp)
|
||||
# define CHECK(exp) do { if (!(exp)) abort(); } while (0)
|
||||
//# define DEBUG_CHECKS (0)
|
||||
#else
|
||||
# include <assert.h>
|
||||
# define ASSERT(exp) assert(exp)
|
||||
# define CHECK(exp) assert(exp)
|
||||
//# define DEBUG_CHECKS (1)
|
||||
#endif
|
||||
|
||||
#define UNREACHABLE() CHECK(!"Unreachable code reached.")
|
||||
|
||||
#ifndef UNUSED
|
||||
# if defined(_MSC_VER)
|
||||
# define UNUSED(x) (void)(x)
|
||||
# elif defined(__GUNC__)
|
||||
# defined UNUSED(x) UNUSED_ ## x __attribute__((unused))
|
||||
# elif defined(__LCLINT__)
|
||||
# define UNUSED(x) /*@unused@*/ x
|
||||
# elif defined(__cplusplus)
|
||||
# define UNUSED(x)
|
||||
# else
|
||||
# define UNUSED(x) (void)(x)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* check endian */
|
||||
#if !(defined(L_ENDIAN) || defined(B_ENDIAN))
|
||||
# if !defined(__BYTE_ORDER) && defined(__linux__)
|
||||
# include <endian.h>
|
||||
# endif
|
||||
|
||||
# if defined(BYTE_ORDER)
|
||||
# if BYTE_ORDER == BIG_ENDIAN
|
||||
# define B_ENDIAN
|
||||
# else
|
||||
# define L_ENDIAN
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !(defined(L_ENDIAN) || defined(B_ENDIAN))
|
||||
# if defined(__sparc__) || defined(__PPC__) || defined(__ppc__) || defined(__hppa__)
|
||||
# define B_ENDIAN
|
||||
# else
|
||||
# define L_ENDIAN
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef EX_OS_WIN32
|
||||
# pragma comment(lib, "shlwapi.lib")
|
||||
#endif
|
||||
|
||||
|
||||
#endif // __LIB_EX_PLATFORM_H__
|
||||
#ifndef __LIB_EX_PLATFORM_H__
|
||||
#define __LIB_EX_PLATFORM_H__
|
||||
|
||||
#if defined(_WIN32) || defined(WIN32)
|
||||
# define EX_OS_WIN32
|
||||
#elif defined(__linux__)
|
||||
# define EX_OS_LINUX
|
||||
# define EX_OS_UNIX
|
||||
#elif defined(__APPLE__)
|
||||
# define EX_OS_MACOS
|
||||
# define EX_OS_UNIX
|
||||
#else
|
||||
# error unsupported platform.
|
||||
#endif
|
||||
|
||||
// compiler
|
||||
#ifdef EX_OS_WIN32
|
||||
# ifndef _MSC_VER
|
||||
# error need VisualStudio on Windows.
|
||||
# endif
|
||||
# if _MSC_VER < 1900 // need VisualStudio 2015 and above.
|
||||
# error need VisualStudio 2015 and above.
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef EX_OS_WIN32
|
||||
# if !defined(UNICODE) && !defined(_UNICODE)
|
||||
# error "Does not support `Multi-Byte Character Set` on Windows."
|
||||
# endif
|
||||
# ifdef _DEBUG
|
||||
# ifndef EX_DEBUG
|
||||
# define EX_DEBUG
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef EX_OS_MACOS
|
||||
# ifdef DEBUG
|
||||
# define EX_DEBUG
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef EX_OS_WIN32
|
||||
# ifndef _WIN32_WINNT
|
||||
# define _WIN32_WINNT 0x0502 // 0x0502 = WinServer2003 (libuv need this) 0x0501 = WinXP, 0x0500 = Win2000
|
||||
# endif
|
||||
# define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||
# define _CRT_RAND_S // for rand_s().
|
||||
# include <windows.h>
|
||||
# include <tchar.h>
|
||||
# include <shlwapi.h>
|
||||
# include <shellapi.h>
|
||||
# define _CSTDIO_
|
||||
# define _CSTRING_
|
||||
# define _CWCHAR_
|
||||
# include <strsafe.h>
|
||||
# include <WinSock2.h>
|
||||
# include <direct.h>
|
||||
#else
|
||||
# include <locale.h>
|
||||
# include <string.h>
|
||||
# include <stdio.h>
|
||||
# include <stdlib.h> // free()
|
||||
# include <stdarg.h> // va_start()
|
||||
# include <unistd.h> // readlink()
|
||||
# include <fcntl.h> // O_RDONLY, etc.
|
||||
# include <errno.h>
|
||||
# include <wchar.h>
|
||||
# include <sys/stat.h>
|
||||
# include <sys/types.h>
|
||||
# include <sys/socket.h>
|
||||
# include <netinet/in.h>
|
||||
#endif
|
||||
|
||||
#ifdef EX_OS_MACOS
|
||||
# include <mach-o/dyld.h> // for _NSGetExecutablePath
|
||||
# ifndef _T
|
||||
# define _T(x) L##x
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* On Windows PATH_MAX does not exist but MAX_PATH does.
|
||||
* WinAPI MAX_PATH limit is only 256. MSVCR fuctions does not have this limit.
|
||||
* Redefine PATH_MAX for Windows to support longer path names.
|
||||
*/
|
||||
#if defined(EX_OS_WIN32)
|
||||
# ifdef PATH_MAX
|
||||
# undef PATH_MAX /* On Windows override PATH_MAX if defined. */
|
||||
# endif
|
||||
# define PATH_MAX 1024
|
||||
#elif defined(EX_OS_LINUX)
|
||||
# ifndef PATH_MAX
|
||||
# define PATH_MAX 1024
|
||||
# endif
|
||||
#elif defined(EX_OS_MACOS)
|
||||
# define PATH_MAX 1024 /* Recommended value for OSX. */
|
||||
#endif
|
||||
|
||||
// assert
|
||||
#ifdef EX_DEBUG
|
||||
# define ASSERT(exp)
|
||||
# define CHECK(exp) do { if (!(exp)) abort(); } while (0)
|
||||
//# define DEBUG_CHECKS (0)
|
||||
#else
|
||||
# include <assert.h>
|
||||
# define ASSERT(exp) assert(exp)
|
||||
# define CHECK(exp) assert(exp)
|
||||
//# define DEBUG_CHECKS (1)
|
||||
#endif
|
||||
|
||||
#define UNREACHABLE() CHECK(!"Unreachable code reached.")
|
||||
|
||||
#ifndef UNUSED
|
||||
# if defined(_MSC_VER)
|
||||
# define UNUSED(x) (void)(x)
|
||||
# elif defined(__GUNC__)
|
||||
# defined UNUSED(x) UNUSED_ ## x __attribute__((unused))
|
||||
# elif defined(__LCLINT__)
|
||||
# define UNUSED(x) /*@unused@*/ x
|
||||
# elif defined(__cplusplus)
|
||||
# define UNUSED(x)
|
||||
# else
|
||||
# define UNUSED(x) (void)(x)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* check endian */
|
||||
#if !(defined(L_ENDIAN) || defined(B_ENDIAN))
|
||||
# if !defined(__BYTE_ORDER) && defined(__linux__)
|
||||
# include <endian.h>
|
||||
# endif
|
||||
|
||||
# if defined(BYTE_ORDER)
|
||||
# if BYTE_ORDER == BIG_ENDIAN
|
||||
# define B_ENDIAN
|
||||
# else
|
||||
# define L_ENDIAN
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !(defined(L_ENDIAN) || defined(B_ENDIAN))
|
||||
# if defined(__sparc__) || defined(__PPC__) || defined(__ppc__) || defined(__hppa__)
|
||||
# define B_ENDIAN
|
||||
# else
|
||||
# define L_ENDIAN
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef EX_OS_WIN32
|
||||
# pragma comment(lib, "shlwapi.lib")
|
||||
#endif
|
||||
|
||||
|
||||
#endif // __LIB_EX_PLATFORM_H__
|
||||
|
|
|
@ -190,7 +190,7 @@ FILE *ex_fopen(const ex_wstr &filename, const wchar_t *mode) {
|
|||
#endif
|
||||
}
|
||||
|
||||
FILE* ex_fopen(const ex_astr& filename, const char* mode) {
|
||||
FILE* ex_fopen(const ex_astr& filename, const char* mode) {
|
||||
FILE *f = NULL;
|
||||
#ifdef EX_OS_WIN32
|
||||
errno_t err = 0;
|
||||
|
@ -200,10 +200,10 @@ FILE* ex_fopen(const ex_astr& filename, const char* mode) {
|
|||
else
|
||||
return NULL;
|
||||
#else
|
||||
f = fopen(filename.c_str(), mode.c_str());
|
||||
f = fopen(filename.c_str(), mode);
|
||||
return f;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool ex_read_text_file(const ex_wstr &strFileName, ex_astr& file_content) {
|
||||
|
|
|
@ -69,7 +69,7 @@ bool SshProxy::init(void)
|
|||
}
|
||||
|
||||
void SshProxy::timer(void) {
|
||||
EXLOGV("[ssh] on-timer.\n");
|
||||
// EXLOGV("[ssh] on-timer.\n");
|
||||
}
|
||||
|
||||
void SshProxy::_thread_loop(void)
|
||||
|
|
Loading…
Reference in New Issue