Ben Collins-Sussman wrote:
> On Fri, May 16, 2008 at 12:01 PM, Branko Čibej <brane_at_xbc.nu> wrote:
>
>> Ben Collins-Sussman wrote:
>>
>>>> DSO have many advantages. Please see this thread:
>>>> http://svn.haxx.se/dev/archive-2008-05/0054.shtml
>>>>
>>>>
>>> Someone explained this to me in IRC. I guess the reason that Windows
>>> and Keychain providers are statically linked is because those APIs are
>>> *guaranteed* to exist when building on Windows or OS X.
>>>
>> I don't know about Keychain, but CryptoAPI certainly isn't guaranteed to
>> exist on all the Windows versions we "support". So it's in fact not
>> statically linked but discovered dynamically at runtime, exactly as I
>> proposed for the Kwallet and Gnome Keyring providers.
>>
>
> That's very nice. I sure wish we could figure out why the Windows
> auth provider doesn't need to be declared in a separate public header,
> but the kwallet provider does. How ugly.
>
Because it's implemented as an #ifdef-wrapped static function. It uses
the Windows APIs, not APR, to load and discover the CryptoAPI facilities
at runtime. I've never trusted APR DSO to work right because it gets
pool lifetimes wrong by design.
(unless you use the really-really-independent-global-pools that appeared
in APR-1.3 -- and aargh but I wish I had them when I was doing the
BDB-4.4 DB_REGISTER support ...)
-- Brane
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-05-20 15:19:59 CEST