;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:10; Patch-File:T -*-


; From modified file DJ: L.NETWORK.IP-TCP.SERVER; GENERIC.LISP#61 at 8-Feb-86 18:40:32
#10R TCP-APPLICATION#:
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "TCP-APPLICATION")))
  (COMPILER::PATCH-SOURCE-FILE "DJ: L.NETWORK.IP-TCP.SERVER; GENERIC.#"

(defun *define-tcp-server (name documentation &KEY TOPLEVEL-FUNCTION LISTEN-PORT
			   &OPTIONAL STREAM-FLAVOR STREAM-GENERIC-P)
  (WHEN (RECORD-SOURCE-FILE-NAME NAME 'DEFINE-TCP-SERVER)
    (PUSHNEW NAME *GENERIC-TCP-SERVICES*)
    (SETF (FUNCTION-DOCUMENTATION NAME 'TCP-SERVER) (OR DOCUMENTATION NAME "NIL"))
    (SETF (GET NAME 'TCP-SERVER-TOPLEVEL-FUNCTION) TOPLEVEL-FUNCTION)
    (SETF (GET NAME 'TCP-SERVER-LISTEN-PORT) LISTEN-PORT)
    (SETF (GET NAME 'TCP-SERVER-STREAM-FLAVOR) STREAM-FLAVOR)
    (SETF (GET NAME 'TCP-SERVER-CAN-FAKE-P) STREAM-GENERIC-P)
    (START-TCP-SERVERS)
    (START-ONE-TCP-SERVER NAME)
    NAME))

))

; From modified file DJ: L.NETWORK.IP-TCP.SERVER; GENERIC.LISP#61 at 8-Feb-86 18:41:27
#10R TCP-APPLICATION#:
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "TCP-APPLICATION")))
  (COMPILER::PATCH-SOURCE-FILE "DJ: L.NETWORK.IP-TCP.SERVER; GENERIC.#"

(DEFUN START-ONE-TCP-SERVER (S)
  (WHEN (AND TCP:*TCP-ENABLED-P* (NOT (GET S 'GENERIC-TCP-SERVICE-LISTENER-PROCESS)))
    (SETF (GET S 'GENERIC-TCP-SERVICE-LISTENER-PROCESS)
	  (PROCESS-RUN-FUNCTION (FORMAT NIL "TCP LISTEN FOR ~A" S)
				#'TCP-GENERIC-SERVER-FUNCTION-LOOP
				S))))

))

