aboutsummaryrefslogtreecommitdiff
path: root/request.f90
diff options
context:
space:
mode:
Diffstat (limited to 'request.f90')
-rw-r--r--request.f9016
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