X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_api.h;h=a490347b211cdf4daf7165bc4a87b2ac7ab64c55;hp=2de5abbc2d4560fc80f3d0fdbd97a3e337903808;hb=23d7e7f276852b4ed1bd2829fcca38c6db854563;hpb=aca5a5a21e4514707a71cfa69cc19ae50a78f5d3 diff --git a/php_http_api.h b/php_http_api.h index 2de5abb..a490347 100644 --- a/php_http_api.h +++ b/php_http_api.h @@ -21,6 +21,7 @@ #define HTTP_SUPPORT_ENCODINGS 0x08L #define HTTP_SUPPORT_SSLREQUESTS 0x20L #define HTTP_SUPPORT_PERSISTENCE 0x40L +#define HTTP_SUPPORT_EVENTS 0x80L #define HTTP_PARAMS_ALLOW_COMMA 0x01 #define HTTP_PARAMS_ALLOW_FAILURE 0x02 @@ -35,6 +36,9 @@ PHP_HTTP_API long _http_support(long feature); #define pretty_key(key, key_len, uctitle, xhyphen) _http_pretty_key(key, key_len, uctitle, xhyphen) extern char *_http_pretty_key(char *key, size_t key_len, zend_bool uctitle, zend_bool xhyphen); +#define http_boundary(b, l) _http_boundary((b), (l) TSRMLS_CC) +extern size_t _http_boundary(char *buf, size_t len TSRMLS_DC); + #define http_error(type, code, string) _http_error_ex(type, code, "%s", string) #define http_error_ex _http_error_ex extern void _http_error_ex(long type TSRMLS_DC, long code, const char *format, ...); @@ -263,7 +267,9 @@ static inline zval *_convert_to_type(int type, zval *z) #define convert_to_type_ex(t, z, p) _convert_to_type_ex((t), (z), (p)) static inline zval *_convert_to_type_ex(int type, zval *z, zval **p) { - *p = z; + if (p) { + *p = z; + } if (Z_TYPE_P(z) != type) { switch (type) { case IS_NULL: convert_to_null_ex(&z); break; @@ -275,37 +281,16 @@ static inline zval *_convert_to_type_ex(int type, zval *z, zval **p) case IS_OBJECT: convert_to_object_ex(&z); break; } } - if (*p == z) { - *p = NULL; - } else { - *p = z; + if (p) { + if (*p == z) { + *p = NULL; + } else { + *p = z; + } } return z; } -#define zval_copy(t, z) _zval_copy((t), (z) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -static inline zval *_zval_copy(int type, zval *z ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) -{ - zval *copy; - - copy = emalloc_rel(sizeof(zval)); - *copy = *z; - zval_copy_ctor(copy); - convert_to_type(type, copy); - copy->refcount = 0; - copy->is_ref = 0; - - return copy; -} - -#define zval_free(z) _zval_free(z) -static inline void _zval_free(zval **z) -{ - zval_dtor(*z); - FREE_ZVAL(*z); - *z = NULL; -} - typedef struct _HashKey { char *str; uint len;