diff options
Diffstat (limited to 'protocol.f90')
-rw-r--r-- | protocol.f90 | 22 |
1 files changed, 13 insertions, 9 deletions
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 |