From 1702173179522368e6939a630b0ab8912fa15d1f Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Fri, 8 Jun 2007 08:25:10 +0000 Subject: [PATCH 1/1] - remove LFS dependant parts which caused some real weirdance with curl_share --- KnownIssues.txt | 2 ++ config9.m4 | 31 ++++++++--------- http_request_api.c | 4 +++ http_request_body_api.c | 74 ----------------------------------------- 4 files changed, 22 insertions(+), 89 deletions(-) diff --git a/KnownIssues.txt b/KnownIssues.txt index c6565b2..ca7e2cc 100644 --- a/KnownIssues.txt +++ b/KnownIssues.txt @@ -16,3 +16,5 @@ Internals: Inflating raw deflated data causes a re-initialization of the inflate stream where the corresponding window bits are modified to tell libz to not check for zlib header bytes. This is not preventable AFAICS. + LFS dependant parts of libcurl are left out because of off_t, + respectively off64_t confusion. diff --git a/config9.m4 b/config9.m4 index e54f29a..eff2249 100644 --- a/config9.m4 +++ b/config9.m4 @@ -38,6 +38,8 @@ if test "$PHP_HTTP" != "no"; then ]) ]) + AC_PROG_CPP + if test "$PHP_HTTP_SHARED_DEPS" != "no"; then AC_DEFINE([HTTP_SHARED_DEPS], [1], [ ]) else @@ -178,18 +180,21 @@ dnl ---- AC_MSG_ERROR([libcurl version greater or equal to 7.12.3 required]) fi - AC_PROG_CPP + dnl + dnl compile tests + dnl + + save_CFLAGS="$CFLAGS" + CFLAGS="`$CURL_CONFIG --cflags`" + save_LDFLAGS="$LDFLAGS" + LDFLAGS="`$CURL_CONFIG --libs` $ld_runpath_switch$CURL_DIR/$PHP_LIBDIR" + AC_MSG_CHECKING([for SSL support in libcurl]) CURL_SSL=`$CURL_CONFIG --feature | $EGREP SSL` if test "$CURL_SSL" = "SSL"; then AC_MSG_RESULT([yes]) AC_DEFINE([HTTP_HAVE_SSL], [1], [ ]) - save_CFLAGS="$CFLAGS" - CFLAGS="`$CURL_CONFIG --cflags`" - save_LDFLAGS="$LDFLAGS" - LDFLAGS="`$CURL_CONFIG --libs` $ld_runpath_switch$CURL_DIR/$PHP_LIBDIR" - AC_MSG_CHECKING([for openssl support in libcurl]) AC_TRY_RUN([ #include @@ -235,13 +240,15 @@ dnl ---- ], [ AC_MSG_RESULT([no]) ]) - - CFLAGS="$save_CFLAGS" - LDFLAGS="$save_LDFLAGS" else AC_MSG_RESULT([no]) fi + CFLAGS="$save_CFLAGS" + LDFLAGS="$save_LDFLAGS" + + dnl end compile tests + AC_MSG_CHECKING([for bundled SSL CA info]) CURL_CAINFO= for i in `$CURL_CONFIG --ca` "/etc/ssl/certs/ca-certificates.crt"; do @@ -278,12 +285,6 @@ dnl ---- [AC_DEFINE([HAVE_CURL_EASY_RESET], [1], [ ])], [ ], [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR] ) - dnl Debian suddenly (>=7.14.1-2) hides all symbols not starting with "curl" - PHP_CHECK_LIBRARY(curl, Curl_getFormData, - [AC_DEFINE([HAVE_CURL_GETFORMDATA], [1], [ ])], [ ], - [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR] - ) - dnl New API function which obsoletes use of Curl_getFormData (>=7.15.5) PHP_CHECK_LIBRARY(curl, curl_formget, [AC_DEFINE([HAVE_CURL_FORMGET], [1], [ ])], [ ], [$CURL_LIBS -L$CURL_DIR/$PHP_LIBDIR] diff --git a/http_request_api.c b/http_request_api.c index 6c7df82..e815169 100644 --- a/http_request_api.c +++ b/http_request_api.c @@ -377,8 +377,10 @@ PHP_HTTP_API void _http_request_defaults(http_request *request) HTTP_CURL_OPT(CURLOPT_LOW_SPEED_LIMIT, 0L); HTTP_CURL_OPT(CURLOPT_LOW_SPEED_TIME, 0L); #if HTTP_CURL_VERSION(7,15,5) + /* LFS weirdance HTTP_CURL_OPT(CURLOPT_MAX_SEND_SPEED_LARGE, (curl_off_t) 0); HTTP_CURL_OPT(CURLOPT_MAX_RECV_SPEED_LARGE, (curl_off_t) 0); + */ #endif /* crashes HTTP_CURL_OPT(CURLOPT_MAXCONNECTS, 5L); */ @@ -516,12 +518,14 @@ PHP_HTTP_API STATUS _http_request_prepare(http_request *request, HashTable *opti HTTP_CURL_OPT(CURLOPT_LOW_SPEED_TIME, Z_LVAL_P(zoption)); } #if HTTP_CURL_VERSION(7,15,5) + /* LSF weirdance if ((zoption = http_request_option(request, options, "max_send_speed", IS_LONG))) { HTTP_CURL_OPT(CURLOPT_MAX_SEND_SPEED_LARGE, (curl_off_t) Z_LVAL_P(zoption)); } if ((zoption = http_request_option(request, options, "max_recv_speed", IS_LONG))) { HTTP_CURL_OPT(CURLOPT_MAX_RECV_SPEED_LARGE, (curl_off_t) Z_LVAL_P(zoption)); } + */ #endif /* crashes if ((zoption = http_request_option(request, options, "maxconnects", IS_LONG))) { diff --git a/http_request_body_api.c b/http_request_body_api.c index 88732a1..39cba65 100644 --- a/http_request_body_api.c +++ b/http_request_body_api.c @@ -21,63 +21,6 @@ #include "php_http_url_api.h" #include "php_http_request_body_api.h" -#if defined(HAVE_CURL_GETFORMDATA) && !defined(HAVE_CURL_FORMGET) -struct FormData { - struct FormData *next; - int type; - char *line; - size_t length; -}; - -CURLcode Curl_getFormData(struct FormData **, struct curl_httppost *post, curl_off_t *size); - -static char *file_get_contents(char *file, size_t *len TSRMLS_DC) -{ - php_stream *s = NULL; - char *buf = NULL; - - if ((s = php_stream_open_wrapper_ex(file, "rb", REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL, HTTP_DEFAULT_STREAM_CONTEXT))) { - *len = php_stream_copy_to_mem(s, &buf, (size_t) -1, 0); - php_stream_close(s); - } else { - *len = 0; - } - return buf; -} - -static int curl_formget(struct FormData *post, phpstr *str TSRMLS_DC) -{ - int fgc_error = 0; - char *fdata; - size_t fsize; - struct FormData *next, *pptr = post; - - while (pptr) { - next = pptr->next; - - if (!fgc_error) { - if (pptr->type) { - if ((fdata = file_get_contents(pptr->line, &fsize TSRMLS_CC))) { - phpstr_append(str, fdata, fsize); - efree(fdata); - } else { - fgc_error = 1; - } - } else { - phpstr_append(str, pptr->line, pptr->length); - } - } - - curl_free(pptr->line); - curl_free(pptr); - pptr = next; - } - - return fgc_error; -} -#endif - - /* {{{ http_request_body *http_request_body_new() */ PHP_HTTP_API http_request_body *_http_request_body_init_ex(http_request_body *body, int type, void *data, size_t size, zend_bool free ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC TSRMLS_DC) { @@ -214,23 +157,6 @@ PHP_HTTP_API STATUS _http_request_body_encode(http_request_body *body, char **bu *len = PHPSTR_LEN(&str); return SUCCESS; } -#elif defined(HAVE_CURL_GETFORMDATA) - struct FormData *data; - curl_off_t size; - - if (!Curl_getFormData(&data, body->data, &size)) { - phpstr str; - - phpstr_init_ex(&str, (size_t) size, 0); - if (curl_formget(data, &str TSRMLS_CC)) { - phpstr_dtor(&str); - } else { - phpstr_fix(&str); - *buf = PHPSTR_VAL(&str); - *len = PHPSTR_LEN(&len); - return SUCCESS; - } - } #endif break; } -- 2.30.2