X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_info.c;h=10ea0a3c0ad7a114bb58ec3a78de6563115633d4;hp=80d4ad8d480696dbc8d80caeadb3300094e0fdf9;hb=refs%2Fheads%2Fv2.1.x;hpb=8d05291f42b3b42159b3fe91492aa4862f3d4405 diff --git a/php_http_info.c b/php_http_info.c index 80d4ad8..10ea0a3 100644 --- a/php_http_info.c +++ b/php_http_info.c @@ -6,36 +6,13 @@ | modification, are permitted provided that the conditions mentioned | | in the accompanying LICENSE file are met. | +--------------------------------------------------------------------+ - | Copyright (c) 2004-2011, Michael Wallner | + | Copyright (c) 2004-2014, Michael Wallner | +--------------------------------------------------------------------+ */ -#include "php_http.h" +#include "php_http_api.h" -PHP_HTTP_API void php_http_info_default_callback(void **nothing, HashTable **headers, php_http_info_t *info TSRMLS_DC) -{ - zval array; - (void) nothing; - - INIT_PZVAL_ARRAY(&array, *headers); - - switch (info->type) { - case PHP_HTTP_REQUEST: - add_assoc_string(&array, "Request Method", PHP_HTTP_INFO(info).request.method, 1); - add_assoc_string(&array, "Request Url", PHP_HTTP_INFO(info).request.url, 1); - break; - - case PHP_HTTP_RESPONSE: - add_assoc_long(&array, "Response Code", (long) PHP_HTTP_INFO(info).response.code); - add_assoc_string(&array, "Response Status", PHP_HTTP_INFO(info).response.status, 1); - break; - - case PHP_HTTP_NONE: - break; - } -} - -PHP_HTTP_API php_http_info_t *php_http_info_init(php_http_info_t *i TSRMLS_DC) +php_http_info_t *php_http_info_init(php_http_info_t *i TSRMLS_DC) { if (!i) { i = emalloc(sizeof(*i)); @@ -46,7 +23,7 @@ PHP_HTTP_API php_http_info_t *php_http_info_init(php_http_info_t *i TSRMLS_DC) return i; } -PHP_HTTP_API void php_http_info_dtor(php_http_info_t *i) +void php_http_info_dtor(php_http_info_t *i) { switch (i->type) { case PHP_HTTP_REQUEST: @@ -63,7 +40,7 @@ PHP_HTTP_API void php_http_info_dtor(php_http_info_t *i) } } -PHP_HTTP_API void php_http_info_free(php_http_info_t **i) +void php_http_info_free(php_http_info_t **i) { if (*i) { php_http_info_dtor(*i); @@ -72,7 +49,7 @@ PHP_HTTP_API void php_http_info_free(php_http_info_t **i) } } -PHP_HTTP_API php_http_info_t *php_http_info_parse(php_http_info_t *info, const char *pre_header TSRMLS_DC) +php_http_info_t *php_http_info_parse(php_http_info_t *info, const char *pre_header TSRMLS_DC) { const char *end, *http; zend_bool free_info = !info; @@ -134,7 +111,7 @@ PHP_HTTP_API php_http_info_t *php_http_info_parse(php_http_info_t *info, const c } /* is request */ - else if (!http[lenof("HTTP/1.x")] || http[lenof("HTTP/1.x")] == '\r' || http[lenof("HTTP/1.x")] == '\n') { + else if (*(http - 1) == ' ' && (!http[lenof("HTTP/1.x")] || http[lenof("HTTP/1.x")] == '\r' || http[lenof("HTTP/1.x")] == '\n')) { const char *url = strchr(pre_header, ' '); info->type = PHP_HTTP_REQUEST; @@ -145,7 +122,7 @@ PHP_HTTP_API php_http_info_t *php_http_info_parse(php_http_info_t *info, const c if (http > url) { PHP_HTTP_INFO(info).request.url = estrndup(url, http - url); } else { - efree(PHP_HTTP_INFO(info).request.method); + STR_SET(PHP_HTTP_INFO(info).request.method, NULL); return NULL; } } else {