X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_message_api.c;h=1cf8661546574505b5d3d1dd255713c585c2b058;hp=b1f5fbc5ed361bccc19b90b77601ee9fecd277af;hb=64b8eb68455c36e7e153014deaf52a6f9d2de39c;hpb=837e726a8dba0aa64aeeebe538a8b8c415e86a1c diff --git a/http_message_api.c b/http_message_api.c index b1f5fbc..1cf8661 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" @@ -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 */ -