From 945712032736c398ef13691cad884c625dc10133 Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Tue, 24 Sep 2013 22:47:08 -0400 Subject: [PATCH] read_binary_size return value on read error --- common.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/common.c b/common.c index ffbf488..ff7bbba 100644 --- a/common.c +++ b/common.c @@ -4,6 +4,8 @@ */ #pragma noroot #pragma optimize 79 +#pragma debug 0x8000 +#pragma lint -1 #include #include @@ -39,6 +41,7 @@ int read_binary(Word ipid, FILE *file, ReadBlock *dcb) DecBusy(); count = rb.rrBuffCount; + if (!count) { if (rv) break; @@ -48,6 +51,8 @@ int read_binary(Word ipid, FILE *file, ReadBlock *dcb) continue; } + + tcount = fwrite(buffer, 1, count, file); if (dcb) dcb->transferCount += tcount; @@ -89,9 +94,11 @@ int read_binary_size(Word ipid, FILE *file, ReadBlock *dcb) DecBusy(); count = rb.rrBuffCount; + + if (!count) { - if (rv) break; + if (rv) return -1; IncBusy(); TCPIPPoll(); DecBusy(); @@ -109,16 +116,15 @@ int read_binary_size(Word ipid, FILE *file, ReadBlock *dcb) } return 0; - } int ConnectLoop(char *host, Word port, Connection *connection) { - LongWord qtick; + LongWord qtick; - ConnectionInit(connection, MMStartUp(), flags._v ? DisplayCallback : NULL); - ConnectionOpenC(connection, host, port); + ConnectionInit(connection, MMStartUp(), flags._v ? DisplayCallback : NULL); + ConnectionOpenC(connection, host, port); // 30 second timeout. qtick = GetTick() + 30 * 60; @@ -156,4 +162,4 @@ int CloseLoop(Connection *connection) while (!ConnectionPoll(connection)) ; // wait for it to close. return 1; -} \ No newline at end of file +}