SYSTEM@INDYVAX.BITNET (05/27/88)
[non-blank blank line] Hi all. A while back, while half of the INFO-VAX stuff was disappearing down a black hole for us BITNET folks, there was a question about translating LAT terminal line numbers to server and port names. Of course one can do it by logging into SYSTEM and typing something like: $ MCR LATCP SHOW PORTS [terminal-name] I found something on DSIN that shows how to get the server and port name from a program (obviously what LATCP is doing). You have to be able to open a channel on the LAT terminal (have SHARE privilege I think it is). Here is a PHOTO log of running the demo program under SYSTEM: [PHOTO: Recording initiated 26-MAY-1988 20:39] $ show proc 26-MAY-1988 20:39:08.64 User: SYSTEM Pid: 00002CBA Proc. name: SYSTEM_1 UIC: [SYSTEM] Priority: 7 Default file spec: DISK$USER3:[IJAH400.MISC] $ ! Gee, I wonder if bozo is logged in... $ show user bozo VAX/VMS Interactive Users 26-MAY-1988 20:39:27.28 Total number of interactive users = 20 Username Process Name PID Terminal BOZO BOZO1939,DAT 00002EA6 LTA3532 LTA3532: $ ! Gee, wonder what port bozo's on... $ run latran LAT terminal name: lta3532 Server: TRMSRV_15 Port name: PORT_1 $ pop Process SYSTEM_1 logged out at 26-MAY-1988 20:39:50.69 [PHOTO: Recording terminated 26-MAY-1988 20:39 PHOTO.LOG;1] I suppose this stuff is all documented under VMS 5.0, I don't know. Now if we could only get DEC to put the server and port name in security alarms and LOGFAIL accounting entries when LAT terminals are involved... - Jim Harvey IJAH400@INDYVAX.BITNET PS: Here is the demo program (original was called LATREAD.FOR, do a TXT search on DSIN for the product "TERMINAL/SERVER" and key "QIO INTERFACE TO LAT"), as modified from the DSIN version (to take an arbitrary LAT terminal name and to compile without errors): <-----LATRAN.FOR----cut here-----> PROGRAM LATRAN INCLUDE '($IODEF)' INCLUDE '($SSDEF)' PARAMETER READ_BUF_LEN = 34 CHARACTER*16 LAT_DEV_NAME INTEGER END1,END2,START2 INTEGER SYS$ASSIGN,SYS$QIOW,SYS$DASSGN INTEGER*2 LT_CHAN INTEGER*2 IOSB(4) BYTE READ_BUF(READ_BUF_LEN) C Prompt for and read the LAT terminal name to be translated WRITE (6,11) 11 FORMAT (' LAT terminal name: ',$) READ (5,12) (LAT_DEV_NAME(I:I),I=1,16) 12 FORMAT (16A1) IF (LAT_DEV_NAME .EQ. ' ') LAT_DEV_NAME = 'SYS$INPUT:' C Stick a colon on the name if they left it off... DO 13 I = 1, 16 IF (LAT_DEV_NAME(I:I) .EQ. ' ') LAT_DEV_NAME(I:I) = ':' IF (LAT_DEV_NAME(I:I) .EQ. ':') GOTO 14 13 CONTINUE 14 CONTINUE C Assign a channel to terminal ISTAT = SYS$ASSIGN(LAT_DEV_NAME,LT_CHAN,,) IF (.NOT. ISTAT) CALL LIB$STOP(%VAL(ISTAT)) C Read port characteristics into P1 buffer. ISTAT = SYS$QIOW(,%VAL(LT_CHAN), + %VAL(IO$_TTY_PORT.OR.IO$M_LT_READPORT), + IOSB,,,%REF(READ_BUF),%VAL(READ_BUF_LEN),,,,) IF (.NOT. ISTAT) CALL LIB$STOP(%VAL(ISTAT)) C Write out the port name and server name END1 = READ_BUF(1) + 1 START2 = END1 + 2 END2 = READ_BUF(END1 + 1) + START2 - 1 WRITE (6,100) (READ_BUF(I),I=START2,END2) 100 FORMAT (' Server: ',16A1) WRITE (6,200) (READ_BUF(I),I=2,END1) 200 FORMAT (' Port name: ',16A1) C Deassign channel to terminal ISTAT = SYS$DASSGN(%VAL(LT_CHAN)) IF (.NOT. ISTAT) CALL LIB$STOP(%VAL(STAT)) C Exit program CALL EXIT END <-----LATRAN.FOR----cut here----->
kvc@nrcvax.UUCP (Kevin Carosso) (06/05/88)
In article <8805291308.AA25063@ucbvax.Berkeley.EDU> SYSTEM@INDYVAX.BITNET writes: >Now if we could only get DEC to put the server and port name in security >alarms and LOGFAIL accounting entries when LAT terminals are involved... They have -- in V5. At least they've got it in SHOW TERMINAL as well as intrusion records and more than likely security alarms as well. I don't know about LOGFAIL accounting records, I'd check but am in the middle of the V5 install right now. I know they do not include the information (called "Access Port Information") in regular process accounting records since with virtual terminals you cannot know for sure where a process was during the course of a session. In addition, the access port name can be gotten with GETDVI. This works from DCL as well, you can say "port = F$GETDVI ("LTAxx:", "TT_ACCPORNAM"). (In V5, of course) /Kevin Carosso kvc@nrc.com Network Research Co. kvc@ymir.bitnet kvc@nrcvax.uucp