root/main/rfc1867.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


/*
  +----------------------------------------------------------------------+
  | PHP Version 5                                                        |
  +----------------------------------------------------------------------+
  | Copyright (c) 1997-2013 The PHP Group                                |
  +----------------------------------------------------------------------+
  | This source file is subject to version 3.01 of the PHP license,      |
  | that is bundled with this package in the file LICENSE, and is        |
  | available through the world-wide-web at the following url:           |
  | http://www.php.net/license/3_01.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.               |
  +----------------------------------------------------------------------+
  | Author:                                                              |
  +----------------------------------------------------------------------+
*/

/* $Id$ */

#ifndef RFC1867_H
#define RFC1867_H

#include "SAPI.h"

#define MULTIPART_CONTENT_TYPE "multipart/form-data"
#define MULTIPART_EVENT_START           0
#define MULTIPART_EVENT_FORMDATA        1
#define MULTIPART_EVENT_FILE_START      2
#define MULTIPART_EVENT_FILE_DATA       3
#define MULTIPART_EVENT_FILE_END        4
#define MULTIPART_EVENT_END             5

typedef struct _multipart_event_start {
        size_t  content_length;
} multipart_event_start;

typedef struct _multipart_event_formdata {
        size_t  post_bytes_processed;
        char    *name;
        char    **value;
        size_t  length;
        size_t  *newlength;
} multipart_event_formdata;

typedef struct _multipart_event_file_start {
        size_t  post_bytes_processed;
        char    *name;
        char    **filename;
} multipart_event_file_start;

typedef struct _multipart_event_file_data {
        size_t  post_bytes_processed;
        off_t   offset;
        char    *data;
        size_t  length;
        size_t  *newlength;     
} multipart_event_file_data;

typedef struct _multipart_event_file_end {
        size_t  post_bytes_processed;
        char    *temp_filename;
        int     cancel_upload;
} multipart_event_file_end;

typedef struct _multipart_event_end {
        size_t  post_bytes_processed;
} multipart_event_end;

typedef int (*php_rfc1867_encoding_translation_t)(TSRMLS_D);
typedef void (*php_rfc1867_get_detect_order_t)(const zend_encoding ***list, size_t *list_size TSRMLS_DC);
typedef void (*php_rfc1867_set_input_encoding_t)(const zend_encoding *encoding TSRMLS_DC);
typedef char* (*php_rfc1867_getword_t)(const zend_encoding *encoding, char **line, char stop TSRMLS_DC);
typedef char* (*php_rfc1867_getword_conf_t)(const zend_encoding *encoding, char *str TSRMLS_DC);
typedef char* (*php_rfc1867_basename_t)(const zend_encoding *encoding, char *str TSRMLS_DC);

SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler);

void destroy_uploaded_files_hash(TSRMLS_D);
void php_rfc1867_register_constants(TSRMLS_D);
extern PHPAPI int (*php_rfc1867_callback)(unsigned int event, void *event_data, void **extra TSRMLS_DC);

SAPI_API void php_rfc1867_set_multibyte_callbacks(
                                        php_rfc1867_encoding_translation_t encoding_translation,
                                        php_rfc1867_get_detect_order_t get_detect_order,
                                        php_rfc1867_set_input_encoding_t set_input_encoding,
                                        php_rfc1867_getword_t getword,
                                        php_rfc1867_getword_conf_t getword_conf,
                                        php_rfc1867_basename_t basename);       

#endif /* RFC1867_H */

/* [<][>][^][v][top][bottom][index][help] */