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