annotate src/os/unix/ngx_darwin_config.h @ 4162:fb1375e8b68c stable-1.0

Merging r4036, r4055, r4056, r4057, r4058, r4059, r4060, r4061, r4062, r4063, r4064: Ranges related fixes: The "max_ranges" directive. "max_ranges 0" disables ranges support at all, "max_ranges 1" allows the single range, etc. By default number of ranges is unlimited, to be precise, 2^31-1. If client requests more ranges than "max_ranges" permits, nginx disables ranges and returns just the source response. If total size of all ranges is greater than source response size, then nginx disables ranges and returns just the source response. This fix should not affect well-behaving applications but will defeat DoS attempts exploiting malicious byte ranges. Now unsatisfiable ranges are processed according to RFC 2616.
author Igor Sysoev <igor@sysoev.ru>
date Fri, 30 Sep 2011 14:06:08 +0000
parents 0daede16d68b
children a3870ea96ccd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
1
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
2 /*
444
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 441
diff changeset
3 * Copyright (C) Igor Sysoev
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
4 */
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
5
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
6
2128
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
7 #ifndef _NGX_DARWIN_CONFIG_H_INCLUDED_
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
8 #define _NGX_DARWIN_CONFIG_H_INCLUDED_
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
9
1576
5cd655d5d2fa Cygwin support
Igor Sysoev <igor@sysoev.ru>
parents: 1377
diff changeset
10
5cd655d5d2fa Cygwin support
Igor Sysoev <igor@sysoev.ru>
parents: 1377
diff changeset
11
355
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 #include <sys/types.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13 #include <sys/time.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14 #include <unistd.h>
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
15 #include <inttypes.h>
355
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
16 #include <stdarg.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
17 #include <stddef.h> /* offsetof() */
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
18 #include <stdio.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
19 #include <stdlib.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
20 #include <errno.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21 #include <string.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
22 #include <signal.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
23 #include <pwd.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
24 #include <grp.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
25 #include <dirent.h>
727
532d15ddbe68 glob support in include
Igor Sysoev <igor@sysoev.ru>
parents: 601
diff changeset
26 #include <glob.h>
2633
34389dfc2061 fix MacOSX building, broken in r2616
Igor Sysoev <igor@sysoev.ru>
parents: 2128
diff changeset
27 #include <sys/mount.h> /* statfs() */
355
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
28
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
29 #include <sys/filio.h> /* FIONBIO */
2128
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
30 #include <sys/ioctl.h>
355
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
31 #include <sys/uio.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
32 #include <sys/stat.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
33 #include <fcntl.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
34
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
35 #include <sys/wait.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
36 #include <sys/mman.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
37 #include <sys/resource.h>
374
213f17e9f776 nginx-0.0.7-2004-07-02-09:47:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 355
diff changeset
38 #include <sched.h>
355
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
39
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
40 #include <sys/socket.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
41 #include <netinet/in.h>
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
42 #include <netinet/tcp.h> /* TCP_NODELAY */
355
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
43 #include <arpa/inet.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
44 #include <netdb.h>
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
45 #include <sys/un.h>
355
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
46
2128
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
47 #include <sys/sysctl.h>
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
48 #include <xlocale.h>
1576
5cd655d5d2fa Cygwin support
Igor Sysoev <igor@sysoev.ru>
parents: 1377
diff changeset
49
5cd655d5d2fa Cygwin support
Igor Sysoev <igor@sysoev.ru>
parents: 1377
diff changeset
50
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
51 #ifndef IOV_MAX
2128
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
52 #define IOV_MAX 64
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
53 #endif
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
54
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
55
355
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
56 #include <ngx_auto_config.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
57
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
58
3909
0daede16d68b use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents: 2633
diff changeset
59 #if (NGX_HAVE_POSIX_SEM)
0daede16d68b use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents: 2633
diff changeset
60 #include <semaphore.h>
0daede16d68b use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents: 2633
diff changeset
61 #endif
0daede16d68b use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents: 2633
diff changeset
62
0daede16d68b use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents: 2633
diff changeset
63
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
64 #if (NGX_HAVE_POLL)
355
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
65 #include <poll.h>
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
66 #endif
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
67
0fb6c53fb135 nginx-0.0.7-2004-06-15-21:47:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
68
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
69 #if (NGX_HAVE_KQUEUE)
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
70 #include <sys/event.h>
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
71 #endif
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
72
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
73
2128
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
74 #define NGX_LISTEN_BACKLOG -1
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
75
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
76
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
77 #ifndef NGX_HAVE_INHERITED_NONBLOCK
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
78 #define NGX_HAVE_INHERITED_NONBLOCK 1
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
79 #endif
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
80
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
81
2128
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
82 #ifndef NGX_HAVE_CASELESS_FILESYSTEM
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
83 #define NGX_HAVE_CASELESS_FILESYSTEM 1
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
84 #endif
1377
0d57c150115b set default listen() backlog to 511 on all platforms except FreeBSD
Igor Sysoev <igor@sysoev.ru>
parents: 727
diff changeset
85
0d57c150115b set default listen() backlog to 511 on all platforms except FreeBSD
Igor Sysoev <igor@sysoev.ru>
parents: 727
diff changeset
86
2128
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
87 #define NGX_HAVE_OS_SPECIFIC_INIT 1
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
88
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
89
601
77f77f53214a nginx-0.3.22-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
90 extern char **environ;
77f77f53214a nginx-0.3.22-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
91
77f77f53214a nginx-0.3.22-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
92
2128
345a014436d4 *) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents: 2006
diff changeset
93 #endif /* _NGX_DARWIN_CONFIG_H_INCLUDED_ */