curl_easy_perform hangs in poll

Wyatt Ayers via curl-library <[email protected]> Thu, 4 Jun 2026 15:30:38 -0700
Newsgroups gmane.comp.web.curl.library
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------anJDk5MRU8X0aXO3rPwzgEVy
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hello,

I'm looking into an issue I am observing when running curl_easy_perform i=
n a loop. After some amount of iterations, the program becomes stuck insi=
de of poll.=20

The stack trace looks like this with gdb:
#0  0x00007f9b88b25e84 in poll () from /lib64/libc.so.6
#1  0x000000000047b1fd in Curl_poll (ufds=3D0x7ffdd0fcd6d0, nfds=3D2, tim=
eout_ms=3D1000) at select.c:313
#2  0x000000000046fbc9 in multi_wait (multi=3D0x319033c8, extra_fds=3D0x0=
, extra_nfds=3D0, timeout_ms=3D1000, ret=3D0x0, extrawait=3Dtrue, use_wak=
eup=3Dtrue) at multi.c:1366
#3  0x000000000046fe65 in curl_multi_poll (multi=3D0x319033c8, extra_fds=3D=
0x0, extra_nfds=3D0, timeout_ms=3D1000, ret=3D0x0) at multi.c:1509
#4  0x0000000000461bfb in easy_transfer (multi=3D0x319033c8) at easy.c:69=
8
#5  0x0000000000461e14 in easy_perform (data=3D0x31900e48, events=3Dfalse=
) at easy.c:796
#6  0x0000000000461e4c in curl_easy_perform (data=3D0x31900e48) at easy.c=
:815
#7  0x0000000000460d19 in main (argc=3D1, argv=3D0x7ffdd0fcd9a8) at curl_=
test.c:24

