On Tue, 30 Oct 2001, Mladen Turk wrote:
> > 1 if (!CryptAcquireContext(&hProv,NULL,NULL,PROV_RSA_FULL,0)) {
> > 2 /* Try to create the new key container */
> > 3 if ((GetLastError() != NTE_BAD_KEYSET) ||
> > 4 (!CryptAcquireContext(&hProv,NULL,NULL,PROV_RSA_FULL,
> > 5 CRYPT_NEWKEYSET))) {
> > 6 return apr_get_os_error();
> > 7 }
> > 8 }
>
> 1 if (!CryptAcquireContext(&hProv,NULL,NULL,PROV_RSA_FULL,0)) {
> 2 /* Try to create the new key container */
> 3 if (GetLastError() == NTE_BAD_KEYSET) {
> 4 if (!CryptAcquireContext(&hProv,NULL,NULL,PROV_RSA_FULL,
> 5 CRYPT_NEWKEYSET))
> 6 return apr_get_os_error();
> 7 }
> 8 else
> 9 return apr_get_os_error();
> 10 }
>
It's the same exact thing. I just exploited the handy dandy
short-circuit boolean evaluation of C, which guarantees in my example that
if the one is !=, then the second CryptAcquireContext call will be
skipped.
Anyhow, yours might arguably be easier to read... so +1 to either variant
from the Win32 peanut gallery (I'm taking your word for it that this is
the right fix since I know next to nothing about the Win32 API... I'm just
saying +1 because I now believe the logic is correct).
--Cliff
--------------------------------------------------------------
Cliff Woolley
[EMAIL PROTECTED]
Charlottesville, VA