On 3/20/09, Wan-Teh Chang <w...@google.com> wrote:
>
> Nelson's point is that signal handlers are process-wide
> properties, and it is inappropriate for a library to change
> a process-wide property.
>
> But I agree that SIGPIPE is an exception.  This is why
> NSPR (a depenency of NSS) calls sigaction() to ignore
> SIGPIPE during initialization.  Note that this is done for
> self protection, rather than as a documented service
> to the NSPR client.
>
> So the issue is why you receive SIGPIPE while calling
> NSSSSL_VersionCheck ().  This implies that NSPR
> hasn't been initialized at that point.
>
> NSPR is implicitly initialized by the first NSPR function
> call that requires NSPR to be initialized.
> NSSSSL_VersionCheck is a trivial function and doesn't
> require NSPR to be initialized, so NSSSSL_VersionCheck
> doesn't cause NSPR to be initialized.  If
> NSSSSL_VersionCheck is the very first NSPR/NSS call
> made by the application, NSPR won't be initialized at
> that point.  If your app want to depend on NSPR's
> undocumented sigaction call for SIGPIPE, you can call
> PR_Init before calling NSSSSL_VersionCheck:
> https://developer.mozilla.org/en/PR_Init
>
> Wan-Teh
> --
> dev-tech-crypto mailing list
> dev-tech-crypto@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-tech-crypto
>

Well thank you.
I am now eager to hear how this information ties to libcurl's initialization
with nss.
By all means Daniel this is clearly of benefit.

John
-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to