1069 |
nwritten = _gpgme_io_write ( fd, buffer, nbytes ); |
nwritten = _gpgme_io_write ( fd, buffer, nbytes ); |
1070 |
if (nwritten == -1 && errno == EAGAIN ) |
if (nwritten == -1 && errno == EAGAIN ) |
1071 |
return 0; |
return 0; |
1072 |
if ( nwritten < 1 ) { |
if (nwritten < 1) { |
1073 |
DEBUG3 ("write_cb_data(%d): write failed (n=%d): %s", |
DEBUG3 ("write_cb_data(%d): write failed (n=%d): %s", |
1074 |
fd, nwritten, strerror (errno) ); |
fd, nwritten, strerror (errno) ); |
1075 |
_gpgme_io_close (fd); |
_gpgme_io_close (fd); |
1076 |
return 1; |
return 1; |
1077 |
} |
} |
1078 |
|
|
1079 |
if ( nwritten < nbytes ) { |
if ((size_t)nwritten < nbytes) { |
1080 |
/* ugly, ugly: It does currently only for for MEM type data */ |
/* ugly, ugly: It does currently only for for MEM type data */ |
1081 |
if ( _gpgme_data_unread (dh, buffer + nwritten, nbytes - nwritten ) ) |
if ( _gpgme_data_unread (dh, buffer + nwritten, nbytes - nwritten ) ) |
1082 |
DEBUG1 ("wite_cb_data: unread of %d bytes failed\n", |
DEBUG1 ("wite_cb_data: unread of %d bytes failed\n", |
1432 |
} |
} |
1433 |
|
|
1434 |
value_len = strlen (value); |
value_len = strlen (value); |
1435 |
if ( value_len+1 > length ) { |
if ((size_t)(value_len+1) > length) { |
1436 |
DEBUG0( "command_cb: too much data from user cb\n" ); |
DEBUG0 ("command_cb: too much data from user cb\n"); |
1437 |
gpg->cmd.fnc ( gpg->cmd.fnc_value, 0, value); |
gpg->cmd.fnc (gpg->cmd.fnc_value, 0, value); |
1438 |
return -1; |
return -1; |
1439 |
} |
} |
1440 |
|
|
1441 |
memcpy ( buffer, value, value_len ); |
memcpy (buffer, value, value_len); |
1442 |
if ( !value_len || (value_len && value[value_len-1] != '\n') ) |
if (!value_len || (value_len && value[value_len-1] != '\n')) |
1443 |
buffer[value_len++] = '\n'; |
buffer[value_len++] = '\n'; |
1444 |
*nread = value_len; |
*nread = value_len; |
1445 |
|
|
1446 |
gpg->cmd.fnc( gpg->cmd.fnc_value, 0, value ); |
gpg->cmd.fnc (gpg->cmd.fnc_value, 0, value); |
1447 |
gpg->cmd.code = 0; |
gpg->cmd.code = 0; |
1448 |
/* and sleep again until read_status will wake us up again */ |
/* and sleep again until read_status will wake us up again */ |
1449 |
_gpgme_freeze_fd ( gpg->cmd.fd ); |
_gpgme_freeze_fd ( gpg->cmd.fd ); |