LCOV - code coverage report
Current view: top level - ext/http - php_http.c (source / functions) Hit Total Coverage
Test: PHP Code Coverage Lines: 60 64 93.8 %
Date: 2015-02-17 20:30:22 Functions: 6 6 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :     +--------------------------------------------------------------------+
       3             :     | PECL :: http                                                       |
       4             :     +--------------------------------------------------------------------+
       5             :     | Redistribution and use in source and binary forms, with or without |
       6             :     | modification, are permitted provided that the conditions mentioned |
       7             :     | in the accompanying LICENSE file are met.                          |
       8             :     +--------------------------------------------------------------------+
       9             :     | Copyright (c) 2004-2014, Michael Wallner <mike@php.net>            |
      10             :     +--------------------------------------------------------------------+
      11             : */
      12             : 
      13             : #include "php_http_api.h"
      14             : 
      15             : #include <php_ini.h>
      16             : #include <ext/standard/info.h>
      17             : 
      18             : #include <zlib.h>
      19             : 
      20             : #if PHP_HTTP_HAVE_CURL
      21             : #       include <curl/curl.h>
      22             : #       if PHP_HTTP_HAVE_EVENT
      23             : #               if PHP_HTTP_HAVE_EVENT2
      24             : #                       include <event2/event.h>
      25             : #                       include <event2/event_struct.h>
      26             : #               else
      27             : #                       include <event.h>
      28             : #               endif
      29             : #       endif
      30             : #endif
      31             : #if PHP_HTTP_HAVE_SERF
      32             : #       include <serf.h>
      33             : #endif
      34             : 
      35             : ZEND_DECLARE_MODULE_GLOBALS(php_http);
      36             : 
      37             : #ifdef COMPILE_DL_HTTP
      38             : ZEND_GET_MODULE(http)
      39             : #endif
      40             : 
      41             : zend_function_entry http_functions[] = {
      42             :         EMPTY_FUNCTION_ENTRY
      43             : };
      44             : 
      45             : PHP_MINIT_FUNCTION(http);
      46             : PHP_MSHUTDOWN_FUNCTION(http);
      47             : PHP_RINIT_FUNCTION(http);
      48             : PHP_RSHUTDOWN_FUNCTION(http);
      49             : PHP_MINFO_FUNCTION(http);
      50             : 
      51             : static zend_module_dep http_module_deps[] = {
      52             :         ZEND_MOD_REQUIRED("raphf")
      53             :         ZEND_MOD_REQUIRED("propro")
      54             :         ZEND_MOD_REQUIRED("spl")
      55             : #ifdef PHP_HTTP_HAVE_HASH
      56             :         ZEND_MOD_REQUIRED("hash")
      57             : #endif
      58             : #ifdef PHP_HTTP_HAVE_ICONV
      59             :         ZEND_MOD_REQUIRED("iconv")
      60             : #endif
      61             : #ifdef PHP_HTTP_HAVE_JSON
      62             :         ZEND_MOD_REQUIRED("json")
      63             : #endif
      64             :         {NULL, NULL, NULL, 0}
      65             : };
      66             : 
      67             : zend_module_entry http_module_entry = {
      68             :         STANDARD_MODULE_HEADER_EX,
      69             :         NULL,
      70             :         http_module_deps,
      71             :         "http",
      72             :         http_functions,
      73             :         PHP_MINIT(http),
      74             :         PHP_MSHUTDOWN(http),
      75             :         PHP_RINIT(http),
      76             :         PHP_RSHUTDOWN(http),
      77             :         PHP_MINFO(http),
      78             :         PHP_PECL_HTTP_VERSION,
      79             :         STANDARD_MODULE_PROPERTIES
      80             : };
      81             : 
      82             : int http_module_number;
      83             : 
      84             : #if PHP_DEBUG && !HAVE_GCOV
      85             : void _dpf(int type, const char *data, size_t length)
      86             : {
      87             :         static const char _sym[] = "><><><";
      88             :         if (type) {
      89             :                 int nwp = 0;
      90             :                 for (fprintf(stderr, "%c ", _sym[type-1]); length--; data++) {
      91             :                         int ip = PHP_HTTP_IS_CTYPE(print, *data);
      92             :                         if (!ip && *data != '\r' && *data != '\n') nwp = 1;
      93             :                         fprintf(stderr, ip?"%c":"\\x%02x", (int) (*data & 0xff));
      94             :                         if (!nwp && *data == '\n' && length) {
      95             :                                 fprintf(stderr, "\n%c ", _sym[type-1]);
      96             :                         }
      97             :                 }
      98             :                 fprintf(stderr, "\n");
      99             :         } else {
     100             :                 fprintf(stderr, "# %.*s\n", (int) length, data);
     101             :         }
     102             : }
     103             : #endif
     104             : 
     105         374 : static void php_http_globals_init_once(zend_php_http_globals *G)
     106             : {
     107         374 :         memset(G, 0, sizeof(*G));
     108         374 : }
     109             : 
     110             : #if 0
     111             : static inline void php_http_globals_init(zend_php_http_globals *G TSRMLS_DC)
     112             : {
     113             : }
     114             : 
     115             : static inline void php_http_globals_free(zend_php_http_globals *G TSRMLS_DC)
     116             : {
     117             : }
     118             : #endif
     119             : 
     120             : #if ZTS && PHP_DEBUG && !HAVE_GCOV
     121             : zend_php_http_globals *php_http_globals(void)
     122             : {
     123             :         TSRMLS_FETCH();
     124             :         return PHP_HTTP_G;
     125             : }
     126             : #endif
     127             : 
     128             : PHP_INI_BEGIN()
     129             :         STD_PHP_INI_ENTRY("http.etag.mode", "crc32b", PHP_INI_ALL, OnUpdateString, env.etag_mode, zend_php_http_globals, php_http_globals)
     130             : PHP_INI_END()
     131             : 
     132         374 : PHP_MINIT_FUNCTION(http)
     133             : {
     134         374 :         http_module_number = module_number;
     135         374 :         ZEND_INIT_MODULE_GLOBALS(php_http, php_http_globals_init_once, NULL);
     136         374 :         REGISTER_INI_ENTRIES();
     137             :         
     138         374 :         if (0
     139         374 :         || SUCCESS != PHP_MINIT_CALL(http_exception)
     140         374 :         || SUCCESS != PHP_MINIT_CALL(http_cookie)
     141         374 :         || SUCCESS != PHP_MINIT_CALL(http_encoding)
     142         374 :         || SUCCESS != PHP_MINIT_CALL(http_filter)
     143         374 :         || SUCCESS != PHP_MINIT_CALL(http_header)
     144         374 :         || SUCCESS != PHP_MINIT_CALL(http_header_parser)
     145         374 :         || SUCCESS != PHP_MINIT_CALL(http_message)
     146         374 :         || SUCCESS != PHP_MINIT_CALL(http_message_parser)
     147         374 :         || SUCCESS != PHP_MINIT_CALL(http_message_body)
     148         374 :         || SUCCESS != PHP_MINIT_CALL(http_querystring)
     149         374 :         || SUCCESS != PHP_MINIT_CALL(http_client)
     150         374 :         || SUCCESS != PHP_MINIT_CALL(http_client_request)
     151         374 :         || SUCCESS != PHP_MINIT_CALL(http_client_response)
     152             : #if PHP_HTTP_HAVE_CURL
     153         374 :         || SUCCESS != PHP_MINIT_CALL(http_curl)
     154         374 :         || SUCCESS != PHP_MINIT_CALL(http_client_curl)
     155             : #endif
     156         374 :         || SUCCESS != PHP_MINIT_CALL(http_url)
     157         374 :         || SUCCESS != PHP_MINIT_CALL(http_env)
     158         374 :         || SUCCESS != PHP_MINIT_CALL(http_env_request)
     159         374 :         || SUCCESS != PHP_MINIT_CALL(http_env_response)
     160         374 :         || SUCCESS != PHP_MINIT_CALL(http_params)
     161             :         ) {
     162           0 :                 return FAILURE;
     163             :         }
     164             :         
     165         374 :         return SUCCESS;
     166             : }
     167             : 
     168             : 
     169             : 
     170         374 : PHP_MSHUTDOWN_FUNCTION(http)
     171             : {
     172         374 :         UNREGISTER_INI_ENTRIES();
     173             :         
     174         374 :         if (0
     175         374 :         || SUCCESS != PHP_MSHUTDOWN_CALL(http_message)
     176             : #if PHP_HTTP_HAVE_CURL
     177         374 :         || SUCCESS != PHP_MSHUTDOWN_CALL(http_client_curl)
     178         374 :         || SUCCESS != PHP_MSHUTDOWN_CALL(http_curl)
     179             : #endif
     180         374 :         || SUCCESS != PHP_MSHUTDOWN_CALL(http_client)
     181             :         ) {
     182           0 :                 return FAILURE;
     183             :         }
     184             :         
     185         374 :         return SUCCESS;
     186             : }
     187             : 
     188         374 : PHP_RINIT_FUNCTION(http)
     189             : {
     190         374 :         if (0
     191         374 :         || SUCCESS != PHP_RINIT_CALL(http_env)
     192             :         ) {
     193           0 :                 return FAILURE;
     194             :         }
     195             :         
     196         374 :         return SUCCESS;
     197             : }
     198             : 
     199         374 : PHP_RSHUTDOWN_FUNCTION(http)
     200             : {
     201         374 :         if (0
     202         374 :         || SUCCESS != PHP_RSHUTDOWN_CALL(http_env)
     203             :         ) {
     204           0 :                 return FAILURE;
     205             :         }
     206             :         
     207         374 :         return SUCCESS;
     208             : }
     209             : 
     210           1 : PHP_MINFO_FUNCTION(http)
     211             : {
     212             :         php_http_buffer_t buf;
     213             : 
     214           1 :         php_http_buffer_init(&buf);
     215             : 
     216           1 :         php_info_print_table_start();
     217           1 :         php_info_print_table_header(2, "HTTP Support", "enabled");
     218           1 :         php_info_print_table_row(2, "Extension Version", PHP_PECL_HTTP_VERSION);
     219           1 :         php_info_print_table_end();
     220             :         
     221           1 :         php_info_print_table_start();
     222           1 :         php_info_print_table_header(3, "Used Library", "Compiled", "Linked");
     223           1 :         php_info_print_table_row(3, "libz", ZLIB_VERSION, zlibVersion());
     224             : #if PHP_HTTP_HAVE_CURL
     225             :         {
     226           1 :                 curl_version_info_data *cv = curl_version_info(CURLVERSION_NOW);
     227           1 :                 php_info_print_table_row(3, "libcurl", LIBCURL_VERSION, cv->version);
     228             :         }
     229             : #else
     230             :         php_info_print_table_row(3, "libcurl", "disabled", "disabled");
     231             : #endif
     232             : 
     233             : #if PHP_HTTP_HAVE_EVENT
     234           1 :         php_info_print_table_row(3, "libevent",
     235             : #       ifdef LIBEVENT_VERSION
     236             :                         LIBEVENT_VERSION,
     237             : #       else
     238             :                         PHP_HTTP_EVENT_VERSION,
     239             : #       endif
     240             :                         event_get_version());
     241             : #else
     242             :         php_info_print_table_row(3, "libevent", "disabled", "disabled");
     243             : #endif
     244             : 
     245           1 :         php_info_print_table_end();
     246             :         
     247           1 :         DISPLAY_INI_ENTRIES();
     248           1 : }
     249             : 
     250             : 
     251             : /*
     252             :  * Local variables:
     253             :  * tab-width: 4
     254             :  * c-basic-offset: 4
     255             :  * End:
     256             :  * vim600: noet sw=4 ts=4 fdm=marker
     257             :  * vim<600: noet sw=4 ts=4
     258             :  */
     259             : 

Generated by: LCOV version 1.11