annotate auto/cc/name @ 5058:f25d0bbc4392 stable-1.2

Merge of r5004, r5019-r5025: ssl fixes. *) SSL: speedup loading of configs with many ssl servers. The patch saves one EC_KEY_generate_key() call per server{} block by informing OpenSSL about SSL_OP_SINGLE_ECDH_USE we are going to use before the SSL_CTX_set_tmp_ecdh() call. For a configuration file with 10k simple server{} blocks with SSL enabled this change reduces startup time from 18s to 5s on a slow test box here. *) SSL: removed conditions that always hold true. *) SSL: resetting of flush flag after the data was written. There is no need to flush next chunk of data if it does not contain a buffer with the flush or last_buf flags set. *) SSL: preservation of flush flag for buffered data. Previously, if SSL buffer was not sent we lost information that the data must be flushed. *) SSL: calculation of buffer size moved closer to its usage. No functional changes. *) SSL: avoid calling SSL_write() with zero data size. According to documentation, calling SSL_write() with num=0 bytes to be sent results in undefined behavior. We don't currently call ngx_ssl_send_chain() with empty chain and buffer. This check handles the case of a chain with total data size that is a multiple of NGX_SSL_BUFSIZE, and with the special buffer at the end. In practice such cases resulted in premature connection close and critical error "SSL_write() failed (SSL:)" in the error log. *) SSL: take into account data in the buffer while limiting output. In some rare cases this can result in a more smooth sending rate. *) SSL: fixed ngx_ssl_handshake() with level-triggered event methods. Missing calls to ngx_handle_write_event() and ngx_handle_read_event() resulted in a CPU hog during SSL handshake if an level-triggered event method (e.g. select) was used.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 11 Feb 2013 15:12:06 +0000
parents 24f2b8495f7d
children f1daa0356a1d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2 # Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 4229
diff changeset
3 # Copyright (C) Nginx, Inc.
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
4
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
6 if [ "$NGX_PLATFORM" != win32 ]; then
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
7
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
8 ngx_feature="C compiler"
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
9 ngx_feature_name=
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
10 ngx_feature_run=yes
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
11 ngx_feature_incs=
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
12 ngx_feature_path=
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
13 ngx_feature_libs=
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
14 ngx_feature_test=
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
15 . auto/feature
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
16
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
17 if [ $ngx_found = no ]; then
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
18 echo
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
19 echo $0: error: C compiler $CC is not found
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
20 echo
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
21 exit 1
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
22 fi
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
23
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
24 fi
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
25
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
26
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
27 if [ "$CC" = cl ]; then
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
28 if `$NGX_WINE $CC -v 2>&1 \
4229
fbd6d1e5cdef Fix of building by Microsoft Visual C++ 10 compiler.
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
29 | grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16' \
fbd6d1e5cdef Fix of building by Microsoft Visual C++ 10 compiler.
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
30 >/dev/null 2>&1`; then
fbd6d1e5cdef Fix of building by Microsoft Visual C++ 10 compiler.
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
31
fbd6d1e5cdef Fix of building by Microsoft Visual C++ 10 compiler.
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
32 NGX_CC_NAME=msvc10
fbd6d1e5cdef Fix of building by Microsoft Visual C++ 10 compiler.
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
33 echo " + using Microsoft Visual C++ 10 compiler"
fbd6d1e5cdef Fix of building by Microsoft Visual C++ 10 compiler.
Igor Sysoev <igor@sysoev.ru>
parents: 1639
diff changeset
34
4797
d1cea70248c7 Merge of r4759, r4762, r4768: configure minor fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4492
diff changeset
35 elif `$NGX_WINE $CC -v 2>&1 \
1639
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
36 | grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14' \
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
37 >/dev/null 2>&1`; then
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
38
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
39 NGX_CC_NAME=msvc8
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
40 echo " + using Microsoft Visual C++ 8 compiler"
7d125a707158 msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents: 946
diff changeset
41
4797
d1cea70248c7 Merge of r4759, r4762, r4768: configure minor fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4492
diff changeset
42 elif `$NGX_WINE $CC -v 2>&1 \
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
43 | grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13' \
703
694d285ec752 fix ">/dev/null 2>&1" order
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
44 >/dev/null 2>&1`; then
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
45
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
46 NGX_CC_NAME=msvc7
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
47 echo " + using Microsoft Visual C++ 7 compiler"
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
48
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
49 else
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
50 NGX_CC_NAME=msvc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
51 echo " + using Microsoft Visual C++ compiler"
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
52 fi
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
53
4797
d1cea70248c7 Merge of r4759, r4762, r4768: configure minor fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4492
diff changeset
54 elif [ "$CC" = wcl386 ]; then
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
55 NGX_CC_NAME=owc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
56 echo " + using Open Watcom C compiler"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
57
4797
d1cea70248c7 Merge of r4759, r4762, r4768: configure minor fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4492
diff changeset
58 elif [ "$CC" = bcc32 ]; then
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
59 NGX_CC_NAME=bcc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
60 echo " + using Borland C++ compiler"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
61
4797
d1cea70248c7 Merge of r4759, r4762, r4768: configure minor fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4492
diff changeset
62 elif `$CC -V 2>&1 | grep '^Intel(R) C' >/dev/null 2>&1`; then
4492
4871a7dc12a9 Configure: moved icc detection before gcc.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
63 NGX_CC_NAME=icc
4871a7dc12a9 Configure: moved icc detection before gcc.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
64 echo " + using Intel C++ compiler"
4871a7dc12a9 Configure: moved icc detection before gcc.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
65
4797
d1cea70248c7 Merge of r4759, r4762, r4768: configure minor fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4492
diff changeset
66 elif `$CC -v 2>&1 | grep 'gcc version' >/dev/null 2>&1`; then
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
67 NGX_CC_NAME=gcc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
68 echo " + using GNU C compiler"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
69
4799
24f2b8495f7d Merge of r4763: added the Clang compiler support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4797
diff changeset
70 elif `$CC -v 2>&1 | grep 'clang version' >/dev/null 2>&1`; then
24f2b8495f7d Merge of r4763: added the Clang compiler support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4797
diff changeset
71 NGX_CC_NAME=clang
24f2b8495f7d Merge of r4763: added the Clang compiler support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4797
diff changeset
72 echo " + using Clang C compiler"
24f2b8495f7d Merge of r4763: added the Clang compiler support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4797
diff changeset
73
4797
d1cea70248c7 Merge of r4759, r4762, r4768: configure minor fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4492
diff changeset
74 elif `$CC -V 2>&1 | grep 'Sun C' >/dev/null 2>&1`; then
561
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
75 NGX_CC_NAME=sunc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
76 echo " + using Sun C compiler"
561
e48ebafc6939 nginx-0.3.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 517
diff changeset
77
4797
d1cea70248c7 Merge of r4759, r4762, r4768: configure minor fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4492
diff changeset
78 elif `$CC -V 2>&1 | grep '^Compaq C' >/dev/null 2>&1`; then
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
79 NGX_CC_NAME=ccc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
80 echo " + using Compaq C compiler"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
81
4797
d1cea70248c7 Merge of r4759, r4762, r4768: configure minor fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4492
diff changeset
82 elif `$CC -V 2>&1 | grep '^aCC: ' >/dev/null 2>&1`; then
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
83 NGX_CC_NAME=acc
946
756e8a5b1f78 early C compiler test
Igor Sysoev <igor@sysoev.ru>
parents: 703
diff changeset
84 echo " + using HP aC++ compiler"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
85
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
86 else
517
dadfa78d2270 nginx-0.1.33-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
87 NGX_CC_NAME=unknown
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
88
4797
d1cea70248c7 Merge of r4759, r4762, r4768: configure minor fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4492
diff changeset
89 fi