(FILECREATED "26-Mar-86 17:29:04" {ERIS}<LISPCORE>LIBRARY>TCPCHATSERVER.;2 3226
changes to: (VARS TCPCHATSERVERCOMS)
(FNS TCP.CHAT.LISTENER TCPCHATSERVER)
previous date: "26-Mar-86 17:24:51" {ERIS}<LISPCORE>LIBRARY>TCPCHATSERVER.;1)
(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT TCPCHATSERVERCOMS)
(RPAQQ TCPCHATSERVERCOMS ((FNS TCP.CHAT.LISTENER TCPCHATSERVER)
(FILES (SYSLOAD FROM VALUEOF LISPUSERSDIRECTORIES)
TCP)))
(DEFINEQ
(TCP.CHAT.LISTENER
(LAMBDA (PORT) (* ejs:
"26-Mar-86 17:21")
(while T do (LET*((INSTREAM (TCP.OPEN NIL NIL (OR PORT \TCP.TELNET.PORT)
(QUOTE PASSIVE)
(QUOTE INPUT)
T))
(OUTSTREAM (AND INSTREAM (TCP.OTHER.STREAM INSTREAM))))
(* Uncomment the
following, and remove
the body of this
function from the loop
to support multiple
connections)
(* (ADD.PROCESS
(LIST (FUNCTION
TCP.CHAT.LISTENER)
(KWOTE PORT))
(QUOTE RESTARTABLE)
(QUOTE HARDRESET)))
(replace ENDOFSTREAMOP of INSTREAM with (FUNCTION \CHATSERVER.ENDOFSTREAMOP))
(STREAMPROP INSTREAM (QUOTE AFTERCLOSE)
(FUNCTION CHATSERVERWHENCLOSEDFN))
(LINELENGTH 80 OUTSTREAM)
(PAGEHEIGHT 24 OUTSTREAM)
(RESETLST (RESETSAVE NIL (LIST (FUNCTION CLOSEF?)
INSTREAM))
(CHATSERVEROPENFN INSTREAM OUTSTREAM))))))
(TCPCHATSERVER
(LAMBDA NIL (* ejs:
"26-Mar-86 16:47")
(DEL.PROCESS (QUOTE TCP.CHAT.LISTENER))
(ADD.PROCESS (QUOTE (TCP.CHAT.LISTENER))
(QUOTE RESTARTABLE)
(QUOTE HARDRESET))))
)
(FILESLOAD (SYSLOAD FROM VALUEOF LISPUSERSDIRECTORIES)
TCP)
(PUTPROPS TCPCHATSERVER COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
(FILEMAP (NIL (566 3075 (TCP.CHAT.LISTENER 576 . 2717) (TCPCHATSERVER 2719 . 3073)))))
STOP