Changeset View
Changeset View
Standalone View
Standalone View
src/reader.c
| Show First 20 Lines • Show All 401 Lines • ▼ Show 20 Lines | else if (r->type == READER_TYPE_CB) | ||||
| if (r->u.cb.fnc (r->u.cb.value, buffer, length, nread)) | if (r->u.cb.fnc (r->u.cb.value, buffer, length, nread)) | ||||
| { | { | ||||
| *nread = 0; | *nread = 0; | ||||
| r->eof = 1; | r->eof = 1; | ||||
| return gpg_error (GPG_ERR_EOF); | return gpg_error (GPG_ERR_EOF); | ||||
| } | } | ||||
| r->nread += *nread; | r->nread += *nread; | ||||
| } | } | ||||
| else if (r->type == READER_TYPE_FD) | |||||
| { | |||||
| ssize_t n; | |||||
| if (r->eof) | |||||
| return gpg_error (GPG_ERR_EOF); | |||||
| if (!length) | |||||
| { | |||||
| *nread = 0; | |||||
| return 0; | |||||
| } | |||||
| n = read (r->u.fd, buffer, length); | |||||
| if (n > 0) | |||||
| { | |||||
| r->nread += n; | |||||
| *nread = n; | |||||
| } | |||||
| else | |||||
| { | |||||
| *nread = 0; | |||||
| if (n < 0) | |||||
| { | |||||
| r->error = errno; | |||||
| return gpg_error_from_errno (errno); | |||||
| } | |||||
| else | |||||
| { | |||||
| r->eof = 1; | |||||
| return gpg_error (GPG_ERR_EOF); | |||||
| } | |||||
| } | |||||
| } | |||||
| else | else | ||||
| return gpg_error (GPG_ERR_BUG); | return gpg_error (GPG_ERR_BUG); | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| gpg_error_t | gpg_error_t | ||||
| ksba_reader_unread (ksba_reader_t r, const void *buffer, size_t count) | ksba_reader_unread (ksba_reader_t r, const void *buffer, size_t count) | ||||
| Show All 33 Lines | |||||