From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:45374) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tlfm6-00017D-8c for qemu-devel@nongnu.org; Thu, 20 Dec 2012 08:03:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tlfm4-0001Mv-4q for qemu-devel@nongnu.org; Thu, 20 Dec 2012 08:02:58 -0500 Received: from mx1.redhat.com ([209.132.183.28]:4104) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tlfm3-0001Mp-RV for qemu-devel@nongnu.org; Thu, 20 Dec 2012 08:02:56 -0500 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id qBKD2sFm011542 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 20 Dec 2012 08:02:55 -0500 Message-ID: <50D30C7B.3030802@redhat.com> Date: Thu, 20 Dec 2012 14:02:51 +0100 From: Gerd Hoffmann MIME-Version: 1.0 References: <1355932747-1755-1-git-send-email-kraxel@redhat.com> <50D2ED39.6010608@redhat.com> <20121220105643.GK25577@redhat.com> <50D2F23D.9000908@redhat.com> <50D2FA5D.30602@redhat.com> In-Reply-To: <50D2FA5D.30602@redhat.com> Content-Type: multipart/mixed; boundary="------------060304070801050004000303" Subject: Re: [Qemu-devel] [PATCH RfC 0/9] chardev hotplug List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: Michal Privoznik , qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------060304070801050004000303 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi, > /me wades through the socket code (unix+tcp) right now, which needs some > refactoring to make it fly. Sneak preview attached. Goes on top of the series. Compile tested only so far. enjoy, Gerd --------------060304070801050004000303 Content-Type: text/plain; name="0001-chardev-hotplug-qmp-socket.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-chardev-hotplug-qmp-socket.patch" RnJvbSAyYzU1NjhjMjBkOTdkNDk3YjQzYzlhZjFjMWMxMzg4ZGIwODljMWU5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNv bT4KRGF0ZTogVGh1LCAyMCBEZWMgMjAxMiAxMzo1MzoxMiArMDEwMApTdWJqZWN0OiBbUEFU Q0hdIGNoYXJkZXY6IGhvdHBsdWcsIHFtcCwgc29ja2V0CgpxZW11X2Nocl9vcGVuX3NvY2tl dCBpcyBzcGxpdHRlZCBpbnRvIHR3byBmdW5jdGlvbnMuICBBbGwgaW5pdGlhbGl6YXRpb24K YWZ0ZXIgY3JlYXRpbmcgdGhlIHNvY2tldCBmaWxlIGhhbmRsZXIgaXMgc3BsaXR0ZWQgYXdh eSBpbnRvIHRoZSBuZXcKcWVtdV9jaHJfb3Blbl9zb2NrZXRfZmQgZnVuY3Rpb24uCgpjaHIt PmZpbGVuYW1lIGRvZXNuJ3QgZ2V0IGZpbGxlZCBmcm9tIFFlbXVPcHRzIGFueSBtb3JlLiAg UWVtdSBnYXRoZXJzCnRoZSBpbmZvcm1hdGlvbiB1c2luZyBnZXRzb2NrbmFtZSBhbmQgZ2V0 bmFtZWluZm8gaW5zdGVhZC4gIFRoaXMgd2F5IGl0CndpbGwgYWxzbyB3b3JrIGNvcnJlY3Rs eSBmb3IgZmlsZSBoYW5kbGVzIHBhc3NlZCB2aWEgZmlsZSBkZXNjcmlwdG9yCnBhc3Npbmcu CgpGaW5hbGx5IHFtcF9jaGFyZGV2X29wZW5fc29ja2V0KCkgaXMgdGhlIGFjdHVhbCBxbXAg aG90cGx1ZwppbXBsZW1lbnRhdGlvbiB3aGljaCBiYXNpY2FsbHkganVzdCBjYWxscyBzb2Nr ZXRfbGlzdGVuIG9yCnNvY2tldF9jb25uZWN0IGFuZCB0aGUgbmV3IHFlbXVfY2hyX29wZW5f c29ja2V0X2ZkIGZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogR2VyZCBIb2ZmbWFubiA8a3Jh eGVsQHJlZGhhdC5jb20+Ci0tLQogcWFwaS1zY2hlbWEuanNvbiB8ICAgMTMgKysrLQogcWVt dS1jaGFyLmMgICAgICB8ICAxNjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTI0IGluc2VydGlvbnMo KyksIDU3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3FhcGktc2NoZW1hLmpzb24gYi9x YXBpLXNjaGVtYS5qc29uCmluZGV4IDA5MjI4MjMuLjM5ZTBhYjQgMTAwNjQ0Ci0tLSBhL3Fh cGktc2NoZW1hLmpzb24KKysrIGIvcWFwaS1zY2hlbWEuanNvbgpAQCAtMzA0MywxMSArMzA0 MywxOCBAQAogeyAndHlwZSc6ICdDaGFyZGV2UG9ydCcsICdkYXRhJzogeyAnZGV2aWNlJyA6 ICdDaGFyZGV2RmlsZVNvdXJjZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICd0eXBlJyAgIDogJ0NoYXJkZXZQb3J0S2luZCd9IH0KIAoreyAndHlwZSc6ICdDaGFy ZGV2U29ja2V0JywgJ2RhdGEnOiB7ICdhZGRyJyAgICA6ICdTb2NrZXRBZGRyZXNzJywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKnNlcnZlcicgOiAnYm9vbCcs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyp3YWl0JyAgIDogJ2Jv b2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcqZGVsYXknICA6 ICdib29sJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKnRlbG5l dCcgOiAnYm9vbCcgfSB9CisKIHsgJ3R5cGUnOiAnQ2hhcmRldkR1bW15JywgJ2RhdGEnOiB7 IH0gfQogCi17ICd1bmlvbic6ICdDaGFyZGV2QmFja2VuZCcsICdkYXRhJzogeyAnZmlsZScg OiAnQ2hhcmRldkZpbGUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ3BvcnQnIDogJ0NoYXJkZXZQb3J0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdudWxsJyA6ICdDaGFyZGV2RHVtbXknIH0gfQoreyAndW5pb24nOiAn Q2hhcmRldkJhY2tlbmQnLCAnZGF0YSc6IHsgJ2ZpbGUnICAgOiAnQ2hhcmRldkZpbGUnLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnQnICAgOiAnQ2hh cmRldlBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nv Y2tldCcgOiAnQ2hhcmRldlNvY2tldCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnbnVsbCcgICA6ICdDaGFyZGV2RHVtbXknIH0gfQogCiB7ICdjb21tYW5k JzogJ2NoYXJkZXYtYWRkJywgJ2RhdGEnOiB7J2lkJyAgICAgIDogJ3N0cicsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tlbmQnIDogJ0NoYXJkZXZCYWNr ZW5kJyB9IH0KZGlmZiAtLWdpdCBhL3FlbXUtY2hhci5jIGIvcWVtdS1jaGFyLmMKaW5kZXgg NWE2ZDNjNS4uMTVmMmFlMiAxMDA2NDQKLS0tIGEvcWVtdS1jaGFyLmMKKysrIGIvcWVtdS1j aGFyLmMKQEAgLTI0MjcsMTAgKzI0MjcsODggQEAgc3RhdGljIHZvaWQgdGNwX2Nocl9jbG9z ZShDaGFyRHJpdmVyU3RhdGUgKmNocikKICAgICBxZW11X2Nocl9iZV9ldmVudChjaHIsIENI Ul9FVkVOVF9DTE9TRUQpOwogfQogCi1zdGF0aWMgQ2hhckRyaXZlclN0YXRlICpxZW11X2No cl9vcGVuX3NvY2tldChRZW11T3B0cyAqb3B0cykKK3N0YXRpYyBDaGFyRHJpdmVyU3RhdGUg KnFlbXVfY2hyX29wZW5fc29ja2V0X2ZkKGludCBmZCwgaW50IGRvX25vZGVsYXksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXNfbGlz dGVuLCBpbnQgaXNfdGVsbmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IGlzX3dhaXRjb25uZWN0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKQogewogICAgIENo YXJEcml2ZXJTdGF0ZSAqY2hyID0gTlVMTDsKICAgICBUQ1BDaGFyRHJpdmVyICpzID0gTlVM TDsKKyAgICBjaGFyIGhvc3RbTklfTUFYSE9TVF0sIHNlcnZbTklfTUFYU0VSVl07CisgICAg Y29uc3QgY2hhciAqbGVmdCA9ICIiLCAqcmlnaHQgPSAiIjsKKyAgICBzdHJ1Y3Qgc29ja2Fk ZHJfc3RvcmFnZSBzczsKKyAgICBzb2NrbGVuX3Qgc3NfbGVuID0gc2l6ZW9mKHNzKTsKKwor ICAgIG1lbXNldCgmc3MsIDAsIHNzX2xlbik7CisgICAgaWYgKGdldHNvY2tuYW1lKGZkLCAo c3RydWN0IHNvY2thZGRyICopICZzcywgJnNzX2xlbikgIT0gMCkgeworICAgICAgICBlcnJv cl9zZXRnKGVycnAsICJnZXRzb2NrbmFtZTogJXMiLCBzdHJlcnJvcihlcnJubykpOworICAg ICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBjaHIgPSBnX21hbGxvYzAoc2l6ZW9m KENoYXJEcml2ZXJTdGF0ZSkpOworICAgIHMgPSBnX21hbGxvYzAoc2l6ZW9mKFRDUENoYXJE cml2ZXIpKTsKKworICAgIHMtPmNvbm5lY3RlZCA9IDA7CisgICAgcy0+ZmQgPSAtMTsKKyAg ICBzLT5saXN0ZW5fZmQgPSAtMTsKKyAgICBzLT5tc2dmZCA9IC0xOworCisgICAgY2hyLT5m aWxlbmFtZSA9IGdfbWFsbG9jKDI1Nik7CisgICAgc3dpdGNoIChzcy5zc19mYW1pbHkpIHsK KyNpZm5kZWYgX1dJTjMyCisgICAgY2FzZSBBRl9VTklYOgorICAgICAgICBzLT5pc191bml4 ID0gMTsKKyAgICAgICAgc25wcmludGYoY2hyLT5maWxlbmFtZSwgMjU2LCAidW5peDolcyVz IiwKKyAgICAgICAgICAgICAgICAgKChzdHJ1Y3Qgc29ja2FkZHJfdW4gKikoJnNzKSktPnN1 bl9wYXRoLAorICAgICAgICAgICAgICAgICBpc19saXN0ZW4gPyAiLHNlcnZlciIgOiAiIik7 CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgY2FzZSBBRl9JTkVUNjoKKyAgICAgICAg bGVmdCAgPSAiWyI7CisgICAgICAgIHJpZ2h0ID0gIl0iOworICAgICAgICAvKiBmYWxsIHRo cm91Z2ggKi8KKyAgICBjYXNlIEFGX0lORVQ6CisgICAgICAgIHMtPmRvX25vZGVsYXkgPSBk b19ub2RlbGF5OworICAgICAgICBnZXRuYW1laW5mbygoc3RydWN0IHNvY2thZGRyICopICZz cywgc3NfbGVuLCBob3N0LCBzaXplb2YoaG9zdCksCisgICAgICAgICAgICAgICAgICAgIHNl cnYsIHNpemVvZihzZXJ2KSwgTklfTlVNRVJJQ0hPU1QgfCBOSV9OVU1FUklDU0VSVik7Cisg ICAgICAgIHNucHJpbnRmKGNoci0+ZmlsZW5hbWUsIDI1NiwgIiVzOiVzOiVzJXMlcyVzIiwK KyAgICAgICAgICAgICAgICAgaXNfdGVsbmV0ID8gInRlbG5ldCIgOiAidGNwIiwKKyAgICAg ICAgICAgICAgICAgbGVmdCwgaG9zdCwgcmlnaHQsIHNlcnYsCisgICAgICAgICAgICAgICAg IGlzX2xpc3RlbiA/ICIsc2VydmVyIiA6ICIiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor CisgICAgY2hyLT5vcGFxdWUgPSBzOworICAgIGNoci0+Y2hyX3dyaXRlID0gdGNwX2Nocl93 cml0ZTsKKyAgICBjaHItPmNocl9jbG9zZSA9IHRjcF9jaHJfY2xvc2U7CisgICAgY2hyLT5n ZXRfbXNnZmQgPSB0Y3BfZ2V0X21zZ2ZkOworICAgIGNoci0+Y2hyX2FkZF9jbGllbnQgPSB0 Y3BfY2hyX2FkZF9jbGllbnQ7CisKKyAgICBpZiAoaXNfbGlzdGVuKSB7CisgICAgICAgIHMt Pmxpc3Rlbl9mZCA9IGZkOworICAgICAgICBxZW11X3NldF9mZF9oYW5kbGVyMihzLT5saXN0 ZW5fZmQsIE5VTEwsIHRjcF9jaHJfYWNjZXB0LCBOVUxMLCBjaHIpOworICAgICAgICBpZiAo aXNfdGVsbmV0KSB7CisgICAgICAgICAgICBzLT5kb190ZWxuZXRvcHQgPSAxOworICAgICAg ICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgcy0+Y29ubmVjdGVkID0gMTsKKyAgICAgICAg cy0+ZmQgPSBmZDsKKyAgICAgICAgc29ja2V0X3NldF9ub2RlbGF5KGZkKTsKKyAgICAgICAg dGNwX2Nocl9jb25uZWN0KGNocik7CisgICAgfQorCisgICAgaWYgKGlzX2xpc3RlbiAmJiBp c193YWl0Y29ubmVjdCkgeworICAgICAgICBwcmludGYoIlFFTVUgd2FpdGluZyBmb3IgY29u bmVjdGlvbiBvbjogJXNcbiIsCisgICAgICAgICAgICAgICBjaHItPmZpbGVuYW1lKTsKKyAg ICAgICAgdGNwX2Nocl9hY2NlcHQoY2hyKTsKKyAgICAgICAgc29ja2V0X3NldF9ub25ibG9j ayhzLT5saXN0ZW5fZmQpOworICAgIH0KKyAgICByZXR1cm4gY2hyOworfQorCitzdGF0aWMg Q2hhckRyaXZlclN0YXRlICpxZW11X2Nocl9vcGVuX3NvY2tldChRZW11T3B0cyAqb3B0cykK K3sKKyAgICBDaGFyRHJpdmVyU3RhdGUgKmNociA9IE5VTEw7CiAgICAgRXJyb3IgKmxvY2Fs X2VyciA9IE5VTEw7CiAgICAgaW50IGZkID0gLTE7CiAgICAgaW50IGlzX2xpc3RlbjsKQEAg LTI0NDcsMTAgKzI1MjUsNyBAQCBzdGF0aWMgQ2hhckRyaXZlclN0YXRlICpxZW11X2Nocl9v cGVuX3NvY2tldChRZW11T3B0cyAqb3B0cykKICAgICBpZiAoIWlzX2xpc3RlbikKICAgICAg ICAgaXNfd2FpdGNvbm5lY3QgPSAwOwogCi0gICAgY2hyID0gZ19tYWxsb2MwKHNpemVvZihD aGFyRHJpdmVyU3RhdGUpKTsKLSAgICBzID0gZ19tYWxsb2MwKHNpemVvZihUQ1BDaGFyRHJp dmVyKSk7Ci0KLSAgICBpZiAoaXNfdW5peCkgeworICAgICBpZiAoaXNfdW5peCkgewogICAg ICAgICBpZiAoaXNfbGlzdGVuKSB7CiAgICAgICAgICAgICBmZCA9IHVuaXhfbGlzdGVuX29w dHMob3B0cywgJmxvY2FsX2Vycik7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0yNDcwLDU2ICsy NTQ1LDE0IEBAIHN0YXRpYyBDaGFyRHJpdmVyU3RhdGUgKnFlbXVfY2hyX29wZW5fc29ja2V0 KFFlbXVPcHRzICpvcHRzKQogICAgIGlmICghaXNfd2FpdGNvbm5lY3QpCiAgICAgICAgIHNv Y2tldF9zZXRfbm9uYmxvY2soZmQpOwogCi0gICAgcy0+Y29ubmVjdGVkID0gMDsKLSAgICBz LT5mZCA9IC0xOwotICAgIHMtPmxpc3Rlbl9mZCA9IC0xOwotICAgIHMtPm1zZ2ZkID0gLTE7 Ci0gICAgcy0+aXNfdW5peCA9IGlzX3VuaXg7Ci0gICAgcy0+ZG9fbm9kZWxheSA9IGRvX25v ZGVsYXkgJiYgIWlzX3VuaXg7Ci0KLSAgICBjaHItPm9wYXF1ZSA9IHM7Ci0gICAgY2hyLT5j aHJfd3JpdGUgPSB0Y3BfY2hyX3dyaXRlOwotICAgIGNoci0+Y2hyX2Nsb3NlID0gdGNwX2No cl9jbG9zZTsKLSAgICBjaHItPmdldF9tc2dmZCA9IHRjcF9nZXRfbXNnZmQ7Ci0gICAgY2hy LT5jaHJfYWRkX2NsaWVudCA9IHRjcF9jaHJfYWRkX2NsaWVudDsKLQotICAgIGlmIChpc19s aXN0ZW4pIHsKLSAgICAgICAgcy0+bGlzdGVuX2ZkID0gZmQ7Ci0gICAgICAgIHFlbXVfc2V0 X2ZkX2hhbmRsZXIyKHMtPmxpc3Rlbl9mZCwgTlVMTCwgdGNwX2Nocl9hY2NlcHQsIE5VTEws IGNocik7Ci0gICAgICAgIGlmIChpc190ZWxuZXQpCi0gICAgICAgICAgICBzLT5kb190ZWxu ZXRvcHQgPSAxOwotCi0gICAgfSBlbHNlIHsKLSAgICAgICAgcy0+Y29ubmVjdGVkID0gMTsK LSAgICAgICAgcy0+ZmQgPSBmZDsKLSAgICAgICAgc29ja2V0X3NldF9ub2RlbGF5KGZkKTsK LSAgICAgICAgdGNwX2Nocl9jb25uZWN0KGNocik7Ci0gICAgfQotCi0gICAgLyogZm9yICJp bmZvIGNoYXJkZXYiIG1vbml0b3IgY29tbWFuZCAqLwotICAgIGNoci0+ZmlsZW5hbWUgPSBn X21hbGxvYygyNTYpOwotICAgIGlmIChpc191bml4KSB7Ci0gICAgICAgIHNucHJpbnRmKGNo ci0+ZmlsZW5hbWUsIDI1NiwgInVuaXg6JXMlcyIsCi0gICAgICAgICAgICAgICAgIHFlbXVf b3B0X2dldChvcHRzLCAicGF0aCIpLAotICAgICAgICAgICAgICAgICBxZW11X29wdF9nZXRf Ym9vbChvcHRzLCAic2VydmVyIiwgMCkgPyAiLHNlcnZlciIgOiAiIik7Ci0gICAgfSBlbHNl IGlmIChpc190ZWxuZXQpIHsKLSAgICAgICAgc25wcmludGYoY2hyLT5maWxlbmFtZSwgMjU2 LCAidGVsbmV0OiVzOiVzJXMiLAotICAgICAgICAgICAgICAgICBxZW11X29wdF9nZXQob3B0 cywgImhvc3QiKSwgcWVtdV9vcHRfZ2V0KG9wdHMsICJwb3J0IiksCi0gICAgICAgICAgICAg ICAgIHFlbXVfb3B0X2dldF9ib29sKG9wdHMsICJzZXJ2ZXIiLCAwKSA/ICIsc2VydmVyIiA6 ICIiKTsKLSAgICB9IGVsc2UgewotICAgICAgICBzbnByaW50ZihjaHItPmZpbGVuYW1lLCAy NTYsICJ0Y3A6JXM6JXMlcyIsCi0gICAgICAgICAgICAgICAgIHFlbXVfb3B0X2dldChvcHRz LCAiaG9zdCIpLCBxZW11X29wdF9nZXQob3B0cywgInBvcnQiKSwKLSAgICAgICAgICAgICAg ICAgcWVtdV9vcHRfZ2V0X2Jvb2wob3B0cywgInNlcnZlciIsIDApID8gIixzZXJ2ZXIiIDog IiIpOwotICAgIH0KLQotICAgIGlmIChpc19saXN0ZW4gJiYgaXNfd2FpdGNvbm5lY3QpIHsK LSAgICAgICAgcHJpbnRmKCJRRU1VIHdhaXRpbmcgZm9yIGNvbm5lY3Rpb24gb246ICVzXG4i LAotICAgICAgICAgICAgICAgY2hyLT5maWxlbmFtZSk7Ci0gICAgICAgIHRjcF9jaHJfYWNj ZXB0KGNocik7Ci0gICAgICAgIHNvY2tldF9zZXRfbm9uYmxvY2socy0+bGlzdGVuX2ZkKTsK KyAgICBjaHIgPSBxZW11X2Nocl9vcGVuX3NvY2tldF9mZChmZCwgZG9fbm9kZWxheSwgaXNf bGlzdGVuLCBpc190ZWxuZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aXNfd2FpdGNvbm5lY3QsICZsb2NhbF9lcnIpOworICAgIGlmIChlcnJvcl9pc19zZXQoJmxv Y2FsX2VycikpIHsKKyAgICAgICAgZ290byBmYWlsOwogICAgIH0KICAgICByZXR1cm4gY2hy OwogCisKICBmYWlsOgogICAgIGlmIChsb2NhbF9lcnIpIHsKICAgICAgICAgcWVycm9yX3Jl cG9ydF9lcnIobG9jYWxfZXJyKTsKQEAgLTI1MjgsOCArMjU2MSwxMCBAQCBzdGF0aWMgQ2hh ckRyaXZlclN0YXRlICpxZW11X2Nocl9vcGVuX3NvY2tldChRZW11T3B0cyAqb3B0cykKICAg ICBpZiAoZmQgPj0gMCkgewogICAgICAgICBjbG9zZXNvY2tldChmZCk7CiAgICAgfQotICAg IGdfZnJlZShzKTsKLSAgICBnX2ZyZWUoY2hyKTsKKyAgICBpZiAoY2hyKSB7CisgICAgICAg IGdfZnJlZShjaHItPm9wYXF1ZSk7CisgICAgICAgIGdfZnJlZShjaHIpOworICAgIH0KICAg ICByZXR1cm4gTlVMTDsKIH0KIApAQCAtMzA1Nyw2ICszMDkyLDI4IEBAIHN0YXRpYyBDaGFy RHJpdmVyU3RhdGUgKnFtcF9jaGFyZGV2X29wZW5fcG9ydChDaGFyZGV2UG9ydCAqcG9ydCwg RXJyb3IgKiplcnJwKQogCiAjZW5kaWYgLyogV0lOMzIgKi8KIAorc3RhdGljIENoYXJEcml2 ZXJTdGF0ZSAqcW1wX2NoYXJkZXZfb3Blbl9zb2NrZXQoQ2hhcmRldlNvY2tldCAqc29jaywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9y ICoqZXJycCkKK3sKKyAgICBTb2NrZXRBZGRyZXNzICphZGRyID0gc29jay0+YWRkcjsKKyAg ICBib29sIGRvX25vZGVsYXkgICAgID0gc29jay0+aGFzX2RlbGF5ICA/ICFzb2NrLT5kZWxh eSA6IHRydWU7CisgICAgYm9vbCBpc19saXN0ZW4gICAgICA9IHNvY2stPmhhc19zZXJ2ZXIg PyBzb2NrLT5zZXJ2ZXIgOiB0cnVlOworICAgIGJvb2wgaXNfdGVsbmV0ICAgICAgPSBzb2Nr LT5oYXNfdGVsbmV0ID8gc29jay0+dGVsbmV0IDogZmFsc2U7CisgICAgYm9vbCBpc193YWl0 Y29ubmVjdCA9IHNvY2stPmhhc193YWl0ICAgPyBzb2NrLT53YWl0ICAgOiBmYWxzZTsKKyAg ICBpbnQgZmQ7CisKKyAgICBpZiAoaXNfbGlzdGVuKSB7CisgICAgICAgIGZkID0gc29ja2V0 X2xpc3RlbihhZGRyLCBlcnJwKTsKKyAgICB9IGVsc2UgeworICAgICAgICBmZCA9IHNvY2tl dF9jb25uZWN0KGFkZHIsIGVycnAsIE5VTEwsIE5VTEwpOworICAgIH0KKyAgICBpZiAoZXJy b3JfaXNfc2V0KGVycnApKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBy ZXR1cm4gcWVtdV9jaHJfb3Blbl9zb2NrZXRfZmQoZmQsIGRvX25vZGVsYXksIGlzX2xpc3Rl biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfdGVsbmV0LCBpc193 YWl0Y29ubmVjdCwgZXJycCk7Cit9CisKIHZvaWQgcW1wX2NoYXJkZXZfYWRkKGNvbnN0IGNo YXIgKmlkLCBDaGFyZGV2QmFja2VuZCAqYmFja2VuZCwgRXJyb3IgKiplcnJwKQogewogICAg IENoYXJEcml2ZXJTdGF0ZSAqY2hyOwpAQCAtMzA2OCw2ICszMTI1LDkgQEAgdm9pZCBxbXBf Y2hhcmRldl9hZGQoY29uc3QgY2hhciAqaWQsIENoYXJkZXZCYWNrZW5kICpiYWNrZW5kLCBF cnJvciAqKmVycnApCiAgICAgY2FzZSBDSEFSREVWX0JBQ0tFTkRfS0lORF9QT1JUOgogICAg ICAgICBjaHIgPSBxbXBfY2hhcmRldl9vcGVuX3BvcnQoYmFja2VuZC0+cG9ydCwgZXJycCk7 CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ0hBUkRFVl9CQUNLRU5EX0tJTkRfU09DS0VU OgorICAgICAgICBjaHIgPSBxbXBfY2hhcmRldl9vcGVuX3NvY2tldChiYWNrZW5kLT5zb2Nr ZXQsIGVycnApOworICAgICAgICBicmVhazsKICAgICBjYXNlIENIQVJERVZfQkFDS0VORF9L SU5EX05VTEw6CiAgICAgICAgIGNociA9IHFlbXVfY2hyX29wZW5fbnVsbChOVUxMKTsKICAg ICAgICAgYnJlYWs7Ci0tIAoxLjcuMQoK --------------060304070801050004000303--