Fastream Technologies wrote: > I need to re-ask: Can I use one SSL Context per thread instead of per > client object?
Sure, one SslContext per thread is the safe way as long as you only assign it to client objects created in the same thread (or .ThreadAttached). One context per client was true overkill. The AV might be a multi-thread issue indeed. Either in the OpenSSL libraries or elsewhere in your code. Do you enable a single TSslDynamicLock object in main thread before any other OpenSSL call? -- Arno Garrels > > Regards, > > SubZero > On Tue, May 10, 2011 at 11:43, Arno Garrels <arno.garr...@gmx.de> > wrote: > >> Fastream Technologies wrote: >>> Hello, >>> >>> I have, >>> 1. Downloaded the latest snapshot from the wiki page. >>> 2. Modified ICS conditionals as >>> >> NDEBUG;NO_STRICT;PANTERA;NOFORMS;NO_DEBUG_LOG;USE_SSL;SECURITY_WIN32;NO_ADVANCED_HTTP_CLIENT_FEATURES;NO_ADV_MT >>> 3. Enabled TLSEXT from the SSL inc file >>> 4. Compiled our proxy server and web stress tester tool. >>> >>> It all worked except that when SSL is stress tested, it gives the AV >>> as, http://www.fastream.com/ics/opensslissue.png >> >> Did you know that ctrl + c copies content of the message box to the >> clipboard, no need to upload screen shots. >> >> Since the AV happens in code introduced in v1.0.0+ I would >> test v0.9.8r and see whether that solves the problem. >> Doesn't look like an ICS issue. >> >> LIBEAY32.EVP_PKEY_missing_parameters: >> 1105C060 8B4C2404 mov ecx,[esp+$04] >> 1105C064 8B410C mov eax,[ecx+$0c] >> 1105C067 85C0 test eax,eax >> 1105C069 740D jz $1105c078 >> 1105C06B 8B4040 mov eax,[eax+$40] <= **** >> 1105C06E 85C0 test eax,eax >> 1105C070 7406 jz $1105c078 >> 1105C072 894C2404 mov [esp+$04],ecx >> 1105C076 FFE0 jmp eax >> 1105C078 33C0 xor eax,eax >> 1105C07A C3 ret >> 1105C07B CC int 3 >> 1105C07C CC int 3 >> 1105C07D CC int 3 >> 1105C07E CC int 3 >> 1105C07F CC int 3 >> >> >> int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey) >> { >> if (pkey->ameth && pkey->ameth->param_missing) >> return pkey->ameth->param_missing(pkey); >> return 0; >> } >> >> struct evp_pkey_asn1_method_st >> { >> int pkey_id; >> int pkey_base_id; >> unsigned long pkey_flags; >> >> char *pem_str; >> char *info; >> >> int (*pub_decode)(EVP_PKEY *pk, X509_PUBKEY *pub); >> int (*pub_encode)(X509_PUBKEY *pub, const EVP_PKEY *pk); >> int (*pub_cmp)(const EVP_PKEY *a, const EVP_PKEY *b); >> int (*pub_print)(BIO *out, const EVP_PKEY *pkey, int indent, >> ASN1_PCTX *pctx); >> >> int (*priv_decode)(EVP_PKEY *pk, PKCS8_PRIV_KEY_INFO *p8inf); >> int (*priv_encode)(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pk); >> int (*priv_print)(BIO *out, const EVP_PKEY *pkey, int indent, >> ASN1_PCTX *pctx); >> >> int (*pkey_size)(const EVP_PKEY *pk); >> int (*pkey_bits)(const EVP_PKEY *pk); >> >> int (*param_decode)(EVP_PKEY *pkey, >> const unsigned char **pder, int derlen); >> int (*param_encode)(const EVP_PKEY *pkey, unsigned char **pder); >> int (*param_missing)(const EVP_PKEY *pk); <= >> **** [..] >> >> } /* EVP_PKEY_ASN1_METHOD */; >> >> >> -- >> To unsubscribe or change your settings for TWSocket mailing list >> please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket >> Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be