X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_message_api.c;h=b1194645ecc87caae8d33ab0f68e866e7fb1d0be;hb=0ac87717530843df93ca94ffa8c3fd8935f346cb;hp=b1f5fbc5ed361bccc19b90b77601ee9fecd277af;hpb=837e726a8dba0aa64aeeebe538a8b8c415e86a1c;p=m6w6%2Fext-http diff --git a/http_message_api.c b/http_message_api.c index b1f5fbc..b119464 100644 --- a/http_message_api.c +++ b/http_message_api.c @@ -18,15 +18,15 @@ #ifdef HAVE_CONFIG_H # include "config.h" #endif - #include "php.h" + #include "php_http.h" #include "php_http_std_defs.h" #include "php_http_api.h" #include "php_http_message_api.h" #include "php_http_headers_api.h" #include "php_http_send_api.h" -#include "php_http_curl_api.h" +#include "php_http_request_api.h" #include "php_http_url_api.h" #include "phpstr/phpstr.h" @@ -190,7 +190,7 @@ PHP_HTTP_API http_message *_http_message_parse_ex(http_message *msg, const char zval *len; char *tmp; - spprintf(&tmp, 0, "%lu", decoded_len); + spprintf(&tmp, 0, "%lu", (ulong) decoded_len); MAKE_STD_ZVAL(len); ZVAL_STRING(len, tmp, 0); @@ -382,7 +382,8 @@ PHP_HTTP_API STATUS _http_message_send(http_message *message TSRMLS_DC) } if (!strcasecmp("POST", message->info.request.method)) { - rs = http_post_data(uri, PHPSTR_VAL(message), PHPSTR_LEN(message), Z_ARRVAL(options), NULL, NULL); + http_request_body body = {HTTP_REQUEST_BODY_CSTRING, PHPSTR_VAL(message), PHPSTR_LEN(message)}; + rs = http_post(uri, &body, Z_ARRVAL(options), NULL, NULL); } else if (!strcasecmp("GET", message->info.request.method)) { rs = http_get(uri, Z_ARRVAL(options), NULL, NULL); @@ -411,6 +412,21 @@ PHP_HTTP_API STATUS _http_message_send(http_message *message TSRMLS_DC) return rs; } +PHP_HTTP_API http_message *_http_message_dup(http_message *msg TSRMLS_DC) +{ + /* + * TODO: unroll + */ + http_message *new; + char *serialized_data; + size_t serialized_length; + + http_message_serialize(msg, &serialized_data, &serialized_length); + new = http_message_parse(serialized_data, serialized_length); + efree(serialized_data); + return new; +} + PHP_HTTP_API void _http_message_dtor(http_message *message) { if (message) { @@ -449,4 +465,3 @@ PHP_HTTP_API void _http_message_free(http_message *message) * vim600: noet sw=4 ts=4 fdm=marker * vim<600: noet sw=4 ts=4 */ -