[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, er
From: |
Simon Josefsson |
Subject: |
[gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included) |
Date: |
Mon, 06 Nov 2006 15:46:29 +0100 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.90 (gnu/linux) |
Werner Koch <address@hidden> writes:
> On Mon, 6 Nov 2006 12:47, address@hidden said:
>
>> value before using the value in errno. However, it seems harmless to
>> set errno to 0 before the call, and it might catch errors in custom
>
> If you want gnutls to behave similar to Posix or ISO-C, you should not
> set errno to 0.
Agreed. Since it is now proved to be harmful to set errno 0 here,
I've reverted that part of the patch.
> Posix states that errno will be not be set to 0 by any function
> decribed in this volume of IEEE-1003.1. Setting errno to 0 without an
> error changes the semantics.
>
> if ( open (...) < 0 )
> {
> gnutls_foo ()
> fprintf (stderr, "error from open: %s\n", strerror (errno));
> }
>
> Should print an error if open fails. The printed error will be from
> open or due to a failure of gnutls_foo. If gnutls_foo succeeds, the
> result would be a
>
> error from open: No Error
>
> That is probably not what the user expected.
Yup.
> Anyway, mixing different CRTs is not exactly a good idea. You will
> encounter more and more problems which are even harder to solve. We
> have the same problem with gpgol (an Outlook extension), however
> Outlook handles extensions a bit different than a plain DLL and thus
> the "only" problem we had to solve was to use the correct version of
> free(). IIRC, the DLL mechanisms has some indirect linking features
> whoch might be used to solve this problem.
I remember the free() problem from libidn, and it now has a similar
dummy function idn_free() that simply calls free().
Anyway, what are the additional problems and what is the correct
solution to the entire mess?
Not linking to any CRT at all? I wonder how much from the CRT gnutls
actually needs, it might be possible...
Providing more than one gnutls DLL? E.g., gnutls-mscvrt.dll and
gnutls-msvcr71.dll?
Any other solutions?
Perhaps it would be useful to have a build option to build gnutls to
not use send/recv/errno at all. Then the caller must always supply
its own send/recv functions. That build option should be easy to add.
I suspect that this patch goes a long way to fix things, though.
/Simon
- [gnutls-dev] Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included), Tim Kosse, 2006/11/04
- [gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included), Simon Josefsson, 2006/11/05
- [gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included), Simon Josefsson, 2006/11/05
- [gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included), Tim Kosse, 2006/11/05
- [gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included), Simon Josefsson, 2006/11/06
- [gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included), Simon Josefsson, 2006/11/06
- Message not available
- [gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included), Simon Josefsson, 2006/11/06
- Re: [gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included), Werner Koch, 2006/11/06
- [gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included),
Simon Josefsson <=
- Re: [gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included), Werner Koch, 2006/11/06
- [gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included), Simon Josefsson, 2006/11/07
- [gnutls-dev] Re: Gnutls4win: Problem with custom push/pull functions, errno and Visual Studio (Workaround included), Simon Josefsson, 2006/11/07