summaryrefslogtreecommitdiffstats
path: root/net/radius/files/patch-ab
blob: f466a5bc700311bfff0464a4c7f1a24ca166e569 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
--- src/radiusd.c.orig	Mon Jul 27 15:52:37 1998
+++ src/radiusd.c	Sun Dec 10 17:04:17 2000
@@ -793,6 +793,19 @@
 	sigaction (SIGIOT, &action, NULL); /* Perhaps also known as SIGABRT ! */
 	sigaction (SIGFPE, &action, NULL);
 
+	/* the max number of open files should never be used as an argument
+         * for select(). On systems that support more than 256 open files
+         * select() is not able to handle that many fd's.
+         * In this case the max. number of fd's for select should not be
+         * set to the maximum number of descriptors.
+         * Since I'm too lazy to correct the code I set dtablesize to
+         * FD_SETSIZE. This is the only portable way to use select() on
+         * all descriptors. See also "Advanced Programming in the Unix
+         * Environment" (from W. Richard Stevens) and the BSD 4.4 manpage for
+         * select(2).
+         */
+	dtablesize = FD_SETSIZE;
+#ifdef BOGUS_CODE
 #ifdef	_SC_OPEN_MAX
 	if ((dtablesize = sysconf (_SC_OPEN_MAX)) == -1)
 	{
@@ -802,6 +815,7 @@
 #else	/* Assume BSD */
 	dtablesize = getdtablesize ();
 #endif	/* _SC_OPEN_MAX */
+#endif /* BOGUS_CODE */
 
 	for (j = dtablesize; j >= 3; j--)
 	{
@@ -4467,7 +4481,7 @@
 	while ((event = authreq->event_q) != (EVENT_ENT *) NULL)
 	{
 		authreq->event_q = event->next;
-		free_event_final (event);
+		free_event (event);
 	}
 
 	while ((event = authreq->freed_events) != (EVENT_ENT *) NULL)
OpenPOWER on IntegriCloud