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.
])
])
+ AC_PROG_CPP
+
if test "$PHP_HTTP_SHARED_DEPS" != "no"; then
AC_DEFINE([HTTP_SHARED_DEPS], [1], [ ])
else
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 <curl/curl.h>
], [
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
[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]
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); */
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))) {
#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)
{
*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;
}