|
From: <don...@is...> - 2008-12-29 22:08:25
|
Sam Steingold writes: > Don Cohen wrote: > > and now on the server I get this > > [3]> (socket:socket-status str) > > > > [../src/stream.d:6143] > > *** - UNIX error 104 (ECONNRESET): Connection reset by peer > > The following restarts are available: > > ABORT :R1 Abort main loop > > Break 1 [4]> > > with the appended patch: > [3]> (socket:socket-status str) > :APPEND ; > 1 I don't think this is desired. FIN means that the peer is done sending and you are still allowed to send. RST means the peer doesn't even recognize this connection. > Alas: > [4]> (write-line "foo" str) > Program received signal SIGPIPE, Broken pipe. That seems right to me. > 0x00000033c82c0e50 in __write_nocancel () from /lib64/libc.so.6 > (gdb) up > #1 0x00000000005eacef in fd_write (fd=8, bufarea=0x7fff75f78a60, nbyte=3, > persev=persev_full) at ../src/unixaux.d:462 > 462 var ssize_t retval = write(fd,buf,nbyte); > > the socket appears to be in a totally broken state! The socket should be viewed as closed. |