From owner-freebsd-bugs@FreeBSD.ORG Mon Oct 17 12:20:08 2011 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 92583106566C for ; Mon, 17 Oct 2011 12:20:08 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 80BD28FC15 for ; Mon, 17 Oct 2011 12:20:08 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p9HCK8b8070134 for ; Mon, 17 Oct 2011 12:20:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p9HCK8s4070133; Mon, 17 Oct 2011 12:20:08 GMT (envelope-from gnats) Date: Mon, 17 Oct 2011 12:20:08 GMT Message-Id: <201110171220.p9HCK8s4070133@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: =?ISO-8859-1?Q?Olivier_Cochard=2DLabb=E9?= Cc: Subject: Re: bin/161368: [netrate] IPv6 patches for netblast/netsend/netreceive X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: =?ISO-8859-1?Q?Olivier_Cochard=2DLabb=E9?= List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Oct 2011 12:20:08 -0000 The following reply was made to PR bin/161368; it has been noted by GNATS. From: =?ISO-8859-1?Q?Olivier_Cochard=2DLabb=E9?= To: bug-followup@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--