Don't call shutdown after finishing writing
authorSam Hartman <hartmans@mit.edu>
Tue, 4 Mar 2003 20:55:19 +0000 (20:55 +0000)
committerSam Hartman <hartmans@mit.edu>
Tue, 4 Mar 2003 20:55:19 +0000 (20:55 +0000)
to TCP socket as  doing so causes interop problems.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15220 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb5/os/ChangeLog
src/lib/krb5/os/sendto_kdc.c

index 68026ccb97211efdf13e8403b071eea4ee12a8fc..9149d05b228aa3a56d09c78c274ccf6db1ecfd28 100644 (file)
@@ -1,3 +1,7 @@
+2003-03-04  Sam Hartman  <hartmans@mit.edu>
+
+       * sendto_kdc.c (service_tcp_fd): Don't call shutdown on end of write because some implementations cannot deal with half-closed TCP sockets.
+
 2003-02-08  Tom Yu  <tlyu@mit.edu>
 
        * prompter.c (krb5_prompter_posix): Kill echo before printing
index eac4b3a2bb98008d2de199a56119da211e05d1b5..0f5b9f275d52652e52bc0f6472b75e7919f21d08 100644 (file)
@@ -777,7 +777,8 @@ service_tcp_fd (struct conn_state *conn, struct select_state *selstate,
        }
        if (conn->x.out.sg_count == 0) {
            /* Done writing, switch to reading.  */
-           shutdown(conn->fd, SHUTDOWN_WRITE);
+           /* Don't call shutdown at this point because
+            * some implementations cannot deal with half-closed connections.*/
            FD_CLR(conn->fd, &selstate->wfds);
            /* Q: How do we detect failures to send the remaining data
               to the remote side, since we're in non-blocking mode?