- move the chunked decoder to the encoding_api
[m6w6/ext-http] / php_http_api.h
index 412f37d71121a6d5cce309280e73e5e589937e29..a6f19ebb53e58ab9c255bac4025c7c43e5ead217 100644 (file)
@@ -36,6 +36,29 @@ extern STATUS _http_parse_key_list(const char *list, HashTable *items, char sepa
 #define http_error_ex _http_error_ex
 extern void _http_error_ex(long type TSRMLS_DC, long code, const char *format, ...);
 
+#define HTTP_CHECK_CURL_INIT(ch, init, action) \
+       if ((!(ch)) && (!((ch) = init))) { \
+               http_error(HE_WARNING, HTTP_E_REQUEST, "Could not initialize curl"); \
+               action; \
+       }
+#define HTTP_CHECK_CONTENT_TYPE(ct, action) \
+       if (!strchr((ct), '/')) { \
+               http_error_ex(HE_WARNING, HTTP_E_INVALID_PARAM, \
+                       "Content type \"%s\" does not seem to contain a primary and a secondary part", (ct)); \
+               action; \
+       }
+#define HTTP_CHECK_MESSAGE_TYPE_RESPONSE(msg, action) \
+               if (!HTTP_MSG_TYPE(RESPONSE, (msg))) { \
+                       http_error(HE_NOTICE, HTTP_E_MESSAGE_TYPE, "HttpMessage is not of type HTTP_MSG_RESPONSE"); \
+                       action; \
+               }
+#define HTTP_CHECK_MESSAGE_TYPE_REQUEST(msg, action) \
+               if (!HTTP_MSG_TYPE(REQUEST, (msg))) { \
+                       http_error(HE_NOTICE, HTTP_E_MESSAGE_TYPE, "HttpMessage is not of type HTTP_MSG_REQUEST"); \
+                       action; \
+               }
+
+
 #define http_log(f, i, m) _http_log_ex((f), (i), (m) TSRMLS_CC)
 extern void http_log_ex(char *file, const char *ident, const char *message TSRMLS_DC);
 
@@ -61,9 +84,6 @@ PHP_HTTP_API zval *_http_get_server_var_ex(const char *key, size_t key_size, zen
 #define http_get_Request_body_ex(b, l, d) _http_get_request_body_ex((b), (l), (d) TSRMLS_CC)
 PHP_HTTP_API STATUS _http_get_request_body_ex(char **body, size_t *length, zend_bool dup TSRMLS_DC);
 
-#define http_chunked_decode(e, el, d, dl) _http_chunked_decode((e), (el), (d), (dl) TSRMLS_CC)
-PHP_HTTP_API const char *_http_chunked_decode(const char *encoded, size_t encoded_len, char **decoded, size_t *decoded_len TSRMLS_DC);
-
 #define http_guess_content_type(mf, mm, d, l, m) _http_guess_content_type((mf), (mm), (d), (l), (m) TSRMLS_CC)
 PHP_HTTP_API char *_http_guess_content_type(const char *magic_file, long magic_mode, void *data_ptr, size_t data_len, http_send_mode mode TSRMLS_DC);
 
@@ -84,7 +104,7 @@ static inline const char *_http_locate_body(const char *message)
 }
 
 #define http_locate_eol _http_locate_eol
-static inline const char *_http_locate_eol(const char *line, size_t *eol_len)
+static inline const char *_http_locate_eol(const char *line, int *eol_len)
 {
        const char *eol = strpbrk(line, "\r\n");
        
@@ -129,7 +149,6 @@ static inline zval *_convert_to_type_ex(int type, zval *z)
        return z;
 }
 
-#define zval_set_type(z, t)
 
 #endif