summaryrefslogtreecommitdiff
path: root/src/IO/IO.c
diff options
context:
space:
mode:
authorcorvid <devnull@localhost>2016-07-03 16:09:21 +0000
committercorvid <devnull@localhost>2016-07-03 16:09:21 +0000
commitb6247cde66c1450a6fccde9bfb100ee776af2571 (patch)
treedcf0428c2c82f3b1f312a73d10cd698d45980856 /src/IO/IO.c
parent7287048f684a10d7cc0b47454eaeced4845a4cae (diff)
use mbed TLS
Diffstat (limited to 'src/IO/IO.c')
-rw-r--r--src/IO/IO.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/IO/IO.c b/src/IO/IO.c
index 4312fddb..3a2c0332 100644
--- a/src/IO/IO.c
+++ b/src/IO/IO.c
@@ -37,7 +37,7 @@ typedef struct {
int Op; /* IORead | IOWrite */
int FD; /* Current File Descriptor */
int Flags; /* Flag array (look definitions above) */
- int Status; /* errno code */
+ int Status; /* nonzero upon IO failure */
Dstr *Buf; /* Internal buffer */
void *Info; /* CCC Info structure for this IO */
@@ -184,9 +184,14 @@ static bool_t IO_read(IOData_t *io)
ret = TRUE;
break;
} else {
- io->Status = errno;
- MSG("READ Failed: %s\n", strerror(errno));
- break;
+ if (conn) {
+ io->Status = St;
+ break;
+ } else {
+ io->Status = errno;
+ MSG("READ Failed with %d: %s\n", St, strerror(errno));
+ break;
+ }
}
} else { /* St == 0 */
break;
@@ -234,8 +239,14 @@ static bool_t IO_write(IOData_t *io)
ret = TRUE;
break;
} else {
- io->Status = errno;
- break;
+ if (conn) {
+ io->Status = St;
+ break;
+ } else {
+ io->Status = errno;
+ MSG("WRITE Failed with %d: %s\n", St, strerror(errno));
+ break;
+ }
}
} else if (St < io->Buf->len) {
/* Not all data written */