kern/146845: [libc] close(2) returns error 54 (connection reset by peer) wrongly

Mikolaj Golub to.my.trociny at gmail.com
Sun May 30 08:10:10 UTC 2010


The following reply was made to PR kern/146845; it has been noted by GNATS.

From: Mikolaj Golub <to.my.trociny at gmail.com>
To: freebsd-net at FreeBSD.org
Cc: "Lavrentiev\, Anton \(NIH\/NLM\/NCBI\) \[C\]" <lavr at ncbi.nlm.nih.gov>,  "Robert N. M. Watson" <rwatson at FreeBSD.org>, bug-followup at FreeBSD.org
Subject: Re: kern/146845: [libc] close(2) returns error 54 (connection reset by peer) wrongly
Date: Sun, 30 May 2010 11:05:45 +0300

 --=-=-=
 
 On Fri, 28 May 2010 04:40:03 GMT Lavrentiev, Anton (NIH/NLM/NCBI) [C] wrote:
 
  >  IMHO, it is not, unfortunately, a solution:  it seems to clear ECONNRESET
  >  blindly and w/o distinguishing the situation when the remote end closes the
  >  connection prematurely (i.e. before acknowledging all data written from the
  >  local end) -- and that qualifies for the true "connection reset by peer"
  >  from close()...
 
 I did some experiments the results I would like to share here. The idea is
 following: the client sends data in one write() more then a win, while the
 server closes the connection without reading (sending RST on close). I also
 played with LINGER option. I have managed to get ECONNRESET only on write(),
 if the server sends RST before the client calls write(). In all other cases
 write()/close() returned without error. See the attachment for details. 
 
 So I think that with the workaround (ignore ECONNRESET returned by
 sodisconnect() in soclose()) we would not make the situation worse (while it
 fixed the issue with applications getting unexpectedly ECONNRESET after
 shutdown()/close() sequence).
 
 -- 
 Mikolaj Golub
 
 
 --=-=-=
 Content-Type: application/octet-stream
 Content-Disposition: attachment; filename=test_tcp_close.c
 Content-Transfer-Encoding: base64
 
 I2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8c3lzL3NvY2tldC5oPgojaW5jbHVkZSA8
 bmV0aW5ldC9pbi5oPgojaW5jbHVkZSA8c2lnbmFsLmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5j
 bHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgoj
 aW5jbHVkZSA8ZXJyLmg+CgojZGVmaW5lIEJVRlNJWkUJNDA5NjAwCiNkZWZpbmUgUE9SVAkyMzQ4
 MQojZGVmaW5lIFNMRUVQMQkwCiNkZWZpbmUgU0xFRVAyCTEKI3VuZGVmIExJTkdFUl9JTl9DTElF
 TlQKI3VuZGVmIExJTkdFUl9JTl9TRVJWRVIKCmludAptYWluKGludCBhcmdjLCBjaGFyICoqYXJn
 dikKewoJc3RydWN0IHNvY2thZGRyX2luIHNpbjsKCWludCBsaXN0ZW5mZCwgY29ubmZkLCBwaWQ7
 CgljaGFyIGJ1ZltCVUZTSVpFXTsKI2lmZGVmIExJTkdFUl9JTl9DTElFTlQKCXN0cnVjdCBsaW5n
 ZXIgbGluZzsKI2Vsc2UKI2lmZGVmIExJTkdFUl9JTl9TRVJWRVIKCXN0cnVjdCBsaW5nZXIgbGlu
 ZzsKI2VuZGlmCiNlbmRpZiAvKiBMSU5HRVJfSU5fQ0xJRU5UIHx8IExJTkdFUl9JTl9TRVJWRVIg
 Ki8KCQoJaWYgKChsaXN0ZW5mZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCkpIDwg
 MCkKCQllcnIoMSwgInNvY2tldCBlcnJvciIpOwoJbWVtc2V0KCZzaW4sIDAsIHNpemVvZihzaW4p
 KTsKCXNpbi5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKCXNpbi5zaW5fcG9ydCA9IGh0b25zKFBPUlQp
 OwoJaWYgKGJpbmQobGlzdGVuZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNpbiwKCQkgc2l6ZW9m
 KHNpbikpIDwgMCkKCQllcnIoMSwgImJpbmQgZXJyb3IiKTsKCWlmIChsaXN0ZW4obGlzdGVuZmQs
 IDEwMjQpIDwgMCkKCQllcnIoMSwgImxpc3RlbiBlcnJvciIpOwoJcGlkID0gZm9yaygpOwoJaWYg
 KHBpZCA9PSAtMSkKCQllcnIoMSwgImZvcmsgZXJyb3IiKTsKCWlmIChwaWQgIT0gMCkgewoJCWNs
 b3NlKGxpc3RlbmZkKTsKCQlzbGVlcCgxKTsKCQlpZiAoKGNvbm5mZCA9IHNvY2tldChBRl9JTkVU
 LCBTT0NLX1NUUkVBTSwgMCkpIDwgMCkgewoJCQkodm9pZClraWxsKHBpZCwgU0lHVEVSTSk7CgkJ
 CWVycigxLCAicGFyZW50OiBzb2NrZXQgZXJyb3IiKTsKCQl9CgkJaWYgKGNvbm5lY3QoY29ubmZk
 LCAoc3RydWN0IHNvY2thZGRyICopJnNpbiwKCQkJICAgIHNpemVvZihzaW4pKSA8IDApIHsKCQkJ
 KHZvaWQpa2lsbChwaWQsIFNJR1RFUk0pOwoJCQllcnIoMSwgInBhcmVudDogY29ubmVjdCBlcnJv
 ciIpOwoJCX0KI2lmZGVmIExJTkdFUl9JTl9DTElFTlQKCQlsaW5nLmxfb25vZmYgPSAxOwoJCWxp
 bmcubF9saW5nZXIgPSAxMDsKCQlpZiAoc2V0c29ja29wdChjb25uZmQsIFNPTF9TT0NLRVQsIFNP
 X0xJTkdFUiwKCQkJICAgICAgICZsaW5nLCBzaXplb2YobGluZykpIDwgMCkKCQkJZXJyKDEsICJw
 YXJlbnQ6IHNldHNvY2tvcHQgZXJyb3IiKTsKI2VuZGlmIC8qIExJTkdFUl9JTl9DTElFTlQgKi8K
 CQlzbGVlcChTTEVFUDEpOwoJCWlmICh3cml0ZShjb25uZmQsIGJ1ZiwgQlVGU0laRSkgPCAwKSB7
 CgkJCSh2b2lkKWtpbGwocGlkLCBTSUdURVJNKTsKCQkJZXJyKDEsICJwYXJlbnQ6IHdyaXRlIGVy
 cm9yIik7CgkJfQoJCWlmIChjbG9zZShjb25uZmQpIDwgMCkgewoJCQkodm9pZClraWxsKHBpZCwg
 U0lHVEVSTSk7CgkJCWVycigxLCAicGFyZW50OiBjbG9zZSBlcnJvciIpOwoJCX0KCX0gZWxzZSB7
 CgkJaWYgKChjb25uZmQgPSBhY2NlcHQobGlzdGVuZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKilOVUxM
 LAoJCQkJICAgICBOVUxMKSkgPCAwKQoJCQllcnIoMSwgImNoaWxkOiBhY2NlcHQgZXJyb3IiKTsK
 I2lmZGVmIExJTkdFUl9JTl9TRVJWRVIJCQoJCS8qCgkJICogU2VuZCBSU1Qgb24gY2xvc2UuCgkJ
 ICovCgkJbGluZy5sX29ub2ZmID0gMTsKCQlsaW5nLmxfbGluZ2VyID0gMDsJCQoJCWlmIChzZXRz
 b2Nrb3B0KGNvbm5mZCwgU09MX1NPQ0tFVCwgU09fTElOR0VSLAoJCQkgICAgICAgJmxpbmcsIHNp
 emVvZihsaW5nKSkgPCAwKQoJCQllcnIoMSwgImNoaWxkOiBzZXRzb2Nrb3B0IGVycm9yIik7CiNl
 bmRpZiAvKiBMSU5HRVJfSU5fU0VSVkVSICovCgkJc2xlZXAoU0xFRVAyKTsKCQlpZiAoY2xvc2Uo
 Y29ubmZkKSA8IDApCgkJCWVycigxLCAiY2hpbGQ6IGNsb3NlIGVycm9yIik7Cgl9CglleGl0KDAp
 Owp9CgojaWYgMAoKU0xFRVAxID0gMDsgU0xFRVAyID0gMDogTElOR0VSX0lOX1NFUlZFUjogcGFy
 ZW50OiB3cml0ZSBlcnJvcjogQ29ubmVjdGlvbiByZXNldCBieSBwZWVyCjAwOjAwOjAwLjAwMDAw
 MCBJUCAxMjcuMC4wLjEuMjM4NTEgPiAxMjcuMC4wLjEuMjM0ODE6IEZsYWdzIFtTXSwgc2VxIDMy
 MzM3NjU5OTMsIHdpbiA2NTUzNSwgb3B0aW9ucyBbbXNzIDE2MzQ0LG5vcCx3c2NhbGUgMyxzYWNr
 T0ssVFMgdmFsIDI4NjA1OCBlY3IgMF0sIGxlbmd0aCAwCjAwOjAwOjAwLjAwMDA0NCBJUCAxMjcu
 MC4wLjEuMjM0ODEgPiAxMjcuMC4wLjEuMjM4NTE6IEZsYWdzIFtTLl0sIHNlcSA5MTcwNDkwODcs
 IGFjayAzMjMzNzY1OTk0LCB3aW4gNjU1MzUsIG9wdGlvbnMgW21zcyAxNjM0NCxub3Asd3NjYWxl
 IDMsc2Fja09LLFRTIHZhbCAzNDkwMDg1MDA0IGVjciAyODYwNThdLCBsZW5ndGggMAowMDowMDow
 MC4wMDAwMzQgSVAgMTI3LjAuMC4xLjIzODUxID4gMTI3LjAuMC4xLjIzNDgxOiBGbGFncyBbLl0s
 IGFjayAxLCB3aW4gODk2MCwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgMjg2MDU4IGVjciAzNDkw
 MDg1MDA0XSwgbGVuZ3RoIDAKMDA6MDA6MDAuMDAwMTkxIElQIDEyNy4wLjAuMS4yMzQ4MSA+IDEy
 Ny4wLjAuMS4yMzg1MTogRmxhZ3MgW1IuXSwgc2VxIDEsIGFjayAxLCB3aW4gODk2MCwgb3B0aW9u
 cyBbbm9wLG5vcCxUUyB2YWwgMzQ5MDA4NTAwNCBlY3IgMjg2MDU4XSwgbGVuZ3RoIDAKClNMRUVQ
 MSA9IDE7IFNMRUVQMiA9IDA6IExJTkdFUl9JTl9TRVJWRVI6IG5vIGVycm9yCjAwOjAwOjAwLjAw
 MDAwMCBJUCAxMjcuMC4wLjEuMjc1NTggPiAxMjcuMC4wLjEuMjM0ODE6IEZsYWdzIFtTXSwgc2Vx
 IDQwNDIwNjA4MjEsIHdpbiA2NTUzNSwgb3B0aW9ucyBbbXNzIDE2MzQ0LG5vcCx3c2NhbGUgMyxz
 YWNrT0ssVFMgdmFsIDI5MTQ2NSBlY3IgMF0sIGxlbmd0aCAwCjAwOjAwOjAwLjAwMDA0MiBJUCAx
 MjcuMC4wLjEuMjM0ODEgPiAxMjcuMC4wLjEuMjc1NTg6IEZsYWdzIFtTLl0sIHNlcSAyNzg5MzQy
 NTc3LCBhY2sgNDA0MjA2MDgyMiwgd2luIDY1NTM1LCBvcHRpb25zIFttc3MgMTYzNDQsbm9wLHdz
 Y2FsZSAzLHNhY2tPSyxUUyB2YWwgMTk1OTQxNzYxMSBlY3IgMjkxNDY1XSwgbGVuZ3RoIDAKMDA6
 MDA6MDAuMDAwMDM0IElQIDEyNy4wLjAuMS4yNzU1OCA+IDEyNy4wLjAuMS4yMzQ4MTogRmxhZ3Mg
 Wy5dLCBhY2sgMSwgd2luIDg5NjAsIG9wdGlvbnMgW25vcCxub3AsVFMgdmFsIDI5MTQ2NSBlY3Ig
 MTk1OTQxNzYxMV0sIGxlbmd0aCAwCjAwOjAwOjAwLjAwMDE3MyBJUCAxMjcuMC4wLjEuMjM0ODEg
 PiAxMjcuMC4wLjEuMjc1NTg6IEZsYWdzIFtSLl0sIHNlcSAxLCBhY2sgMSwgd2luIDg5NjAsIG9w
 dGlvbnMgW25vcCxub3AsVFMgdmFsIDE5NTk0MTc2MTEgZWNyIDI5MTQ2NV0sIGxlbmd0aCAwCgpT
 TEVFUDEgPSAwOyBTTEVFUDIgPSAxOiBMSU5HRVJfSU5fU0VSVkVSOiBubyBlcnJvcgowMDowMDow
 MC4wMDAwMDAgSVAgMTI3LjAuMC4xLjY0MTg0ID4gMTI3LjAuMC4xLjIzNDgxOiBGbGFncyBbU10s
 IHNlcSA3MzU3NjE0MTEsIHdpbiA2NTUzNSwgb3B0aW9ucyBbbXNzIDE2MzQ0LG5vcCx3c2NhbGUg
 MyxzYWNrT0ssVFMgdmFsIDI5OTc5MiBlY3IgMF0sIGxlbmd0aCAwCjAwOjAwOjAwLjAwMDA0OSBJ
 UCAxMjcuMC4wLjEuMjM0ODEgPiAxMjcuMC4wLjEuNjQxODQ6IEZsYWdzIFtTLl0sIHNlcSAxNzYx
 NzY4MDU1LCBhY2sgNzM1NzYxNDEyLCB3aW4gNjU1MzUsIG9wdGlvbnMgW21zcyAxNjM0NCxub3As
 d3NjYWxlIDMsc2Fja09LLFRTIHZhbCAxMTgyMDg5NjY3IGVjciAyOTk3OTJdLCBsZW5ndGggMAow
 MDowMDowMC4wMDAwMzUgSVAgMTI3LjAuMC4xLjY0MTg0ID4gMTI3LjAuMC4xLjIzNDgxOiBGbGFn
 cyBbLl0sIGFjayAxLCB3aW4gODk2MCwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgMjk5NzkyIGVj
 ciAxMTgyMDg5NjY3XSwgbGVuZ3RoIDAKMDA6MDA6MDAuMDAwMjIyIElQIDEyNy4wLjAuMS42NDE4
 NCA+IDEyNy4wLjAuMS4yMzQ4MTogRmxhZ3MgWy5dLCBhY2sgMSwgd2luIDg5NjAsIG9wdGlvbnMg
 W25vcCxub3AsVFMgdmFsIDI5OTc5MiBlY3IgMTE4MjA4OTY2N10sIGxlbmd0aCAxNDMzNgowMDow
 MDowMC4wOTkzOTYgSVAgMTI3LjAuMC4xLjIzNDgxID4gMTI3LjAuMC4xLjY0MTg0OiBGbGFncyBb
 Ll0sIGFjayAxNDMzNywgd2luIDcxNjgsIG9wdGlvbnMgW25vcCxub3AsVFMgdmFsIDExODIwODk2
 NzcgZWNyIDI5OTc5Ml0sIGxlbmd0aCAwCjAwOjAwOjAwLjAwMDA0NyBJUCAxMjcuMC4wLjEuNjQx
 ODQgPiAxMjcuMC4wLjEuMjM0ODE6IEZsYWdzIFsuXSwgYWNrIDEsIHdpbiA4OTYwLCBvcHRpb25z
 IFtub3Asbm9wLFRTIHZhbCAyOTk4MDIgZWNyIDExODIwODk2NzddLCBsZW5ndGggMTQzMzYKMDA6
 MDA6MDAuMDAwMDE0IElQIDEyNy4wLjAuMS42NDE4NCA+IDEyNy4wLjAuMS4yMzQ4MTogRmxhZ3Mg
 W1AuXSwgYWNrIDEsIHdpbiA4OTYwLCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCAyOTk4MDIgZWNy
 IDExODIwODk2NzddLCBsZW5ndGggMTQzMzYKMDA6MDA6MDAuMDAwMDQ3IElQIDEyNy4wLjAuMS4y
 MzQ4MSA+IDEyNy4wLjAuMS42NDE4NDogRmxhZ3MgWy5dLCBhY2sgNDMwMDksIHdpbiAzNTg0LCBv
 cHRpb25zIFtub3Asbm9wLFRTIHZhbCAxMTgyMDg5Njc3IGVjciAyOTk4MDJdLCBsZW5ndGggMAow
 MDowMDowMC4wMDAxMTUgSVAgMTI3LjAuMC4xLjY0MTg0ID4gMTI3LjAuMC4xLjIzNDgxOiBGbGFn
 cyBbUC5dLCBhY2sgMSwgd2luIDg5NjAsIG9wdGlvbnMgW25vcCxub3AsVFMgdmFsIDI5OTgwMiBl
 Y3IgMTE4MjA4OTY3N10sIGxlbmd0aCAxNDMzNgowMDowMDowMC4wMDAxNTUgSVAgMTI3LjAuMC4x
 LjY0MTg0ID4gMTI3LjAuMC4xLjIzNDgxOiBGbGFncyBbLl0sIGFjayAxLCB3aW4gODk2MCwgb3B0
 aW9ucyBbbm9wLG5vcCxUUyB2YWwgMjk5ODAyIGVjciAxMTgyMDg5Njc3XSwgbGVuZ3RoIDE0MzM2
 CjAwOjAwOjAwLjAwMDAxOSBJUCAxMjcuMC4wLjEuMjM0ODEgPiAxMjcuMC4wLjEuNjQxODQ6IEZs
 YWdzIFsuXSwgYWNrIDcxNjgxLCB3aW4gMCwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgMTE4MjA4
 OTY3NyBlY3IgMjk5ODAyXSwgbGVuZ3RoIDAKMDA6MDA6MDAuOTA5NjQ4IElQIDEyNy4wLjAuMS4y
 MzQ4MSA+IDEyNy4wLjAuMS42NDE4NDogRmxhZ3MgW1IuXSwgc2VxIDEsIGFjayA3MTY4MSwgd2lu
 IDAsIG9wdGlvbnMgW25vcCxub3AsVFMgdmFsIDExODIwODk3NjggZWNyIDI5OTgwMl0sIGxlbmd0
 aCAwCgpTTEVFUDEgPSAwOyBTTEVFUDIgPSAxOiBMSU5HRVJfSU5fU0VSVkVSOiBMSU5HRVJfSU5f
 Q0xJRU5UOiBubyBlcnJvcgowMDowMDowMC4wMDAwMDAgSVAgMTI3LjAuMC4xLjYyNTM1ID4gMTI3
 LjAuMC4xLjIzNDgxOiBGbGFncyBbU10sIHNlcSAyNDE2MzExNjU4LCB3aW4gNjU1MzUsIG9wdGlv
 bnMgW21zcyAxNjM0NCxub3Asd3NjYWxlIDMsc2Fja09LLFRTIHZhbCAzMDU1NjcgZWNyIDBdLCBs
 ZW5ndGggMAowMDowMDowMC4wMDAwNjMgSVAgMTI3LjAuMC4xLjIzNDgxID4gMTI3LjAuMC4xLjYy
 NTM1OiBGbGFncyBbUy5dLCBzZXEgNzIzMjQxMDczLCBhY2sgMjQxNjMxMTY1OSwgd2luIDY1NTM1
 LCBvcHRpb25zIFttc3MgMTYzNDQsbm9wLHdzY2FsZSAzLHNhY2tPSyxUUyB2YWwgOTUzNDY0Mjkg
 ZWNyIDMwNTU2N10sIGxlbmd0aCAwCjAwOjAwOjAwLjAwMDAzMyBJUCAxMjcuMC4wLjEuNjI1MzUg
 PiAxMjcuMC4wLjEuMjM0ODE6IEZsYWdzIFsuXSwgYWNrIDEsIHdpbiA4OTYwLCBvcHRpb25zIFtu
 b3Asbm9wLFRTIHZhbCAzMDU1NjcgZWNyIDk1MzQ2NDI5XSwgbGVuZ3RoIDAKMDA6MDA6MDAuMDAw
 MjY2IElQIDEyNy4wLjAuMS42MjUzNSA+IDEyNy4wLjAuMS4yMzQ4MTogRmxhZ3MgWy5dLCBhY2sg
 MSwgd2luIDg5NjAsIG9wdGlvbnMgW25vcCxub3AsVFMgdmFsIDMwNTU2NyBlY3IgOTUzNDY0Mjld
 LCBsZW5ndGggMTQzMzYKMDA6MDA6MDAuMDAwMDE5IElQIDEyNy4wLjAuMS42MjUzNSA+IDEyNy4w
 LjAuMS4yMzQ4MTogRmxhZ3MgWy5dLCBhY2sgMSwgd2luIDg5NjAsIG9wdGlvbnMgW25vcCxub3As
 VFMgdmFsIDMwNTU2NyBlY3IgOTUzNDY0MjldLCBsZW5ndGggMTQzMzYKMDA6MDA6MDAuMDAwMDE1
 IElQIDEyNy4wLjAuMS42MjUzNSA+IDEyNy4wLjAuMS4yMzQ4MTogRmxhZ3MgW1AuXSwgYWNrIDEs
 IHdpbiA4OTYwLCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCAzMDU1NjcgZWNyIDk1MzQ2NDI5XSwg
 bGVuZ3RoIDE0MzM2CjAwOjAwOjAwLjAwMDAwNCBJUCAxMjcuMC4wLjEuMjM0ODEgPiAxMjcuMC4w
 LjEuNjI1MzU6IEZsYWdzIFsuXSwgYWNrIDI4NjczLCB3aW4gNTM3Niwgb3B0aW9ucyBbbm9wLG5v
 cCxUUyB2YWwgOTUzNDY0MjkgZWNyIDMwNTU2N10sIGxlbmd0aCAwCjAwOjAwOjAwLjAwMDE3OSBJ
 UCAxMjcuMC4wLjEuNjI1MzUgPiAxMjcuMC4wLjEuMjM0ODE6IEZsYWdzIFsuXSwgYWNrIDEsIHdp
 biA4OTYwLCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCAzMDU1NjcgZWNyIDk1MzQ2NDI5XSwgbGVu
 Z3RoIDE0MzM2CjAwOjAwOjAwLjAwMDAxNSBJUCAxMjcuMC4wLjEuNjI1MzUgPiAxMjcuMC4wLjEu
 MjM0ODE6IEZsYWdzIFsuXSwgYWNrIDEsIHdpbiA4OTYwLCBvcHRpb25zIFtub3Asbm9wLFRTIHZh
 bCAzMDU1NjcgZWNyIDk1MzQ2NDI5XSwgbGVuZ3RoIDE0MzM2CjAwOjAwOjAwLjAwMDAwOCBJUCAx
 MjcuMC4wLjEuMjM0ODEgPiAxMjcuMC4wLjEuNjI1MzU6IEZsYWdzIFsuXSwgYWNrIDU3MzQ1LCB3
 aW4gMTc5Miwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgOTUzNDY0MjkgZWNyIDMwNTU2N10sIGxl
 bmd0aCAwCjAwOjAwOjAwLjA5OTMxNyBJUCAxMjcuMC4wLjEuMjM0ODEgPiAxMjcuMC4wLjEuNjI1
 MzU6IEZsYWdzIFsuXSwgYWNrIDcxNjgxLCB3aW4gMCwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwg
 OTUzNDY0MzkgZWNyIDMwNTU2N10sIGxlbmd0aCAwCjAwOjAwOjAwLjkxMDAzOSBJUCAxMjcuMC4w
 LjEuMjM0ODEgPiAxMjcuMC4wLjEuNjI1MzU6IEZsYWdzIFtSLl0sIHNlcSAxLCBhY2sgNzE2ODEs
 IHdpbiAwLCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCA5NTM0NjUzMCBlY3IgMzA1NTY3XSwgbGVu
 Z3RoIDAKClNMRUVQMSA9IDA7IFNMRUVQMiA9IDE6IExJTkdFUl9JTl9DTElFTlQ6IG5vIGVycm9y
 CjAwOjAwOjAwLjAwMDAwMCBJUCAxMjcuMC4wLjEuNTIyMzIgPiAxMjcuMC4wLjEuMjM0ODE6IEZs
 YWdzIFtTXSwgc2VxIDgzNzc0ODQyOSwgd2luIDY1NTM1LCBvcHRpb25zIFttc3MgMTYzNDQsbm9w
 LHdzY2FsZSAzLHNhY2tPSyxUUyB2YWwgMzA5NjM5IGVjciAwXSwgbGVuZ3RoIDAKMDA6MDA6MDAu
 MDAwMDQ0IElQIDEyNy4wLjAuMS4yMzQ4MSA+IDEyNy4wLjAuMS41MjIzMjogRmxhZ3MgW1MuXSwg
 c2VxIDEyNjE2MTQ3MDcsIGFjayA4Mzc3NDg0MzAsIHdpbiA2NTUzNSwgb3B0aW9ucyBbbXNzIDE2
 MzQ0LG5vcCx3c2NhbGUgMyxzYWNrT0ssVFMgdmFsIDMxMjYxMDY5NTcgZWNyIDMwOTYzOV0sIGxl
 bmd0aCAwCjAwOjAwOjAwLjAwMDAzNCBJUCAxMjcuMC4wLjEuNTIyMzIgPiAxMjcuMC4wLjEuMjM0
 ODE6IEZsYWdzIFsuXSwgYWNrIDEsIHdpbiA4OTYwLCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCAz
 MDk2MzkgZWNyIDMxMjYxMDY5NTddLCBsZW5ndGggMAowMDowMDowMC4wMDAyNDkgSVAgMTI3LjAu
 MC4xLjUyMjMyID4gMTI3LjAuMC4xLjIzNDgxOiBGbGFncyBbLl0sIGFjayAxLCB3aW4gODk2MCwg
 b3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgMzA5NjM5IGVjciAzMTI2MTA2OTU3XSwgbGVuZ3RoIDE0
 MzM2CjAwOjAwOjAwLjAwMDAxOCBJUCAxMjcuMC4wLjEuNTIyMzIgPiAxMjcuMC4wLjEuMjM0ODE6
 IEZsYWdzIFsuXSwgYWNrIDEsIHdpbiA4OTYwLCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCAzMDk2
 MzkgZWNyIDMxMjYxMDY5NTddLCBsZW5ndGggMTQzMzYKMDA6MDA6MDAuMDAwMDE5IElQIDEyNy4w
 LjAuMS4yMzQ4MSA+IDEyNy4wLjAuMS41MjIzMjogRmxhZ3MgWy5dLCBhY2sgMjg2NzMsIHdpbiA1
 Mzc2LCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCAzMTI2MTA2OTU3IGVjciAzMDk2MzldLCBsZW5n
 dGggMAowMDowMDowMC4wMDAwMjggSVAgMTI3LjAuMC4xLjUyMjMyID4gMTI3LjAuMC4xLjIzNDgx
 OiBGbGFncyBbUC5dLCBhY2sgMSwgd2luIDg5NjAsIG9wdGlvbnMgW25vcCxub3AsVFMgdmFsIDMw
 OTYzOSBlY3IgMzEyNjEwNjk1N10sIGxlbmd0aCAxNDMzNgowMDowMDowMC4wMDAxNDMgSVAgMTI3
 LjAuMC4xLjUyMjMyID4gMTI3LjAuMC4xLjIzNDgxOiBGbGFncyBbLl0sIGFjayAxLCB3aW4gODk2
 MCwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgMzA5NjM5IGVjciAzMTI2MTA2OTU3XSwgbGVuZ3Ro
 IDE0MzM2CjAwOjAwOjAwLjAwMDAxNSBJUCAxMjcuMC4wLjEuNTIyMzIgPiAxMjcuMC4wLjEuMjM0
 ODE6IEZsYWdzIFsuXSwgYWNrIDEsIHdpbiA4OTYwLCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCAz
 MDk2MzkgZWNyIDMxMjYxMDY5NTddLCBsZW5ndGggMTQzMzYKMDA6MDA6MDAuMDAwMDA3IElQIDEy
 Ny4wLjAuMS4yMzQ4MSA+IDEyNy4wLjAuMS41MjIzMjogRmxhZ3MgWy5dLCBhY2sgNTczNDUsIHdp
 biAxNzkyLCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCAzMTI2MTA2OTU3IGVjciAzMDk2MzldLCBs
 ZW5ndGggMAowMDowMDowMC4wOTkzNzEgSVAgMTI3LjAuMC4xLjIzNDgxID4gMTI3LjAuMC4xLjUy
 MjMyOiBGbGFncyBbLl0sIGFjayA3MTY4MSwgd2luIDAsIG9wdGlvbnMgW25vcCxub3AsVFMgdmFs
 IDMxMjYxMDY5NjcgZWNyIDMwOTYzOV0sIGxlbmd0aCAwCjAwOjAwOjAwLjkxMDExNCBJUCAxMjcu
 MC4wLjEuMjM0ODEgPiAxMjcuMC4wLjEuNTIyMzI6IEZsYWdzIFtGLl0sIHNlcSAxLCBhY2sgNzE2
 ODEsIHdpbiA4OTYwLCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCAzMTI2MTA3MDU4IGVjciAzMDk2
 MzldLCBsZW5ndGggMAowMDowMDowMC4wMDAwNDQgSVAgMTI3LjAuMC4xLjUyMjMyID4gMTI3LjAu
 MC4xLjIzNDgxOiBGbGFncyBbLl0sIGFjayAyLCB3aW4gODk2MCwgb3B0aW9ucyBbbm9wLG5vcCxU
 UyB2YWwgMzA5NzQwIGVjciAzMTI2MTA3MDU4XSwgbGVuZ3RoIDE0MzM2CjAwOjAwOjAwLjAwMDAx
 NCBJUCAxMjcuMC4wLjEuNTIyMzIgPiAxMjcuMC4wLjEuMjM0ODE6IEZsYWdzIFsuXSwgYWNrIDIs
 IHdpbiA4OTYwLCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCAzMDk3NDAgZWNyIDMxMjYxMDcwNThd
 LCBsZW5ndGggMTQzMzYKMDA6MDA6MDAuMDAwMDM1IElQIDEyNy4wLjAuMS4yMzQ4MSA+IDEyNy4w
 LjAuMS41MjIzMjogRmxhZ3MgW1JdLCBzZXEgMTI2MTYxNDcwOSwgd2luIDAsIGxlbmd0aCAwCjAw
 OjAwOjAwLjAwMDAxOSBJUCAxMjcuMC4wLjEuMjM0ODEgPiAxMjcuMC4wLjEuNTIyMzI6IEZsYWdz
 IFtSXSwgc2VxIDEyNjE2MTQ3MDksIHdpbiAwLCBsZW5ndGggMAoKU0xFRVAxID0gMDsgU0xFRVAy
 ID0gMTogbm8gZXJyb3IKMDA6MDA6MDAuMDAwMDAwIElQIDEyNy4wLjAuMS4yNTg2NSA+IDEyNy4w
 LjAuMS4yMzQ4MTogRmxhZ3MgW1NdLCBzZXEgMzg2MzE4NzEwLCB3aW4gNjU1MzUsIG9wdGlvbnMg
 W21zcyAxNjM0NCxub3Asd3NjYWxlIDMsc2Fja09LLFRTIHZhbCAzMTM4MjggZWNyIDBdLCBsZW5n
 dGggMAowMDowMDowMC4wMDAwNDggSVAgMTI3LjAuMC4xLjIzNDgxID4gMTI3LjAuMC4xLjI1ODY1
 OiBGbGFncyBbUy5dLCBzZXEgMzAxMjQ5NTk5OSwgYWNrIDM4NjMxODcxMSwgd2luIDY1NTM1LCBv
 cHRpb25zIFttc3MgMTYzNDQsbm9wLHdzY2FsZSAzLHNhY2tPSyxUUyB2YWwgNjI5MTQ1NDkwIGVj
 ciAzMTM4MjhdLCBsZW5ndGggMAowMDowMDowMC4wMDAwMzQgSVAgMTI3LjAuMC4xLjI1ODY1ID4g
 MTI3LjAuMC4xLjIzNDgxOiBGbGFncyBbLl0sIGFjayAxLCB3aW4gODk2MCwgb3B0aW9ucyBbbm9w
 LG5vcCxUUyB2YWwgMzEzODI4IGVjciA2MjkxNDU0OTBdLCBsZW5ndGggMAowMDowMDowMC4wMDAy
 MTkgSVAgMTI3LjAuMC4xLjI1ODY1ID4gMTI3LjAuMC4xLjIzNDgxOiBGbGFncyBbLl0sIGFjayAx
 LCB3aW4gODk2MCwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgMzEzODI4IGVjciA2MjkxNDU0OTBd
 LCBsZW5ndGggMTQzMzYKMDA6MDA6MDAuMDAwMDE3IElQIDEyNy4wLjAuMS4yNTg2NSA+IDEyNy4w
 LjAuMS4yMzQ4MTogRmxhZ3MgWy5dLCBhY2sgMSwgd2luIDg5NjAsIG9wdGlvbnMgW25vcCxub3As
 VFMgdmFsIDMxMzgyOCBlY3IgNjI5MTQ1NDkwXSwgbGVuZ3RoIDE0MzM2CjAwOjAwOjAwLjAwMDAx
 NSBJUCAxMjcuMC4wLjEuMjU4NjUgPiAxMjcuMC4wLjEuMjM0ODE6IEZsYWdzIFtQLl0sIGFjayAx
 LCB3aW4gODk2MCwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgMzEzODI4IGVjciA2MjkxNDU0OTBd
 LCBsZW5ndGggMTQzMzYKMDA6MDA6MDAuMDAwMDA1IElQIDEyNy4wLjAuMS4yMzQ4MSA+IDEyNy4w
 LjAuMS4yNTg2NTogRmxhZ3MgWy5dLCBhY2sgMjg2NzMsIHdpbiA1Mzc2LCBvcHRpb25zIFtub3As
 bm9wLFRTIHZhbCA2MjkxNDU0OTAgZWNyIDMxMzgyOF0sIGxlbmd0aCAwCjAwOjAwOjAwLjAwMDE3
 NSBJUCAxMjcuMC4wLjEuMjU4NjUgPiAxMjcuMC4wLjEuMjM0ODE6IEZsYWdzIFsuXSwgYWNrIDEs
 IHdpbiA4OTYwLCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCAzMTM4MjggZWNyIDYyOTE0NTQ5MF0s
 IGxlbmd0aCAxNDMzNgowMDowMDowMC4wMDAwMTYgSVAgMTI3LjAuMC4xLjI1ODY1ID4gMTI3LjAu
 MC4xLjIzNDgxOiBGbGFncyBbLl0sIGFjayAxLCB3aW4gODk2MCwgb3B0aW9ucyBbbm9wLG5vcCxU
 UyB2YWwgMzEzODI4IGVjciA2MjkxNDU0OTBdLCBsZW5ndGggMTQzMzYKMDA6MDA6MDAuMDAwMDA3
 IElQIDEyNy4wLjAuMS4yMzQ4MSA+IDEyNy4wLjAuMS4yNTg2NTogRmxhZ3MgWy5dLCBhY2sgNTcz
 NDUsIHdpbiAxNzkyLCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCA2MjkxNDU0OTAgZWNyIDMxMzgy
 OF0sIGxlbmd0aCAwCjAwOjAwOjAwLjA5OTM5NCBJUCAxMjcuMC4wLjEuMjM0ODEgPiAxMjcuMC4w
 LjEuMjU4NjU6IEZsYWdzIFsuXSwgYWNrIDcxNjgxLCB3aW4gMCwgb3B0aW9ucyBbbm9wLG5vcCxU
 UyB2YWwgNjI5MTQ1NTAwIGVjciAzMTM4MjhdLCBsZW5ndGggMAowMDowMDowMC45MTAxMzUgSVAg
 MTI3LjAuMC4xLjIzNDgxID4gMTI3LjAuMC4xLjI1ODY1OiBGbGFncyBbRi5dLCBzZXEgMSwgYWNr
 IDcxNjgxLCB3aW4gODk2MCwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgNjI5MTQ1NTkxIGVjciAz
 MTM4MjhdLCBsZW5ndGggMAowMDowMDowMC4wMDAwNjkgSVAgMTI3LjAuMC4xLjI1ODY1ID4gMTI3
 LjAuMC4xLjIzNDgxOiBGbGFncyBbLl0sIGFjayAyLCB3aW4gODk2MCwgb3B0aW9ucyBbbm9wLG5v
 cCxUUyB2YWwgMzEzOTI5IGVjciA2MjkxNDU1OTFdLCBsZW5ndGggMTQzMzYKMDA6MDA6MDAuMDAw
 MDE0IElQIDEyNy4wLjAuMS4yNTg2NSA+IDEyNy4wLjAuMS4yMzQ4MTogRmxhZ3MgWy5dLCBhY2sg
 Miwgd2luIDg5NjAsIG9wdGlvbnMgW25vcCxub3AsVFMgdmFsIDMxMzkyOSBlY3IgNjI5MTQ1NTkx
 XSwgbGVuZ3RoIDE0MzM2CjAwOjAwOjAwLjAwMDAzNSBJUCAxMjcuMC4wLjEuMjM0ODEgPiAxMjcu
 MC4wLjEuMjU4NjU6IEZsYWdzIFtSXSwgc2VxIDMwMTI0OTYwMDEsIHdpbiAwLCBsZW5ndGggMAow
 MDowMDowMC4wMDAwMTkgSVAgMTI3LjAuMC4xLjIzNDgxID4gMTI3LjAuMC4xLjI1ODY1OiBGbGFn
 cyBbUl0sIHNlcSAzMDEyNDk2MDAxLCB3aW4gMCwgbGVuZ3RoIDAKCQkgICAgCiNlbmRpZiAvKiAw
 ICovCg==
 --=-=-=--


More information about the freebsd-net mailing list