1
- #include "conversions.h"
2
1
#include "sockaddr_conv.h"
3
2
#include "conversions.h"
4
3
#include "sendrecvmsg.h" /* for ancillary registry */
4
+ #include "windows_common.h"
5
5
6
6
#include <Zend/zend_llist.h>
7
7
#include <ext/standard/php_smart_str.h>
8
8
9
- #include <sys/types.h>
10
- #include <sys/socket.h>
11
- #include <arpa/inet.h>
12
- #include <netinet/in.h>
13
- #include <sys/un.h>
14
-
15
- #include <sys/ioctl.h>
16
- #include <net/if.h>
9
+ #ifndef PHP_WIN32
10
+ # include <sys/types.h>
11
+ # include <sys/socket.h>
12
+ # include <arpa/inet.h>
13
+ # include <netinet/in.h>
14
+ # include <sys/un.h>
15
+ # include <sys/ioctl.h>
16
+ # include <net/if.h>
17
+ #else
18
+ # include <win32/php_stdint.h>
19
+ #endif
17
20
18
21
#include <limits.h>
19
22
#include <stdarg.h>
20
23
#include <stddef.h>
21
24
25
+ #ifdef PHP_WIN32
26
+ typedef unsigned short sa_family_t ;
27
+ # define msghdr _WSAMSG
28
+ /*
29
+ struct _WSAMSG {
30
+ LPSOCKADDR name; //void *msg_name
31
+ INT namelen; //socklen_t msg_namelen
32
+ LPWSABUF lpBuffers; //struct iovec *msg_iov
33
+ ULONG dwBufferCount; //size_t msg_iovlen
34
+ WSABUF Control; //void *msg_control, size_t msg_controllen
35
+ DWORD dwFlags; //int msg_flags
36
+ }
37
+ struct __WSABUF {
38
+ u_long len; //size_t iov_len (2nd member)
39
+ char FAR *buf; //void *iov_base (1st member)
40
+ }
41
+ struct _WSACMSGHDR {
42
+ UINT cmsg_len; //socklen_t cmsg_len
43
+ INT cmsg_level; //int cmsg_level
44
+ INT cmsg_type; //int cmsg_type;
45
+ followed by UCHAR cmsg_data[]
46
+ }
47
+ */
48
+ # define msg_name name
49
+ # define msg_namelen namelen
50
+ # define msg_iov lpBuffers
51
+ # define msg_iovlen dwBufferCount
52
+ # define msg_control Control.buf
53
+ # define msg_controllen Control.len
54
+ # define msg_flags dwFlags
55
+ # define iov_base buf
56
+ # define iov_len len
57
+
58
+ # define cmsghdr _WSACMSGHDR
59
+ # ifdef CMSG_DATA
60
+ # undef CMSG_DATA
61
+ # endif
62
+ # define CMSG_DATA WSA_CMSG_DATA
63
+ #endif
64
+
22
65
#define MAX_USER_BUFF_SIZE ((size_t)(100*1024*1024))
23
66
#define DEFAULT_BUFF_SIZE 8192
24
67
@@ -132,7 +175,7 @@ static void do_from_to_zval_err(struct err_s *err,
132
175
efree (user_msg );
133
176
smart_str_free_ex (& path , 0 );
134
177
}
135
- __attribute__ (( format ( printf , 2 , 3 )) )
178
+ ZEND_ATTRIBUTE_FORMAT ( printf , 2 , 3 )
136
179
static void do_from_zval_err (ser_context * ctx , const char * fmt , ...)
137
180
{
138
181
va_list ap ;
@@ -141,7 +184,7 @@ static void do_from_zval_err(ser_context *ctx, const char *fmt, ...)
141
184
do_from_to_zval_err (& ctx -> err , & ctx -> keys , "user" , fmt , ap );
142
185
va_end (ap );
143
186
}
144
- __attribute__ (( format ( printf , 2 , 3 )) )
187
+ ZEND_ATTRIBUTE_FORMAT ( printf , 2 , 3 )
145
188
static void do_to_zval_err (res_context * ctx , const char * fmt , ...)
146
189
{
147
190
va_list ap ;
@@ -958,7 +1001,7 @@ static void to_zval_read_control_array(const char *msghdr_c, zval *zv, res_conte
958
1001
959
1002
for (cmsg = CMSG_FIRSTHDR (msg );
960
1003
cmsg != NULL && !ctx -> err .has_error ;
961
- cmsg = CMSG_NXTHDR (msg ,cmsg )) {
1004
+ cmsg = CMSG_NXTHDR (msg , cmsg )) {
962
1005
zval * elem ;
963
1006
964
1007
ALLOC_INIT_ZVAL (elem );
@@ -1149,7 +1192,7 @@ static void to_zval_read_iov(const char *msghdr_c, zval *zv, res_context *ctx)
1149
1192
1150
1193
for (i = 0 ; bytes_left > 0 && i < (uint )iovlen ; i ++ ) {
1151
1194
zval * elem ;
1152
- size_t len = MIN (msghdr -> msg_iov [i ].iov_len , bytes_left );
1195
+ size_t len = MIN (msghdr -> msg_iov [i ].iov_len , ( size_t ) bytes_left );
1153
1196
char * buf = safe_emalloc (1 , len , 1 );
1154
1197
1155
1198
MAKE_STD_ZVAL (elem );
0 commit comments