aboutsummaryrefslogtreecommitdiff
path: root/src/lib/rpc/svc_auth_gssapi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/rpc/svc_auth_gssapi.c')
-rw-r--r--src/lib/rpc/svc_auth_gssapi.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/lib/rpc/svc_auth_gssapi.c b/src/lib/rpc/svc_auth_gssapi.c
index 1e204e0..5c16b08 100644
--- a/src/lib/rpc/svc_auth_gssapi.c
+++ b/src/lib/rpc/svc_auth_gssapi.c
@@ -5,6 +5,39 @@
* $Source$
*
* $Log$
+ * Revision 1.41.2.1 1997/10/31 01:03:47 tlyu
+ * * svc_auth_gssapi.c (destroy_client): Fix to not lose entries in
+ * the chain linked list.
+ * [pullup from trunk]
+ *
+ * Revision 1.43 1997/10/21 18:33:55 epeisach
+ * Fix to not lose entries in the chain linked client list.
+ *
+ * A pointer was not being updated resulting in the situation where
+ * random clients would sudenly fail with a misc. rpc. error as the client
+ * handle could not be found. The scenario required three active clients
+ * to trigger the problem.
+ *
+ * Revision 1.42 1996/12/04 17:47:18 bjaspan
+ * * Various changes to allow channel bindings to work with both UDP
+ * and TCP cleanly [krb5-libs/180]:
+ *
+ * * auth_gssapi.c: remove the special-case exception to channel
+ * bindings failure added in the previous revision, since we now
+ * solve the problem by making channel bindings not fail
+ *
+ * * clnt_udp.c: use a connected socket so that the client can
+ * determine its own source address with getsockname
+ *
+ * * svc.h: add xp_laddr and xp_laddrlen fields to SVCXPRT structure
+ *
+ * * svc_tcp.c: set xp_laddr and xp_laddrlen when a connection is
+ * established
+ *
+ * * svc_udp.c (svcudp_recv): use recvmsg with MSG_PEEK followed by
+ * recvfrom in order to determine both source and dest address on
+ * unconnected UDP socket, set xp_laddr and xp_laddrlen
+ *
* Revision 1.41 1996/10/16 20:16:10 bjaspan
* * svc_auth_gssapi.c (_svcauth_gssapi): accept add call_arg version 4
*
@@ -998,8 +1031,10 @@ static void destroy_client(client_data)
c2->next = c->next;
free(c);
goto done;
- } else
+ } else {
+ c2 = c;
c = c->next;
+ }
}
PRINTF(("destroy_client: client_handle delete failed\n"));
abort();