<> <> <> <<>> <> DIRECTORY PupBuffer USING [Buffer], PupSocket USING [Socket], PupType USING [ErrorCode], Rope USING [ROPE]; PupSocketBackdoor: CEDAR DEFINITIONS = { Buffer: TYPE = PupBuffer.Buffer; Socket: TYPE = PupSocket.Socket; <> SetSoftwareChecksumming: PROC [socket: Socket, send, recv: BOOL]; < Faster>> <> <> <> <> PutFirst: PROC [socket: Socket, b: Buffer]; PutAgain: PROC [socket: Socket, b: Buffer]; <> <> <> <<>> Resend: PROC [b: Buffer, checksum: BOOL _ TRUE]; <> <> <> <> ReceiveProc: TYPE = PROC [Socket, Buffer, REF ANY] RETURNS [Buffer]; SetDirectReceive: PROC [socket: Socket, proc: ReceiveProc, user: REF ANY]; <> <> <<>> UseNormalPath: PROC [Buffer]; <> <> <<>> AllocRecvBuffer: PROC [Socket] RETURNS [Buffer]; <> <> <<>> ReturnToSenderNoFree: PROC [b: Buffer]; <> <> <<>> ReturnErrorNoFree: PROC [b: Buffer, code: PupType.ErrorCode, rope: Rope.ROPE]; <> <> <<>> }.