Initial commit
This commit is contained in:
80
unix/sys_remote_host.f
Executable file
80
unix/sys_remote_host.f
Executable file
@ -0,0 +1,80 @@
|
||||
!!-----------------------------------------------------------------------------
|
||||
!!
|
||||
subroutine SYS_REMOTE_HOST(STR, TYPE) !!
|
||||
!!
|
||||
!! get remote host name/number
|
||||
!!
|
||||
!! type: TN telnet, RT: decnet, LO: local, XW: X-window (ssh or telnet)
|
||||
!!
|
||||
character STR*(*), TYPE*(*) !!
|
||||
|
||||
character host*128, line*128, path*256, os*7
|
||||
integer i,j,lun,iostat
|
||||
|
||||
integer sys_cmd
|
||||
external sys_cmd
|
||||
|
||||
call sys_getenv('OS', os)
|
||||
|
||||
call str_upcase(os, os)
|
||||
|
||||
if (os .eq. 'WINDOWS') then
|
||||
|
||||
str='local'
|
||||
|
||||
type='LO'
|
||||
|
||||
return
|
||||
|
||||
endif
|
||||
|
||||
|
||||
|
||||
call sys_getenv('HOST', host)
|
||||
call sys_getenv('DISPLAY', str)
|
||||
i=index(str,':')
|
||||
type=' '
|
||||
if (i .ge. 1) then
|
||||
if (i .eq. 1) then
|
||||
str='localhost'
|
||||
else
|
||||
str=str(1:i-1)
|
||||
endif
|
||||
type='XW'
|
||||
if (str .ne. 'localhost') goto 80
|
||||
endif
|
||||
call sys_getenv('REMOTEHOST', str)
|
||||
if (str .eq. ' ') then
|
||||
call sys_temp_name('.whoami', path)
|
||||
call sys_delete_file(path)
|
||||
i=sys_cmd('who -m > '//path)
|
||||
call sys_get_lun(lun)
|
||||
call sys_open(lun, path, 'r', iostat)
|
||||
if (iostat .ne. 0) goto 9
|
||||
read(lun,'(a)',end=9,err=9) line
|
||||
9 close(lun)
|
||||
call sys_delete_file(path)
|
||||
i=index(line,'(')
|
||||
if (i .ne. 0 .and. i .lt. len(line)) then
|
||||
str=line(i+1:)
|
||||
i=index(str, ')')
|
||||
if (i .ne. 0) str(i:)=' '
|
||||
endif
|
||||
endif
|
||||
i=index(str,':')
|
||||
if (i .ne. 0) str(i:)=' '
|
||||
if (str .ne. ' ') then
|
||||
if (type .eq. ' ') type='TN'
|
||||
else
|
||||
str=host
|
||||
if (type .eq. ' ') type='LO'
|
||||
endif
|
||||
|
||||
c add domain to short host names
|
||||
80 i=index(str, '.')
|
||||
j=index(host, '.')
|
||||
if (j .gt. 0 .and. i .eq. 0) then
|
||||
call str_trim(str, str, i)
|
||||
str(i+1:)=host(j:)
|
||||
endif
|
||||
end
|
Reference in New Issue
Block a user