cvs: php4 /ext/standard head.c
| From: | Andrei Zmievski | Date: | Fri, 19 Oct 2001 19:48:36 +0000 |
| Subject: | cvs: php4 /ext/standard head.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-7876@lists.php.net to get a copy of this message | ||
andrei Fri Oct 19 15:48:36 2001 EDT
Modified files:
/php4/ext/standard head.c
Log:
convert to use new parameter parsing API.
Index: php4/ext/standard/head.c
diff -u php4/ext/standard/head.c:1.51 php4/ext/standard/head.c:1.52
--- php4/ext/standard/head.c:1.51 Fri Oct 19 15:21:28 2001
+++ php4/ext/standard/head.c Fri Oct 19 15:48:35 2001
@@ -15,7 +15,7 @@
| Authors: Rasmus Lerdorf <rasmus@lerdorf.on.ca> |
+----------------------------------------------------------------------+
*/
-/* $Id: head.c,v 1.51 2001/10/19 19:21:28 eschmid Exp $ */
+/* $Id: head.c,v 1.52 2001/10/19 19:48:35 andrei Exp $ */
#include <stdio.h>
#include "php.h"
@@ -39,21 +39,15 @@
Sends a raw HTTP header */
PHP_FUNCTION(header)
{
- pval **arg1, **arg2;
+ char *header;
+ int header_len;
zend_bool replace = 1;
- if (ZEND_NUM_ARGS() < 1 || ZEND_NUM_ARGS() > 2
- || zend_get_parameters_ex(ZEND_NUM_ARGS(), &arg1, &arg2) == FAILURE) {
- WRONG_PARAM_COUNT;
- }
- switch (ZEND_NUM_ARGS()) {
- case 2:
- convert_to_boolean_ex(arg2);
- replace = Z_BVAL_PP(arg2);
- case 1:
- convert_to_string_ex(arg1);
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|b", &header,
+ &header_len, &replace) == FAILURE) {
+ return;
}
- sapi_add_header_ex(Z_STRVAL_PP(arg1), Z_STRLEN_PP(arg1), 1, replace TSRMLS_CC);
+ sapi_add_header_ex(header, header_len, 1, replace TSRMLS_CC);
}
/* }}} */
@@ -71,67 +65,40 @@
/* php_set_cookie(name, value, expires, path, domain, secure) */
-/* {{{ proto bool setcookie(string name [, string value [, int expires [, string path [, string
domain [, string secure]]]]])
- Sends a cookie */
+/* {{{ proto bool setcookie(string name [, string value [, int expires [, string path [, string
domain [, bool secure]]]]])
+ Send a cookie */
PHP_FUNCTION(setcookie)
{
char *cookie, *encoded_value = NULL;
+ char *name, *value = NULL, *path = NULL, *domain = NULL;
int len=sizeof("Set-Cookie: ");
time_t t;
char *dt;
time_t expires = 0;
- int secure = 0;
- pval **arg[6];
- int arg_count;
- zval **z_name=NULL, **z_value=NULL, **z_path=NULL, **z_domain=NULL;
-
- arg_count = ZEND_NUM_ARGS();
- if (arg_count < 1 || arg_count > 6 || zend_get_parameters_array_ex(arg_count, arg) ==
FAILURE) {
- WRONG_PARAM_COUNT;
- }
- switch (arg_count) {
- case 6:
- convert_to_boolean_ex(arg[5]);
- secure = Z_LVAL_PP(arg[5]);
- /* break missing intentionally */
- case 5:
- convert_to_string_ex(arg[4]);
- z_domain = arg[4];
- /* break missing intentionally */
- case 4:
- convert_to_string_ex(arg[3]);
- z_path = arg[3];
- /* break missing intentionally */
- case 3:
- convert_to_long_ex(arg[2]);
- expires = Z_LVAL_PP(arg[2]);
- /* break missing intentionally */
- case 2:
- convert_to_string_ex(arg[1]);
- z_value = arg[1];
- /* break missing intentionally */
- case 1:
- convert_to_string_ex(arg[0]);
- z_name = arg[0];
- break;
- }
- if (z_name) {
- len += Z_STRLEN_PP(z_name);
+ zend_bool secure = 0;
+ int name_len, value_len, path_len, domain_len;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|slssb", &name,
+ &name_len, &value, &value_len, &expires, &path,
+ &path_len, &domain, &domain_len, &secure) == FAILURE) {
+ return;
}
- if (z_value) {
+
+ len += name_len;
+ if (value) {
int encoded_value_len;
- encoded_value = php_url_encode(Z_STRVAL_PP(z_value), Z_STRLEN_PP(z_value),
&encoded_value_len);
+ encoded_value = php_url_encode(value, value_len, &encoded_value_len);
len += encoded_value_len;
}
- if (z_path) {
- len += Z_STRLEN_PP(z_path);
+ if (path) {
+ len += path_len;
}
- if (z_domain) {
- len += Z_STRLEN_PP(z_domain);
+ if (domain) {
+ len += domain_len;
}
cookie = emalloc(len + 100);
- if (z_value && Z_STRLEN_PP(z_value)==0) {
+ if (value && value_len == 0) {
/*
* MSIE doesn't delete a cookie when you set it to a null value
* so in order to force cookies to be deleted, even on MSIE, we
@@ -139,10 +106,10 @@
*/
t = time(NULL) - 31536001;
dt = php_std_date(t);
- sprintf(cookie, "Set-Cookie: %s=deleted; expires=%s", Z_STRVAL_PP(z_name), dt);
+ sprintf(cookie, "Set-Cookie: %s=deleted; expires=%s", name, dt);
efree(dt);
} else {
- sprintf(cookie, "Set-Cookie: %s=%s", Z_STRVAL_PP(z_name), (z_value &&
Z_STRVAL_PP(z_value)) ? encoded_value : "");
+ sprintf(cookie, "Set-Cookie: %s=%s", name, value ? encoded_value : "");
if (expires > 0) {
strcat(cookie, "; expires=");
dt = php_std_date(expires);
@@ -155,13 +122,13 @@
efree(encoded_value);
}
- if (z_path && Z_STRLEN_PP(z_path)>0) {
+ if (path && path_len > 0) {
strcat(cookie, "; path=");
- strcat(cookie, Z_STRVAL_PP(z_path));
+ strcat(cookie, path);
}
- if (z_domain && Z_STRLEN_PP(z_domain)>0) {
+ if (domain && domain_len > 0) {
strcat(cookie, "; domain=");
- strcat(cookie, Z_STRVAL_PP(z_domain));
+ strcat(cookie, domain);
}
if (secure) {
strcat(cookie, "; secure");
@@ -181,7 +148,9 @@
PHP_FUNCTION(headers_sent)
{
if (ZEND_NUM_ARGS() != 0) {
- WRONG_PARAM_COUNT;
+ php_error(E_WARNING, "%s() expects no parameters, %d given",
+ get_active_function_name(TSRMLS_C), ZEND_NUM_ARGS());
+ return;
}
if (SG(headers_sent)) {