LTP GCOV extension - code coverage report
Current view: directory - main - php_content_types.c
Test: PHP Code Coverage
Date: 2007-04-10 Instrumented lines: 25
Code covered: 56.0 % Executed lines: 14
Legend: not executed executed

       1                 : /*
       2                 :    +----------------------------------------------------------------------+
       3                 :    | PHP Version 5                                                        |
       4                 :    +----------------------------------------------------------------------+
       5                 :    | Copyright (c) 1997-2007 The PHP Group                                |
       6                 :    +----------------------------------------------------------------------+
       7                 :    | This source file is subject to version 3.01 of the PHP license,      |
       8                 :    | that is bundled with this package in the file LICENSE, and is        |
       9                 :    | available through the world-wide-web at the following url:           |
      10                 :    | http://www.php.net/license/3_01.txt                                  |
      11                 :    | If you did not receive a copy of the PHP license and are unable to   |
      12                 :    | obtain it through the world-wide-web, please send a note to          |
      13                 :    | license@php.net so we can mail you a copy immediately.               |
      14                 :    +----------------------------------------------------------------------+
      15                 :    | Author:                                                              |
      16                 :    +----------------------------------------------------------------------+
      17                 : */
      18                 : 
      19                 : /* $Id: php_content_types.c,v 1.32.2.1.2.2 2007/04/01 19:09:36 iliaa Exp $ */
      20                 : 
      21                 : #include "php.h"
      22                 : #include "SAPI.h"
      23                 : #include "rfc1867.h"
      24                 : 
      25                 : #include "php_content_types.h"
      26                 : 
      27                 : /* {{{ php_post_entries[]
      28                 :  */
      29                 : static sapi_post_entry php_post_entries[] = {
      30                 :         { DEFAULT_POST_CONTENT_TYPE, sizeof(DEFAULT_POST_CONTENT_TYPE)-1, sapi_read_standard_form_data, php_std_post_handler },
      31                 :         { MULTIPART_CONTENT_TYPE,    sizeof(MULTIPART_CONTENT_TYPE)-1,    NULL,                         rfc1867_post_handler },
      32                 :         { NULL, 0, NULL, NULL }
      33                 : };
      34                 : /* }}} */
      35                 : 
      36                 : /* {{{ SAPI_POST_READER_FUNC
      37                 :  */
      38                 : SAPI_API SAPI_POST_READER_FUNC(php_default_post_reader)
      39             108 : {
      40             108 :         char *data = NULL;
      41             108 :         int length = 0;
      42                 : 
      43                 :         /* $HTTP_RAW_POST_DATA registration */
      44             108 :         if(!strcmp(SG(request_info).request_method, "POST")) {
      45               0 :                 if(NULL == SG(request_info).post_entry && SG(request_info).post_data) {
      46                 :                         /* no post handler registered, so we just swallow the data */
      47               0 :                         sapi_read_standard_form_data(TSRMLS_C);
      48               0 :                         length = SG(request_info).post_data_length;
      49               0 :                         data = estrndup(SG(request_info).post_data, length);
      50               0 :                 } else if(PG(always_populate_raw_post_data) && SG(request_info).post_data) {
      51               0 :                         length = SG(request_info).post_data_length;
      52               0 :                         data = estrndup(SG(request_info).post_data, length);
      53                 :                 }
      54               0 :                 if(data) {
      55               0 :                         SET_VAR_STRINGL("HTTP_RAW_POST_DATA", data, length);
      56                 :                 }
      57                 :         }
      58                 : 
      59                 :         /* for php://input stream:
      60                 :          some post handlers modify the content of request_info.post_data
      61                 :          so for now we need a copy for the php://input stream
      62                 :          in the long run post handlers should be changed to not touch
      63                 :          request_info.post_data for memory preservation reasons
      64                 :         */
      65             108 :         if(SG(request_info).post_data) {
      66               0 :                 SG(request_info).raw_post_data = estrndup(SG(request_info).post_data, SG(request_info).post_data_length);
      67               0 :                 SG(request_info).raw_post_data_length = SG(request_info).post_data_length;
      68                 :         }
      69                 : 
      70             108 : }
      71                 : /* }}} */
      72                 : 
      73                 : /* {{{ php_startup_sapi_content_types
      74                 :  */
      75                 : int php_startup_sapi_content_types(TSRMLS_D)
      76             220 : {
      77             220 :         sapi_register_default_post_reader(php_default_post_reader);
      78             220 :         sapi_register_treat_data(php_default_treat_data);
      79             220 :         sapi_register_input_filter(php_default_input_filter);
      80             220 :         return SUCCESS;
      81                 : }
      82                 : /* }}} */
      83                 : 
      84                 : /* {{{ php_setup_sapi_content_types
      85                 :  */
      86                 : int php_setup_sapi_content_types(TSRMLS_D)
      87             220 : {
      88             220 :         sapi_register_post_entries(php_post_entries TSRMLS_CC);
      89                 : 
      90             220 :         return SUCCESS;
      91                 : }
      92                 : /* }}} */
      93                 : 
      94                 : /*
      95                 :  * Local variables:
      96                 :  * tab-width: 4
      97                 :  * c-basic-offset: 4
      98                 :  * End:
      99                 :  * vim600: sw=4 ts=4 fdm=marker
     100                 :  * vim<600: sw=4 ts=4
     101                 :  */

Generated by: LTP GCOV extension version 1.5