diff options
author | Marcus Brinkmann <mb@g10code.com> | 2009-07-17 01:53:19 +0000 |
---|---|---|
committer | Marcus Brinkmann <mb@g10code.com> | 2009-07-17 01:53:19 +0000 |
commit | 7be57d4b973a2280de50cdac7167692d73280e45 (patch) | |
tree | d8cabda821b7568e0cf28e7e94b4c81a221430da | |
parent | eea21ee9383f652b446d60208620590860621556 (diff) | |
download | libgpg-error-7be57d4b973a2280de50cdac7167692d73280e45.tar.gz |
2009-07-17 Marcus Brinkmann <marcus@g10code.de>
* src/mkerrnos.awk: Output code to cause WSA Errors to be found
from gpg error codes.
* README: Add problem of translating error codes back and forth.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | README | 26 | ||||
-rw-r--r-- | src/mkerrnos.awk | 7 |
3 files changed, 30 insertions, 7 deletions
@@ -1,5 +1,9 @@ 2009-07-17 Marcus Brinkmann <marcus@g10code.de> + * src/mkerrnos.awk: Output code to cause WSA Errors to be found + from gpg error codes. + * README: Add problem of translating error codes back and forth. + * src/mkerrcodes1.awk: Output code to cause WSA Errors to be transparently translated. * src/code-from-errno.c [HAVE_W32_SYSTEM]: Don't include winsock2.h. @@ -81,10 +81,22 @@ Known Problems On Windows, WSA Error Codes can be provided as system error codes and will be transparently converted to the corresponding gpg error codes. -However, not all of them have detailed description when printed with -gpg_strerror, but will default to "Unknown system error (NUMBER)" for -pretty printing. For example, WSAEHOSTDOWN will be translated to -GPG_ERR_EHOSTDOWN, but there is no corresponding EHOSTDOWN in Windows -and thus gpg_strerror will default to "Unknown system error (8029)". -(This could be fixed by adding our own error strings replacing or -extending the system error strings, including their translations). +There are two problems with this support: + +* Not all error codes corresponding to WSA Error codes have a detailed + description when printed with gpg_strerror. Some will default to + "Unknown error" for pretty printing. For example, WSAEHOSTDOWN will + be translated to GPG_ERR_EHOSTDOWN, but there is no corresponding + EHOSTDOWN in Windows and thus gpg_strerror will default to "Unknown + error" as printed by the system's strerror function for the argument + WSAEHOSTDOWN. (This could be fixed by adding our own error strings + replacing or extending the system error strings, including their + translations). + +* The translation to a gpg error code and back to a system error code + in some cases does not preserve information. For example, the error code + WSAEACCES translates to GPG_ERR_EACCES, which translates back to + EACCES. + +Any WSA Error code has either the first problem or the second (but not +both), depending on if there is a corresponding Windows error code. diff --git a/src/mkerrnos.awk b/src/mkerrnos.awk index c4bbf81..f79df66 100644 --- a/src/mkerrnos.awk +++ b/src/mkerrnos.awk @@ -71,6 +71,9 @@ header { if ($1 ~ /^[0-9]/) { print "#include <errno.h>"; + print "#ifdef _WIN32"; + print "#include <winsock2.h>"; + print "#endif"; print ""; print "static const int err_code_to_errno [] = {"; header = 0; @@ -89,8 +92,12 @@ header { print "#ifdef " $errnoidx; print " " $errnoidx ","; print "#else"; + print "#ifdef WSA" $errnoidx; + print " WSA" $errnoidx ","; + print "#else"; print " 0,"; print "#endif"; + print "#endif"; } END { print "};"; |