From 2f3472173d5edb617b7ae3cc6560013d19891b5c Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Tue, 22 Feb 2000 22:43:44 +0000 Subject: [PATCH] (add_new_tcp): use the correct entries in the descriptor table git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@7973 ec53bebd-3082-4978-b11e-865c3cabbd6b --- kdc/connect.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/kdc/connect.c b/kdc/connect.c index 96f9c8d77..416ddc479 100644 --- a/kdc/connect.c +++ b/kdc/connect.c @@ -488,30 +488,29 @@ de_http(char *buf) #define TCP_TIMEOUT 4 /* - * accept a new TCP connection on `d[index]' + * accept a new TCP connection on `d[parent]' and store it in `d[child]' */ static void -add_new_tcp (struct descr *d, int index, int min_free) +add_new_tcp (struct descr *d, int parent, int child) { int s; - d->sock_len = sizeof(d->__ss); - s = accept(d[index].s, d->sa, &d->sock_len); + if (child == -1) + return; + + d[child].sock_len = sizeof(d[child].__ss); + s = accept(d[parent].s, d[child].sa, &d[child].sock_len); if(s < 0) { krb5_warn(context, errno, "accept"); return; } - if(min_free == -1){ - close(s); - return; - } - d[min_free].s = s; - d[min_free].timeout = time(NULL) + TCP_TIMEOUT; - d[min_free].type = SOCK_STREAM; - addr_to_string (d[min_free].sa, d[min_free].sock_len, - d[min_free].addr_string, sizeof(d[min_free].addr_string)); + d[child].s = s; + d[child].timeout = time(NULL) + TCP_TIMEOUT; + d[child].type = SOCK_STREAM; + addr_to_string (d[child].sa, d[child].sock_len, + d[child].addr_string, sizeof(d[child].addr_string)); } /*