implement necessary symbol exports

This commit is contained in:
Anatol Belski 2015-05-23 20:55:20 +02:00
parent f20118aa66
commit 1411ca58b1
3 changed files with 48 additions and 37 deletions

View file

@ -357,13 +357,13 @@ int fcgi_in_shutdown(void)
return in_shutdown; return in_shutdown;
} }
void fcgi_terminate(void) FCGI_API void fcgi_terminate(void)
{ {
in_shutdown = 1; in_shutdown = 1;
} }
#ifndef HAVE_ATTRIBUTE_WEAK #ifndef HAVE_ATTRIBUTE_WEAK
void fcgi_set_logger(fcgi_logger lg) { FCGI_API void fcgi_set_logger(fcgi_logger lg) {
fcgi_log = lg; fcgi_log = lg;
} }
#else #else
@ -442,7 +442,7 @@ int fcgi_init(void)
} }
int fcgi_is_fastcgi(void) FCGI_API int fcgi_is_fastcgi(void)
{ {
if (!is_initialized) { if (!is_initialized) {
return fcgi_init(); return fcgi_init();
@ -451,7 +451,7 @@ int fcgi_is_fastcgi(void)
} }
} }
void fcgi_shutdown(void) FCGI_API void fcgi_shutdown(void)
{ {
if (is_initialized) { if (is_initialized) {
zend_hash_destroy(&fcgi_mgmt_vars); zend_hash_destroy(&fcgi_mgmt_vars);
@ -543,7 +543,7 @@ static int is_port_number(const char *bindpath)
return 1; return 1;
} }
int fcgi_listen(const char *path, int backlog) FCGI_API int fcgi_listen(const char *path, int backlog)
{ {
char *s; char *s;
int tcp = 0; int tcp = 0;
@ -768,7 +768,7 @@ void fcgi_set_allowed_clients(char *ip)
} }
} }
fcgi_request *fcgi_init_request(fcgi_request *req, int listen_socket) FCGI_API fcgi_request *fcgi_init_request(fcgi_request *req, int listen_socket)
{ {
memset(req, 0, sizeof(fcgi_request)); memset(req, 0, sizeof(fcgi_request));
req->listen_socket = listen_socket; req->listen_socket = listen_socket;
@ -799,7 +799,7 @@ fcgi_request *fcgi_init_request(fcgi_request *req, int listen_socket)
return req; return req;
} }
void fcgi_destroy_request(fcgi_request *req) { FCGI_API void fcgi_destroy_request(fcgi_request *req) {
if (req->env.buckets) { if (req->env.buckets) {
fcgi_hash_destroy(&req->env); fcgi_hash_destroy(&req->env);
} }
@ -1093,7 +1093,7 @@ static int fcgi_read_request(fcgi_request *req)
return 1; return 1;
} }
int fcgi_read(fcgi_request *req, char *str, int len) FCGI_API int fcgi_read(fcgi_request *req, char *str, int len)
{ {
int ret, n, rest; int ret, n, rest;
fcgi_header hdr; fcgi_header hdr;
@ -1243,7 +1243,7 @@ static int fcgi_is_allowed() {
return 0; return 0;
} }
int fcgi_accept_request(fcgi_request *req) FCGI_API int fcgi_accept_request(fcgi_request *req)
{ {
#ifdef _WIN32 #ifdef _WIN32
HANDLE pipe; HANDLE pipe;
@ -1399,7 +1399,7 @@ static inline void close_packet(fcgi_request *req)
} }
} }
int fcgi_flush(fcgi_request *req, int close) FCGI_API int fcgi_flush(fcgi_request *req, int close)
{ {
int len; int len;
@ -1429,7 +1429,7 @@ int fcgi_flush(fcgi_request *req, int close)
return 1; return 1;
} }
int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len) FCGI_API int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len)
{ {
int limit, rest; int limit, rest;
@ -1541,7 +1541,7 @@ int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int l
return len; return len;
} }
int fcgi_finish_request(fcgi_request *req, int force_close) FCGI_API int fcgi_finish_request(fcgi_request *req, int force_close)
{ {
int ret = 1; int ret = 1;
@ -1555,7 +1555,7 @@ int fcgi_finish_request(fcgi_request *req, int force_close)
return ret; return ret;
} }
char* fcgi_getenv(fcgi_request *req, const char* var, int var_len) FCGI_API char* fcgi_getenv(fcgi_request *req, const char* var, int var_len)
{ {
unsigned int val_len; unsigned int val_len;
@ -1564,14 +1564,14 @@ char* fcgi_getenv(fcgi_request *req, const char* var, int var_len)
return fcgi_hash_get(&req->env, FCGI_HASH_FUNC(var, var_len), (char*)var, var_len, &val_len); return fcgi_hash_get(&req->env, FCGI_HASH_FUNC(var, var_len), (char*)var, var_len, &val_len);
} }
char* fcgi_quick_getenv(fcgi_request *req, const char* var, int var_len, unsigned int hash_value) FCGI_API char* fcgi_quick_getenv(fcgi_request *req, const char* var, int var_len, unsigned int hash_value)
{ {
unsigned int val_len; unsigned int val_len;
return fcgi_hash_get(&req->env, hash_value, (char*)var, var_len, &val_len); return fcgi_hash_get(&req->env, hash_value, (char*)var, var_len, &val_len);
} }
char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val) FCGI_API char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val)
{ {
if (!req) return NULL; if (!req) return NULL;
if (val == NULL) { if (val == NULL) {
@ -1582,7 +1582,7 @@ char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val)
} }
} }
char* fcgi_quick_putenv(fcgi_request *req, char* var, int var_len, unsigned int hash_value, char* val) FCGI_API char* fcgi_quick_putenv(fcgi_request *req, char* var, int var_len, unsigned int hash_value, char* val)
{ {
if (val == NULL) { if (val == NULL) {
fcgi_hash_del(&req->env, hash_value, var, var_len); fcgi_hash_del(&req->env, hash_value, var, var_len);
@ -1592,13 +1592,13 @@ char* fcgi_quick_putenv(fcgi_request *req, char* var, int var_len, unsigned int
} }
} }
void fcgi_loadenv(fcgi_request *req, fcgi_apply_func func, zval *array) FCGI_API void fcgi_loadenv(fcgi_request *req, fcgi_apply_func func, zval *array)
{ {
fcgi_hash_apply(&req->env, func, array); fcgi_hash_apply(&req->env, func, array);
} }
#ifdef _WIN32 #ifdef _WIN32
void fcgi_impersonate(void) FCGI_API void fcgi_impersonate(void)
{ {
char *os_name; char *os_name;

View file

@ -43,6 +43,16 @@
#define FCGI_PUTENV(request, name, value) \ #define FCGI_PUTENV(request, name, value) \
fcgi_quick_putenv(request, name, sizeof(name)-1, FCGI_HASH_FUNC(name, sizeof(name)-1), value) fcgi_quick_putenv(request, name, sizeof(name)-1, FCGI_HASH_FUNC(name, sizeof(name)-1), value)
#ifdef PHP_WIN32
# ifdef FCGI_EXPORTS
# define FCGI_API __declspec(dllexport)
# else
# define FCGI_API __declspec(dllimport)
# endif
#else
# define FCGI_API
#endif
typedef enum _fcgi_role { typedef enum _fcgi_role {
FCGI_RESPONDER = 1, FCGI_RESPONDER = 1,
FCGI_AUTHORIZER = 2, FCGI_AUTHORIZER = 2,
@ -187,39 +197,39 @@ struct _fcgi_request {
}; };
int fcgi_init(void); int fcgi_init(void);
void fcgi_shutdown(void); FCGI_API void fcgi_shutdown(void);
int fcgi_is_fastcgi(void); FCGI_API int fcgi_is_fastcgi(void);
int fcgi_is_closed(fcgi_request *req); int fcgi_is_closed(fcgi_request *req);
void fcgi_close(fcgi_request *req, int force, int destroy); void fcgi_close(fcgi_request *req, int force, int destroy);
int fcgi_in_shutdown(void); int fcgi_in_shutdown(void);
void fcgi_terminate(void); FCGI_API void fcgi_terminate(void);
int fcgi_listen(const char *path, int backlog); FCGI_API int fcgi_listen(const char *path, int backlog);
fcgi_request* fcgi_init_request(fcgi_request *request, int listen_socket); FCGI_API fcgi_request* fcgi_init_request(fcgi_request *request, int listen_socket);
void fcgi_destroy_request(fcgi_request *req); FCGI_API void fcgi_destroy_request(fcgi_request *req);
void fcgi_set_allowed_clients(char *ip); void fcgi_set_allowed_clients(char *ip);
int fcgi_accept_request(fcgi_request *req); FCGI_API int fcgi_accept_request(fcgi_request *req);
int fcgi_finish_request(fcgi_request *req, int force_close); FCGI_API int fcgi_finish_request(fcgi_request *req, int force_close);
const char *fcgi_get_last_client_ip(); const char *fcgi_get_last_client_ip();
void fcgi_set_in_shutdown(int new_value); void fcgi_set_in_shutdown(int new_value);
#ifndef HAVE_ATTRIBUTE_WEAK #ifndef HAVE_ATTRIBUTE_WEAK
typedef void (*fcgi_logger)(int type, const char *fmt, ...); typedef void (*fcgi_logger)(int type, const char *fmt, ...);
void fcgi_set_logger(fcgi_logger lg); FCGI_API void fcgi_set_logger(fcgi_logger lg);
#endif #endif
char* fcgi_getenv(fcgi_request *req, const char* var, int var_len); FCGI_API char* fcgi_getenv(fcgi_request *req, const char* var, int var_len);
char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val); FCGI_API char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val);
char* fcgi_quick_getenv(fcgi_request *req, const char* var, int var_len, unsigned int hash_value); FCGI_API char* fcgi_quick_getenv(fcgi_request *req, const char* var, int var_len, unsigned int hash_value);
char* fcgi_quick_putenv(fcgi_request *req, char* var, int var_len, unsigned int hash_value, char* val); FCGI_API char* fcgi_quick_putenv(fcgi_request *req, char* var, int var_len, unsigned int hash_value, char* val);
void fcgi_loadenv(fcgi_request *req, fcgi_apply_func load_func, zval *array); FCGI_API void fcgi_loadenv(fcgi_request *req, fcgi_apply_func load_func, zval *array);
int fcgi_read(fcgi_request *req, char *str, int len); FCGI_API int fcgi_read(fcgi_request *req, char *str, int len);
int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len); FCGI_API int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len);
int fcgi_flush(fcgi_request *req, int close); FCGI_API int fcgi_flush(fcgi_request *req, int close);
#ifdef PHP_WIN32 #ifdef PHP_WIN32
void fcgi_impersonate(void); FCGI_API void fcgi_impersonate(void);
#endif #endif
void fcgi_set_mgmt_var(const char * name, size_t name_len, const char * value, size_t value_len); void fcgi_set_mgmt_var(const char * name, size_t name_len, const char * value, size_t value_len);

View file

@ -2599,7 +2599,8 @@ function toolset_setup_common_cflags()
{ {
// CFLAGS for building the PHP dll // CFLAGS for building the PHP dll
DEFINE("CFLAGS_PHP", "/D _USRDLL /D PHP7DLLTS_EXPORTS /D PHP_EXPORTS \ DEFINE("CFLAGS_PHP", "/D _USRDLL /D PHP7DLLTS_EXPORTS /D PHP_EXPORTS \
/D LIBZEND_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=" + WINVER); /D LIBZEND_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=" + WINVER
+ " /D FCGI_EXPORTS");
DEFINE('CFLAGS_PHP_OBJ', '$(CFLAGS_PHP) $(STATIC_EXT_CFLAGS)'); DEFINE('CFLAGS_PHP_OBJ', '$(CFLAGS_PHP) $(STATIC_EXT_CFLAGS)');
1 1