From af97440f3ef41ce88509397ada3c206fe63f9aa1 Mon Sep 17 00:00:00 2001 From: Jeffrey Armstrong Date: Wed, 6 May 2020 16:13:59 -0400 Subject: Fixed handling of bad server response code. Made input requests in the dumb renderer a bit more pleasant. --- protocol.f90 | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'protocol.f90') diff --git a/protocol.f90 b/protocol.f90 index 6d2390a..087e96a 100644 --- a/protocol.f90 +++ b/protocol.f90 @@ -1,13 +1,14 @@ module gemini_protocol implicit none - integer, parameter::STATUS_INPUT = 1 - integer, parameter::STATUS_SUCCESS = 2 - integer, parameter::STATUS_REDIRECT = 3 - integer, parameter::STATUS_TEMPFAIL = 4 - integer, parameter::STATUS_PERMFAIL = 5 - integer, parameter::STATUS_CERTREQ = 6 - integer, parameter::STATUS_LOCALFAIL = -1 + integer, parameter::STATUS_INPUT = 1 + integer, parameter::STATUS_SUCCESS = 2 + integer, parameter::STATUS_REDIRECT = 3 + integer, parameter::STATUS_TEMPFAIL = 4 + integer, parameter::STATUS_PERMFAIL = 5 + integer, parameter::STATUS_CERTREQ = 6 + integer, parameter::STATUS_BADRESPONSE = 7 + integer, parameter::STATUS_LOCALFAIL = -1 integer, parameter::BUFFER_SIZE = 256 @@ -29,7 +30,7 @@ contains type(connection)::conn - integer::bytes_received, i + integer::bytes_received, i, iostatus character, dimension(BUFFER_SIZE)::buffer returncode = -1 @@ -63,7 +64,10 @@ contains call mark_file_end(unit_number) rewind(unit_number) - read(unit_number, '(I1)') returncode + read(unit_number, '(I1)', iostat=iostatus) returncode + if(iostatus /= 0) then + returncode = STATUS_BADRESPONSE + end if else -- cgit v1.2.3