X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_api.h;h=4f40fa520ab035a07c67c46edd22adaa31e2f069;hp=fc34e87a1afeaf5b08d0fa4c6deb15e5b481d49b;hb=9ae4a76b5f0f81518152731e5d93ab80092fe367;hpb=bb27380dd3b232aa0d0c7b8a40dabf2ac1066c34 diff --git a/php_http_api.h b/php_http_api.h index fc34e87..4f40fa5 100644 --- a/php_http_api.h +++ b/php_http_api.h @@ -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); @@ -84,7 +107,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");