[25630] in CVS-changelog-for-Kerberos-V5

home help back first fref pref prev next nref lref last post

svn rev #25120: trunk/src/lib/krb5/os/

daemon@ATHENA.MIT.EDU (ghudson@mit.edu)
Wed Aug 31 23:36:32 2011

Date: Wed, 31 Aug 2011 23:36:29 -0400
From: ghudson@mit.edu
Message-Id: <201109010336.p813aToi013965@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu

http://src.mit.edu/fisheye/changelog/krb5/?cs=25120
Commit By: ghudson
Log Message:
ticket: 6951

Fix connection termination bug in sendto_kdc.

When terminating a connection, close and invalidate conn->fd so that
we don't look for it in selstate on the next select or poll
invocation.  Looking for such an fd is harmless when using select, but
results in an assertion failure when using poll.


Changed Files:
U   trunk/src/lib/krb5/os/sendto_kdc.c
Modified: trunk/src/lib/krb5/os/sendto_kdc.c
===================================================================
--- trunk/src/lib/krb5/os/sendto_kdc.c	2011-08-30 21:30:11 UTC (rev 25119)
+++ trunk/src/lib/krb5/os/sendto_kdc.c	2011-09-01 03:36:29 UTC (rev 25120)
@@ -913,12 +913,12 @@
 static void
 kill_conn(struct conn_state *conn, struct select_state *selstate, int err)
 {
+    dprint("abandoning connection %d: %m\n", conn->fd, err);
+    cm_remove_fd(selstate, conn->fd);
+    closesocket(conn->fd);
+    conn->fd = INVALID_SOCKET;
     conn->state = FAILED;
     conn->err = err;
-    shutdown(conn->fd, SHUTDOWN_BOTH);
-    cm_remove_fd(selstate, conn->fd);
-    dprint("abandoning connection %d: %m\n", conn->fd, err);
-    /* Fix up max fd for next select call.  */
 }
 
 /* Check socket for error.  */

_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5

home help back first fref pref prev next nref lref last post