提交 84728c9fc4b39804651a8fb1eb4af1cbc9505c0c

作者 LJH 李佳桓
1 个父辈 f4712b48

add

正在显示 1 个修改的文件 包含 127 行增加0 行删除
  1 +/*
  2 + * Copyright 2008 Stephen Liu
  3 + * For license terms, see the file COPYING along with this library.
  4 + */
  5 +
  6 +#ifndef __spwin32port_hpp__
  7 +#define __spwin32port_hpp__
  8 +
  9 +#pragma warning(disable: 4996)
  10 +
  11 +#include <winsock2.h>
  12 +#include <mswsock.h>
  13 +#include <windows.h>
  14 +#include <io.h>
  15 +
  16 +#ifdef __cplusplus
  17 +extern "C" {
  18 +#endif
  19 +
  20 +typedef unsigned short uint16_t;
  21 +typedef unsigned __int64 uint64_t;
  22 +typedef int socklen_t;
  23 +
  24 +#ifndef WSAID_DISCONNECTEX
  25 + #define WSAID_DISCONNECTEX {0x7fda2e11,0x8630,0x436f,{0xa0, 0x31, 0xf5, 0x36, 0xa6, 0xee, 0xc1, 0x57}}
  26 + typedef BOOL (WINAPI *LPFN_DISCONNECTEX)(SOCKET, LPOVERLAPPED, DWORD, DWORD);
  27 +#endif
  28 +
  29 +#if _MSC_VER >= 1400
  30 +#define localtime_r(_clock, _result) localtime_s(_result, _clock)
  31 +#define gmtime_r(_clock, _result) gmtime_s(_result, _clock)
  32 +#define strcasecmp _stricmp
  33 +#define strncasecmp _strnicmp
  34 +#else
  35 +#define localtime_r(_clock, _result) ( *(_result) = *localtime( (_clock) ), (_result) )
  36 +#define gmtime_r(_clock, _result) ( *(_result) = *gmtime( (_clock) ), (_result) )
  37 +#define strcasecmp stricmp
  38 +#define strncasecmp strnicmp
  39 +#endif
  40 +
  41 +#define snprintf _snprintf
  42 +#define pause() Sleep((32767L << 16) + 32767)
  43 +#define sleep(x) Sleep(x*1000)
  44 +
  45 +#define sp_close closesocket
  46 +#define sp_writev spwin32_writev
  47 +#define sp_inet_aton spwin32_inet_aton
  48 +#define sp_socketpair spwin32_socketpair
  49 +#define sp_initsock spwin32_initsocket
  50 +#define sp_gettimeofday spwin32_gettimeofday
  51 +
  52 +#define sp_syslog g_spwin32_syslog
  53 +#define sp_openlog spwin32_openlog
  54 +#define sp_closelog spwin32_closelog
  55 +#define sp_setlogmask spwin32_setlogmask
  56 +
  57 +/* Windows writev() support */
  58 +struct iovec
  59 +{
  60 + u_long iov_len;
  61 + char *iov_base;
  62 +};
  63 +
  64 +extern int spwin32_writev(SOCKET sock, const struct iovec *vector, DWORD count);
  65 +
  66 +extern int spwin32_inet_aton(const char *c, struct in_addr* addr);
  67 +
  68 +extern int spwin32_socketpair(int d, int type, int protocol, int sv[2]);
  69 +
  70 +/* @return >0 OK, 0 FAIL */
  71 +extern DWORD spwin32_getppid(void);
  72 +
  73 +/* @return 0 OK, -1 Fail*/
  74 +extern int spwin32_getexefile( DWORD pid, char * path, int size );
  75 +
  76 +extern const char * spwin32_strerror( DWORD lastError, char * errmsg, size_t len );
  77 +
  78 +extern void spwin32_pwd( char * path, int size );
  79 +
  80 +/* @return 0 OK, -1 Fail */
  81 +extern int spwin32_initsocket();
  82 +
  83 +extern void spwin32_pause_console();
  84 +
  85 +extern int spwin32_gettimeofday(struct timeval* tv, void * );
  86 +
  87 +/* Windows syslog() support */
  88 +
  89 +#define LOG_EMERG 0
  90 +#define LOG_ALERT 1
  91 +#define LOG_CRIT 2
  92 +#define LOG_ERR 3
  93 +#define LOG_WARNING 4
  94 +#define LOG_NOTICE 5
  95 +#define LOG_INFO 6
  96 +#define LOG_DEBUG 7
  97 +
  98 +/*
  99 + * Option flags for openlog.
  100 + *
  101 + * LOG_ODELAY no longer does anything.
  102 + * LOG_NDELAY is the inverse of what it used to be.
  103 + */
  104 +#define LOG_PID 0x01 /* log the pid with each message */
  105 +#define LOG_CONS 0x02 /* log on the console if errors in sending */
  106 +#define LOG_ODELAY 0x04 /* delay open until first syslog() (default) */
  107 +#define LOG_NDELAY 0x08 /* don't delay open */
  108 +#define LOG_NOWAIT 0x10 /* don't wait for console forks: DEPRECATED */
  109 +#define LOG_PERROR 0x20 /* log to stderr as well */
  110 +
  111 +#define LOG_USER (1<<3)
  112 +
  113 +extern void spwin32_syslog (int priority, const char * format, ...);
  114 +extern void spwin32_closelog (void);
  115 +extern void spwin32_openlog (const char *ident , int option , int facility);
  116 +extern int spwin32_setlogmask (int priority);
  117 +
  118 +typedef void ( * spwin32_logger_t ) ( int priority, const char * format, ... );
  119 +
  120 +/* default is spwin32_syslog, write to stdout */
  121 +extern spwin32_logger_t g_spwin32_syslog;
  122 +
  123 +#ifdef __cplusplus
  124 +}
  125 +#endif
  126 +
  127 +#endif
... ...
注册登录 后发表评论