[Libwebsockets] 答复: A question about libwebsockets dns resolve

huangkaicheng huangkaicheng at huawei.com
Thu May 28 13:51:48 CEST 2020


Hi,
     Can you please put a patch " modification about dns resolve recently " to v4.0-stable branch. Is allowed?

-----邮件原件-----
发件人: Andy Green [mailto:andy at warmcat.com] 
发送时间: 2020年5月27日 15:43
收件人: huangkaicheng <huangkaicheng at huawei.com>; libwebsockets <libwebsockets at ml.libwebsockets.org>
抄送: Chenyake <chenyake at huawei.com>
主题: Re: 答复: [Libwebsockets] 答复: 回复: 答复: A question about libwebsockets dns resolve



On 5/27/20 8:31 AM, huangkaicheng wrote:
> Hi,
> 
>     I think you make a mistake, in windows you should use
> WSAGetLastError() rather than errno. I modify it and it can connect 
> well now.

Right, LWS_ERRNO was invented for that but switching between posix and kinda-posix platforms it is easy to forget.  It's literally "connect()" 
like posix but somehow not "errno".

I pushed your fix squashed in the patch and hopefully that's it.

-Andy

> -----邮件原件-----
> 发件人: Andy Green [mailto:andy at warmcat.com]
> 发送时间: 2020年5月26日17:42
> 收件人: huangkaicheng <huangkaicheng at huawei.com>; libwebsockets 
> <libwebsockets at ml.libwebsockets.org>
> 抄送: Chenyake <chenyake at huawei.com>
> 主题: Re: 答复: 答复: [Libwebsockets] 答复: 回复: 答复: A question about 
> libwebsockets dns resolve
> 
> On 5/26/20 10:29 AM, huangkaicheng wrote:
> 
>> bin\Debug\lws-minimal-http-client.exe --server 46.105.127.147 -m
> 
>> -d1039
> 
>> 
> 
>> 
> 
>> Can you change server to like " bin\Debug\lws-minimal-http-client.exe --server 46.105.127.147 -m -d1039"? it will also connect succfully?
> 
> Yeah.
> 
>>bin\Debug\lws-minimal-http-client.exe --server 46.105.127.147 -m 
>>-d1039
> 
> [2020/05/26 10:37:29:1091] U: LWS minimal http client [-d<verbosity>] 
> [-l] [--h1]
> 
> [2020/05/26 10:37:29:1091] I: Initial logging level 1039
> 
> [2020/05/26 10:37:29:1091] I: Libwebsockets version:
> 
> 4.0.99-v4.0.0-134-g3d04cdcd v4.0.0-134-g3d04cdcd
> 
> [2020/05/26 10:37:29:1091] I: IPV6 not compiled in
> 
> [2020/05/26 10:37:29:1091] I:  LWS_DEF_HEADER_LEN    : 4096
> 
> [2020/05/26 10:37:29:1247] I:  LWS_MAX_SMP           : 1
> 
> [2020/05/26 10:37:29:1247] I:  sizeof (*info)        : 704
> 
> [2020/05/26 10:37:29:1247] I:  SYSTEM_RANDOM_FILEPATH: '/dev/urandom'
> 
> [2020/05/26 10:37:29:1247] I:  HTTP2 support         : available
> 
> [2020/05/26 10:37:29:1247] I: context created
> 
> [2020/05/26 10:37:29:1247] I: Using event loop: poll
> 
> [2020/05/26 10:37:29:1247] I: Default ALPN advertisment: h2,http/1.1
> 
> [2020/05/26 10:37:29:1403] I:  default timeout (secs): 5
> 
> [2020/05/26 10:37:29:1403] I:  Threads: 1 each 5 fds
> 
> [2020/05/26 10:37:29:1403] I:  mem: context:          6104 B (2008 ctx 
> +
> 
> (1 thr x 4096))
> 
> [2020/05/26 10:37:29:1403] I:  mem: http hdr size:   (4096 + 976), max
> 
> count 5
> 
> [2020/05/26 10:37:29:1403] I:  mem: pollfd map:         80 B
> 
> [2020/05/26 10:37:29:1403] I:  Compiled with OpenSSL support
> 
> [2020/05/26 10:37:29:1560] I: Doing SSL library init
> 
> [2020/05/26 10:37:29:1560] I:  canonical_hostname = win10
> 
> [2020/05/26 10:37:29:1560] I: Creating Vhost 'default' (serving 
> disabled), 5 protocols, IPv6 off
> 
> [2020/05/26 10:37:29:1717] I: lws_tls_client_create_vhost_context: vh
> 
> default: created new client ctx 0
> 
> [2020/05/26 10:37:29:2028] I: created client ssl context for default
> 
> [2020/05/26 10:37:29:2028] I:  mem: per-conn:          824 bytes +
> 
> protocol rx buf
> 
> [2020/05/26 10:37:29:2185] I: lws_cancel_service
> 
> [2020/05/26 10:37:29:2341] I: lws_state_notify_protocol_init:
> 
> LWS_SYSTATE_CPD_PRE_TIME
> 
> [2020/05/26 10:37:29:2341] I: lws_ss_create: unknown stream type 
> captive_portal_detect
> 
> [2020/05/26 10:37:29:2341] I: lws_ss_sys_cpd: Create stream failed 
> (policy?)
> 
> [2020/05/26 10:37:29:2341] I: lws_state_notify_protocol_init:
> 
> LWS_SYSTATE_CPD_PRE_TIME
> 
> [2020/05/26 10:37:29:2341] I: lws_ss_create: unknown stream type 
> captive_portal_detect
> 
> [2020/05/26 10:37:29:2497] I: lws_ss_sys_cpd: Create stream failed 
> (policy?)
> 
> [2020/05/26 10:37:29:2497] I: lws_state_notify_protocol_init: doing 
> protocol init on POLICY_VALID
> 
> [2020/05/26 10:37:29:2497] I: lws_protocol_init
> 
> [2020/05/26 10:37:29:2497] I: system_notify_cb: operational
> 
> [2020/05/26 10:37:29:2497] I: lws_client_connect_via_info: role 
> binding to h1
> 
> [2020/05/26 10:37:29:2497] I: lws_client_connect_via_info: protocol 
> binding to http
> 
> [2020/05/26 10:37:29:2657] I: lws_client_connect_via_info: wsi
> 
> 000001EFE3B3A520: h1 http entry
> 
> [2020/05/26 10:37:29:2657] I: lws_header_table_attach: wsi
> 
> 000001EFE3B3A520: ah 0000000000000000 (tsi 0, count = 0) in
> 
> [2020/05/26 10:37:29:2657] I: _lws_create_ah: created ah
> 
> 000001EFE1D6A810 (size 4096): pool length 1
> 
> [2020/05/26 10:37:29:2657] I: lws_header_table_attach: did attach wsi
> 
> 000001EFE3B3A520: ah 000001EFE1D6A810: count 1 (on exit)
> 
> [2020/05/26 10:37:29:2809] I: lws_client_connect_2_dnsreq: adding 
> active conn 000001EFE3B3A520
> 
> [2020/05/26 10:37:29:2809] I: lws_client_connect_2_dnsreq:
> 
> 000001EFE3B3A520: lookup 46.105.127.147:443
> 
> [2020/05/26 10:37:29:2809] I: lws_getaddrinfo46: getaddrinfo 
> '46.105.127.147' says 0
> 
> [2020/05/26 10:37:29:2809] I: lws_client_connect_3_connect:
> 
> 46.105.127.147 ipv4 46.105.127.147
> 
> [2020/05/26 10:37:29:2966] I: lws_state_transition_steps:
> 
> CONTEXT_CREATED -> OPERATIONAL
> 
> [2020/05/26 10:37:29:2966] I: lws_client_connect_3_connect: errno 0
> 
> [2020/05/26 10:37:29:3122] I: lws_client_connect_3_connect: Connection 
> started 000001EFE3AF20D0
> 
> [2020/05/26 10:37:29:3122] I: lws_client_connect_4_established: wsi
> 
> 000001EFE3B3A520: h1 http client created own conn (raw 0) vh defaultm 
> st
> 
> 0x202
> 
> [2020/05/26 10:37:29:3122] I: h1 client conn using alpn list 'h2'
> 
> [2020/05/26 10:37:29:3434] I: lws_role_call_alpn_negotiated: 'h2'
> 
> [2020/05/26 10:37:29:3434] I: rops_alpn_negotiated_h2: upgraded to H2
> 
> [2020/05/26 10:37:29:3590] I: lws_hpack_dynamic_size: from 0 to 65536, 
> lim 65536 ...
> 
>> I have update the code. Using git pull and resolve confict. As your said "git fetch xxx +master:m " Because this way in my company it will failed. I have to use git pull and resolve confict, so git hash is different.  But I make sure I have merge your code.
> 
> Hmm doing this stuff with one person over different platforms is 
> really hard already.
> 
> If your company blocks git fetch (but not pull? how?) that's your 
> problem not mine.  I don't want to burn myself out running around 
> after phantom bugs created by merge breakage because of some Great 
> Firewall of Huawei.
> 
> Re-clone it or do something else that doesn't dump the time wasting 
> back on me and directly uses my commits.
> 
> -Andy
> 
>> 
> 
>> -----邮件原件-----
> 
>> 发件人: Andy Green [mailto:andy at warmcat.com]
> 
>> 发送时间: 2020年5月26日17:22
> 
>> 收件人: huangkaicheng <huangkaicheng at huawei.com
> <mailto:huangkaicheng at huawei.com>>; libwebsockets
> 
>> <libwebsockets at ml.libwebsockets.org
> <mailto:libwebsockets at ml.libwebsockets.org>>
> 
>> 主题: Re: 答复: [Libwebsockets] 答复: 回复: 答复: A question about
> libwebsockets
> 
>> dns resolve
> 
>> 
> 
>> 
> 
>> 
> 
>> On 5/26/20 10:14 AM, huangkaicheng wrote:
> 
>>> Can you connect success in windows for ws client. The latest of
> 
>>> master can not connect success. The latest code it will wait connect
> 
>>> util timeout like(5.5.5.5 ).But if serverip is a reachable ip, it 
>>> can
> 
>>> not connect success now.
> 
>>>
> 
>>> It is my test ws server(100.95.128.76  not public address) that ws
> 
>>> client should connect success . but now it can not . Can you try it
> 
>>> to connect your ws server successfully in windows? Last version it
> 
>>> can connect success.
> 
>> 
> 
>> Yes it connects fine.
> 
>> 
> 
>>   >bin\Debug\lws-minimal-http-client.exe --server
> 
>> junk.bogus.warmcat.com -m -d1039
> 
>> [2020/05/26 10:20:53:2653] U: LWS minimal http client [-d<verbosity>]
> 
>> [-l] [--h1]
> 
>> [2020/05/26 10:20:53:2809] I: Initial logging level 1039
> 
>> [2020/05/26 10:20:53:2809] I: Libwebsockets version:
> 
>> 4.0.99-v4.0.0-134-g3d04cdcd v4.0.0-134-g3d04cdcd
> 
>> [2020/05/26 10:20:53:2809] I: IPV6 not compiled in
> 
>> [2020/05/26 10:20:53:2809] I:  LWS_DEF_HEADER_LEN    : 4096
> 
>> [2020/05/26 10:20:53:2809] I:  LWS_MAX_SMP           : 1
> 
>> [2020/05/26 10:20:53:2965] I:  sizeof (*info)        : 704
> 
>> [2020/05/26 10:20:53:2965] I:  SYSTEM_RANDOM_FILEPATH: '/dev/urandom'
> 
>> [2020/05/26 10:20:53:2965] I:  HTTP2 support         : available
> 
>> [2020/05/26 10:20:53:2965] I: context created
> 
>> [2020/05/26 10:20:53:2965] I: Using event loop: poll
> 
>> [2020/05/26 10:20:53:2965] I: Default ALPN advertisment: h2,http/1.1
> 
>> [2020/05/26 10:20:53:3123] I:  default timeout (secs): 5
> 
>> [2020/05/26 10:20:53:3123] I:  Threads: 1 each 5 fds
> 
>> [2020/05/26 10:20:53:3123] I:  mem: context:          6104 B (2008 
>> ctx +
> 
>> (1 thr x 4096))
> 
>> [2020/05/26 10:20:53:3123] I:  mem: http hdr size:   (4096 + 976), 
>> max
> 
>> count 5
> 
>> [2020/05/26 10:20:53:3123] I:  mem: pollfd map:         80 B
> 
>> [2020/05/26 10:20:53:3123] I:  Compiled with OpenSSL support
> 
>> [2020/05/26 10:20:53:3123] I: Doing SSL library init
> 
>> [2020/05/26 10:20:53:3278] I:  canonical_hostname = win10
> 
>> [2020/05/26 10:20:53:3278] I: Creating Vhost 'default' (serving
> 
>> disabled), 5 protocols, IPv6 off
> 
>> [2020/05/26 10:20:53:3434] I: lws_tls_client_create_vhost_context: vh
> 
>> default: created new client ctx 0
> 
>> [2020/05/26 10:20:53:3747] I: created client ssl context for default
> 
>> [2020/05/26 10:20:53:3747] I:  mem: per-conn:          824 bytes +
> 
>> protocol rx buf
> 
>> [2020/05/26 10:20:53:3747] I: lws_cancel_service
> 
>> [2020/05/26 10:20:53:3903] I: lws_state_notify_protocol_init:
> 
>> LWS_SYSTATE_CPD_PRE_TIME
> 
>> [2020/05/26 10:20:53:3903] I: lws_ss_create: unknown stream type
> 
>> captive_portal_detect
> 
>> [2020/05/26 10:20:53:3903] I: lws_ss_sys_cpd: Create stream failed
> 
>> (policy?)
> 
>> [2020/05/26 10:20:53:4060] I: lws_state_notify_protocol_init:
> 
>> LWS_SYSTATE_CPD_PRE_TIME
> 
>> [2020/05/26 10:20:53:4060] I: lws_ss_create: unknown stream type
> 
>> captive_portal_detect
> 
>> [2020/05/26 10:20:53:4060] I: lws_ss_sys_cpd: Create stream failed
> 
>> (policy?)
> 
>> [2020/05/26 10:20:53:4060] I: lws_state_notify_protocol_init: doing
> 
>> protocol init on POLICY_VALID
> 
>> [2020/05/26 10:20:53:4060] I: lws_protocol_init
> 
>> [2020/05/26 10:20:53:4216] I: system_notify_cb: operational
> 
>> [2020/05/26 10:20:53:4216] I: lws_client_connect_via_info: role
> 
>> binding to h1
> 
>> [2020/05/26 10:20:53:4216] I: lws_client_connect_via_info: protocol
> 
>> binding to http
> 
>> [2020/05/26 10:20:53:4216] I: lws_client_connect_via_info: wsi
> 
>> 0000024D51E86C20: h1 http entry
> 
>> [2020/05/26 10:20:53:4216] I: lws_header_table_attach: wsi
> 
>> 0000024D51E86C20: ah 0000000000000000 (tsi 0, count = 0) in
> 
>> [2020/05/26 10:20:53:4372] I: _lws_create_ah: created ah
> 
>> 0000024D51DB1160 (size 4096): pool length 1
> 
>> [2020/05/26 10:20:53:4372] I: lws_header_table_attach: did attach wsi
> 
>> 0000024D51E86C20: ah 0000024D51DB1160: count 1 (on exit)
> 
>> [2020/05/26 10:20:53:4372] I: lws_client_connect_2_dnsreq: adding
> 
>> active conn 0000024D51E86C20
> 
>> [2020/05/26 10:20:53:4372] I: lws_client_connect_2_dnsreq:
> 
>> 0000024D51E86C20: lookup junk.bogus.warmcat.com:443
> 
>> [2020/05/26 10:20:53:4531] I: lws_getaddrinfo46: getaddrinfo
> 
>> 'junk.bogus.warmcat.com' says 0
> 
>> [2020/05/26 10:20:53:4531] I: lws_client_connect_3_connect:
> 
>> junk.bogus.warmcat.com ipv4 5.5.5.5
> 
>> [2020/05/26 10:20:53:4531] I: lws_state_transition_steps:
> 
>> CONTEXT_CREATED -> OPERATIONAL
> 
>> [2020/05/26 10:20:53:4531] I: lws_client_connect_3_connect: errno 0
> 
>> [2020/05/26 10:20:58:4685] I: lws_client_conn_wait_timeout: connect
> 
>> wait timeout has fired
> 
>> [2020/05/26 10:20:58:4685] I: lws_client_connect_3_connect: 
>> abandoning
> 
>> connect due to timeout
> 
>> [2020/05/26 10:20:58:4685] I: lws_client_connect_3_connect: (null)
> 
>> ipv4
> 
>> 10.99.99.99
> 
>> [2020/05/26 10:20:58:4685] I: lws_client_connect_3_connect: errno 0
> 
>> [2020/05/26 10:21:03:4692] I: lws_client_conn_wait_timeout: connect
> 
>> wait timeout has fired
> 
>> [2020/05/26 10:21:03:4692] I: lws_client_connect_3_connect: 
>> abandoning
> 
>> connect due to timeout
> 
>> [2020/05/26 10:21:03:4692] I: lws_client_connect_3_connect: (null)
> 
>> ipv4
> 
>> 46.105.127.147
> 
>> [2020/05/26 10:21:03:4692] I: lws_client_connect_3_connect: errno 0
> 
>> [2020/05/26 10:21:03:4841] I: lws_client_connect_3_connect: 
>> Connection
> 
>> started 0000024D51FCD3A0
> 
>> [2020/05/26 10:21:03:4997] I: lws_client_connect_4_established: wsi
> 
>> 0000024D51E86C20: h1 http client created own conn (raw 0) vh defaultm
> 
>> st
> 
>> 0x202
> 
>> [2020/05/26 10:21:03:4997] I: h1 client conn using alpn list 'h2'
> 
>> [2020/05/26 10:21:03:5310] I: lws_role_call_alpn_negotiated: 'h2'
> 
>> [2020/05/26 10:21:03:5310] I: rops_alpn_negotiated_h2: upgraded to H2
> 
>> [2020/05/26 10:21:03:5310] I: lws_hpack_dynamic_size: from 0 to 
>> 65536,
> 
>> lim 65536
> 
>> [2020/05/26 10:21:03:5310] I: rops_alpn_negotiated_h2: wsi
> 
>> 0000024D51E86C20: configured for h2
> 
>> [2020/05/26 10:21:03:5310] I: client connect OK
> 
>> [2020/05/26 10:21:03:5466] I: lws_openssl_describe_cipher: wsi
> 
>> 0000024D51E86C20: TLS_AES_256_GCM_SHA384, TLS_AES_256_GCM_SHA384, 256
> 
>> bits, TLSv1.3
> 
>> [2020/05/26 10:21:03:5466] I: negotiated 'h2' using ALPN
> 
>> [2020/05/26 10:21:03:5466] I: lws_role_call_alpn_negotiated: 'h2'
> 
>> ...
> 
>> 
> 
>>   From the git hash in your log, it doesn't look like you have the
> 
>> latest master, it is
> 
>> 
> 
>> e0c0007f3110efe2437b869ac4c312e04945dff7
> 
>> 
> 
>> at the moment.
> 
>> 
> 
>> -Andy
> 
>> 
> 
>>> -----邮件原件-----
> 
>>> 发件人: Andy Green [mailto:andy at warmcat.com]
> 
>>> 发送时间: 2020年5月26日16:17
> 
>>> 收件人: huangkaicheng <huangkaicheng at huawei.com
> <mailto:huangkaicheng at huawei.com>>; libwebsockets
> 
>>> <libwebsockets at ml.libwebsockets.org
> <mailto:libwebsockets at ml.libwebsockets.org>>
> 
>>> 抄送: Chenyake <chenyake at huawei.com <mailto:chenyake at huawei.com>>
> 
>>> 主题: Re: [Libwebsockets] 答复: 回复: 答复: A question about libwebsockets
> 
>>> dns resolve
> 
>>>
> 
>>> On 5/26/20 4:16 AM, andy at warmcat.com <mailto:andy at warmcat.com> <mailto:andy at warmcat.com> wrote:
> 
>>>
> 
>>>>
> 
>>>
> 
>>>>
> 
>>>
> 
>>>> On May 26, 2020 3:05:51 AM UTC, huangkaicheng 
>>>> <huangkaicheng at huawei.com <mailto:huangkaicheng at huawei.com
> <mailto:huangkaicheng at huawei.com%20%3cmailto:huangkaicheng at huawei.com>
> >>
> wrote:
> 
>>>
> 
>>>>> Can you change "onevalid.bogus.warmcat.com"second and later ip
> 
>>>
> 
>>>>> 127.0.0.x to real ip (like 10.173.16.193(unreachable is also OK))
> 
>>>>> for
> 
>>>
> 
>>>>
> 
>>>
> 
>>>> I also have blackhole.bogus.warmcat.com that is already 5.5.5.5 and the correct address, and test with that.
> 
>>>
> 
>>>>
> 
>>>
> 
>>>>> testing. I can not change your dns setting. Latest code
> 
>>>>> libwebsockets
> 
>>>
> 
>>>>> doesnot still work. Second Ip (and later ip)does still not try wait.
> 
>>>
> 
>>>>> Only first Ip can try wait util time out. Old version will try
> 
>>>
> 
>>>>> indeed(last week). You can just change ip and test , you can
> 
>>>
> 
>>>>> reproduce it. Old version will try util time out but lastest code
> 
>>>>> of
> 
>>>
> 
>>>>> master will not.
> 
>>>
> 
>>>>
> 
>>>
> 
>>>> We're going around in circles because I can't get windows to do
> 
>>>> anything other than just use the correct address first.On linux
> 
>>>> each time I run the test it rotates the dns results to start at a
> 
>>>> different place,  so by running it a few times I can see the
> 
>>>> different behaviours.On
> 
>>> windows it connects to the server every time.
> 
>>>
> 
>>>>
> 
>>>
> 
>>>> I'll try adding more junk in a new bogus.warmcat.com record and see what happens.
> 
>>>
> 
>>> I trimmed the entries in each bogus record to 3 so with the default
> 
>>> 5s wait / 20s overall it cam always complete, and added two new ones 'junk'
> 
>>>
> 
>>> and 'revjunk'
> 
>>>
> 
>>> onevalid.bogusINA127.0.0.1
> 
>>>
> 
>>>   INA127.0.0.2
> 
>>>
> 
>>>   INA46.105.127.147
> 
>>>
> 
>>> blackhole.bogusINA5.5.5.5
> 
>>>
> 
>>>   INA5.5.5.5
> 
>>>
> 
>>>   INA46.105.127.147
> 
>>>
> 
>>> junk.bogusINA10.99.99.99
> 
>>>
> 
>>>   INA5.5.5.5
> 
>>>
> 
>>>   INA46.105.127.147
> 
>>>
> 
>>> revjunk.bogusINA46.105.127.147
> 
>>>
> 
>>>   INA5.5.5.5
> 
>>>
> 
>>>   INA10.99.99.98
> 
>>>
> 
>>> With Linux, you get a different ordering of the results each time,
> 
>>> and, on Linux, using what's in git from yesterday...
> 
>>>
> 
>>> [2020/05/26 04:40:17:6377] I: lws_client_connect_2_dnsreq: 0x2278440:
> 
>>>
> 
>>> lookup junk.bogus.warmcat.com:443
> 
>>>
> 
>>> [2020/05/26 04:40:17:6395] I: lws_getaddrinfo46: getaddrinfo
> 
>>> 'junk.bogus.warmcat.com' says 0
> 
>>>
> 
>>> [2020/05/26 04:40:17:6395] I: lws_client_connect_3_connect:
> 
>>>
> 
>>> junk.bogus.warmcat.com ipv4 5.5.5.6
> 
>>>
> 
>>> [2020/05/26 04:40:17:6396] I: lws_state_transition_steps:
> 
>>>
> 
>>> CONTEXT_CREATED -> OPERATIONAL
> 
>>>
> 
>>> [2020/05/26 04:40:22:6397] I: lws_client_conn_wait_timeout: connect
> 
>>> wait timeout has fired
> 
>>>
> 
>>> [2020/05/26 04:40:22:6398] I: lws_client_connect_3_connect:
> 
>>> abandoning connect due to timeout
> 
>>>
> 
>>> [2020/05/26 04:40:22:6398] I: lws_client_connect_3_connect: (null)
> 
>>> ipv4
> 
>>>
> 
>>> 5.5.5.5
> 
>>>
> 
>>> [2020/05/26 04:40:27:6401] I: lws_client_conn_wait_timeout: connect
> 
>>> wait timeout has fired
> 
>>>
> 
>>> [2020/05/26 04:40:27:6402] I: lws_client_connect_3_connect:
> 
>>> abandoning connect due to timeout
> 
>>>
> 
>>> [2020/05/26 04:40:27:6402] I: lws_client_connect_3_connect: (null)
> 
>>> ipv4
> 
>>>
> 
>>> 46.105.127.147
> 
>>>
> 
>>> [2020/05/26 04:40:27:6584] I: lws_client_connect_3_connect:
> 
>>> getsockopt
> 
>>>
> 
>>> check: conn OK
> 
>>>
> 
>>> [2020/05/26 04:40:27:6585] I: lws_client_connect_3_connect:
> 
>>> Connection started 0x2299660
> 
>>>
> 
>>> ie, it is doing what it is supposed to do.When you say, without
> 
>>> qualification
> 
>>>
> 
>>>>>  Latest code libwebsockets
> 
>>>
> 
>>>>> does not still work. Second Ip (and later ip)does still not try wait.
> 
>>>
> 
>>> this is adding to the confusion... it works fine on Linux.And it
> 
>>> worked fine there before yesterday's patch, which at least as far as
> 
>>> separating out the timeout control is also moving things forward in
> 
>>> the right direction.
> 
>>>
> 
>>> On Windows, I though I had figured out that its libc api always
> 
>>> reports the DNS in reverse order to the record, ie, the last 
>>> response
> 
>>> in the record is the first reported one.That is why on my existing
> 
>>> DNS test records, windows always magically "found" the correct 
>>> server
> 
>>> first so I could not test the bad responses.But it seems whatever
> 
>>> it's doing is more complicated, with 4 x test subdomains I could
> 
>>> usually get one of them to try the bad ones first and test it though.
> 
>>>
> 
>>> I think I solved the problem and again updated the original patch,
> 
>>> please give master a try.
> 
>>>
> 
>>> -Andy
> 
>>>
> 
>>>> -Andy
> 
>>>
> 
>>>>
> 
>>>
> 
>>>>>    
> 
>>>
> 
>>>>> -----邮件原件-----
> 
>>>
> 
>>>>> 发件人: andy at warmcat.com <mailto:andy at warmcat.com>
> <mailto:andy at warmcat.com>
> 
>>>>> [mailto:andy at warmcat.com]
> 
>>>
> 
>>>>> 发送时间: 2020年5月26日3:17
> 
>>>
> 
>>>>> 收件人: huangkaicheng <huangkaicheng at huawei.com
> 
>>> <mailto:huangkaicheng at huawei.com>>; libwebsockets
> 
>>>
> 
>>>>> <libwebsockets at ml.libwebsockets.org
> 
>>> <mailto:libwebsockets at ml.libwebsockets.org>>
> 
>>>
> 
>>>>> 抄送: Chenyake <chenyake at huawei.com <mailto:chenyake at huawei.com
> <mailto:chenyake at huawei.com%20%3cmailto:chenyake at huawei.com>>>
> 
>>>
> 
>>>>> 主题: Re: 回复:[Libwebsockets] 答复: A question about libwebsockets dns
> 
>>>
> 
>>>>> resolve
> 
>>>
> 
>>>>>
> 
>>>
> 
>>>>>
> 
>>>
> 
>>>>>
> 
>>>
> 
>>>>> On May 25, 2020 11:04:00 AM UTC, huangkaicheng
> 
>>>
> 
>>>>> <huangkaicheng at huawei.com <mailto:huangkaicheng at huawei.com
> <mailto:huangkaicheng at huawei.com%20%3cmailto:huangkaicheng at huawei.com>
> >>
> wrote:
> 
>>>
> 
>>>>>> Hi,
> 
>>>
> 
>>>>>> I mean that the first resolved ip, it can wait connect until time out.
> 
>>>
> 
>>>>>> And but second,third,and other it will not. It is not just 127.0.x.
> 
>>>
> 
>>>>> you
> 
>>>
> 
>>>>>> can change to make sure (onevalid.bogus.warmcat.com) dns resolve
> 
>>>
> 
>>>>>> like (46.105.127.147(only can reach) , 2.3.5.4, 10.173.16.193,5.45.86.4).
> 
>>>
> 
>>>>>> other Ip(unreachable it should wait connect util time out ).in
> 
>>>>>> last
> 
>>>
> 
>>>>> old
> 
>>>
> 
>>>>>> version(a week ago), it will wait some time rather than finish
> 
>>>
> 
>>>>> quickly.
> 
>>>
> 
>>>>>> It is quite different with last version(a week ago).
> 
>>>
> 
>>>>>
> 
>>>
> 
>>>>> I looked at this earlier and pushed a patch adding a separate
> 
>>>
> 
>>>>> configurable timeout for the whole connect (default 20s) and
> 
>>>>> reduced
> 
>>>
> 
>>>>> the timeout for individual dns connect attempts to default to 5s.
> 
>>>
> 
>>>>>
> 
>>>
> 
>>>>> https://libwebsockets.org/git/libwebsockets/commit?id=9f4c19fd9d9d
>>>>> e
> 
>>>>> d
> 
>>>>> e
> 
>>>
> 
>>>>> 1ec856ce4774d46cb4b79b26c
> 
>>>
> 
>>>>>
> 
>>>
> 
>>>>> It seems to work as before on Linux, on windows I cannot control
> 
>>>>> the
> 
>>>
> 
>>>>> dns ordering, both my test dns records 'just work' each time for
> 
>>>
> 
>>>>> whatever reason, 127.xxx is never tried.
> 
>>>
> 
>>>>>
> 
>>>
> 
>>>>> -Andy
> 
>>>
> 
>>>>>
> 
>>>
> 
>>>>>>
> 
>>>
> 
>>>>>> -----邮件原件-----
> 
>>>
> 
>>>>>> 发件人: Andy Green [mailto:andy at warmcat.com]
> 
>>>
> 
>>>>>> 发送时间: 2020年5月25日17:03
> 
>>>
> 
>>>>>> 收件人: huangkaicheng <huangkaicheng at huawei.com
> 
>>> <mailto:huangkaicheng at huawei.com>>; libwebsockets
> 
>>>
> 
>>>>>> <libwebsockets at ml.libwebsockets.org
> 
>>> <mailto:libwebsockets at ml.libwebsockets.org>>
> 
>>>
> 
>>>>>> 抄送: Chenyake <chenyake at huawei.com <mailto:chenyake at huawei.com
> <mailto:chenyake at huawei.com%20%3cmailto:chenyake at huawei.com>>>
> 
>>>
> 
>>>>>> 主题: Re: 回复:[Libwebsockets] 答复: A question about libwebsockets dns
> 
>>>
> 
>>>>>> resolve
> 
>>>
> 
>>>>>>
> 
>>>
> 
>>>>>>
> 
>>>
> 
>>>>>>
> 
>>>
> 
>>>>>> On 5/25/20 9:31 AM, huangkaicheng wrote:
> 
>>>
> 
>>>>>>> Hi ,
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>>    I use test-client project in websockes previous. And it is
> 
>>>
> 
>>>>>>> not
> 
>>>
> 
>>>>>
> 
>>>
> 
>>>>>>> my code. it is about your code in your project.
> 
>>>
> 
>>>>>>
> 
>>>
> 
>>>>>> OK, fair enough.
> 
>>>
> 
>>>>>>
> 
>>>
> 
>>>>>> But what I mean is please make it easy for me to reproduce your
> 
>>>
> 
>>>>>> problem, ie minimal example, if a diff, give me the diff, and 
>>>>>> give
> 
>>>
> 
>>>>>> me the commandline.Then I can know if I can spare a few minutes,
> 
>>>>>> I
> 
>>>
> 
>>>>>> can stop what I am doing and look at it (and I know immediately
> 
>>>>>> that
> 
>>>
> 
>>>>>> it is
> 
>>>
> 
>>>>>
> 
>>>
> 
>>>>>> about a minimal example, which makes me much more want to stop 
>>>>>> and
> 
>>>
> 
>>>>>> look).
> 
>>>
> 
>>>>>>
> 
>>>
> 
>>>>>> As Jaco says I am not sure if it just confuses the issue with the
> 
>>>
> 
>>>>>> "timedout" log.On some platforms, 127.0.0.x port closed acts
> 
>>>>>> like
> 
>>>
> 
>>>>>> closed and send you a FIN, on other platforms (IIRC OSX) it acts
> 
>>>
> 
>>>>>> like it was DROPped and waits.If on windows platform it resets
> 
>>>>>> the
> 
>>>
> 
>>>>>> connection, like on Linux, it will not wait around and just fail
> 
>>>
> 
>>>>>> immediately, the log may not reflect the reality of why it gave 
>>>>>> up
> 
>>>
> 
>>>>>> then, which is not ideal but not really a crisis.
> 
>>>
> 
>>>>>>
> 
>>>
> 
>>>>>> -Andy
> 
>>>
> 
>>>>>>
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>> imap://andy@warmcat.com:993/fetch%3EUID%3E.INBOX%3E126618?header=
>>>>>> q
> 
>>>>>> u
> 
>>>>>> o
> 
>>>
> 
>>>>>> teb ody&part=1.1.3&filename=image002.png
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>> mkdir build
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>> cd build
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>> cmake .. -DLWS_WITH_SSL=0
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>> cmake --build . --config DEBUG
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>>    And I use
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>> imap://andy@warmcat.com:993/fetch%3EUID%3E.INBOX%3E126618?header=
>>>>>> q
> 
>>>>>> u
> 
>>>>>> o
> 
>>>
> 
>>>>>> teb ody&part=1.1.2&filename=image001.png
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>>    If I want to use minimal-ws-client, how can I build it
> 
>>>
> 
>>>>>> success. I
> 
>>>
> 
>>>>>>> build it failed.
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>> -----邮件原件-----
> 
>>>
> 
>>>>>>> 发件人: Andy Green [mailto:andy at warmcat.com]
> 
>>>
> 
>>>>>>> 发送时间: 2020年5月25日15:50
> 
>>>
> 
>>>>>>> 收件人: huangkaicheng <huangkaicheng at huawei.com
> 
>>> <mailto:huangkaicheng at huawei.com>>; libwebsockets
> 
>>>
> 
>>>>>>> <libwebsockets at ml.libwebsockets.org
> 
>>> <mailto:libwebsockets at ml.libwebsockets.org>>
> 
>>>
> 
>>>>>>> 抄送: Chenyake <chenyake at huawei.com <mailto:chenyake at huawei.com
> <mailto:chenyake at huawei.com%20%3cmailto:chenyake at huawei.com>>>
> 
>>>
> 
>>>>>>> 主题: Re: 回复:[Libwebsockets] 答复: A question about libwebsockets 
>>>>>>> dns
> 
>>>
> 
>>>>>>> resolve
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>> On 5/25/20 8:35 AM, huangkaicheng wrote:
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>>> Hi,
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>>>
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>>>  there is still something wrong with latest code. Why try to
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>>> connect 127.0.0.1, 127.0.0.3, 127.0.0.2 time out so quickly?
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>> Can you please show me this using the lws minimal examples 
>>>>>>> rather
> 
>>>
> 
>>>>>> than
> 
>>>
> 
>>>>>>> your code?That way I can try the same thing quickly and have 
>>>>>>> some
> 
>>>
> 
>>>>>>> reason to think we are looking at the same problem, and if I
> 
>>>>>>> change
> 
>>>
> 
>>>>>>> something, that it solves the problem.
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>>>>> -Andy
> 
>>>
> 
>>>>>>>
> 
>>>
> 
>>>> _______________________________________________
> 
>>>
> 
>>>> Libwebsockets mailing list
> 
>>>
> 
>>>> Libwebsockets at ml.libwebsockets.org
> <mailto:Libwebsockets at ml.libwebsockets.org>
> 
>>> <mailto:Libwebsockets at ml.libwebsockets.org>
> 
>>>
> 
>>>> https://libwebsockets.org/mailman/listinfo/libwebsockets
> 
>>>
> 
>>>>
> 
>>>
> 


More information about the Libwebsockets mailing list