annotate conf/win-utf @ 6806:75dbab4ea930

Events: improved error event handling for UDP sockets. Normally, the epoll module calls the read and write handlers depending on whether EPOLLIN and EPOLLOUT are reported by epoll_wait(). No error processing is done in the module, the handlers are expected to get an error when doing I/O. If an error event is reported without EPOLLIN and EPOLLOUT, the module set both EPOLLIN and EPOLLOUT to ensure the error event is handled at least in one active handler. This works well unless the error is delivered along with only one of EPOLLIN or EPOLLOUT, and the corresponding handler does not do any I/O. For example, it happened when getting EPOLLERR|EPOLLOUT from epoll_wait() upon receiving "ICMP port unreachable" while proxying UDP. As the write handler had nothing to send it was not able to detect and log an error, and did not switch to the next upstream. The fix is to unconditionally set EPOLLIN and EPOLLOUT in case of an error event. In the aforementioned case, this causes the read handler to be called which does recv() and detects an error. In addition to the epoll module, analogous changes were made in devpoll/eventport/poll.
author Dmitry Volyntsev <xeioex@nginx.com>
date Mon, 21 Nov 2016 16:03:42 +0300
parents 63a820b0bc6c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
667
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 657
diff changeset
1
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 657
diff changeset
2 # This map is not a full windows-1251 <> utf8 map: it does not
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 657
diff changeset
3 # contain Serbian and Macedonian letters. If you need a full map,
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 657
diff changeset
4 # use contrib/unicode2nginx/win-utf map instead.
657
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
6 charset_map windows-1251 utf-8 {
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 82 E2809A ; # single low-9 quotation mark
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10 84 E2809E ; # double low-9 quotation mark
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11 85 E280A6 ; # ellipsis
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 86 E280A0 ; # dagger
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13 87 E280A1 ; # double dagger
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14 88 E282AC ; # euro
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15 89 E280B0 ; # per mille
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
16
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
17 91 E28098 ; # left single quotation mark
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
18 92 E28099 ; # right single quotation mark
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
19 93 E2809C ; # left double quotation mark
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
20 94 E2809D ; # right double quotation mark
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21 95 E280A2 ; # bullet
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
22 96 E28093 ; # en dash
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
23 97 E28094 ; # em dash
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
24
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
25 99 E284A2 ; # trade mark sign
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
26
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
27 A0 C2A0 ; # &nbsp;
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
28 A1 D18E ; # capital Byelorussian short U
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
29 A2 D19E ; # small Byelorussian short u
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
30
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
31 A4 C2A4 ; # currency sign
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
32 A5 D290 ; # capital Ukrainian soft G
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
33 A6 C2A6 ; # borken bar
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
34 A7 C2A7 ; # section sign
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
35 A8 D081 ; # capital YO
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
36 A9 C2A9 ; # (C)
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
37 AA D084 ; # capital Ukrainian YE
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
38 AB C2AB ; # left-pointing double angle quotation mark
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
39 AC C2AC ; # not sign
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
40 AD C2AD ; # soft hypen
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
41 AE C2AE ; # (R)
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
42 AF D087 ; # capital Ukrainian YI
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
43
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
44 B0 C2B0 ; # &deg;
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
45 B1 C2B1 ; # plus-minus sign
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
46 B2 D086 ; # capital Ukrainian I
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
47 B3 D196 ; # small Ukrainian i
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
48 B4 D291 ; # small Ukrainian soft g
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
49 B5 C2B5 ; # micro sign
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
50 B6 C2B6 ; # pilcrow sign
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
51 B7 C2B7 ; # &middot;
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
52 B8 D191 ; # small yo
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
53 B9 E28496 ; # numero sign
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
54 BA D194 ; # small Ukrainian ye
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
55 BB C2BB ; # right-pointing double angle quotation mark
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
56
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
57 BF D197 ; # small Ukrainian yi
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
58
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
59 C0 D090 ; # capital A
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
60 C1 D091 ; # capital B
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
61 C2 D092 ; # capital V
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
62 C3 D093 ; # capital G
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
63 C4 D094 ; # capital D
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
64 C5 D095 ; # capital YE
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
65 C6 D096 ; # capital ZH
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
66 C7 D097 ; # capital Z
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
67 C8 D098 ; # capital I
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
68 C9 D099 ; # capital J
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
69 CA D09A ; # capital K
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
70 CB D09B ; # capital L
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
71 CC D09C ; # capital M
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
72 CD D09D ; # capital N
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
73 CE D09E ; # capital O
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
74 CF D09F ; # capital P
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
75
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
76 D0 D0A0 ; # capital R
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
77 D1 D0A1 ; # capital S
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
78 D2 D0A2 ; # capital T
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
79 D3 D0A3 ; # capital U
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
80 D4 D0A4 ; # capital F
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
81 D5 D0A5 ; # capital KH
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
82 D6 D0A6 ; # capital TS
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
83 D7 D0A7 ; # capital CH
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
84 D8 D0A8 ; # capital SH
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
85 D9 D0A9 ; # capital SHCH
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
86 DA D0AA ; # capital hard sign
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
87 DB D0AB ; # capital Y
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
88 DC D0AC ; # capital soft sign
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
89 DD D0AD ; # capital E
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
90 DE D0AE ; # capital YU
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
91 DF D0AF ; # capital YA
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
92
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
93 E0 D0B0 ; # small a
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
94 E1 D0B1 ; # small b
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
95 E2 D0B2 ; # small v
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
96 E3 D0B3 ; # small g
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
97 E4 D0B4 ; # small d
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
98 E5 D0B5 ; # small ye
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
99 E6 D0B6 ; # small zh
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
100 E7 D0B7 ; # small z
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
101 E8 D0B8 ; # small i
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
102 E9 D0B9 ; # small j
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
103 EA D0BA ; # small k
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
104 EB D0BB ; # small l
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
105 EC D0BC ; # small m
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
106 ED D0BD ; # small n
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
107 EE D0BE ; # small o
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
108 EF D0BF ; # small p
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
109
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
110 F0 D180 ; # small r
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
111 F1 D181 ; # small s
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
112 F2 D182 ; # small t
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
113 F3 D183 ; # small u
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
114 F4 D184 ; # small f
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
115 F5 D185 ; # small kh
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
116 F6 D186 ; # small ts
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
117 F7 D187 ; # small ch
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
118 F8 D188 ; # small sh
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
119 F9 D189 ; # small shch
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
120 FA D18A ; # small hard sign
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
121 FB D18B ; # small y
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
122 FC D18C ; # small soft sign
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
123 FD D18D ; # small e
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
124 FE D18E ; # small yu
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
125 FF D18F ; # small ya
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
126 }