Skip to content

Commit 28040c9

Browse files
author
yggverse
committed
add curl dns resolver options #15
1 parent 479c85e commit 28040c9

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed

example/config.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,18 @@
177177
{
178178
"max":10485760
179179
}
180+
},
181+
"dns":
182+
{
183+
"cache":
184+
{
185+
"timeout":120,
186+
"global":false
187+
},
188+
"shuffle":false,
189+
"interface":null,
190+
"ip4address":null,
191+
"ip6address":null
180192
}
181193
},
182194
"queue":

src/cli/document/crawl.php

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,52 @@
189189
$document->get('url')
190190
);
191191

192+
// DNS options
193+
curl_setopt(
194+
$request,
195+
CURLOPT_DNS_CACHE_TIMEOUT,
196+
$config->cli->document->crawl->curl->dns->cache->timeout
197+
);
198+
199+
curl_setopt(
200+
$request,
201+
CURLOPT_DNS_USE_GLOBAL_CACHE,
202+
$config->cli->document->crawl->curl->dns->cache->global
203+
);
204+
205+
curl_setopt(
206+
$request,
207+
CURLOPT_DNS_SHUFFLE_ADDRESSES,
208+
$config->cli->document->crawl->curl->dns->shuffle
209+
);
210+
211+
if ($config->cli->document->crawl->curl->dns->interface)
212+
{
213+
curl_setopt(
214+
$request,
215+
CURLOPT_DNS_INTERFACE,
216+
$config->cli->document->crawl->curl->dns->interface
217+
);
218+
}
219+
220+
if ($config->cli->document->crawl->curl->dns->ip4address)
221+
{
222+
curl_setopt(
223+
$request,
224+
CURLOPT_DNS_LOCAL_IP4,
225+
$config->cli->document->crawl->curl->dns->ip4address
226+
);
227+
}
228+
229+
if ($config->cli->document->crawl->curl->dns->ip6address)
230+
{
231+
curl_setopt(
232+
$request,
233+
CURLOPT_DNS_LOCAL_IP6,
234+
$config->cli->document->crawl->curl->dns->ip6address
235+
);
236+
}
237+
192238
// Drop URL with long response
193239
curl_setopt(
194240
$request,

0 commit comments

Comments
 (0)