正在显示
1 个修改的文件
包含
127 行增加
和
0 行删除
src/server/spserver/spwin32port.hpp
0 → 100644
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 | ... | ... |
请
注册
或
登录
后发表评论