aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--THANKS2
-rw-r--r--cipher/ChangeLog5
-rw-r--r--cipher/idea-stub.c15
-rw-r--r--g10/ChangeLog6
-rw-r--r--g10/misc.c4
-rw-r--r--g10/passphrase.c137
-rw-r--r--include/ChangeLog5
-rw-r--r--include/dynload.h4
-rw-r--r--include/errors.h6
-rw-r--r--util/ChangeLog7
-rw-r--r--util/iobuf.c30
-rw-r--r--util/simple-gettext.c2
-rw-r--r--util/strgutil.c16
-rw-r--r--util/ttyio.c24
14 files changed, 157 insertions, 106 deletions
diff --git a/THANKS b/THANKS
index d593aa876..e809b4de4 100644
--- a/THANKS
+++ b/THANKS
@@ -196,7 +196,7 @@ Thiago Jung Bauermann [email protected]
Thijmen Klok [email protected]
Thomas Roessler [email protected]
Tim Mooney [email protected]
-Timo Schulz [email protected]
+Timo Schulz [email protected]
Todd Vierling [email protected]
TOGAWA Satoshi [email protected]
Tom Spindler [email protected]
diff --git a/cipher/ChangeLog b/cipher/ChangeLog
index ef01c1dd4..c4e57c3d6 100644
--- a/cipher/ChangeLog
+++ b/cipher/ChangeLog
@@ -1,3 +1,8 @@
+2004-11-03 Timo Schulz <[email protected]>
+
+ * idea-stub.c (dlopen, dlsym): Use w32_strerror instead of
+ just showing the error number.
+
2004-10-14 Werner Koch <[email protected]>
* rndunix.c (start_gatherer) [ENABLE_SELINUX_HACKS]: Don't allow
diff --git a/cipher/idea-stub.c b/cipher/idea-stub.c
index efc5268d7..caff9f034 100644
--- a/cipher/idea-stub.c
+++ b/cipher/idea-stub.c
@@ -63,7 +63,7 @@ dlopen (const char *pathname, int mode)
void *h = LoadLibrary (pathname);
if (!h)
{
- log_error ("LoadLibrary failed ec=%d\n", (int)GetLastError());
+ log_error ("LoadLibrary failed: %s\n", w32_strerror (errno));
last_error = 1;
return NULL;
}
@@ -77,25 +77,22 @@ dlclose ( void *handle )
return FreeLibrary (handle);
}
-char*
+
+const char*
dlerror (void)
{
- static char dlerrstr[10];
if (last_error)
- {
- sprintf(dlerrstr, "%d", (int)GetLastError() );
- return dlerrstr;
- }
+ return w32_strerror (0);
return NULL;
}
void*
-dlsym ( void *handle, const char *name )
+dlsym (void *handle, const char *name)
{
void *h = GetProcAddress (handle, name);
if (!h)
{
- log_error ("GetProcAddress failed ec=%d\n", (int)GetLastError());
+ log_error ("GetProcAddress failed: %s\n", w32_strerror (errno));
last_error = 1;
}
return h;
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 208e9d144..21819a55a 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,9 @@
+2004-11-03 Timo Schulz <[email protected]>
+
+ * passphrase.c (readn, writen): Use w32_strerror instead
+ of just showing the error number.
+ * misc.c [_WIN32]: Fix warning about missing prototypes.
+
2004-10-28 David Shaw <[email protected]>
* skclist.c (build_sk_list): Don't need to warn about
diff --git a/g10/misc.c b/g10/misc.c
index 110d9128c..89ca92e50 100644
--- a/g10/misc.c
+++ b/g10/misc.c
@@ -37,6 +37,10 @@
#ifdef ENABLE_SELINUX_HACKS
#include <sys/stat.h>
#endif
+#ifdef _WIN32
+#include <time.h>
+#include <process.h>
+#endif
#include "util.h"
#include "main.h"
#include "photoid.h"
diff --git a/g10/passphrase.c b/g10/passphrase.c
index c7102586d..c319000e5 100644
--- a/g10/passphrase.c
+++ b/g10/passphrase.c
@@ -189,99 +189,108 @@ read_passphrase_from_fd( int fd )
}
static int
-writen ( int fd, const void *buf, size_t nbytes )
+writen (int fd, const void *buf, size_t nbytes)
{
#if defined (_WIN32)
- DWORD nwritten, nleft = nbytes;
+ DWORD nwritten, nleft = nbytes;
- while (nleft > 0) {
- if ( !WriteFile( (HANDLE)write_fd, buf, nleft, &nwritten, NULL) ) {
- log_error("write failed: ec=%d\n", (int)GetLastError());
- return -1;
- }
- /*log_info("** WriteFile fd=%d nytes=%d nwritten=%d\n",
- write_fd, nbytes, (int)nwritten);*/
- Sleep(100);
+ while (nleft > 0)
+ {
+ if (!WriteFile ((HANDLE)write_fd, buf, nleft, &nwritten, NULL))
+ {
+ log_error ("write failed: %s\n", w32_strerror (0));
+ return -1;
+ }
+ /*log_info ("** WriteFile fd=%d nytes=%d nwritten=%d\n",
+ write_fd, nbytes, (int)nwritten);*/
+ Sleep (100);
- nleft -= nwritten;
- buf = (const BYTE *)buf + nwritten;
+ nleft -= nwritten;
+ buf = (const BYTE *)buf + nwritten;
}
#elif defined(HAVE_DOSISH_SYSTEM) || defined(__riscos__)
- /* not implemented */
+ /* not implemented */
#else
- size_t nleft = nbytes;
- int nwritten;
-
- while( nleft > 0 ) {
- nwritten = write( fd, buf, nleft );
- if( nwritten < 0 ) {
- if ( errno == EINTR )
- nwritten = 0;
- else {
- log_error ( "write() failed: %s\n", strerror (errno) );
- return -1;
+ size_t nleft = nbytes;
+ int nwritten;
+
+ while (nleft > 0)
+ {
+ nwritten = write (fd, buf, nleft);
+ if (nwritten < 0)
+ {
+ if (errno == EINTR)
+ nwritten = 0;
+ else
+ {
+ log_error ("write() failed: %s\n", strerror (errno));
+ return -1;
}
}
- nleft -= nwritten;
- buf = (const char*)buf + nwritten;
+ nleft -= nwritten;
+ buf = (const char*)buf + nwritten;
}
#endif
- return 0;
+ return 0;
}
static int
-readn ( int fd, void *buf, size_t buflen, size_t *ret_nread )
+readn (int fd, void *buf, size_t buflen, size_t *ret_nread)
{
#if defined (_WIN32)
- DWORD nread, nleft = buflen;
+ DWORD nread, nleft = buflen;
- while (nleft > 0) {
- if ( !ReadFile( (HANDLE)read_fd, buf, nleft, &nread, NULL) ) {
- log_error("read() error: ec=%d\n", (int)GetLastError());
- return -1;
+ while (nleft > 0)
+ {
+ if (!ReadFile ((HANDLE)read_fd, buf, nleft, &nread, NULL))
+ {
+ log_error ("read() error: %s\n", w32_strerror (0));
+ return -1;
}
- if (!nread || GetLastError() == ERROR_BROKEN_PIPE)
- break;
- /*log_info("** ReadFile fd=%d buflen=%d nread=%d\n",
- read_fd, buflen, (int)nread);*/
- Sleep(100);
+ if (!nread || GetLastError() == ERROR_BROKEN_PIPE)
+ break;
+ /*log_info ("** ReadFile fd=%d buflen=%d nread=%d\n",
+ read_fd, buflen, (int)nread);*/
+ Sleep (100);
- nleft -= nread;
- buf = (BYTE *)buf + nread;
+ nleft -= nread;
+ buf = (BYTE *)buf + nread;
}
- if (ret_nread)
- *ret_nread = buflen - nleft;
+ if (ret_nread)
+ *ret_nread = buflen - nleft;
#elif defined(HAVE_DOSISH_SYSTEM) || defined(__riscos__)
- /* not implemented */
+ /* not implemented */
#else
- size_t nleft = buflen;
- int nread;
- char *p;
-
- p = buf;
- while( nleft > 0 ) {
- nread = read ( fd, buf, nleft );
- if( nread < 0 ) {
- if (nread == EINTR)
- nread = 0;
- else {
- log_error ( "read() error: %s\n", strerror (errno) );
- return -1;
- }
+ size_t nleft = buflen;
+ int nread;
+ char *p;
+
+ p = buf;
+ while (nleft > 0)
+ {
+ nread = read (fd, buf, nleft);
+ if (nread < 0)
+ {
+ if (nread == EINTR)
+ nread = 0;
+ else {
+ log_error ("read() error: %s\n", strerror (errno));
+ return -1;
+ }
}
- else if( !nread )
- break; /* EOF */
- nleft -= nread;
- buf = (char*)buf + nread;
+ else if (!nread)
+ break; /* EOF */
+ nleft -= nread;
+ buf = (char*)buf + nread;
}
- if( ret_nread )
- *ret_nread = buflen - nleft;
+ if (ret_nread)
+ *ret_nread = buflen - nleft;
#endif
- return 0;
+ return 0;
}
/* read an entire line */
diff --git a/include/ChangeLog b/include/ChangeLog
index 3b693681f..09487d6eb 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2004-11-03 Timo Schulz <[email protected]>
+
+ * errors.h: Add w32_strerror prototype.
+ * dynload.h: Use w32_strerror.
+
2004-10-27 Werner Koch <[email protected]>
* dynload.h: Always use it for _WIN32.
diff --git a/include/dynload.h b/include/dynload.h
index 21e30131e..dfae2f0cd 100644
--- a/include/dynload.h
+++ b/include/dynload.h
@@ -52,9 +52,7 @@ dlsym (void * hd, const char * sym)
static __inline__ const char *
dlerror (void)
{
- static char buf[32];
- sprintf (buf, "ec=%lu\n", GetLastError ());
- return buf;
+ return w32_strerror (0);
}
diff --git a/include/errors.h b/include/errors.h
index 38664e10c..c014c91a0 100644
--- a/include/errors.h
+++ b/include/errors.h
@@ -79,7 +79,11 @@
#define G10ERR_NO_CARD 57
#ifndef HAVE_STRERROR
-char *strerror( int n );
+char *strerror (int n);
+#endif
+
+#ifdef _WIN32
+const char * w32_strerror (int w32_errno);
#endif
#endif /*G10_ERRORS_H*/
diff --git a/util/ChangeLog b/util/ChangeLog
index 09f2c8356..801b53d66 100644
--- a/util/ChangeLog
+++ b/util/ChangeLog
@@ -1,3 +1,10 @@
+2004-11-03 Timo Schulz <[email protected]>
+
+ * strgutil.c (w32_strerror): New.
+ * ttyio.c (init_ttyfp, tty_printf, do_get): Use it here.
+ * iobuf.c (fd_cache_open, file_filter): Likewise.
+ (iobuf_seek, translate_file_handle): Likewise.
+
2004-11-02 Werner Koch <[email protected]>
* strgutil.c (load_libiconv): Use log_info to avoid failures when
diff --git a/util/iobuf.c b/util/iobuf.c
index 3a8f4619c..0731f3d00 100644
--- a/util/iobuf.c
+++ b/util/iobuf.c
@@ -287,8 +287,8 @@ fd_cache_open (const char *fname, const char *mode)
log_debug ("fd_cache_open (%s) using cached fp\n", fname);
#ifdef HAVE_DOSISH_SYSTEM
if (SetFilePointer (fp, 0, NULL, FILE_BEGIN) == 0xffffffff ) {
- log_error ("rewind file failed on handle %p: ec=%d\n",
- fp, (int)GetLastError () );
+ log_error ("rewind file failed on handle %p: %s\n",
+ fp, w32_strerror (errno));
fp = INVALID_FP;
}
#else
@@ -404,9 +404,9 @@ file_filter(void *opaque, int control, IOBUF chain, byte *buf, size_t *ret_len)
nbytes = 0;
if ( !ReadFile ( f, buf, size, &nread, NULL ) ) {
- int ec = (int)GetLastError ();
- if ( ec != ERROR_BROKEN_PIPE ) {
- log_error("%s: read error: ec=%d\n", a->fname, ec);
+ if ((int)GetLastError () != ERROR_BROKEN_PIPE) {
+ log_error ("%s: read error: %s\n", a->fname,
+ w32_strerror (0));
rc = G10ERR_READ_FILE;
}
}
@@ -452,9 +452,9 @@ file_filter(void *opaque, int control, IOBUF chain, byte *buf, size_t *ret_len)
nbytes = size;
do {
- if ( size && !WriteFile ( f, p, nbytes, &n, NULL) ) {
- int ec = (int)GetLastError ();
- log_error("%s: write error: ec=%d\n", a->fname, ec);
+ if (size && !WriteFile (f, p, nbytes, &n, NULL)) {
+ log_error ("%s: write error: %s\n", a->fname,
+ w32_strerror (0));
rc = G10ERR_WRITE_FILE;
break;
}
@@ -1835,10 +1835,10 @@ iobuf_get_filelength( IOBUF a )
#if defined(HAVE_DOSISH_SYSTEM) && !defined(FILE_FILTER_USES_STDIO)
ulong size;
- if ( (size=GetFileSize (fp, NULL)) != 0xffffffff )
+ if ((size=GetFileSize (fp, NULL)) != 0xffffffff)
return size;
- log_error ("GetFileSize for handle %p failed: ec=%d\n",
- fp, (int)GetLastError () );
+ log_error ("GetFileSize for handle %p failed: %s\n",
+ fp, w32_strerror (0));
#else
if( !fstat(my_fileno(fp), &st) )
return st.st_size;
@@ -1945,8 +1945,8 @@ iobuf_seek( IOBUF a, off_t newpos )
#else
#ifdef HAVE_DOSISH_SYSTEM
if (SetFilePointer (b->fp, newpos, NULL, FILE_BEGIN) == 0xffffffff ) {
- log_error ("SetFilePointer failed on handle %p: ec=%d\n",
- b->fp, (int)GetLastError () );
+ log_error ("SetFilePointer failed on handle %p: %s\n",
+ b->fp, w32_strerror (0));
return -1;
}
#else
@@ -2143,8 +2143,8 @@ translate_file_handle ( int fd, int for_write )
x = fd;
if (x == -1)
- log_debug ("GetStdHandle(%d) failed: ec=%d\n",
- fd, (int)GetLastError () );
+ log_debug ("GetStdHandle(%d) failed: %s\n",
+ fd, w32_strerror (0));
fd = x;
}
diff --git a/util/simple-gettext.c b/util/simple-gettext.c
index 8ec6aba16..ed658fa59 100644
--- a/util/simple-gettext.c
+++ b/util/simple-gettext.c
@@ -427,7 +427,7 @@ gettext( const char *msgid )
log_info("InputCP=%u OutputCP=%u\n", cp1, cp2 );
if( !SetConsoleOutputCP( 1252 ) )
- log_info("SetConsoleOutputCP failed: %d\n", (int)GetLastError() );
+ log_info("SetConsoleOutputCP failed: %s\n", w32_strerror (0));
cp1 = GetConsoleCP();
cp2 = GetConsoleOutputCP();
diff --git a/util/strgutil.c b/util/strgutil.c
index 080914e0a..20faa64f4 100644
--- a/util/strgutil.c
+++ b/util/strgutil.c
@@ -1260,4 +1260,20 @@ asprintf (char **buf, const char *fmt, ...)
return status;
}
+const char *
+w32_strerror (int w32_errno)
+{
+ static char strerr[256];
+ int ec = (int)GetLastError ();
+
+ if (w32_errno == 0)
+ w32_errno = ec;
+ FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, NULL, w32_errno,
+ MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
+ strerr, DIM (strerr)-1, NULL);
+ return strerr;
+}
#endif /*_WIN32*/
+
+
+
diff --git a/util/ttyio.c b/util/ttyio.c
index add7467ce..f5b761f14 100644
--- a/util/ttyio.c
+++ b/util/ttyio.c
@@ -140,15 +140,15 @@ init_ttyfp(void)
FILE_SHARE_READ|FILE_SHARE_WRITE,
&sa, OPEN_EXISTING, 0, 0 );
if( con.out == INVALID_HANDLE_VALUE )
- log_fatal("open(CONOUT$) failed: rc=%d", (int)GetLastError() );
+ log_fatal ("open(CONOUT$) failed: %s", w32_strerror (0));
memset(&sa, 0, sizeof(sa));
sa.nLength = sizeof(sa);
sa.bInheritHandle = TRUE;
con.in = CreateFileA( "CONIN$", GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
&sa, OPEN_EXISTING, 0, 0 );
- if( con.in == INVALID_HANDLE_VALUE )
- log_fatal("open(CONIN$) failed: rc=%d", (int)GetLastError() );
+ if (con.in == INVALID_HANDLE_VALUE)
+ log_fatal ("open(CONIN$) failed: %s", w32_strerror (0));
}
SetConsoleMode(con.in, DEF_INPMODE );
SetConsoleMode(con.out, DEF_OUTMODE );
@@ -212,10 +212,10 @@ tty_printf( const char *fmt, ... )
if( !buf )
log_bug("vasprintf() failed\n");
- if( !WriteConsoleA( con.out, buf, n, &nwritten, NULL ) )
- log_fatal("WriteConsole failed: rc=%d", (int)GetLastError() );
+ if (!WriteConsoleA (con.out, buf, n, &nwritten, NULL))
+ log_fatal ("WriteConsole failed: %s", w32_strerror (0));
if( n != nwritten )
- log_fatal("WriteConsole failed: %d != %d\n", n, (int)nwritten );
+ log_fatal ("WriteConsole failed: %d != %d\n", n, (int)nwritten );
last_prompt_len += n;
m_free (buf);
}
@@ -259,10 +259,10 @@ tty_fprintf (FILE *fp, const char *fmt, ... )
if( !buf )
log_bug("vasprintf() failed\n");
- if( !WriteConsoleA( con.out, buf, n, &nwritten, NULL ) )
- log_fatal("WriteConsole failed: rc=%d", (int)GetLastError() );
- if( n != nwritten )
- log_fatal("WriteConsole failed: %d != %d\n", n, (int)nwritten );
+ if (!WriteConsoleA (con.out, buf, n, &nwritten, NULL))
+ log_fatal ("WriteConsole failed: %s", w32_strerror (0));
+ if (n != nwritten)
+ log_fatal ("WriteConsole failed: %d != %d\n", n, (int)nwritten);
last_prompt_len += n;
xfree (buf);
}
@@ -387,8 +387,8 @@ do_get( const char *prompt, int hidden )
for(;;) {
DWORD nread;
- if( !ReadConsoleA( con.in, cbuf, 1, &nread, NULL ) )
- log_fatal("ReadConsole failed: rc=%d", (int)GetLastError() );
+ if (!ReadConsoleA (con.in, cbuf, 1, &nread, NULL))
+ log_fatal ("ReadConsole failed: %s", w32_strerror (0));
if( !nread )
continue;
if( *cbuf == '\n' )