Re: How to reset/unset cURL options?

Michael Dowling <[email protected]> Mon, 04 Apr 2011 12:45:04 -0500
Newsgroups gmane.comp.web.curl.php
Message-ID <[email protected]>
libcurl has a curl_easy_reset option that I think would remove all of 
these options that cannot be unset or removed indirectly by setting some 
other related option.  The problem is that the PHP bindings do not 
currently implement this function.  I recently opened a feature request 
on PHP.net for this issue:

http://bugs.php.net/bug.php?id=54022

You can often remove options from a curl handle by setting some other 
related option.  For example, you can remove a lot of options from an 
HTTP based curl handle by setting CURLOPT_HTTPGET then setting your 
other method specific options.  The best way to figure out how to 
indirectly unset curl options is to look at 
http://curl.haxx.se/libcurl/c/curl_easy_setopt.html

I implemented a cURL handle manager in my cURL based PHP client library 
that will reuse curl handles for subsequent requests.  It just throws 
away handles that it knows has options that cannot be unset.  You might 
be able to extend this manager or implement something similar: 
https://github.com/guzzle/guzzle 
(https://github.com/guzzle/guzzle/blob/master/library/Guzzle/Http/Curl/CurlFactory.php). 
  I had to implement my own cookie handling code because, like you said, 
CURLOPT_COOKIEJAR cannot be unset.

-Michael

On 4/4/11 10:53 AM, Matthias wrote:
> Hello,
>
> how can i reset/unset curl options?
>
> if i set this option:
>
> curl_setopt($ch, CURLOPT_FTPPORT, NULL);
>
> php-curl send a PORT command to the ftp server, but i want to use PASV.
>
> Please don't answer i should not set this option to solve the problem,
> because it is possible that i make multiple requests and reuse the curl
> handle. What is if i want a PORT command in the first request, than
> reuse the curl handle, and a PASV command in the second request?
>
> Why is there no CURLOPT_FTPPASV option ?
>
> I have the same problem with other options like CURLOPT_COOKIEJAR. It is
> impossible to reset/unset this options for a second request :/
>
> NULL should reset/unset a option! Why does it not work?
>
>
> _______________________________________________
> http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
_______________________________________________
http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php