(FILECREATED "17-Oct-85 16:47:54" {ERIS}<LISP>INTERMEZZO>PATCHES>SPPPATCH2.;5 2942   

      changes to:  (VARS SPPPATCH2COMS)

      previous date: " 4-Jul-85 00:21:24" {ERIS}<LISP>INTERMEZZO>PATCHES>SPPPATCH2.;4)


(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT SPPPATCH2COMS)

(RPAQQ SPPPATCH2COMS ((FNS SPP.OPEN)))
(DEFINEQ

(SPP.OPEN
  [LAMBDA (HOST SOCKET PROBEP NAME PROPS)                    (* gbn " 4-Jul-85 00:21")
    (LET ((CON (\SPPCONNECTION HOST SOCKET NAME)))
      (RESETLST (RESETSAVE NIL (LIST [FUNCTION (LAMBDA (CON)
					 (LET ((SOCKET (fetch (SPPCON SPPMYNSOCKET) of CON)))
					   (AND RESETSTATE (type? NSOCKET SOCKET)
						(CLOSENSOCKET SOCKET T]
				     CON))
		(WITH.MONITOR (fetch SPPLOCK of CON)
			      (PROG (INSTREAM OUTSTREAM)
				    (RETURN (COND
					      ((COND
						  ((NULL HOST)
                                                             (* Passive connection)
						    (until (fetch SPPESTABLISHEDP of CON)
						       do (MONITOR.AWAIT.EVENT (fetch SPPLOCK
										  of CON)
									       (fetch SPPINPUTEVENT
										  of CON)))
						    (fetch SPPESTABLISHEDP of CON))
						  ((OR (fetch SPPESTABLISHEDP of CON)
						       (NOT PROBEP))
						    T)
						  (T (\SPP.PROBE CON)
						     (MONITOR.AWAIT.EVENT (fetch SPPLOCK
									     of CON)
									  (fetch SPPINPUTEVENT
									     of CON)
									  SPP.USER.TIMEOUT)
						     (fetch SPPESTABLISHEDP of CON)))
						[replace SPPINPUTSTREAM of CON
						   with (SETQ INSTREAM (\SPP.CREATE.STREAM
							    (QUOTE INPUT]
						(replace SPP.CONNECTION of INSTREAM with CON)
						(replace STRMBOUTFN of INSTREAM
						   with (FUNCTION \SPP.OTHER.BOUT))
						[replace SPPOUTPUTSTREAM of CON
						   with (SETQ OUTSTREAM (\SPP.CREATE.STREAM
							    (QUOTE OUTPUT]
						(replace SPP.CONNECTION of OUTSTREAM with CON)
						(for TAIL on PROPS by (CDDR TAIL)
						   do (SELECTQ (CAR TAIL)
							       (CLOSEFN (replace SPPWHENCLOSEDFN
									   of CON
									   with (CADR TAIL)))
							       (ATTENTIONFN (replace SPPATTENTIONFN
									       of CON
									       with (CADR TAIL)))
							       (ERRORHANDLER (replace SPPERRORHANDLER
										of CON
										with (CADR TAIL)))
							       (EOM.ON.FORCEOUT (replace 
										 SPPEOMONFORCEOUT
										   of CON
										   with (CADR TAIL)))
							       NIL))
						(push (fetch DEVICEINFO of \SPPDEVICE)
						      INSTREAM)
						INSTREAM])
)
(PUTPROPS SPPPATCH2 COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (365 2862 (SPP.OPEN 375 . 2860)))))
STOP