Re: Remove $age parameter of curl_version()

From: Date: Thu, 02 May 2019 07:58:33 +0000
Subject: Re: Remove $age parameter of curl_version()
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-105554@lists.php.net to get a copy of this message
On 01.05.2019 at 19:40, Bishop Bettini wrote: > On Wed, May 1, 2019 at 1:18 PM Christoph M. Becker <cmbecker69@gmx.de> > wrote: > >> curl_version()[1] (of ext/curl) makes curl_version_info()[2] (of >> libcurl) available to PHP userland. The latter requires to pass an age >> argument which usually is CURLVERSION_NOW, so that the information >> returned by the runtime matches the declarations used during compile >> time. For C programs it is simply necessary to pass this information, >> and it might make sense to pass something else than CURLVERSION_NOW, but >> the PHP wrapper assumes that the return value of curl_version_info() >> matches the compile time declarations anyway, so passing anything else >> might give bad results. > > It looks like the ext/curl binding [1] handles run-time age values that > differ from compile-time, as it makes checks for if (d->age). Am I missing > something? Indeed, as the binding is written, it's unlikely that bad results are returned. Still, using a newer "age" than available at compile time will neither provide the PHP program more information, nor would using an older "age" have real benefits. >> Thoughts? Do I overlook something important? > > Well, what about: > > if (false === curl_version(3)) { > throw new \Exception('Please rebuild PHP with curl at least > version 7.16.1'); > } It seems to me that wouldn't work anyway, since curl_version() only returns false if curl_version_info() returned NULL, but that won't happen[2]. > [1]: > https://github.com/php/php-src/blob/master/ext/curl/interface.c#L1824 [2] <https://github.com/curl/curl/blob/d1b5cf830bfe169745721b21245d2217d2c2453e/lib/version.c#L390-L463> -- Christoph M. Becker

« previous php.internals (#105554) next »