@@ -52,6 +52,18 @@ typedef int PHP_SOCKET;
52
52
typedef SOCKET PHP_SOCKET ;
53
53
#endif
54
54
55
+ #ifdef PHP_WIN32
56
+ # ifdef PHP_SOCKETS_EXPORTS
57
+ # define PHP_SOCKETS_API __declspec(dllexport)
58
+ # else
59
+ # define PHP_SOCKETS_API __declspec(dllimport)
60
+ # endif
61
+ #elif defined(__GNUC__ ) && __GNUC__ >= 4
62
+ # define PHP_SOCKETS_API __attribute__ ((visibility("default")))
63
+ #else
64
+ # define PHP_SOCKETS_API
65
+ #endif
66
+
55
67
/* Socket class */
56
68
57
69
typedef struct {
@@ -63,7 +75,7 @@ typedef struct {
63
75
zend_object std ;
64
76
} php_socket ;
65
77
66
- extern PHPAPI zend_class_entry * socket_ce ;
78
+ extern PHP_SOCKETS_API zend_class_entry * socket_ce ;
67
79
68
80
static inline php_socket * socket_from_obj (zend_object * obj ) {
69
81
return (php_socket * )((char * )(obj ) - XtOffsetOf (php_socket , std ));
@@ -104,7 +116,7 @@ ZEND_BEGIN_MODULE_GLOBALS(sockets)
104
116
#endif
105
117
ZEND_END_MODULE_GLOBALS (sockets )
106
118
107
- PHPAPI ZEND_EXTERN_MODULE_GLOBALS (sockets )
119
+ PHP_SOCKETS_API ZEND_EXTERN_MODULE_GLOBALS (sockets )
108
120
#define SOCKETS_G (v ) ZEND_MODULE_GLOBALS_ACCESSOR(sockets, v)
109
121
110
122
enum sockopt_return {
@@ -113,8 +125,8 @@ enum sockopt_return {
113
125
SOCKOPT_SUCCESS
114
126
};
115
127
116
- PHPAPI char * sockets_strerror (int error );
117
- PHPAPI int socket_import_file_descriptor (PHP_SOCKET socket , php_socket * retsock );
128
+ PHP_SOCKETS_API char * sockets_strerror (int error );
129
+ PHP_SOCKETS_API int socket_import_file_descriptor (PHP_SOCKET socket , php_socket * retsock );
118
130
119
131
#else
120
132
#define phpext_sockets_ptr NULL
0 commit comments