/* ENCODE -- Encode binary file into base64. */
#include <stdlib.h>
+#include <ctype.h>
#include "base64.h"
for thread safety instead of using true globals.
*/
typedef struct {
- /* You can use the next one as type if your module registers any
- resources. Oh, you can of course rename it to something more
- suitable, add list entry types or remove it if it not needed.
- It's just an example.
- */
- int le_xmlrpc_server;
-} php_xmlrpc_globals;
-
-/* In every function that needs to use variables in php_xmlrpc_globals,
+} zend_xmlrpc_globals;
+
+/* In every function that needs to use variables in zend_xmlrpc_globals,
do call XMLRPCLS_FETCH(); after declaring other variables used by
that function, and always refer to them as XMLRPCG(variable).
You are encouraged to rename these macros something shorter, see
examples in any other php module directory.
*/
-#ifdef ZTS
-#define XMLRPCG(v) (xmlrpc_globals->v)
-#define XMLRPCLS_FETCH() php_xmlrpc_globals *xmlrpc_globals = ts_resource(gd_xmlrpc_id)
-#else
-#define XMLRPCG(v) (xmlrpc_globals.v)
-#define XMLRPCLS_FETCH()
-#endif
-
#else
#define phpext_xmlrpc_ptr NULL
gets defined.
*/
-#ifdef ZTS
-int xmlrpc_globals_id;
-#else
-php_xmlrpc_globals xmlrpc_globals;
-#endif
+ZEND_DECLARE_MODULE_GLOBALS(xmlrpc)
+
+static int le_xmlrpc_server;
/* Every user visible function must have an entry in xmlrpc_functions[].
/* called when server is being destructed. either when xmlrpc_server_destroy
* is called, or when request ends.
*/
-static void xmlrpc_server_destructor(zend_rsrc_list_entry *rsrc) {
+static void xmlrpc_server_destructor(zend_rsrc_list_entry *rsrc TSRMLS_DC) {
if(rsrc && rsrc->ptr) {
destroy_server_data((xmlrpc_server_data*)rsrc->ptr);
}
}
-static void xmlrpc_init_globals(php_xmlrpc_globals *xmlrpc_globals)
+/* notneeded
+static void xmlrpc_init_globals(zend_xmlrpc_globals *xmlrpc_globals)
{
return;
}
+*/
/* module init */
PHP_MINIT_FUNCTION(xmlrpc)
/* Remove comments if you have entries in php.ini
REGISTER_INI_ENTRIES();
*/
- ZEND_INIT_MODULE_GLOBALS(xmlrpc, xmlrpc_init_globals, NULL);
- XMLRPCG(le_xmlrpc_server) = zend_register_list_destructors_ex(xmlrpc_server_destructor, NULL, "xmlrpc server", module_number);
- return SUCCESS;
+ /* notneeded
+ ZEND_INIT_MODULE_GLOBALS(xmlrpc, xmlrpc_init_globals, NULL);
+ */
+ le_xmlrpc_server = zend_register_list_destructors_ex(xmlrpc_server_destructor, NULL, "xmlrpc server", module_number);
+
+ return SUCCESS;
}
/* module shutdown */
XMLRPC_ServerRegisterIntrospectionCallback(server->server_ptr, php_xmlrpc_introspection_callback);
/* store for later use */
- ZEND_REGISTER_RESOURCE(return_value,server, XMLRPCG(le_xmlrpc_server));
+ ZEND_REGISTER_RESOURCE(return_value,server, le_xmlrpc_server);
}
}
}
xmlrpc_server_data *server = zend_list_find(Z_LVAL_P(arg1), &type);
- if(server && type == XMLRPCG(le_xmlrpc_server)) {
+ if(server && type == le_xmlrpc_server) {
bSuccess = zend_list_delete(Z_LVAL_P(arg1));
/* called by hashtable destructor
/* Use same C function for all methods */
/* php func prototype: function user_func($method_name, $xmlrpc_params, $user_params) */
- call_user_function(CG(function_table), NULL, pData->php_function, pData->return_data, 3, callback_params);
+ call_user_function(CG(function_table), NULL, pData->php_function, pData->return_data, 3, callback_params TSRMLS_CC);
pData->php_executed = 1;
}
/* php func prototype: function string user_func($user_params) */
if(call_user_function(CG(function_table), NULL, *php_function,
- retval_ptr, 1, callback_params) == SUCCESS) {
+ retval_ptr, 1, callback_params TSRMLS_CC) == SUCCESS) {
XMLRPC_VALUE xData;
STRUCT_XMLRPC_ERROR err = {0};
server = zend_list_find(Z_LVAL_P(handle), &type);
- if(type == XMLRPCG(le_xmlrpc_server)) {
+ if(type == le_xmlrpc_server) {
/* register with C engine. every method just calls our standard callback,
* and it then dispatches to php as necessary
*/
server = zend_list_find(Z_LVAL_P(handle), &type);
- if(type == XMLRPCG(le_xmlrpc_server)) {
+ if(type == le_xmlrpc_server) {
{
/* save for later use */
MAKE_STD_ZVAL(method_name_save);
server = zend_list_find(Z_LVAL_P(handle), &type);
- if(type == XMLRPCG(le_xmlrpc_server)) {
+ if(type == le_xmlrpc_server) {
/* HACK: use output encoding for now */
input_opts.xml_elem_opts.encoding = utf8_get_encoding_id_from_string(out.xmlrpc_out.xml_elem_opts.encoding);
server = zend_list_find(Z_LVAL_P(handle), &type);
- if (type == XMLRPCG(le_xmlrpc_server)) {
+ if (type == le_xmlrpc_server) {
XMLRPC_VALUE xDesc = PHP_to_XMLRPC(desc);
if (xDesc) {
int retval = XMLRPC_ServerAddIntrospectionData(server->server_ptr, xDesc);
/* ENCODE -- Encode binary file into base64. */
#include <stdlib.h>
+#include <ctype.h>
#include "base64.h"
for thread safety instead of using true globals.
*/
typedef struct {
- /* You can use the next one as type if your module registers any
- resources. Oh, you can of course rename it to something more
- suitable, add list entry types or remove it if it not needed.
- It's just an example.
- */
- int le_xmlrpc_server;
-} php_xmlrpc_globals;
-
-/* In every function that needs to use variables in php_xmlrpc_globals,
+} zend_xmlrpc_globals;
+
+/* In every function that needs to use variables in zend_xmlrpc_globals,
do call XMLRPCLS_FETCH(); after declaring other variables used by
that function, and always refer to them as XMLRPCG(variable).
You are encouraged to rename these macros something shorter, see
examples in any other php module directory.
*/
-#ifdef ZTS
-#define XMLRPCG(v) (xmlrpc_globals->v)
-#define XMLRPCLS_FETCH() php_xmlrpc_globals *xmlrpc_globals = ts_resource(gd_xmlrpc_id)
-#else
-#define XMLRPCG(v) (xmlrpc_globals.v)
-#define XMLRPCLS_FETCH()
-#endif
-
#else
#define phpext_xmlrpc_ptr NULL
gets defined.
*/
-#ifdef ZTS
-int xmlrpc_globals_id;
-#else
-php_xmlrpc_globals xmlrpc_globals;
-#endif
+ZEND_DECLARE_MODULE_GLOBALS(xmlrpc)
+
+static int le_xmlrpc_server;
/* Every user visible function must have an entry in xmlrpc_functions[].
/* called when server is being destructed. either when xmlrpc_server_destroy
* is called, or when request ends.
*/
-static void xmlrpc_server_destructor(zend_rsrc_list_entry *rsrc) {
+static void xmlrpc_server_destructor(zend_rsrc_list_entry *rsrc TSRMLS_DC) {
if(rsrc && rsrc->ptr) {
destroy_server_data((xmlrpc_server_data*)rsrc->ptr);
}
}
-static void xmlrpc_init_globals(php_xmlrpc_globals *xmlrpc_globals)
+/* notneeded
+static void xmlrpc_init_globals(zend_xmlrpc_globals *xmlrpc_globals)
{
return;
}
+*/
/* module init */
PHP_MINIT_FUNCTION(xmlrpc)
/* Remove comments if you have entries in php.ini
REGISTER_INI_ENTRIES();
*/
- ZEND_INIT_MODULE_GLOBALS(xmlrpc, xmlrpc_init_globals, NULL);
- XMLRPCG(le_xmlrpc_server) = zend_register_list_destructors_ex(xmlrpc_server_destructor, NULL, "xmlrpc server", module_number);
- return SUCCESS;
+ /* notneeded
+ ZEND_INIT_MODULE_GLOBALS(xmlrpc, xmlrpc_init_globals, NULL);
+ */
+ le_xmlrpc_server = zend_register_list_destructors_ex(xmlrpc_server_destructor, NULL, "xmlrpc server", module_number);
+
+ return SUCCESS;
}
/* module shutdown */
XMLRPC_ServerRegisterIntrospectionCallback(server->server_ptr, php_xmlrpc_introspection_callback);
/* store for later use */
- ZEND_REGISTER_RESOURCE(return_value,server, XMLRPCG(le_xmlrpc_server));
+ ZEND_REGISTER_RESOURCE(return_value,server, le_xmlrpc_server);
}
}
}
xmlrpc_server_data *server = zend_list_find(Z_LVAL_P(arg1), &type);
- if(server && type == XMLRPCG(le_xmlrpc_server)) {
+ if(server && type == le_xmlrpc_server) {
bSuccess = zend_list_delete(Z_LVAL_P(arg1));
/* called by hashtable destructor
/* Use same C function for all methods */
/* php func prototype: function user_func($method_name, $xmlrpc_params, $user_params) */
- call_user_function(CG(function_table), NULL, pData->php_function, pData->return_data, 3, callback_params);
+ call_user_function(CG(function_table), NULL, pData->php_function, pData->return_data, 3, callback_params TSRMLS_CC);
pData->php_executed = 1;
}
/* php func prototype: function string user_func($user_params) */
if(call_user_function(CG(function_table), NULL, *php_function,
- retval_ptr, 1, callback_params) == SUCCESS) {
+ retval_ptr, 1, callback_params TSRMLS_CC) == SUCCESS) {
XMLRPC_VALUE xData;
STRUCT_XMLRPC_ERROR err = {0};
server = zend_list_find(Z_LVAL_P(handle), &type);
- if(type == XMLRPCG(le_xmlrpc_server)) {
+ if(type == le_xmlrpc_server) {
/* register with C engine. every method just calls our standard callback,
* and it then dispatches to php as necessary
*/
server = zend_list_find(Z_LVAL_P(handle), &type);
- if(type == XMLRPCG(le_xmlrpc_server)) {
+ if(type == le_xmlrpc_server) {
{
/* save for later use */
MAKE_STD_ZVAL(method_name_save);
server = zend_list_find(Z_LVAL_P(handle), &type);
- if(type == XMLRPCG(le_xmlrpc_server)) {
+ if(type == le_xmlrpc_server) {
/* HACK: use output encoding for now */
input_opts.xml_elem_opts.encoding = utf8_get_encoding_id_from_string(out.xmlrpc_out.xml_elem_opts.encoding);
server = zend_list_find(Z_LVAL_P(handle), &type);
- if (type == XMLRPCG(le_xmlrpc_server)) {
+ if (type == le_xmlrpc_server) {
XMLRPC_VALUE xDesc = PHP_to_XMLRPC(desc);
if (xDesc) {
int retval = XMLRPC_ServerAddIntrospectionData(server->server_ptr, xDesc);