X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_methods.c;h=6558b4fe87788d81e1bb9b113f91b2b8e79e5635;hb=d9977f6aacc9e424366bc80d6d252f45e23bdc0f;hp=1ad3d388ab14bf3b02fc111ea2f1e31ceed954bf;hpb=7ead3beaa8b181edbf99123b8e3af696f60cb403;p=m6w6%2Fext-http diff --git a/http_methods.c b/http_methods.c index 1ad3d38..6558b4f 100644 --- a/http_methods.c +++ b/http_methods.c @@ -683,7 +683,7 @@ PHP_METHOD(HttpMessage, setType) { long type; getObject(http_message_object, obj); - + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &type)) { return; } @@ -715,7 +715,7 @@ PHP_METHOD(HttpMessage, getResponseCode) /* {{{ bool HttpMessage::setResponseCode(long code) * * Set the response code of an HTTP Response Message. - * Returns false if the Message is not of type HTTP_MSG_RESPONSE, + * Returns false if the Message is not of type HTTP_MSG_RESPONSE, * or if the response code is out of range (100-510). */ PHP_METHOD(HttpMessage, setResponseCode) @@ -731,7 +731,7 @@ PHP_METHOD(HttpMessage, setResponseCode) if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &code)) { RETURN_FALSE; } - if (code < 100 && code > 510) { + if (code < 100 || code > 510) { http_error_ex(E_WARNING, HTTP_E_PARAM, "Invalid response code (100-510): %ld", code); RETURN_FALSE; } @@ -782,6 +782,10 @@ PHP_METHOD(HttpMessage, setRequestMethod) if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &method, &method_len)) { RETURN_FALSE; } + if (method_len < 1) { + http_error(E_WARNING, HTTP_E_PARAM, "Cannot set HttpMessage::requestMethod to an empty string"); + RETURN_FALSE; + } UPD_PROP(obj, string, requestMethod, method); RETURN_TRUE; @@ -828,7 +832,7 @@ PHP_METHOD(HttpMessage, setRequestUri) RETURN_FALSE; } if (URIlen < 1) { - http_error(E_WARNING, HTTP_E_PARAM, "Cannot set HttpMessage::requestMethod to an empty string"); + http_error(E_WARNING, HTTP_E_PARAM, "Cannot set HttpMessage::requestUri to an empty string"); RETURN_FALSE; } @@ -861,28 +865,28 @@ PHP_METHOD(HttpMessage, getHttpVersion) /* }}} */ /* {{{ bool HttpMessage::setHttpVersion(string version) - * + * * Set the HTTP Protocol version of the Message. * Returns false if version is invalid (1.0 and 1.1). */ PHP_METHOD(HttpMessage, setHttpVersion) { - zval *v; - zval *version; + char v[4]; + zval *zv, *version; getObject(http_message_object, obj); - - if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &v)) { + + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &zv)) { return; } - convert_to_string_ex(&v); - if (strcmp(Z_STRVAL_P(v), "1.0") && strcmp(Z_STRVAL_P(v), "1.1")) { - http_error_ex(E_WARNING, HTTP_E_PARAM, "Invalid HTTP version (1.0 or 1.1): %s", Z_STRVAL_P(v)); + convert_to_double_ex(&zv); + sprintf(v, "%1.1f", Z_DVAL_P(zv)); + if (strcmp(v, "1.0") && strcmp(v, "1.1")) { + http_error_ex(E_WARNING, HTTP_E_PARAM, "Invalid HTTP version (1.0 or 1.1): %s", v); RETURN_FALSE; } - convert_to_double_ex(&v); - SET_PROP(obj, httpVersion, v); + SET_PROP(obj, httpVersion, zv); } /* }}} */