Squid Web Cache
v8/master
Loading...
Searching...
No Matches
fdsetsize.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 1996-2025 The Squid Software Foundation and contributors
3
*
4
* Squid software is distributed under GPLv2+ license and includes
5
* contributions from numerous individuals and organizations.
6
* Please see the COPYING and CONTRIBUTORS files for details.
7
*/
8
9
#ifndef SQUID_COMPAT_FDSETSIZE_H
10
#define SQUID_COMPAT_FDSETSIZE_H
11
12
/****************************************************************************
13
*--------------------------------------------------------------------------*
14
* DO *NOT* MAKE ANY CHANGES below here unless you know what you're doing...*
15
*--------------------------------------------------------------------------*
16
****************************************************************************/
17
18
/*
19
* On some systems, FD_SETSIZE is set to something lower than the
20
* actual number of files which can be opened. IRIX is one case,
21
* NetBSD is another. So here we increase FD_SETSIZE to our
22
* configure-discovered maximum *before* any system includes.
23
*/
24
#define CHANGE_FD_SETSIZE 1
25
26
/*
27
* Cannot increase FD_SETSIZE on Linux, but we can increase __FD_SETSIZE
28
* with glibc 2.2 (or later? remains to be seen). We do this by including
29
* bits/types.h which defines __FD_SETSIZE first, then we redefine
30
* __FD_SETSIZE. Ofcourse a user program may NEVER include bits/whatever.h
31
* directly, so this is a dirty hack!
32
*/
33
#if _SQUID_LINUX_ || _SQUID_KFREEBSD_
34
#undef CHANGE_FD_SETSIZE
35
#define CHANGE_FD_SETSIZE 0
36
#include <features.h>
37
#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
38
#if SQUID_MAXFD > DEFAULT_FD_SETSIZE
39
#include <bits/types.h>
40
#if HAVE_LINUX_POSIX_TYPES_H
41
#include <linux/posix_types.h>
42
#endif
43
#undef __FD_SETSIZE
44
#define __FD_SETSIZE SQUID_MAXFD
45
#endif
46
#endif
47
#endif
48
49
/*
50
* Cannot increase FD_SETSIZE on FreeBSD before 2.2.0, causes select(2)
51
* to return EINVAL.
52
* --Marian Durkovic <marian@svf.stuba.sk>
53
* --Peter Wemm <peter@spinner.DIALix.COM>
54
*/
55
#if _SQUID_FREEBSD_
56
#include <osreldate.h>
57
#if __FreeBSD_version < 220000
58
#undef CHANGE_FD_SETSIZE
59
#define CHANGE_FD_SETSIZE 0
60
#endif
61
#endif
62
63
/*
64
* Trying to redefine CHANGE_FD_SETSIZE causes a slew of warnings
65
* on Mac OS X Server.
66
*/
67
#if _SQUID_APPLE_
68
#undef CHANGE_FD_SETSIZE
69
#define CHANGE_FD_SETSIZE 0
70
#endif
71
72
/* Increase FD_SETSIZE if SQUID_MAXFD is bigger */
73
#if CHANGE_FD_SETSIZE && SQUID_MAXFD > DEFAULT_FD_SETSIZE
74
#define FD_SETSIZE SQUID_MAXFD
75
#endif
76
77
/*
78
* Trap unintentional use of fd_set. Must not be used outside the
79
* select code as it only supports FD_SETSIZE number of filedescriptors
80
* and Squid may be running with a lot more..
81
* But only for code linked into Squid, not the helpers.. (unlinkd, pinger)
82
*/
83
#ifdef SQUID_FDSET_NOUSE
84
# ifndef SQUID_HELPER
85
# define fd_set ERROR_FD_SET_USED
86
# endif
87
#endif
88
89
#endif
/* SQUID_COMPAT_FDSETSIZE_H */
90
squid
compat
fdsetsize.h
Generated by
1.9.8