diff options
author | Zeev Suraski <zeev@php.net> | 2001-06-13 17:04:36 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2001-06-13 17:04:36 +0000 |
commit | 1093ed17fb7d4543d79803c387cfd8cf2bc479db (patch) | |
tree | a0466521b9ec20fb5652b37e9e299e177f4a8eee /ext/standard/head.c | |
parent | a86a08cc061462218cd45bf75b495d66b933513b (diff) | |
download | php-git-1093ed17fb7d4543d79803c387cfd8cf2bc479db.tar.gz |
Clean-up
Remove a lot of 100% redundent code
Diffstat (limited to 'ext/standard/head.c')
-rw-r--r-- | ext/standard/head.c | 156 |
1 files changed, 31 insertions, 125 deletions
diff --git a/ext/standard/head.c b/ext/standard/head.c index a455691725..babdfb2284 100644 --- a/ext/standard/head.c +++ b/ext/standard/head.c @@ -34,34 +34,10 @@ #include "safe_mode.h" -/* need to figure out some nice way to get rid of these */ -#ifndef THREAD_SAFE -static int php_header_printed = 0; -static int php_print_header = 1; -static CookieList *top = NULL; -static char *cont_type = NULL; -static int header_called = 0; -#endif - -void php_push_cookie_list(char *, char *, time_t, char *, char *, int); -CookieList *php_pop_cookie_list(void); - -PHP_RINIT_FUNCTION(head) -{ - php_header_printed = 0; - if (header_called == 0) - php_print_header = 1; - top = NULL; - cont_type = NULL; - - return SUCCESS; -} - - /* Implementation of the language Header() function */ /* {{{ proto void header(string header[, bool replace]) Send a raw HTTP header */ -PHP_FUNCTION(Header) +PHP_FUNCTION(header) { pval **arg1, **arg2; zend_bool replace = 1; @@ -81,8 +57,6 @@ PHP_FUNCTION(Header) } /* }}} */ -/* {{{ php_header - */ PHPAPI int php_header() { SLS_FETCH(); @@ -93,38 +67,8 @@ PHPAPI int php_header() return 1; /* allow output */ } } -/* }}} */ -/* {{{ php_push_cookie_list - */ -void php_push_cookie_list(char *name, char *value, time_t expires, char *path, char *domain, int secure) -{ - CookieList *new; - new = emalloc(sizeof(CookieList)); - new->next = top; - new->name = name; - new->value = value; - new->expires = expires; - new->path = path; - new->domain = domain; - new->secure = secure; - top = new; -} -/* }}} */ - -/* {{{ php_pop_cookie_list - */ -CookieList *php_pop_cookie_list(void) -{ - CookieList *ret; - - ret = top; - if (top) - top = top->next; - return (ret); -} -/* }}} */ /* php_set_cookie(name,value,expires,path,domain,secure) */ /* {{{ proto void setcookie(string name [, string value [, int expires [, string path [, string domain [, string secure]]]]]) @@ -135,82 +79,72 @@ PHP_FUNCTION(setcookie) int len=sizeof("Set-Cookie: "); time_t t; char *dt; - char *name = NULL, *value = NULL, *path = NULL, *domain = NULL; 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; + SLS_FETCH(); arg_count = ZEND_NUM_ARGS(); if (arg_count < 1 || arg_count > 6 || zend_get_parameters_array_ex(arg_count, arg) == FAILURE) { WRONG_PARAM_COUNT; } - if (php_header_printed == 1) { - php_error(E_WARNING, "Oops, php_set_cookie called after header has been sent\n"); - return; - } switch (arg_count) { case 6: convert_to_boolean_ex(arg[5]); - secure = (*arg[5])->value.lval; + secure = Z_LVAL_PP(arg[5]); /* break missing intentionally */ case 5: convert_to_string_ex(arg[4]); - domain = estrndup((*arg[4])->value.str.val,(*arg[4])->value.str.len); + z_domain = arg[4]; /* break missing intentionally */ case 4: convert_to_string_ex(arg[3]); - path = estrndup((*arg[3])->value.str.val,(*arg[3])->value.str.len); + z_path = arg[3]; /* break missing intentionally */ case 3: convert_to_long_ex(arg[2]); - expires = (*arg[2])->value.lval; + expires = Z_LVAL_PP(arg[2]); /* break missing intentionally */ case 2: convert_to_string_ex(arg[1]); - value = estrndup((*arg[1])->value.str.val,(*arg[1])->value.str.len); + z_value = arg[1]; /* break missing intentionally */ case 1: convert_to_string_ex(arg[0]); - name = estrndup((*arg[0])->value.str.val,(*arg[0])->value.str.len); + z_name = arg[0]; break; } -#if 0 - php_push_cookie_list(name, value, expires, path, domain, secure); -#else - if (name) { - len += strlen(name); + if (z_name) { + len += Z_STRLEN_PP(z_name); } - if (value) { - encoded_value = php_url_encode(value, strlen (value)); - len += strlen(encoded_value); + if (z_value) { + int encoded_value_len; + + encoded_value = php_url_encode(Z_STRVAL_PP(z_value), Z_STRLEN_PP(z_value), &encoded_value_len); + len += encoded_value_len; } - if (path) { - len += strlen(path); + if (z_path) { + len += Z_STRLEN_PP(z_path); } - if (domain) { - len += strlen(domain); + if (z_domain) { + len += Z_STRLEN_PP(z_domain); } cookie = emalloc(len + 100); - if (!value || (value && !*value)) { + if (!Z_STRVAL_PP(z_value) || !Z_STRVAL_PP(z_value)[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 * pick an expiry date 1 year and 1 second in the past */ - sprintf(cookie, "Set-Cookie: %s=deleted", name); - strcat(cookie, "; expires="); t = time(NULL) - 31536001; dt = php_std_date(t); - strcat(cookie, dt); + sprintf(cookie, "Set-Cookie: %s=deleted; expires=%s", Z_STRVAL_PP(z_name), dt); efree(dt); } else { /* FIXME: XXX: this is not binary data safe */ - sprintf(cookie, "Set-Cookie: %s=%s", name, value ? encoded_value : ""); - if (value) efree(value); - value=NULL; - if (name) efree(name); - name=NULL; + sprintf(cookie, "Set-Cookie: %s=%s", Z_STRVAL_PP(z_name), Z_STRVAL_PP(z_value) ? encoded_value : ""); if (expires > 0) { strcat(cookie, "; expires="); dt = php_std_date(expires); @@ -219,19 +153,17 @@ PHP_FUNCTION(setcookie) } } - if (encoded_value) efree(encoded_value); + if (encoded_value) { + efree(encoded_value); + } - if (path && strlen(path)) { + if (Z_STRVAL_PP(z_path) && Z_STRLEN_PP(z_path)>0) { strcat(cookie, "; path="); - strcat(cookie, path); - efree(path); - path=NULL; + strcat(cookie, Z_STRVAL_PP(z_path)); } - if (domain && strlen(domain)) { + if (Z_STRVAL_PP(z_domain) && Z_STRLEN_PP(z_domain)>0) { strcat(cookie, "; domain="); - strcat(cookie, domain); - efree(domain); - domain=NULL; + strcat(cookie, Z_STRVAL_PP(z_domain)); } if (secure) { strcat(cookie, "; secure"); @@ -242,34 +174,9 @@ PHP_FUNCTION(setcookie) } else { RETVAL_FALSE; } - - if (domain) { - efree(domain); - } - if (path) { - efree(path); - } - if (name) { - efree(name); - } - if (value) { - efree(value); - } -#endif } /* }}} */ -/* {{{ php_headers_unsent - */ -int php_headers_unsent(void) -{ - if (php_header_printed!=1 || !php_print_header) { - return 1; - } else { - return 0; - } -} -/* }}} */ /* {{{ proto int headers_sent(void) Return true if headers have already been sent, false otherwise */ @@ -289,7 +196,6 @@ PHP_FUNCTION(headers_sent) * Local variables: * tab-width: 4 * c-basic-offset: 4 - * End: * vim600: sw=4 ts=4 tw=78 fdm=marker - * vim<600: sw=4 ts=4 tw=78 + * vim<600: sw=4 ts=4 tw=78 * End: */ |