// response
if (!strncmp(http_line, "HTTP/1.", lenof("HTTP/1."))) {
new->type = HTTP_MSG_RESPONSE;
- new->info.response.http_version = atof(http_line + lenof("HTTP/"));
+ new->info.response.http_version = (float) atof(http_line + lenof("HTTP/"));
new->info.response.code = atoi(http_line + lenof("HTTP/1.1 "));
} else
// request
if (!strncmp(http_line + line_length - lenof("HTTP/1.1"), "HTTP/1.", lenof("HTTP/1."))) {
const char *method_sep_uri = strchr(http_line, ' ');
new->type = HTTP_MSG_REQUEST;
- new->info.request.http_version = atof(http_line + line_length - lenof("1.1"));
+ new->info.request.http_version = (float) atof(http_line + line_length - lenof("1.1"));
new->info.request.method = estrndup(http_line, method_sep_uri - http_line);
new->info.request.URI = estrndup(method_sep_uri + 1, http_line + line_length - method_sep_uri - 1 - lenof(" HTTP/1.1"));
}
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) {