mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
2004-11-03 Timo Schulz <twoaday@g10code.com>
* 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.
This commit is contained in:
parent
b467558d9e
commit
37ecd725e5
14 changed files with 155 additions and 104 deletions
|
@ -1,3 +1,9 @@
|
|||
2004-11-03 Timo Schulz <twoaday@g10code.com>
|
||||
|
||||
* 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 <dshaw@jabberwocky.com>
|
||||
|
||||
* skclist.c (build_sk_list): Don't need to warn about
|
||||
|
|
|
@ -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"
|
||||
|
|
133
g10/passphrase.c
133
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;
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
}
|
||||
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 */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue