From 8c473e1f477a09c8b2fd0707da77eea5f7774339 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Wed, 6 Oct 1999 05:26:25 +0000 Subject: [PATCH] - support for mimetype application/vnd.fdf needed by fdf module (only active if fdf support is compiled in) --- ext/standard/post.c | 56 +++++++++++++++++++++++++++++---------------- main/SAPI.c | 5 +++- 2 files changed, 40 insertions(+), 21 deletions(-) diff --git a/ext/standard/post.c b/ext/standard/post.c index 8b37dc8ed2..2185f59542 100644 --- a/ext/standard/post.c +++ b/ext/standard/post.c @@ -360,32 +360,48 @@ void php_treat_data(int arg, char *str ELS_DC PLS_DC SLS_DC) if (!res) { return; } - - if (arg == PARSE_COOKIE) { - var = strtok(res, ";"); - } else if (arg == PARSE_POST) { - var = strtok(res, "&"); - } else { - var = strtok(res, PG(arg_separator)); - } - while (var) { - val = strchr(var, '='); - if (val) { /* have a value */ - *val++ = '\0'; - /* FIXME: XXX: not binary safe, discards returned length */ - _php3_urldecode(var, strlen(var)); - _php3_urldecode(val, strlen(val)); - php_parse_gpc_data2(val,var,array_ptr ELS_CC PLS_CC); - } +#if HAVE_FDFLIB + if((NULL != SG(request_info).content_type) && (0 == strcmp(SG(request_info).content_type, "application/vnd.fdf"))) { + pval *tmp; + + tmp = (pval *) emalloc(sizeof(pval)); + tmp->value.str.len = SG(request_info).post_data_length; + tmp->value.str.val = estrndup(SG(request_info).post_data, SG(request_info).post_data_length); + tmp->type = IS_STRING; + INIT_PZVAL(tmp); + zend_hash_add(&EG(symbol_table), "HTTP_FDF_DATA", sizeof("HTTP_FDF_DATA"), &tmp, sizeof(pval *),NULL); + + } else { +#endif if (arg == PARSE_COOKIE) { - var = strtok(NULL, ";"); + var = strtok(res, ";"); } else if (arg == PARSE_POST) { - var = strtok(NULL, "&"); + var = strtok(res, "&"); } else { - var = strtok(NULL, PG(arg_separator)); + var = strtok(res, PG(arg_separator)); + } + + while (var) { + val = strchr(var, '='); + if (val) { /* have a value */ + *val++ = '\0'; + /* FIXME: XXX: not binary safe, discards returned length */ + _php3_urldecode(var, strlen(var)); + _php3_urldecode(val, strlen(val)); + php_parse_gpc_data2(val,var,array_ptr ELS_CC PLS_CC); + } + if (arg == PARSE_COOKIE) { + var = strtok(NULL, ";"); + } else if (arg == PARSE_POST) { + var = strtok(NULL, "&"); + } else { + var = strtok(NULL, PG(arg_separator)); + } } +#if HAVE_FDFLIB } +#endif if (free_buffer) { efree(res); } diff --git a/main/SAPI.c b/main/SAPI.c index 25c5f6de8b..207eb9e6b8 100644 --- a/main/SAPI.c +++ b/main/SAPI.c @@ -41,6 +41,9 @@ SAPI_POST_READER_FUNC(sapi_read_standard_form_data); static sapi_post_content_type_reader supported_post_content_types[] = { { DEFAULT_POST_CONTENT_TYPE, sizeof(DEFAULT_POST_CONTENT_TYPE)-1, sapi_read_standard_form_data }, +#if HAVE_FDFLIB + { "application/vnd.fdf", sizeof("application/vnd.fdf")-1, sapi_read_standard_form_data }, +#endif { NULL, 0, NULL } }; @@ -67,7 +70,7 @@ SAPI_API void sapi_startup(sapi_module_struct *sf) sapi_module = *sf; zend_hash_init(&known_post_content_types, 5, NULL, NULL, 1); - sapi_register_post_reader(supported_post_content_types); + sapi_register_post_readers(supported_post_content_types); #ifdef ZTS sapi_globals_id = ts_allocate_id(sizeof(sapi_globals_struct), NULL, NULL); -- 2.40.0