diff options
Diffstat (limited to 'request.f90')
-rw-r--r-- | request.f90 | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/request.f90 b/request.f90 index 7308a9e..ec35772 100644 --- a/request.f90 +++ b/request.f90 @@ -164,13 +164,17 @@ contains end subroutine close_connection - subroutine get_server_from_url(url, server) + subroutine get_server_from_url(url, server, port) implicit none character(*), intent(in)::url character(:), allocatable, intent(out)::server + integer, intent(out)::port integer::start_server, end_server, length + integer::start_port, iostatus + + port = -1 start_server = index(url, "://") if(start_server > 0) then @@ -189,6 +193,19 @@ contains server = url(start_server:end_server) end if + + ! Need to check if a port was specified too + start_port = index(server, ":") + if(start_port > 0) then + + read(server(start_port+1:len_trim(server)), *, iostat=iostatus) port + if(iostatus /= 0) then + port = -1 + end if + + server = server(1:start_port-1) + + end if end subroutine get_server_from_url |