branch off v1 as R_1_7
[m6w6/ext-http] / php_http_std_defs.h
index 792ddda4319095ad39970a62cd2044c20d105307..32c12333ae0062cdfad3867867735f051c647daf 100644 (file)
@@ -6,7 +6,7 @@
     | modification, are permitted provided that the conditions mentioned |
     | in the accompanying LICENSE file are met.                          |
     +--------------------------------------------------------------------+
-    | Copyright (c) 2004-2007, Michael Wallner <mike@php.net>            |
+    | Copyright (c) 2004-2010, Michael Wallner <mike@php.net>            |
     +--------------------------------------------------------------------+
 */
 
@@ -104,11 +104,14 @@ typedef int STATUS;
 /* max URL length */
 #define HTTP_URL_MAXLEN 4096
 
+/* max request method length */
+#define HTTP_REQUEST_METHOD_MAXLEN 31
+
 /* def URL arg separator */
 #define HTTP_URL_ARGSEP "&"
 
 /* send buffer size */
-#define HTTP_SENDBUF_SIZE 8000 /*40960*/
+#define HTTP_SENDBUF_SIZE 40960
 
 /* CURL buffer size */
 #define HTTP_CURLBUF_SIZE 16384
@@ -179,7 +182,11 @@ typedef int STATUS;
 #      define getObject(t, o) getObjectEx(t, o, getThis())
 #      define getObjectEx(t, o, v) t * o = ((t *) zend_object_store_get_object(v TSRMLS_CC))
 #      define putObject(t, o) zend_objects_store_put(o, (zend_objects_store_dtor_t) zend_objects_destroy_object, (zend_objects_free_object_storage_t) _ ##t## _free, NULL TSRMLS_CC);
-#      ifndef WONKY
+#      if defined(ZEND_ENGINE_2_4)
+#              define freeObject(o) \
+                       zend_object_std_dtor(o TSRMLS_CC); \
+                       efree(o);
+#      elif !defined(WONKY)
 #              define freeObject(o) \
                        if (OBJ_GUARDS(o)) { \
                                zend_hash_destroy(OBJ_GUARDS(o)); \
@@ -216,8 +223,8 @@ typedef int STATUS;
 #ifdef ZEND_ENGINE_2
 #      define with_error_handling(eh, ec) \
        { \
-               error_handling_t __eh = PG(error_handling); \
-               zend_class_entry *__ec= PG(exception_class); \
+               error_handling_t __eh = GLOBAL_ERROR_HANDLING; \
+               zend_class_entry *__ec= GLOBAL_EXCEPTION_CLASS; \
                php_set_error_handling(eh, ec TSRMLS_CC);
 #      define end_error_handling() \
                php_set_error_handling(__eh, __ec TSRMLS_CC); \
@@ -263,8 +270,8 @@ typedef int STATUS;
 #define HTTP_E_QUERYSTRING                     13L
 
 #ifdef ZEND_ENGINE_2
-#      define HTTP_BEGIN_ARGS_EX(class, method, ret_ref, req_args)     static ZEND_BEGIN_ARG_INFO_EX(args_for_ ##class## _ ##method , 0, ret_ref, req_args)
-#      define HTTP_BEGIN_ARGS_AR(class, method, ret_ref, req_args)     static ZEND_BEGIN_ARG_INFO_EX(args_for_ ##class## _ ##method , 1, ret_ref, req_args)
+#      define HTTP_BEGIN_ARGS_EX(class, method, ret_ref, req_args)     HTTP_STATIC_ARG_INFO ZEND_BEGIN_ARG_INFO_EX(args_for_ ##class## _ ##method , 0, ret_ref, req_args)
+#      define HTTP_BEGIN_ARGS_AR(class, method, ret_ref, req_args)     HTTP_STATIC_ARG_INFO ZEND_BEGIN_ARG_INFO_EX(args_for_ ##class## _ ##method , 1, ret_ref, req_args)
 #      define HTTP_END_ARGS                                                                            }
 #      define HTTP_EMPTY_ARGS_EX(class, method, ret_ref)                       HTTP_BEGIN_ARGS_EX(class, method, ret_ref, 0) HTTP_END_ARGS
 #      define HTTP_ARGS(class, method)                                                         args_for_ ##class## _ ##method
@@ -281,20 +288,20 @@ typedef int STATUS;
 #ifdef HTTP_HAVE_CURL
 #      ifdef ZEND_ENGINE_2
 #              define HTTP_DECLARE_ARG_PASS_INFO() \
-                       static \
+                       HTTP_STATIC_ARG_INFO \
                        ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_2, 0) \
                                ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(1) \
                        ZEND_END_ARG_INFO(); \
  \
-                       static \
+                       HTTP_STATIC_ARG_INFO \
                        ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_3, 0) \
                                ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(1) \
                        ZEND_END_ARG_INFO(); \
  \
-                       static \
+                       HTTP_STATIC_ARG_INFO \
                        ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_4, 0) \
                                ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(0) \
@@ -302,7 +309,7 @@ typedef int STATUS;
                                ZEND_ARG_PASS_INFO(1) \
                        ZEND_END_ARG_INFO(); \
  \
-                       static \
+                       HTTP_STATIC_ARG_INFO \
                        ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_5, 0) \
                                ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(0) \
@@ -321,13 +328,20 @@ typedef int STATUS;
 #else
 #      ifdef ZEND_ENGINE_2
 #              define HTTP_DECLARE_ARG_PASS_INFO() \
-                       static \
+                       HTTP_STATIC_ARG_INFO \
                        ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_2, 0) \
                                ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(1) \
                        ZEND_END_ARG_INFO(); \
 \
-                       static \
+                       HTTP_STATIC_ARG_INFO \
+                       ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_3, 0) \
+                               ZEND_ARG_PASS_INFO(0) \
+                               ZEND_ARG_PASS_INFO(0) \
+                               ZEND_ARG_PASS_INFO(1) \
+                       ZEND_END_ARG_INFO(); \
+\
+                       HTTP_STATIC_ARG_INFO \
                        ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_4, 0) \
                                ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(0) \
@@ -337,6 +351,7 @@ typedef int STATUS;
 #      else
 #              define HTTP_DECLARE_ARG_PASS_INFO() \
                        static unsigned char http_arg_pass_ref_2[] = {2, BYREF_NONE, BYREF_FORCE}; \
+                       static unsigned char http_arg_pass_ref_3[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE}; \
                        static unsigned char http_arg_pass_ref_4[] = {4, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_FORCE};
 #      endif /* ZEND_ENGINE_2 */
 #endif /* HTTP_HAVE_CURL */