And with strace:
recvfrom(6, "g}\10\341C=3D\7\260\336\256I&\1\362\225CBw\37\200\17\272~W\2=
61\273/E/hGr"..., 16384, 0, NULL, NULL) =3D 1448
recvfrom(6, 0x1783298, 16384, 0, NULL, NULL) =3D -1 EAGAIN (Resource temp=
orarily unavailable)
poll([{fd=3D6, events=3DPOLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) =3D=
 0 (Timeout)
poll([{fd=3D6, events=3DPOLLIN}, {fd=3D3, events=3DPOLLIN}], 2, 1000) =3D=
 0 (Timeout)
recvfrom(6, 0x1783298, 16384, 0, NULL, NULL) =3D -1 EAGAIN (Resource temp=
orarily unavailable)
poll([{fd=3D6, events=3DPOLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) =3D=
 0 (Timeout)
poll([{fd=3D6, events=3DPOLLIN}, {fd=3D3, events=3DPOLLIN}], 2, 1000) =3D=
 1 ([{fd=3D6, revents=3DPOLLIN}])
recvfrom(6, "\211\277\231@\240\373\367\330\212\214\317\233\37\212\201\246=
[\276{\375\214?\222K\317|\247\n~>b\230"..., 16384, 0, NULL, NULL) =3D 144=
8
recvfrom(6, 0x1783298, 16384, 0, NULL, NULL) =3D -1 EAGAIN (Resource temp=
orarily unavailable)
poll([{fd=3D6, events=3DPOLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) =3D=
 0 (Timeout)
poll([{fd=3D6, events=3DPOLLIN}, {fd=3D3, events=3DPOLLIN}], 2, 1000) =3D=
 0 (Timeout)
recvfrom(6, 0x1783298, 16384, 0, NULL, NULL) =3D -1 EAGAIN (Resource temp=
orarily unavailable)
poll([{fd=3D6, events=3DPOLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) =3D=
 0 (Timeout)
poll([{fd=3D6, events=3DPOLLIN}, {fd=3D3, events=3DPOLLIN}], 2, 1000) =3D=
 1 ([{fd=3D6, revents=3DPOLLIN}])
recvfrom(6, "ub\v\37\321\1\6\317\217\305c\221K\306\177\243\315\261\4\337\=
276|\354*\315\201\355\316\257\306'D"..., 16384, 0, NULL, NULL) =3D 1448
recvfrom(6, 0x1783298, 16384, 0, NULL, NULL) =3D -1 EAGAIN (Resource temp=
orarily unavailable)
poll([{fd=3D6, events=3DPOLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) =3D=
 0 (Timeout)
poll([{fd=3D6, events=3DPOLLIN}, {fd=3D3, events=3DPOLLIN}], 2, 1000) =3D=
 0 (Timeout)=20

I've so far tested this with an FTP server via vsftpd v2.3.4 using curl v=
8.20. I tested on a fedora linux machine I initially thought this was rel=
ated to my use of CURLOPT_FORBID_REUSE =3D 1, but I reproduced this behav=
ior using CURLOPT_FRESH_CONNECT =3D 1 instead (i.e. FRESH_CONNECT =3D 1, =
FORBID_REUSE =3D 0). I can't say for certain whether or not this is a bug=
 with my ancient FTP server. I can get around the hang by using a nonzero=
 CURLOPT_TIMEOUT, though this is not addressing the root cause. I've incl=
uded the source of a simple C program to reproduce this and a logfile pro=
duced with CURLOPT_VERBOSE. After a while of being in this state, I obser=
ve with netstat that the client machine has a socket to port 21 on the se=
rver machine that is in a CLOSE_WAIT state. Is this a problem seen elsewh=
ere? I'm curious if this is a misuse of the curl_easy API and if I ought =
to use the curl_multi API for this "many repeat transfers" task. I've tri=
mmed the curl log to 100 lines for the sake of brevity.=20

Thanks,
Wyatt

--------------anJDk5MRU8X0aXO3rPwzgEVy
Content-Type: text/x-csrc; charset=UTF-8; name="curl-test.c"
Content-Disposition: attachment; filename="curl-test.c"
Content-Transfer-Encoding: base64

I2luY2x1ZGUgPGN1cmwvY3VybC5oPgojaW5jbHVkZSA8aW9zdHJlYW0+CgpzaXplX3Qgd3Jp
dGVfY2FsbGJhY2soY2hhciAqYnVmZmVyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5pdGVtcywg
dm9pZCAqb3V0c3RyZWFtKSB7CiAgIHJldHVybiBuaXRlbXM7Cn0KCmludCBtYWluKGludCBh
cmdjLCBjaGFyKiogYXJndikgewogICBjdXJsX2dsb2JhbF9pbml0KENVUkxfR0xPQkFMX0FM
TCk7CgogICBDVVJMICpjdXJsID0gY3VybF9lYXN5X2luaXQoKTsKICAgQ1VSTGNvZGUgcmVz
dWx0OwogICBpZiAoY3VybCkgewogICAgICAvLyBUaGUgRlRQIHNlcnZlciBpbiB0aGlzIGNh
c2UgaXMgdnNmdHBkIHYKICAgICAgY3VybF9lYXN5X3NldG9wdChjdXJsLCBDVVJMT1BUX1VS
TCwgImZ0cDovL3VzZXI6cGFzc0AxMC4wLjAuOC90ZXN0LWZpbGUtNTBNLmJpbiIpOwogICAg
ICBjdXJsX2Vhc3lfc2V0b3B0KGN1cmwsIENVUkxPUFRfVVBMT0FELCAwKTsKICAgICAgY3Vy
bF9lYXN5X3NldG9wdChjdXJsLCBDVVJMT1BUX0lOVEVSRkFDRSwgImV0aDEiKTsKICAgICAg
Y3VybF9lYXN5X3NldG9wdChjdXJsLCBDVVJMT1BUX0ZPUkJJRF9SRVVTRSwgMSk7CiAgICAg
IGN1cmxfZWFzeV9zZXRvcHQoY3VybCwgQ1VSTE9QVF9XUklURUZVTkNUSU9OLCAmd3JpdGVf
Y2FsbGJhY2spOwogICAgICBjdXJsX2Vhc3lfc2V0b3B0KGN1cmwsIENVUkxPUFRfRlRQX1VT
RV9FUFNWLCAxKTsKICAgICAgY3VybF9lYXN5X3NldG9wdChjdXJsLCBDVVJMT1BUX1ZFUkJP
U0UsIDEpOwoKICAgICAgc3RkOjpjb3V0IDw8ICJGaW5pc2hlZCBzZXR0aW5nIGN1cmwgb3B0
aW9ucyFcbiI7CiAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIHN0ZDo6Y291dCA8PCAi
VG9wIG9mIHdoaWxlIGxvb3AhXG4iOwogICAgICAgICAKICAgICAgICAgLy8gQWZ0ZXIgd2hh
dCBhcHBlYXJzIHRvIGJlIGEgbm9uLWRldGVybWluaXN0aWMgbnVtYmVyIG9mIGl0ZXJhdGlv
bnMsCiAgICAgICAgIC8vIGN1cmxfZWFzeV9wZXJmb3JtIGhhbmdzLgogICAgICAgICAvLwog
ICAgICAgICAvLyBUaGUgc3RhY2sgdHJhY2UgYXZhaWxhYmxlIHdpdGggZ2RiIC1wIHNob3dz
IHRoaXM6CiAgICAgICAgIC8vICMwICAweDAwMDA3ZjliODhiMjVlODQgaW4gcG9sbCAoKSBm
cm9tIC9saWI2NC9saWJjLnNvLjYKICAgICAgICAgLy8gIzEgIDB4MDAwMDAwMDAwMDQ3YjFm
ZCBpbiBDdXJsX3BvbGwgKHVmZHM9MHg3ZmZkZDBmY2Q2ZDAsIG5mZHM9MiwgdGltZW91dF9t
cz0xMDAwKSBhdCBzZWxlY3QuYzozMTMKICAgICAgICAgLy8gIzIgIDB4MDAwMDAwMDAwMDQ2
ZmJjOSBpbiBtdWx0aV93YWl0IChtdWx0aT0weDMxOTAzM2M4LCBleHRyYV9mZHM9MHgwLCBl
eHRyYV9uZmRzPTAsIHRpbWVvdXRfbXM9MTAwMCwgcmV0PTB4MCwgZXh0cmF3YWl0PXRydWUs
IHVzZV93YWtldXA9dHJ1ZSkgYXQgbXVsdGkuYzoxMzY2CiAgICAgICAgIC8vICMzICAweDAw
MDAwMDAwMDA0NmZlNjUgaW4gY3VybF9tdWx0aV9wb2xsIChtdWx0aT0weDMxOTAzM2M4LCBl
eHRyYV9mZHM9MHgwLCBleHRyYV9uZmRzPTAsIHRpbWVvdXRfbXM9MTAwMCwgcmV0PTB4MCkg
YXQgbXVsdGkuYzoxNTA5CiAgICAgICAgIC8vICM0ICAweDAwMDAwMDAwMDA0NjFiZmIgaW4g
ZWFzeV90cmFuc2ZlciAobXVsdGk9MHgzMTkwMzNjOCkgYXQgZWFzeS5jOjY5OAogICAgICAg
ICAvLyAjNSAgMHgwMDAwMDAwMDAwNDYxZTE0IGluIGVhc3lfcGVyZm9ybSAoZGF0YT0weDMx
OTAwZTQ4LCBldmVudHM9ZmFsc2UpIGF0IGVhc3kuYzo3OTYKICAgICAgICAgLy8gIzYgIDB4
MDAwMDAwMDAwMDQ2MWU0YyBpbiBjdXJsX2Vhc3lfcGVyZm9ybSAoZGF0YT0weDMxOTAwZTQ4
KSBhdCBlYXN5LmM6ODE1CiAgICAgICAgIC8vICM3ICAweDAwMDAwMDAwMDA0NjBkMTkgaW4g
bWFpbiAoYXJnYz0xLCBhcmd2PTB4N2ZmZGQwZmNkOWE4KSBhdCBjdXJsX3Rlc3QuYzoyNAog
ICAgICAgICAvLwogICAgICAgICAvLyBzdHJhY2UgLXAgc2hvd3MgdGhpczoKICAgICAgICAg
Ly8gc3RyYWNlOiBQcm9jZXNzIDExMDQyNSBhdHRhY2hlZAogICAgICAgICAvLyByZXN0YXJ0
X3N5c2NhbGwoPC4uLiByZXN1bWluZyBpbnRlcnJ1cHRlZCByZWFkIC4uLj4pID0gMQogICAg
ICAgICAvLyByZWN2ZnJvbSg2LCAiZ31cMTBcMzQxQz1cN1wyNjBcMzM2XDI1NkkmXDFcMzYy
XDIyNUNCd1wzN1wyMDBcMTdcMjcyfldcMjYxXDI3My9FL2hHciIuLi4sIDE2Mzg0LCAwLCBO
VUxMLCBOVUxMKSA9IDE0NDgKICAgICAgICAgLy8gcmVjdmZyb20oNiwgMHgxNzgzMjk4LCAx
NjM4NCwgMCwgTlVMTCwgTlVMTCkgPSAtMSBFQUdBSU4gKFJlc291cmNlIHRlbXBvcmFyaWx5
IHVuYXZhaWxhYmxlKQogICAgICAgICAvLyBwb2xsKFt7ZmQ9NiwgZXZlbnRzPVBPTExJTnxQ
T0xMUFJJfFBPTExSRE5PUk18UE9MTFJEQkFORH1dLCAxLCAwKSA9IDAgKFRpbWVvdXQpCiAg
ICAgICAgIC8vIHBvbGwoW3tmZD02LCBldmVudHM9UE9MTElOfSwge2ZkPTMsIGV2ZW50cz1Q
T0xMSU59XSwgMiwgMTAwMCkgPSAwIChUaW1lb3V0KQogICAgICAgICAvLyByZWN2ZnJvbSg2
LCAweDE3ODMyOTgsIDE2Mzg0LCAwLCBOVUxMLCBOVUxMKSA9IC0xIEVBR0FJTiAoUmVzb3Vy
Y2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUpCiAgICAgICAgIC8vIHBvbGwoW3tmZD02LCBl
dmVudHM9UE9MTElOfFBPTExQUkl8UE9MTFJETk9STXxQT0xMUkRCQU5EfV0sIDEsIDApID0g
MCAoVGltZW91dCkKICAgICAgICAgLy8gcG9sbChbe2ZkPTYsIGV2ZW50cz1QT0xMSU59LCB7
ZmQ9MywgZXZlbnRzPVBPTExJTn1dLCAyLCAxMDAwKSA9IDEgKFt7ZmQ9NiwgcmV2ZW50cz1Q
T0xMSU59XSkKICAgICAgICAgLy8gcmVjdmZyb20oNiwgIlwyMTFcMjc3XDIzMUBcMjQwXDM3
M1wzNjdcMzMwXDIxMlwyMTRcMzE3XDIzM1wzN1wyMTJcMjAxXDI0NltcMjc2e1wzNzVcMjE0
P1wyMjJLXDMxN3xcMjQ3XG5+PmJcMjMwIi4uLiwgMTYzODQsIDAsIE5VTEwsIE5VTEwpID0g
MTQ0OAogICAgICAgICAvLyByZWN2ZnJvbSg2LCAweDE3ODMyOTgsIDE2Mzg0LCAwLCBOVUxM
LCBOVUxMKSA9IC0xIEVBR0FJTiAoUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUp
CiAgICAgICAgIC8vIHBvbGwoW3tmZD02LCBldmVudHM9UE9MTElOfFBPTExQUkl8UE9MTFJE
Tk9STXxQT0xMUkRCQU5EfV0sIDEsIDApID0gMCAoVGltZW91dCkKICAgICAgICAgLy8gcG9s
bChbe2ZkPTYsIGV2ZW50cz1QT0xMSU59LCB7ZmQ9MywgZXZlbnRzPVBPTExJTn1dLCAyLCAx
MDAwKSA9IDAgKFRpbWVvdXQpCiAgICAgICAgIC8vIHJlY3Zmcm9tKDYsIDB4MTc4MzI5OCwg
MTYzODQsIDAsIE5VTEwsIE5VTEwpID0gLTEgRUFHQUlOIChSZXNvdXJjZSB0ZW1wb3Jhcmls
eSB1bmF2YWlsYWJsZSkKICAgICAgICAgLy8gcG9sbChbe2ZkPTYsIGV2ZW50cz1QT0xMSU58
UE9MTFBSSXxQT0xMUkROT1JNfFBPTExSREJBTkR9XSwgMSwgMCkgPSAwIChUaW1lb3V0KQog
ICAgICAgICAvLyBwb2xsKFt7ZmQ9NiwgZXZlbnRzPVBPTExJTn0sIHtmZD0zLCBldmVudHM9
UE9MTElOfV0sIDIsIDEwMDApID0gMSAoW3tmZD02LCByZXZlbnRzPVBPTExJTn1dKQogICAg
ICAgICAvLyByZWN2ZnJvbSg2LCAidWJcdlwzN1wzMjFcMVw2XDMxN1wyMTdcMzA1Y1wyMjFL
XDMwNlwxNzdcMjQzXDMxNVwyNjFcNFwzMzdcMjc2fFwzNTQqXDMxNVwyMDFcMzU1XDMxNlwy
NTdcMzA2J0QiLi4uLCAxNjM4NCwgMCwgTlVMTCwgTlVMTCkgPSAxNDQ4CiAgICAgICAgIC8v
IHJlY3Zmcm9tKDYsIDB4MTc4MzI5OCwgMTYzODQsIDAsIE5VTEwsIE5VTEwpID0gLTEgRUFH
QUlOIChSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZSkKICAgICAgICAgLy8gcG9s
bChbe2ZkPTYsIGV2ZW50cz1QT0xMSU58UE9MTFBSSXxQT0xMUkROT1JNfFBPTExSREJBTkR9
XSwgMSwgMCkgPSAwIChUaW1lb3V0KQogICAgICAgICAvLyBwb2xsKFt7ZmQ9NiwgZXZlbnRz
PVBPTExJTn0sIHtmZD0zLCBldmVudHM9UE9MTElOfV0sIDIsIDEwMDApID0gMCAoVGltZW91
dCkgICAgICAKCiAgICAgICAgIHJlc3VsdCA9IGN1cmxfZWFzeV9wZXJmb3JtKGN1cmwpOwog
ICAgICAgICBpZiAocmVzdWx0ID09IENVUkxFX09LKSB7CiAgICAgICAgICAgIHN0ZDo6Y291
dCA8PCAiZG9uZSB3aXRoIGN1cmxfZWFzeV9wZXJmb3JtIVxuIjsKICAgICAgICAgfQogICAg
ICAgICBlbHNlIHN0ZDo6Y291dCA8PCAiZ290IHNvbWUgZXJyb3Igd2l0aCBjdXJsOiAiIDw8
IHJlc3VsdCA8PCAnXG4nOwogICAgICB9CiAgICAgIHJldHVybiAwOwogICB9CiAgIGVsc2Ug
cmV0dXJuIDE7Cn0KCg==
--------------anJDk5MRU8X0aXO3rPwzgEVy
Content-Type: text/plain; charset=UTF-8; name="curl_log_trimmed.txt"
Content-Disposition: attachment; filename="curl_log_trimmed.txt"
Content-Transfer-Encoding: base64

KiBDdXJsX211bHRpX2Nsb3NlZCwgZmQ9NSBlbnRyeSBpcyAobmlsKQoqIFNUQVRFOiBJTklU
ID0+IFNFVFVQIGhhbmRsZSAweDEyZDIyZTQ4OyBsaW5lIDI2NTMKKiBTVEFURTogU0VUVVAg
PT4gQ09OTkVDVCBoYW5kbGUgMHgxMmQyMmU0ODsgbGluZSAyNjY5CiogQWRkZWQgY29ubmVj
dGlvbiAyNzI2MC4gVGhlIGNhY2hlIG5vdyBjb250YWlucyAxIG1lbWJlcnMKKiBIb3N0bmFt
ZSAxMC4wLjAuOCB3YXMgZm91bmQgaW4gRE5TIGNhY2hlCiogU1RBVEU6IENPTk5FQ1QgPT4g
Q09OTkVDVElORyBoYW5kbGUgMHgxMmQyMmU0ODsgbGluZSAyNTg0CiogICBUcnlpbmcgMTAu
MC4wLjg6MjEuLi4KKiBzb2NrZXQgc3VjY2Vzc2Z1bGx5IGJvdW5kIHRvIGludGVyZmFjZSAn
ZXRoMScKKiBDb25uZWN0ZWQgdG8gMTAuMC4wLjggKDEwLjAuMC44KSBwb3J0IDIxCiogU1RB
VEU6IENPTk5FQ1RJTkcgPT4gUFJPVE9DT05ORUNUIGhhbmRsZSAweDEyZDIyZTQ4OyBsaW5l
IDI3MDcKKiBTVEFURTogUFJPVE9DT05ORUNUID0+IFBST1RPQ09OTkVDVElORyBoYW5kbGUg
MHgxMmQyMmU0ODsgbGluZSAyNzMyCjwgMjIwICh2c0ZUUGQgMi4zLjQpDQo+IFVTRVIgbGFu
Zm9yZ2UNCjwgMzMxIFBsZWFzZSBzcGVjaWZ5IHRoZSBwYXNzd29yZC4NCj4gUEFTUyBsYW5m
b3JnZQ0KPCAyMzAgTG9naW4gc3VjY2Vzc2Z1bC4NCj4gUFdEDQo8IDI1NyAiL2hvbWUvbGFu
Zm9yZ2UiDQoqIEVudHJ5IHBhdGggaXMgJy9ob21lL2xhbmZvcmdlJwoqIFNUQVRFOiBQUk9U
T0NPTk5FQ1RJTkcgPT4gRE8gaGFuZGxlIDB4MTJkMjJlNDg7IGxpbmUgMjc1MwoqIFJlcXVl
c3QgaGFzIHNhbWUgcGF0aCBhcyBwcmV2aW91cyB0cmFuc2Zlcgo+IEVQU1YNCiogQ29ubmVj
dCBkYXRhIHN0cmVhbSBwYXNzaXZlbHkKKiBTVEFURTogRE8gPT4gRE9JTkcgaGFuZGxlIDB4
MTJkMjJlNDg7IGxpbmUgMjMzNQo8IDIyOSBFbnRlcmluZyBFeHRlbmRlZCBQYXNzaXZlIE1v
ZGUgKHx8fDI4Mjk3fCkuDQoqIENvbm5lY3RpbmcgdG8gMTAuMC4wLjggKDEwLjAuMC44KSBw
b3J0IDI4Mjk3CiogU1RBVEU6IERPSU5HID0+IERPSU5HX01PUkUgaGFuZGxlIDB4MTJkMjJl
NDg7IGxpbmUgMjc3NQoqICAgVHJ5aW5nIDEwLjAuMC44OjI4Mjk3Li4uCiogc29ja2V0IHN1
Y2Nlc3NmdWxseSBib3VuZCB0byBpbnRlcmZhY2UgJ2V0aDEnCiogQ29ubmVjdGVkIDJuZCBj
b25uZWN0aW9uIHRvIDEwLjAuMC44IHBvcnQgMjgyOTcKPiBUWVBFIEkNCjwgMjAwIFN3aXRj
aGluZyB0byBCaW5hcnkgbW9kZS4NCj4gU0laRSB0ZXN0LWZpbGUtNTBNLmJpbg0KPCAyMTMg
NTI0Mjg4MDANCj4gUkVUUiB0ZXN0LWZpbGUtNTBNLmJpbg0KPCAxNTAgT3BlbmluZyBCSU5B
UlkgbW9kZSBkYXRhIGNvbm5lY3Rpb24gZm9yIHRlc3QtZmlsZS01ME0uYmluICg1MjQyODgw
MCBieXRlcykuDQoqIE1heGRvd25sb2FkID0gLTEKKiBHZXR0aW5nIGZpbGUgd2l0aCBzaXpl
OiA1MjQyODgwMAoqIFNUQVRFOiBET0lOR19NT1JFID0+IERJRCBoYW5kbGUgMHgxMmQyMmU0
ODsgbGluZSAyNzk5CiogU1RBVEU6IERJRCA9PiBQRVJGT1JNSU5HIGhhbmRsZSAweDEyZDIy
ZTQ4OyBsaW5lIDI4MjQKKiBzaHV0ZG93biBzdGFydCBvbiBzZWNvbmRhcnkgY29ubmVjdGlv
bgoqIHNlbmRyZWN2X2RsOiB3ZSBhcmUgZG9uZQoqIG5yZWFkIDw9IDAsIHNlcnZlciBjbG9z
ZWQgY29ubmVjdGlvbiwgYmFpbGluZwoqIGFib3J0IHVwbG9hZAoqIFNUQVRFOiBQRVJGT1JN
SU5HID0+IERPTkUgaGFuZGxlIDB4MTJkMjJlNDg7IGxpbmUgMjI1OAoqIG11bHRpX2RvbmVb
RE9ORV06IHN0YXR1czogMCBwcmVtOiAwIGRvbmU6IDAKKiBSZW1lbWJlcmluZyB3ZSBhcmUg
aW4gZGlyICIiCiogQ3VybF9tdWx0aV9jbG9zZWQsIGZkPTYgbXVsdGkgaXMgMHgxMmQyNGZi
OAoqIEN1cmxfbXVsdGlfY2xvc2VkLCBmZD02IGVudHJ5IGlzIChuaWwpCjwgMjI2IFRyYW5z
ZmVyIGNvbXBsZXRlLg0KKiBtdWx0aV9kb25lLCBub3QgcmV1c2luZyBjb25uZWN0aW9uPTI3
MjYwLCBmb3JiaWQ9MSwgY2xvc2U9MCwgcHJlbWF0dXJlPTAsIGNvbm5fbXVsdGlwbGV4PTAK
KiBDdXJsX2Rpc2Nvbm5lY3QoY29ubiAjMjcyNjAsIGFib3J0ZWQ9MCkKKiBzaHV0dGluZyBk
b3duIGNvbm5lY3Rpb24gIzI3MjYwCiogY29ubmVjdGlvbiAjMjcyNjAsIHNodXRkb3duIHBy
b3RvY29sIGhhbmRsZXIgKGFib3J0ZWQ9MCkKPiBRVUlUDQo8IDIyMSBHb29kYnllLg0KKiBz
aHV0ZG93biBzdGFydCBvbiBjb25uZWN0aW9uCiogW0NDQUNIRV0gc2h1dGRvd24gIzI3MjYw
LCBkb25lPTEKKiBbQ0NBQ0hFXSBjbG9zaW5nICMyNzI2MAoqIEN1cmxfbXVsdGlfY2xvc2Vk
LCBmZD01IG11bHRpIGlzIDB4MTJkMjRmYjgKKiBDdXJsX211bHRpX2Nsb3NlZCwgZmQ9NSBl
bnRyeSBpcyAobmlsKQoqIFNUQVRFOiBJTklUID0+IFNFVFVQIGhhbmRsZSAweDEyZDIyZTQ4
OyBsaW5lIDI2NTMKKiBTVEFURTogU0VUVVAgPT4gQ09OTkVDVCBoYW5kbGUgMHgxMmQyMmU0
ODsgbGluZSAyNjY5CiogQWRkZWQgY29ubmVjdGlvbiAyNzI2MS4gVGhlIGNhY2hlIG5vdyBj
b250YWlucyAxIG1lbWJlcnMKKiBIb3N0bmFtZSAxMC4wLjAuOCB3YXMgZm91bmQgaW4gRE5T
IGNhY2hlCiogU1RBVEU6IENPTk5FQ1QgPT4gQ09OTkVDVElORyBoYW5kbGUgMHgxMmQyMmU0
ODsgbGluZSAyNTg0CiogICBUcnlpbmcgMTAuMC4wLjg6MjEuLi4KKiBzb2NrZXQgc3VjY2Vz
c2Z1bGx5IGJvdW5kIHRvIGludGVyZmFjZSAnZXRoMScKKiBDb25uZWN0ZWQgdG8gMTAuMC4w
LjggKDEwLjAuMC44KSBwb3J0IDIxCiogU1RBVEU6IENPTk5FQ1RJTkcgPT4gUFJPVE9DT05O
RUNUIGhhbmRsZSAweDEyZDIyZTQ4OyBsaW5lIDI3MDcKKiBTVEFURTogUFJPVE9DT05ORUNU
ID0+IFBST1RPQ09OTkVDVElORyBoYW5kbGUgMHgxMmQyMmU0ODsgbGluZSAyNzMyCjwgMjIw
ICh2c0ZUUGQgMi4zLjQpDQo+IFVTRVIgbGFuZm9yZ2UNCjwgMzMxIFBsZWFzZSBzcGVjaWZ5
IHRoZSBwYXNzd29yZC4NCj4gUEFTUyBsYW5mb3JnZQ0KPCAyMzAgTG9naW4gc3VjY2Vzc2Z1
bC4NCj4gUFdEDQo8IDI1NyAiL2hvbWUvbGFuZm9yZ2UiDQoqIEVudHJ5IHBhdGggaXMgJy9o
b21lL2xhbmZvcmdlJwoqIFNUQVRFOiBQUk9UT0NPTk5FQ1RJTkcgPT4gRE8gaGFuZGxlIDB4
MTJkMjJlNDg7IGxpbmUgMjc1MwoqIFJlcXVlc3QgaGFzIHNhbWUgcGF0aCBhcyBwcmV2aW91
cyB0cmFuc2Zlcgo+IEVQU1YNCiogQ29ubmVjdCBkYXRhIHN0cmVhbSBwYXNzaXZlbHkKKiBT
VEFURTogRE8gPT4gRE9JTkcgaGFuZGxlIDB4MTJkMjJlNDg7IGxpbmUgMjMzNQo8IDIyOSBF
bnRlcmluZyBFeHRlbmRlZCBQYXNzaXZlIE1vZGUgKHx8fDUzMDA0fCkuDQoqIENvbm5lY3Rp
bmcgdG8gMTAuMC4wLjggKDEwLjAuMC44KSBwb3J0IDUzMDA0CiogU1RBVEU6IERPSU5HID0+
IERPSU5HX01PUkUgaGFuZGxlIDB4MTJkMjJlNDg7IGxpbmUgMjc3NQoqICAgVHJ5aW5nIDEw
LjAuMC44OjUzMDA0Li4uCiogc29ja2V0IHN1Y2Nlc3NmdWxseSBib3VuZCB0byBpbnRlcmZh
Y2UgJ2V0aDEnCiogQ29ubmVjdGVkIDJuZCBjb25uZWN0aW9uIHRvIDEwLjAuMC44IHBvcnQg
NTMwMDQKPiBUWVBFIEkNCjwgMjAwIFN3aXRjaGluZyB0byBCaW5hcnkgbW9kZS4NCj4gU0la
RSB0ZXN0LWZpbGUtNTBNLmJpbg0KPCAyMTMgNTI0Mjg4MDANCj4gUkVUUiB0ZXN0LWZpbGUt
NTBNLmJpbg0KPCAxNTAgT3BlbmluZyBCSU5BUlkgbW9kZSBkYXRhIGNvbm5lY3Rpb24gZm9y
IHRlc3QtZmlsZS01ME0uYmluICg1MjQyODgwMCBieXRlcykuDQoqIE1heGRvd25sb2FkID0g
LTEKKiBHZXR0aW5nIGZpbGUgd2l0aCBzaXplOiA1MjQyODgwMAoqIFNUQVRFOiBET0lOR19N
T1JFID0+IERJRCBoYW5kbGUgMHgxMmQyMmU0ODsgbGluZSAyNzk5CiogU1RBVEU6IERJRCA9
PiBQRVJGT1JNSU5HIGhhbmRsZSAweDEyZDIyZTQ4OyBsaW5lIDI4MjQK

--------------anJDk5MRU8X0aXO3rPwzgEVy
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

--------------anJDk5MRU8X0aXO3rPwzgEVy--