bin/161368: [netrate] IPv6 patches for netblast/netsend/netreceive

Olivier Cochard-Labbé olivier at cochard.me
Mon Oct 17 12:20:08 UTC 2011


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

From: =?ISO-8859-1?Q?Olivier_Cochard=2DLabb=E9?= <olivier at cochard.me>
To: bug-followup at freebsd.org
Cc:  
Subject: Re: bin/161368: [netrate] IPv6 patches for netblast/netsend/netreceive
Date: Mon, 17 Oct 2011 14:15:16 +0200

 --001636499b7785d46104af7d9057
 Content-Type: text/plain; charset=ISO-8859-1
 
 OK here are the last version of my patches.
 About netsend.c: I can't use getaddrinfo because it changes the port
 number without creating a new socket.
 
 Regards,
 
 Olivier
 
 --001636499b7785d46104af7d9057
 Content-Type: text/plain; charset=US-ASCII; name="netrate.ipv6.patch.txt"
 Content-Disposition: attachment; filename="netrate.ipv6.patch.txt"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_gtvfdf8q0
 
 ZGlmZiAtcnVOIG5ldHJhdGUub3JpZy9uZXRibGFzdC9uZXRibGFzdC5jIG5ldHJhdGUvbmV0Ymxh
 c3QvbmV0Ymxhc3QuYwotLS0gbmV0cmF0ZS5vcmlnL25ldGJsYXN0L25ldGJsYXN0LmMJMjAxMS0x
 MC0wNyAxMToyODo0My4wMDAwMDAwMDAgKzAyMDAKKysrIG5ldHJhdGUvbmV0Ymxhc3QvbmV0Ymxh
 c3QuYwkyMDExLTEwLTEyIDIyOjI2OjUxLjAwMDAwMDAwMCArMDIwMApAQCAtMzIsMTMgKzMyLDEz
 IEBACiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KIAogI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KLQot
 I2luY2x1ZGUgPGFycGEvaW5ldC5oPgorI2luY2x1ZGUgPG5ldGRiLmg+CQkJLyogZ2V0YWRkcmlu
 Zm8gKi8KIAogI2luY2x1ZGUgPHNpZ25hbC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVk
 ZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CQkJ
 LyogY2xvc2UgKi8KIAogc3RhdGljIHZvaWQKIHVzYWdlKHZvaWQpCkBAIC0xNDEsMjYgKzE0MSwy
 NSBAQAogaW50CiBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7Ci0JbG9uZyBwYXlsb2Fk
 c2l6ZSwgcG9ydCwgZHVyYXRpb247Ci0Jc3RydWN0IHNvY2thZGRyX2luIHNpbjsKKwlsb25nIHBh
 eWxvYWRzaXplLCBkdXJhdGlvbjsKKwlzdHJ1Y3QgYWRkcmluZm8gaGludHMsICpyZXMsICpyZXMw
 OwogCWNoYXIgKmR1bW15LCAqcGFja2V0OwotCWludCBzOworCWludCBwb3J0LCBzLCBlcnJvcjsK
 Kwljb25zdCBjaGFyICpjYXVzZSA9IE5VTEw7CiAKIAlpZiAoYXJnYyAhPSA1KQogCQl1c2FnZSgp
 OwogCi0JYnplcm8oJnNpbiwgc2l6ZW9mKHNpbikpOwotCXNpbi5zaW5fbGVuID0gc2l6ZW9mKHNp
 bik7Ci0Jc2luLnNpbl9mYW1pbHkgPSBBRl9JTkVUOwotCWlmIChpbmV0X2F0b24oYXJndlsxXSwg
 JnNpbi5zaW5fYWRkcikgPT0gMCkgewotCQlwZXJyb3IoYXJndlsxXSk7Ci0JCXJldHVybiAoLTEp
 OwotCX0KKwltZW1zZXQoJmhpbnRzLCAwLCBzaXplb2YoaGludHMpKTsKKwloaW50cy5haV9mYW1p
 bHkgPSBQRl9VTlNQRUM7CisJaGludHMuYWlfc29ja3R5cGUgPSBTT0NLX0RHUkFNOwogCiAJcG9y
 dCA9IHN0cnRvdWwoYXJndlsyXSwgJmR1bW15LCAxMCk7Ci0JaWYgKHBvcnQgPCAxIHx8IHBvcnQg
 PiA2NTUzNSB8fCAqZHVtbXkgIT0gJ1wwJykKKwlpZiAocG9ydCA8IDEgfHwgcG9ydCA+IDY1NTM1
 IHx8ICpkdW1teSAhPSAnXDAnKSB7CisJCWZwcmludGYoc3RkZXJyLCAiSW52YWxpZCBwb3J0IG51
 bWJlcjogJXNcbiIsIGFyZ3ZbMl0pOwogCQl1c2FnZSgpOwotCXNpbi5zaW5fcG9ydCA9IGh0b25z
 KHBvcnQpOworCQkvKk5PVFJFQUNIRUQqLworCX0KIAogCXBheWxvYWRzaXplID0gc3RydG91bChh
 cmd2WzNdLCAmZHVtbXksIDEwKTsKIAlpZiAocGF5bG9hZHNpemUgPCAwIHx8ICpkdW1teSAhPSAn
 XDAnKQpAQCAtMTY4LDMwICsxNjcsNTYgQEAKIAlpZiAocGF5bG9hZHNpemUgPiAzMjc2OCkgewog
 CQlmcHJpbnRmKHN0ZGVyciwgInBheWxvYWRzaXplID4gMzI3NjhcbiIpOwogCQlyZXR1cm4gKC0x
 KTsKKwkJLypOT1RSRUFDSEVEKi8KIAl9CiAKIAlkdXJhdGlvbiA9IHN0cnRvdWwoYXJndls0XSwg
 JmR1bW15LCAxMCk7Ci0JaWYgKGR1cmF0aW9uIDwgMCB8fCAqZHVtbXkgIT0gJ1wwJykKKwlpZiAo
 ZHVyYXRpb24gPCAwIHx8ICpkdW1teSAhPSAnXDAnKSB7CisJCWZwcmludGYoc3RkZXJyLCAiSW52
 YWxpZCBkdXJhdGlvbiB0aW1lOiAlc1xuIiwgYXJndls0XSk7CiAJCXVzYWdlKCk7CisJCS8qTk9U
 UkVBQ0hFRCovCisJfQogCiAJcGFja2V0ID0gbWFsbG9jKHBheWxvYWRzaXplKTsKIAlpZiAocGFj
 a2V0ID09IE5VTEwpIHsKIAkJcGVycm9yKCJtYWxsb2MiKTsKIAkJcmV0dXJuICgtMSk7CisJCS8q
 Tk9UUkVBQ0hFRCovCiAJfQorCiAJYnplcm8ocGFja2V0LCBwYXlsb2Fkc2l6ZSk7CisJZXJyb3Ig
 PSBnZXRhZGRyaW5mbyhhcmd2WzFdLGFyZ3ZbMl0sICZoaW50cywgJnJlczApOworCWlmIChlcnJv
 cikgeworCQlwZXJyb3IoZ2FpX3N0cmVycm9yKGVycm9yKSk7CisJCXJldHVybiAoLTEpOworCQkv
 Kk5PVFJFQUNIRUQqLworCX0KKwlzID0gLTE7CisJZm9yIChyZXMgPSByZXMwOyByZXM7IHJlcyA9
 IHJlcy0+YWlfbmV4dCkgeworCQlzID0gc29ja2V0KHJlcy0+YWlfZmFtaWx5LCByZXMtPmFpX3Nv
 Y2t0eXBlLCAwKTsKKwkJaWYgKHMgPCAwKSB7CisJCQljYXVzZSA9ICJzb2NrZXQiOworCQkJY29u
 dGludWU7CisJCX0KIAotCXMgPSBzb2NrZXQoUEZfSU5FVCwgU09DS19ER1JBTSwgMCk7Ci0JaWYg
 KHMgPT0gLTEpIHsKLQkJcGVycm9yKCJzb2NrZXQiKTsKLQkJcmV0dXJuICgtMSk7Ci0JfQorCQlp
 ZiAoY29ubmVjdChzLCByZXMtPmFpX2FkZHIsIHJlcy0+YWlfYWRkcmxlbikgPCAwKSB7CisJCQlj
 YXVzZSA9ICJjb25uZWN0IjsKKwkJCWNsb3NlKHMpOworCQkJcyA9IC0xOworCQkJY29udGludWU7
 CisJCX0KIAotCWlmIChjb25uZWN0KHMsIChzdHJ1Y3Qgc29ja2FkZHIgKikmc2luLCBzaXplb2Yo
 c2luKSkgPCAwKSB7Ci0JCXBlcnJvcigiY29ubmVjdCIpOworCQlicmVhazsgIC8qIG9rYXkgd2Ug
 Z290IG9uZSAqLworCX0KKwlpZiAocyA8IDApIHsKKwkJcGVycm9yKGNhdXNlKTsKIAkJcmV0dXJu
 ICgtMSk7CisJCS8qTk9UUkVBQ0hFRCovCiAJfQogCisJLyogQSBjbGVhbiBjb2RlIHNob3VsZCBp
 bmNsdWRlIGEgZnJlZWFkZHJpbmZvKHJlczApIGJlZm9yZSB0aGUgcmV0dXJuICovCisKIAlyZXR1
 cm4gKGJsYXN0X2xvb3AocywgZHVyYXRpb24sIHBhY2tldCwgcGF5bG9hZHNpemUpKTsKKwogfQog
 CmRpZmYgLXJ1TiBuZXRyYXRlLm9yaWcvbmV0cmVjZWl2ZS9uZXRyZWNlaXZlLmMgbmV0cmF0ZS9u
 ZXRyZWNlaXZlL25ldHJlY2VpdmUuYwotLS0gbmV0cmF0ZS5vcmlnL25ldHJlY2VpdmUvbmV0cmVj
 ZWl2ZS5jCTIwMTEtMTAtMDcgMTU6MTg6NDguMDAwMDAwMDAwICswMjAwCisrKyBuZXRyYXRlL25l
 dHJlY2VpdmUvbmV0cmVjZWl2ZS5jCTIwMTEtMTAtMTEgMTY6Mzk6MTUuMDAwMDAwMDAwICswMjAw
 CkBAIC0zMSwxMiArMzEsMTYgQEAKICNpbmNsdWRlIDxzeXMvdGltZS5oPgogCiAjaW5jbHVkZSA8
 bmV0aW5ldC9pbi5oPgorI2luY2x1ZGUgPG5ldGRiLmg+ICAgICAgICAgIC8qIGdldGFkZHJpbmZv
 ICovCiAKICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5j
 bHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+
 ICAgICAgICAgLyogY2xvc2UgKi8KKworI2RlZmluZSBNQVhTT0NLIDIwCiAKIHN0YXRpYyB2b2lk
 CiB1c2FnZSh2b2lkKQpAQCAtNDksMjMgKzUzLDI1IEBACiBpbnQKIG1haW4oaW50IGFyZ2MsIGNo
 YXIgKmFyZ3ZbXSkKIHsKLQlzdHJ1Y3Qgc29ja2FkZHJfaW4gc2luOworCXN0cnVjdCBhZGRyaW5m
 byBoaW50cywgKnJlcywgKnJlczA7CiAJY2hhciAqZHVtbXksICpwYWNrZXQ7Ci0JbG9uZyBwb3J0
 OwotCWludCBzLCB2OworCWludCBwb3J0OworCWludCBlcnJvciwgdiwgaTsKKwljb25zdCBjaGFy
 ICpjYXVzZSA9IE5VTEw7CisJaW50IHNbTUFYU09DS107CisJaW50IG5zb2NrOwogCiAJaWYgKGFy
 Z2MgIT0gMikKIAkJdXNhZ2UoKTsKIAotCWJ6ZXJvKCZzaW4sIHNpemVvZihzaW4pKTsKLQlzaW4u
 c2luX2xlbiA9IHNpemVvZihzaW4pOwotCXNpbi5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKLQlzaW4u
 c2luX2FkZHIuc19hZGRyID0gaHRvbmwoSU5BRERSX0FOWSk7CisJbWVtc2V0KCZoaW50cywgMCwg
 c2l6ZW9mKGhpbnRzKSk7CisJaGludHMuYWlfZmFtaWx5ID0gUEZfVU5TUEVDOworCWhpbnRzLmFp
 X3NvY2t0eXBlID0gU09DS19ER1JBTTsKKwloaW50cy5haV9mbGFncyA9IEFJX1BBU1NJVkU7CiAK
 IAlwb3J0ID0gc3RydG91bChhcmd2WzFdLCAmZHVtbXksIDEwKTsKIAlpZiAocG9ydCA8IDEgfHwg
 cG9ydCA+IDY1NTM1IHx8ICpkdW1teSAhPSAnXDAnKQogCQl1c2FnZSgpOwotCXNpbi5zaW5fcG9y
 dCA9IGh0b25zKHBvcnQpOwogCiAJcGFja2V0ID0gbWFsbG9jKDY1NTM2KTsKIAlpZiAocGFja2V0
 ID09IE5VTEwpIHsKQEAgLTc0LDI4ICs4MCw1MyBAQAogCX0KIAliemVybyhwYWNrZXQsIDY1NTM2
 KTsKIAotCXMgPSBzb2NrZXQoUEZfSU5FVCwgU09DS19ER1JBTSwgMCk7Ci0JaWYgKHMgPT0gLTEp
 IHsKLQkJcGVycm9yKCJzb2NrZXQiKTsKKwllcnJvciA9IGdldGFkZHJpbmZvKE5VTEwsIGFyZ3Zb
 MV0sICZoaW50cywgJnJlczApOworCWlmIChlcnJvcikgeworCQlwZXJyb3IoZ2FpX3N0cmVycm9y
 KGVycm9yKSk7CiAJCXJldHVybiAoLTEpOworCQkvKk5PVFJFQUNIRUQqLwogCX0KIAotCXYgPSAx
 MjggKiAxMDI0OwotCWlmIChzZXRzb2Nrb3B0KHMsIFNPTF9TT0NLRVQsIFNPX1JDVkJVRiwgJnYs
 IHNpemVvZih2KSkgPCAwKSB7Ci0JCXBlcnJvcigiU09fUkNWQlVGIik7Ci0JCXJldHVybiAoLTEp
 OwotCX0KKwluc29jayA9IDA7CisJZm9yIChyZXMgPSByZXMwOyByZXMgJiYgbnNvY2sgPCBNQVhT
 T0NLOyByZXMgPSByZXMtPmFpX25leHQpIHsKKwkJc1tuc29ja10gPSBzb2NrZXQocmVzLT5haV9m
 YW1pbHksIHJlcy0+YWlfc29ja3R5cGUsCisJCXJlcy0+YWlfcHJvdG9jb2wpOworCQlpZiAoc1tu
 c29ja10gPCAwKSB7CisJCQljYXVzZSA9ICJzb2NrZXQiOworCQkJY29udGludWU7CisJCX0KKwor
 CQl2ID0gMTI4ICogMTAyNDsKKwkJaWYgKHNldHNvY2tvcHQoc1tuc29ja10sIFNPTF9TT0NLRVQs
 IFNPX1JDVkJVRiwgJnYsIHNpemVvZih2KSkgPCAwKSB7CisgICAgICAgIAljYXVzZSA9ICJTT19S
 Q1ZCVUYiOworICAgICAgICAgICAgY2xvc2Uoc1tuc29ja10pOworICAgICAgICAJY29udGludWU7
 CisJCX0KKwkJaWYgKGJpbmQoc1tuc29ja10sIHJlcy0+YWlfYWRkciwgcmVzLT5haV9hZGRybGVu
 KSA8IDApIHsKKwkJCWNhdXNlID0gImJpbmQiOworCQkJY2xvc2Uoc1tuc29ja10pOworCQkJY29u
 dGludWU7CisJCX0KKwkJKHZvaWQpIGxpc3RlbihzW25zb2NrXSwgNSk7CiAKLQlpZiAoYmluZChz
 LCAoc3RydWN0IHNvY2thZGRyICopJnNpbiwgc2l6ZW9mKHNpbikpIDwgMCkgewotCQlwZXJyb3Io
 ImJpbmQiKTsKKwkJbnNvY2srKzsKKwl9CisJaWYgKG5zb2NrID09IDApIHsKKwkJcGVycm9yKGNh
 dXNlKTsKIAkJcmV0dXJuICgtMSk7CisJCS8qTk9UUkVBQ0hFRCovCiAJfQogCiAJcHJpbnRmKCJu
 ZXRyZWNlaXZlIGxpc3RlbmluZyBvbiBVRFAgcG9ydCAlZFxuIiwgKHVfc2hvcnQpcG9ydCk7CiAK
 IAl3aGlsZSAoMSkgewotCQlpZiAocmVjdihzLCBwYWNrZXQsIDY1NTM2LCAwKSA8IDApCi0JCQlw
 ZXJyb3IoInJlY3YiKTsKKwkJZm9yIChpID0gMDsgaSA+IG5zb2NrOyBpKyspIHsKKwkJCWlmIChy
 ZWN2KHNbaV0sIHBhY2tldCwgNjU1MzYsIDApIDwgMCkKKwkJCQlwZXJyb3IoInJlY3YiKTsKKwkJ
 fQogCX0KKwkKKwkvKk5PVFJFQUNIRUQqLworCWZyZWVhZGRyaW5mbyhyZXMwKTsKIH0KIApkaWZm
 IC1ydU4gbmV0cmF0ZS5vcmlnL25ldHNlbmQvbmV0c2VuZC5jIG5ldHJhdGUvbmV0c2VuZC9uZXRz
 ZW5kLmMKLS0tIG5ldHJhdGUub3JpZy9uZXRzZW5kL25ldHNlbmQuYwkyMDExLTEwLTA3IDE0OjQ4
 OjA3LjAwMDAwMDAwMCArMDIwMAorKysgbmV0cmF0ZS9uZXRzZW5kL25ldHNlbmQuYwkyMDExLTEw
 LTE3IDEyOjM2OjEzLjAwMDAwMDAwMCArMDIwMApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
 PHN5cy9lbmRpYW4uaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzeXMvc29j
 a2V0Lmg+CisjaW5jbHVkZSA8bmV0L2lmLmg+CQkvKiBpZl9uYW1ldG9pbmRleCgpICovCiAjaW5j
 bHVkZSA8c3lzL3RpbWUuaD4KIAogI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KQEAgLTQzLDEwICs0
 NCwxMiBAQAogLyogcHJvZ3JhbSBhcmd1bWVudHMgKi8KIHN0cnVjdCBfYSB7CiAJaW50IHM7CisJ
 aW50IGlwdjY7CiAJc3RydWN0IHRpbWVzcGVjIGludGVydmFsOwogCWludCBwb3J0LCBwb3J0X21h
 eDsKIAlsb25nIGR1cmF0aW9uOwogCXN0cnVjdCBzb2NrYWRkcl9pbiBzaW47CisJc3RydWN0IHNv
 Y2thZGRyX2luNiBzaW42OwogCWludCBwYWNrZXRfbGVuOwogCXZvaWQgKnBhY2tldDsKIH07CkBA
 IC0xNzksOSArMTgyLDE2IEBACiAJaWMgPSBnZXR0aW1lb2ZkYXlfY3ljbGVzOwogCWN1cl9wb3J0
 ID0gYS0+cG9ydDsKIAlpZiAoYS0+cG9ydCA9PSBhLT5wb3J0X21heCkgewotCQlpZiAoY29ubmVj
 dChhLT5zLCAoc3RydWN0IHNvY2thZGRyICopJmEtPnNpbiwgc2l6ZW9mKGEtPnNpbikpKSB7Ci0J
 CQlwZXJyb3IoImNvbm5lY3QiKTsKLQkJCXJldHVybiAoLTEpOworCQlpZiAoYS0+aXB2Nikgewor
 CQkJaWYgKGNvbm5lY3QoYS0+cywgKHN0cnVjdCBzb2NrYWRkciAqKSZhLT5zaW42LCBzaXplb2Yo
 YS0+c2luNikpKSB7CisgICAgICAgICAgICAgICAgcGVycm9yKCJjb25uZWN0IChpcHY2KSIpOwor
 ICAgICAgICAgICAgICAgIHJldHVybiAoLTEpOworICAgICAgICAgICAgfQorCQl9IGVsc2Ugewor
 CQkJaWYgKGNvbm5lY3QoYS0+cywgKHN0cnVjdCBzb2NrYWRkciAqKSZhLT5zaW4sIHNpemVvZihh
 LT5zaW4pKSkgeworCQkJCXBlcnJvcigiY29ubmVjdCAoaXB2NCkiKTsKKwkJCQlyZXR1cm4gKC0x
 KTsKKwkJCX0KIAkJfQogCX0KIAl3aGlsZSAoMSkgewpAQCAtMjE1LDggKzIyNSwxMyBAQAogCQkJ
 YS0+c2luLnNpbl9wb3J0ID0gaHRvbnMoY3VyX3BvcnQrKyk7CiAJCQlpZiAoY3VyX3BvcnQgPiBh
 LT5wb3J0X21heCkKIAkJCQljdXJfcG9ydCA9IGEtPnBvcnQ7CisJCQlpZiAoYS0+aXB2Nikgewor
 CQkJcmV0ID0gc2VuZHRvKGEtPnMsIGEtPnBhY2tldCwgYS0+cGFja2V0X2xlbiwgMCwKKyAgICAg
 ICAgICAgICAgICAoc3RydWN0IHNvY2thZGRyICopJmEtPnNpbjYsIHNpemVvZihhLT5zaW42KSk7
 CisJCQl9IGVsc2UgewogCQkJcmV0ID0gc2VuZHRvKGEtPnMsIGEtPnBhY2tldCwgYS0+cGFja2V0
 X2xlbiwgMCwKIAkJCQkoc3RydWN0IHNvY2thZGRyICopJmEtPnNpbiwgc2l6ZW9mKGEtPnNpbikp
 OworCQkJfQogCQl9CiAJCWlmIChyZXQgPCAwKQogCQkJc2VuZF9lcnJvcnMrKzsKQEAgLTI1Myw2
 ICsyNjgsNyBAQAogewogCWxvbmcgcmF0ZSwgcGF5bG9hZHNpemUsIHBvcnQ7CiAJY2hhciAqZHVt
 bXk7CisJY2hhciAqaTsKIAlzdHJ1Y3QgX2EgYTsJLyogYXJndW1lbnRzICovCiAKIAliemVybygm
 YSwgc2l6ZW9mKGEpKTsKQEAgLTI2Miw4ICsyNzgsMjUgQEAKIAogCWEuc2luLnNpbl9sZW4gPSBz
 aXplb2YoYS5zaW4pOwogCWEuc2luLnNpbl9mYW1pbHkgPSBBRl9JTkVUOwotCWlmIChpbmV0X2F0
 b24oYXJndlsxXSwgJmEuc2luLnNpbl9hZGRyKSA9PSAwKSB7CisKKwlhLnNpbjYuc2luNl9sZW4g
 PSBzaXplb2YoYS5zaW42KTsKKyAgICBhLnNpbjYuc2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKKwor
 CS8qIFRyeSB0byBkZXRlY3QgaWYgaXQncyBhbiBJUHY0IG9uIElQdjYgYWRkcmVzcyAqLworCWkg
 PSBzdHJjaHIoYXJndlsxXSwgJyUnKTsKKwlpZiAoaSAhPSBOVUxMKSB7CisJCWEuc2luNi5zaW42
 X3Njb3BlX2lkID0gaWZfbmFtZXRvaW5kZXgoaSsxKTsKKwkJY2hhciAqaXA7CisJCWlwID0gIHN0
 cmR1cChhcmd2WzFdKTsKKwkJYXJndlsxXSA9IHN0cnNlcCgmaXAsICIlIik7CisJfQorCWlmIChp
 bmV0X2F0b24oYXJndlsxXSwgJmEuc2luLnNpbl9hZGRyKSA9PSAxKSB7CisJCWEuaXB2NiA9IDA7
 CisJfSBlbHNlIGlmIChpbmV0X3B0b24oQUZfSU5FVDYsIGFyZ3ZbMV0sICZhLnNpbjYuc2luNl9h
 ZGRyKSA9PSAxKSB7CisJCWEuaXB2NiA9IDE7CisJfSBlbHNlIHsKIAkJcGVycm9yKGFyZ3ZbMV0p
 OworCQlmcHJpbnRmKHN0ZGVyciwgIkNhbid0IGRldGVybWluZSBJUCBhZGRyZXNzIHR5cGVcbiIp
 OwogCQlyZXR1cm4gKC0xKTsKIAl9CiAKQEAgLTI3Miw3ICszMDUsMTEgQEAKIAkJdXNhZ2UoKTsK
 IAlpZiAoKmR1bW15ICE9ICdcMCcgJiYgKmR1bW15ICE9ICctJykKIAkJdXNhZ2UoKTsKLQlhLnNp
 bi5zaW5fcG9ydCA9IGh0b25zKHBvcnQpOworCWlmIChhLmlwdjYpIHsKKwkJYS5zaW42LnNpbjZf
 cG9ydCA9IGh0b25zKHBvcnQpOworCX0gZWxzZSB7CisJCWEuc2luLnNpbl9wb3J0ID0gaHRvbnMo
 cG9ydCk7CisJfQogCWEucG9ydCA9IGEucG9ydF9tYXggPSBwb3J0OwogCWlmICgqZHVtbXkgPT0g
 Jy0nKSB7CS8qIHNldCBoaWdoIHBvcnQgKi8KIAkJcG9ydCA9IHN0cnRvdWwoZHVtbXkgKyAxLCAm
 ZHVtbXksIDEwKTsKQEAgLTMyOCw3ICszNjUsMTEgQEAKIAkgICAgInNlY29uZHNcbiIsIHBheWxv
 YWRzaXplLCAoaW50bWF4X3QpYS5pbnRlcnZhbC50dl9zZWMsCiAJICAgIGEuaW50ZXJ2YWwudHZf
 bnNlYywgYS5kdXJhdGlvbik7CiAKLQlhLnMgPSBzb2NrZXQoUEZfSU5FVCwgU09DS19ER1JBTSwg
 MCk7CisJaWYgKGEuaXB2NikgeworCQlhLnMgPSBzb2NrZXQoUEZfSU5FVDYsIFNPQ0tfREdSQU0s
 IDApOworCX0gZWxzZSB7CisJCWEucyA9IHNvY2tldChQRl9JTkVULCBTT0NLX0RHUkFNLCAwKTsK
 Kwl9CiAJaWYgKGEucyA9PSAtMSkgewogCQlwZXJyb3IoInNvY2tldCIpOwogCQlyZXR1cm4gKC0x
 KTsK
 --001636499b7785d46104af7d9057--


More information about the freebsd-bugs mailing list