X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_headers_api.c;h=9decaad38309af56bc910e0aff3587b01c62b3db;hp=4f255fe206a2aa656b0190d6f5b23ba06dbd6331;hb=d5b4a39bf319a580eb7310afb691c81e44e52d71;hpb=bb1f32fd5d06b9b9ace6517c177b0fe58c9ff57c diff --git a/http_headers_api.c b/http_headers_api.c index 4f255fe..9decaad 100644 --- a/http_headers_api.c +++ b/http_headers_api.c @@ -1,16 +1,13 @@ /* - +----------------------------------------------------------------------+ - | PECL :: http | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.0 of the PHP license, that | - | is bundled with this package in the file LICENSE, and is available | - | through the world-wide-web at http://www.php.net/license/3_0.txt. | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Copyright (c) 2004-2005 Michael Wallner | - +----------------------------------------------------------------------+ + +--------------------------------------------------------------------+ + | PECL :: http | + +--------------------------------------------------------------------+ + | Redistribution and use in source and binary forms, with or without | + | modification, are permitted provided that the conditions mentioned | + | in the accompanying LICENSE file are met. | + +--------------------------------------------------------------------+ + | Copyright (c) 2004-2005, Michael Wallner | + +--------------------------------------------------------------------+ */ /* $Id$ */ @@ -37,6 +34,18 @@ ZEND_EXTERN_MODULE_GLOBALS(http); # define HTTP_DBG_NEG 0 #endif +/* {{{ */ +PHP_MINIT_FUNCTION(http_headers) +{ + HTTP_LONG_CONSTANT("HTTP_REDIRECT", HTTP_REDIRECT); + HTTP_LONG_CONSTANT("HTTP_REDIRECT_PERM", HTTP_REDIRECT_PERM); + HTTP_LONG_CONSTANT("HTTP_REDIRECT_POST", HTTP_REDIRECT_POST); + HTTP_LONG_CONSTANT("HTTP_REDIRECT_TEMP", HTTP_REDIRECT_TEMP); + + return SUCCESS; +} +/* }}} */ + /* {{{ static int http_sort_q(const void *, const void *) */ static int http_sort_q(const void *a, const void *b TSRMLS_DC) { @@ -81,7 +90,7 @@ char *_http_negotiate_language_func(const char *test, double *quality, HashTable if ( (!strncasecmp(Z_STRVAL_PP(value), test, len)) && ( (Z_STRVAL_PP(value)[len] == '\0') || (Z_STRVAL_PP(value)[len] == '-'))) { - *quality /= 2; + *quality *= .9; return Z_STRVAL_PP(value); } } @@ -91,8 +100,8 @@ char *_http_negotiate_language_func(const char *test, double *quality, HashTable } /* }}} */ -/* {{{ char *http_negotiate_charset_func */ -char *_http_negotiate_charset_func(const char *test, double *quality, HashTable *supported TSRMLS_DC) +/* {{{ char *http_negotiate_default_func */ +char *_http_negotiate_default_func(const char *test, double *quality, HashTable *supported TSRMLS_DC) { zval **value; @@ -154,7 +163,7 @@ PHP_HTTP_API HashTable *_http_negotiate_q(const char *header, HashTable *support while (*++ptr && !isdigit(*ptr)); - quality = strtod(ptr, NULL); + quality = atof(ptr); identifier = estrndup(Z_STRVAL_PP(entry), separator - Z_STRVAL_PP(entry)); } else { quality = 1000.0 - i++; @@ -331,9 +340,7 @@ PHP_HTTP_API STATUS _http_parse_headers_ex(const char *header, HashTable *header size_t header_len; zval array; - INIT_PZVAL(&array); - Z_TYPE_P(array) = IS_ARRAY; - Z_ARRVAL(array) = headers; + INIT_ZARR(array, headers); if (body) { header_len = body - header;