Browse Source

- support for mimetype application/vnd.fdf needed by fdf module

(only active if fdf support is compiled in)
experimetnal/RETURN_REF_PATCH
Uwe Steinmann 27 years ago
parent
commit
8c473e1f47
  1. 56
      ext/standard/post.c
  2. 5
      main/SAPI.c

56
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);
}

5
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);

Loading…
Cancel
Save