mirror of
https://github.com/php/php-src.git
synced 2025-08-16 22:18:50 +02:00
# Ok, big ass change list. Most of the changes are NEW's worthy, so
# I'll enter them directly there, not here.... The non-newsworthy code # is: Added REGISTER_CURL_CONSTANT() a wrapper around REGISTER_LONG_CONSTANT() Re-vamp the internal php_curl structure. Properly free allocated slist's and HttpPost structures many whitespace changes speed improvements (in the post handling and slist area's) # Furthermore, as a side note, while the code I'm committing is correct, # no one will be able to compile it yet and test it, as it requires a # patched version of curl (if you really want to try it out and can't # wait a day or two, send me a private mail)
This commit is contained in:
parent
0a121f855c
commit
ea2cf1856f
2 changed files with 723 additions and 542 deletions
1062
ext/curl/curl.c
1062
ext/curl/curl.c
File diff suppressed because it is too large
Load diff
|
@ -21,6 +21,9 @@
|
||||||
#ifndef _PHP_CURL_H
|
#ifndef _PHP_CURL_H
|
||||||
#define _PHP_CURL_H
|
#define _PHP_CURL_H
|
||||||
|
|
||||||
|
#include "php.h"
|
||||||
|
#include "ext/standard/php_smart_str.h"
|
||||||
|
|
||||||
#ifdef COMPILE_DL_CURL
|
#ifdef COMPILE_DL_CURL
|
||||||
#undef HAVE_CURL
|
#undef HAVE_CURL
|
||||||
#define HAVE_CURL 1
|
#define HAVE_CURL 1
|
||||||
|
@ -30,6 +33,7 @@
|
||||||
|
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
|
||||||
extern zend_module_entry curl_module_entry;
|
extern zend_module_entry curl_module_entry;
|
||||||
#define curl_module_ptr &curl_module_entry
|
#define curl_module_ptr &curl_module_entry
|
||||||
|
|
||||||
|
@ -42,22 +46,47 @@ PHP_FUNCTION(curl_version);
|
||||||
PHP_FUNCTION(curl_init);
|
PHP_FUNCTION(curl_init);
|
||||||
PHP_FUNCTION(curl_setopt);
|
PHP_FUNCTION(curl_setopt);
|
||||||
PHP_FUNCTION(curl_exec);
|
PHP_FUNCTION(curl_exec);
|
||||||
#if LIBCURL_VERSION_NUM >= 0x070401
|
|
||||||
PHP_FUNCTION(curl_getinfo);
|
PHP_FUNCTION(curl_getinfo);
|
||||||
#endif
|
|
||||||
PHP_FUNCTION(curl_error);
|
PHP_FUNCTION(curl_error);
|
||||||
PHP_FUNCTION(curl_errno);
|
PHP_FUNCTION(curl_errno);
|
||||||
PHP_FUNCTION(curl_close);
|
PHP_FUNCTION(curl_close);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int return_transfer;
|
zval *func;
|
||||||
int output_file;
|
smart_str buf;
|
||||||
int php_stdout;
|
int method;
|
||||||
int cerrno;
|
} php_curl_write;
|
||||||
char error[CURL_ERROR_SIZE+1];
|
|
||||||
FILE *tmp_fp;
|
typedef struct {
|
||||||
|
zval *func;
|
||||||
|
long fd;
|
||||||
|
int method;
|
||||||
|
} php_curl_read;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
zval *write_header;
|
||||||
|
zval *passwd;
|
||||||
|
} php_curl_handlers;
|
||||||
|
|
||||||
|
struct _php_curl_error {
|
||||||
|
char str[CURL_ERROR_SIZE + 1];
|
||||||
|
int no;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _php_curl_free {
|
||||||
|
zend_llist str;
|
||||||
|
zend_llist post;
|
||||||
|
zend_llist slist;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
CURL *cp;
|
CURL *cp;
|
||||||
zend_llist to_free;
|
php_curl_write *write;
|
||||||
|
php_curl_read *read;
|
||||||
|
php_curl_handlers *handlers;
|
||||||
|
struct _php_curl_error err;
|
||||||
|
struct _php_curl_free to_free;
|
||||||
|
long id;
|
||||||
} php_curl;
|
} php_curl;
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue