hi,
sorry if i'm sending this to the wrong place, but
here's a patch (of the PHP_5_2 branch) that adds an extra option to curl
(CURLOPT_LITERAL_POSTFIELDS).
it is the exact same thing as CURLOPT_POSTFIELDS, except it skips the
check for leading '@' in the postdata, so you can post without fear or
accidentally uploading a file.
hope you like it and include it soon.
bye,
mihaly
--
huf (Berenyi Mihaly) - [email protected] - http://parawag.net
...........it's life jim, but not as we know it...........
Index: ext/curl/interface.c
===================================================================
--- ext/curl/interface.c (revision 288614)
+++ ext/curl/interface.c (working copy)
@@ -410,6 +410,7 @@
REGISTER_CURL_CONSTANT(CURLOPT_TIMEOUT_MS);
#endif
REGISTER_CURL_CONSTANT(CURLOPT_POSTFIELDS);
+ REGISTER_CURL_CONSTANT(CURLOPT_LITERAL_POSTFIELDS);
REGISTER_CURL_CONSTANT(CURLOPT_REFERER);
REGISTER_CURL_CONSTANT(CURLOPT_USERAGENT);
REGISTER_CURL_CONSTANT(CURLOPT_FTPPORT);
@@ -1559,6 +1560,7 @@
error = curl_easy_setopt(ch->cp, CURLOPT_PASSWDDATA, (void *) ch);
break;
#endif
+ case CURLOPT_LITERAL_POSTFIELDS:
case CURLOPT_POSTFIELDS:
if (Z_TYPE_PP(zvalue) == IS_ARRAY || Z_TYPE_PP(zvalue) == IS_OBJECT) {
zval **current;
@@ -1592,7 +1594,7 @@
/* The arguments after _NAMELENGTH and _CONTENTSLENGTH
* must be explicitly cast to long in curl_formadd
* use since curl needs a long not an int. */
- if (*postval == '@') {
+ if (option == CURLOPT_POSTFIELDS && *postval == '@') {
char *type, *filename;
++postval;
Index: ext/curl/php_curl.h
===================================================================
--- ext/curl/php_curl.h (revision 288614)
+++ ext/curl/php_curl.h (working copy)
@@ -42,6 +42,7 @@
#define CURLOPT_RETURNTRANSFER 19913
#define CURLOPT_BINARYTRANSFER 19914
+#define CURLOPT_LITERAL_POSTFIELDS 19915
#define PHP_CURL_STDOUT 0
#define PHP_CURL_FILE 1
#define PHP_CURL_USER 2
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php