Skip to content

Commit 1f56fe0

Browse files
slusarzcmouse
authored andcommitted
lua: Use Dovecot settings for Lua http client arguments
1 parent 785c09d commit 1f56fe0

File tree

2 files changed

+68
-56
lines changed

2 files changed

+68
-56
lines changed

data/lua.js

Lines changed: 63 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -136,108 +136,116 @@ are not restricted.`
136136
text: `Never automatically retry requests.`
137137
},
138138
connect_backoff_time: {
139-
default: '100 msec',
139+
dovecot_setting: 'http_client_connect_backoff_time',
140140
hash_arg: true,
141-
type: 'int',
142-
text: `Initial backoff time; doubled at each connection failure.`
143141
},
144142
connect_backoff_max_time: {
145-
default: '60000 msec',
143+
dovecot_setting: 'http_client_connect_backoff_max_time',
146144
hash_arg: true,
147-
type: 'int',
148-
text: `Maximum backoff time.`
149145
},
150146
connect_timeout: {
151-
default: '<request_timeout>',
147+
dovecot_setting: 'http_client_connect_timeout',
152148
hash_arg: true,
153-
type: 'int',
154-
text: `Max time to wait for \`connect()\` (and SSL handshake) to finish before retrying.`
155149
},
156150
event_parent: {
157151
hash_arg: true,
158152
type: 'event',
159153
text: `Parent event to use.`
160154
},
161155
max_attempts: {
162-
default: '1',
156+
dovecot_setting: 'http_client_request_max_attempts',
163157
hash_arg: true,
164-
type: 'int',
165-
text: `Maximum number of attempts for a request.`
166158
},
167159
max_auto_retry_delay: {
160+
dovecot_setting: 'http_client_max_auto_retry_delay',
168161
hash_arg: true,
169-
type: 'int',
170-
text: `
171-
Maximum acceptable delay in seconds for automatically retrying/redirecting
172-
requests.
173-
174-
If a server sends a response with a \`Retry-After\` header that causes a
175-
delay longer than this, the request is not automatically retried and
176-
the response is returned.`
177162
},
178163
max_connect_attempts: {
164+
dovecot_setting: 'http_client_max_connect_attempts',
179165
hash_arg: true,
180-
type: 'int',
181-
text: `
182-
Maximum number of connection attempts to a host before all associated
183-
requests fail.
184-
185-
If > 1, the maximum will be enforced across all IPs for that host, meaning
186-
that IPs may be tried more than once eventually if the number of IPs is
187-
smaller than the specified maximum attempts. If the number of IPs is
188-
higher than the maximum attempts, not all IPs are tried.
189-
190-
If <= 1, all IPs are tried at most once.`
191166
},
192167
max_idle_time: {
168+
dovecot_setting: 'http_client_max_idle_time',
193169
hash_arg: true,
194-
type: 'int',
195-
text: `
196-
Maximum time a connection will idle before disconnecting.
197-
198-
If parallel connections are idle, the duplicates will end earlier based on
199-
how many idle connections exist to that same service.`
200170
},
201171
max_redirects: {
202-
default: '0; redirects refused',
172+
dovecot_setting: 'http_client_request_max_redirects',
203173
hash_arg: true,
204-
type: 'int',
205-
text: `Maximum number of redirects for a request.`
206174
},
207175
proxy_url: {
176+
dovecot_setting: 'http_client_proxy_url',
208177
hash_arg: true,
209-
type: 'string',
210178
text: `Proxy URL to use, can include username and password.`
211179
},
212180
request_absolute_timeout: {
213-
default: '0; no timeout',
181+
dovecot_setting: 'http_client_request_absolute_timeout',
214182
hash_arg: true,
215-
type: 'int',
216-
text: `Max total time to wait for HTTP request to finish, including retries and everything else.`
217183
},
218184
request_timeout: {
219-
default: '60000 msec',
185+
dovecot_setting: 'http_client_request_timeout',
220186
hash_arg: true,
221-
type: 'int',
222-
text: `Max time to wait for HTTP response before retrying.`
223187
},
224188
soft_connect_timeout: {
225-
default: '0; wait until current connection attempt finishes',
189+
dovecot_setting: 'http_client_soft_connect_timeout',
226190
hash_arg: true,
227-
type: 'int',
228-
text: `Time to wait for \`connect()\` (and SSL handshake) to finish for the first connection before trying the next IP in parallel.`
191+
},
192+
ssl_cipher_list: {
193+
dovecot_setting: 'ssl_cipher_list',
194+
hash_arg: true
195+
},
196+
ssl_cipher_suites: {
197+
dovecot_setting: 'ssl_cipher_suites',
198+
hash_arg: true
199+
},
200+
ssl_client_ca_dir: {
201+
dovecot_setting: 'ssl_client_ca_dir',
202+
hash_arg: true
203+
},
204+
ssl_client_ca_file: {
205+
dovecot_setting: 'ssl_client_ca_file',
206+
hash_arg: true
207+
},
208+
ssl_client_cert_file: {
209+
dovecot_setting: 'ssl_client_cert_file',
210+
hash_arg: true
211+
},
212+
ssl_client_key_file: {
213+
dovecot_setting: 'ssl_client_key_file',
214+
hash_arg: true
215+
},
216+
ssl_client_key_password: {
217+
dovecot_setting: 'ssl_client_key_password',
218+
hash_arg: true
219+
},
220+
ssl_crypto_device: {
221+
dovecot_setting: 'ssl_crypto_device',
222+
hash_arg: true
223+
},
224+
ssl_curve_list: {
225+
dovecot_setting: 'ssl_curve_list',
226+
hash_arg: true
227+
},
228+
ssl_client_require_valid_cert: {
229+
dovecot_setting: 'ssl_client_require_valid_cert',
230+
hash_arg: true
231+
},
232+
ssl_min_protocol: {
233+
dovecot_setting: 'ssl_min_protocol',
234+
hash_arg: true
235+
},
236+
ssl_options: {
237+
dovecot_setting: 'ssl_options',
238+
hash_arg: true
229239
},
230240
rawlog_dir: {
241+
dovecot_setting: 'http_client_rawlog_dir',
231242
hash_arg: true,
232-
type: 'string',
233-
text: `Directory for writing raw log data for debugging purposes. Must be writable by the process creating this log.`
234243
},
235244
user_agent: {
236-
default: '<none>',
245+
dovecot_setting: 'http_client_user_agent',
237246
hash_arg: true,
238-
type: 'string',
239-
text: `\`User-Agent:\` header.`
240247
},
248+
241249
},
242250
return: 'An http_client object.',
243251
tags: [ 'dovecot.http' ],

data/settings.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5660,7 +5660,11 @@ Username for HTTP proxy.`
56605660
settings_http_client_settings_added: false,
56615661
},
56625662
text: `
5663-
Directory for writing raw log data for debugging purposes.`
5663+
Directory for writing raw log data for debugging purposes.
5664+
5665+
::: warning
5666+
Must be writable by the process creating this log.
5667+
:::`
56645668
},
56655669

56665670
http_client_read_request_max_attempts: {

0 commit comments

Comments
 (0)