diff options
Diffstat (limited to 'request.f90')
-rw-r--r-- | request.f90 | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/request.f90 b/request.f90 index 139b368..e9043c0 100644 --- a/request.f90 +++ b/request.f90 @@ -173,13 +173,14 @@ contains implicit none character(*), intent(in)::url - character(:), allocatable, intent(out)::server - integer, intent(out)::port + character(*), intent(out)::server + integer, intent(out), optional::port integer::start_server, end_server, length integer::start_port, iostatus + integer::myport - port = -1 + myport = -1 start_server = index(url, "://") if(start_server > 0) then @@ -194,7 +195,6 @@ contains end if length = end_server - start_server + 1 - allocate(character(len=length) :: server) server = url(start_server:end_server) end if @@ -203,14 +203,18 @@ contains start_port = index(server, ":") if(start_port > 0) then - read(server(start_port+1:len_trim(server)), *, iostat=iostatus) port + read(server(start_port+1:len_trim(server)), *, iostat=iostatus) myport if(iostatus /= 0) then - port = -1 + myport = -1 end if server = server(1:start_port-1) end if + + if(present(port)) then + port = myport + end if end subroutine get_server_from_url |