From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changlong Xie Subject: [PATCH v12 26/26] cmdline switches and config vars to control colo-proxy Date: Wed, 23 Mar 2016 16:06:40 +0800 Message-ID: <1458720400-4699-27-git-send-email-xiecl.fnst@cn.fujitsu.com> References: <1458720400-4699-1-git-send-email-xiecl.fnst@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458720400-4699-1-git-send-email-xiecl.fnst@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen devel , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Campbell , Ian Jackson , Wei Liu Cc: Lars Kurth , Changlong Xie , Wen Congyang , Li Zhijian , Gui Jianfeng , Jiang Yunhong , Dong Eddie , Anthony Perard , Shriram Rajagopalan , Yang Hongyang List-Id: xen-devel@lists.xenproject.org RnJvbTogV2VuIENvbmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4KCkFkZCBjbWRsaW5lIHN3 aXRjaGVzIHRvICd4bCBtaWdyYXRlLXJlY2VpdmUnIGNvbW1hbmQgdG8gc3BlY2lmeQphIGRvbWFp bi1zcGVjaWZpYyBob3RwbHVnIHNjcmlwdCB0byBzZXR1cCBDT0xPIHByb3h5LgoKQWRkIGEgbmV3 IGNvbmZpZyB2YXIgJ2NvbG8uZGVmYXVsdC5hZ2VudHNjcmlwdCcgdG8geGwuY29uZiwgdGhhdAph bGxvd3MgdGhlIHVzZXIgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZ2xvYmFsIHNjcmlwdCB1c2Vk IHRvCnNldHVwIENPTE8gcHJveHkuCgpTaWduZWQtb2ZmLWJ5OiBZYW5nIEhvbmd5YW5nIDxob25n eWFuZy55YW5nQGVhc3lzdGFjay5jbj4KU2lnbmVkLW9mZi1ieTogV2VuIENvbmd5YW5nIDx3ZW5j eUBjbi5mdWppdHN1LmNvbT4KU2lnbmVkLW9mZi1ieTogQ2hhbmdsb25nIFhpZSA8eGllY2wuZm5z dEBjbi5mdWppdHN1LmNvbT4KLS0tCiBkb2NzL21hbi94bC5jb25mLnBvZC41ICAgICAgICAgICB8 ICA2ICsrKysrCiBkb2NzL21hbi94bC5wb2QuMSAgICAgICAgICAgICAgICB8ICA3ICsrKystLQog dG9vbHMvbGlieGwvbGlieGwuYyAgICAgICAgICAgICAgfCAgNiArKysrKwogdG9vbHMvbGlieGwv bGlieGxfY29sb19yZXN0b3JlLmMgfCAgNSArKysrCiB0b29scy9saWJ4bC9saWJ4bF9jcmVhdGUu YyAgICAgICB8ICA5ICsrKysrLS0KIHRvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbCAgICAgIHwg IDEgKwogdG9vbHMvbGlieGwveGwuYyAgICAgICAgICAgICAgICAgfCAgMyArKysKIHRvb2xzL2xp YnhsL3hsLmggICAgICAgICAgICAgICAgIHwgIDEgKwogdG9vbHMvbGlieGwveGxfY21kaW1wbC5j ICAgICAgICAgfCA1MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiA5 IGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RvY3MvbWFuL3hsLmNvbmYucG9kLjUgYi9kb2NzL21hbi94bC5jb25mLnBvZC41Cmlu ZGV4IDhhZTE5YmIuLjhmN2ZkMjggMTAwNjQ0Ci0tLSBhL2RvY3MvbWFuL3hsLmNvbmYucG9kLjUK KysrIGIvZG9jcy9tYW4veGwuY29uZi5wb2QuNQpAQCAtMTExLDYgKzExMSwxMiBAQCBDb25maWd1 cmVzIHRoZSBkZWZhdWx0IHNjcmlwdCB1c2VkIGJ5IFJlbXVzIHRvIHNldHVwIG5ldHdvcmsgYnVm ZmVyaW5nLgogCiBEZWZhdWx0OiBDPC9ldGMveGVuL3NjcmlwdHMvcmVtdXMtbmV0YnVmLXNldHVw PgogCis9aXRlbSBCPGNvbG8uZGVmYXVsdC5wcm94eXNjcmlwdD0iUEFUSCI+CisKK0NvbmZpZ3Vy ZXMgdGhlIGRlZmF1bHQgc2NyaXB0IHVzZWQgYnkgQ09MTyB0byBzZXR1cCBjb2xvLXByb3h5Lgor CitEZWZhdWx0OiBDPC9ldGMveGVuL3NjcmlwdHMvY29sby1wcm94eS1zZXR1cD4KKwogPWl0ZW0g QjxvdXRwdXRfZm9ybWF0PSJqc29ufHN4cCI+CiAKIENvbmZpZ3VyZXMgdGhlIGRlZmF1bHQgb3V0 cHV0IGZvcm1hdCB1c2VkIGJ5IHhsIHdoZW4gcHJpbnRpbmcgIm1hY2hpbmUKZGlmZiAtLWdpdCBh L2RvY3MvbWFuL3hsLnBvZC4xIGIvZG9jcy9tYW4veGwucG9kLjEKaW5kZXggMTZlYmZhZS4uMzk3 N2Q0YiAxMDA2NDQKLS0tIGEvZG9jcy9tYW4veGwucG9kLjEKKysrIGIvZG9jcy9tYW4veGwucG9k LjEKQEAgLTQ1OCw4ICs0NTgsNiBAQCBSZW11cyBzdXBwb3J0IGluIHhsIGlzIHN0aWxsIGluIGV4 cGVyaW1lbnRhbCAocHJvb2Ytb2YtY29uY2VwdCkgcGhhc2UuCiBEaXNrIHJlcGxpY2F0aW9uIHN1 cHBvcnQgaXMgbGltaXRlZCB0byBEUkJEIGRpc2tzLgogCiBDT0xPIHN1cHBvcnQgaW4geGwgaXMg c3RpbGwgaW4gZXhwZXJpbWVudGFsIChwcm9vZi1vZi1jb25jZXB0KSBwaGFzZS4KLVRoZXJlIGlz IG5vIHN1cHBvcnQgZm9yIG5ldHdvcmssIHNvIHRoZSBndWVzdCB3aWxsIGNvbmZ1c2UgaXRzIG5l dHdvcmsKLXBlZXJzIGF0IHRoZSBtb21lbnQuCiAKID1iYWNrCiAKQEAgLTQ4Myw2ICs0ODEsMTEg QEAgYW5kIGl0J3MgdXNlZCBieSBzZWNvbmRhcnkuCiA9aXRlbSBCPGhpZGRlbi1kaXNrPiAgICA6 UHJpbWFyeSdzIG1vZGlmaWVkIGNvbnRlbnRzIHdpbGwgYmUgYnVmZmVyZWQgaW4gdGhpcwogZGlz aywgYW5kIGl0J3MgdXNlZCBieSBzZWNvbmRhcnkuCiAKKyhiKSBBbiBleGFtcGxlIGZvciBDT0xP IG5ldHdvcmsgY29uZmlndXJhdGlvbjogdmlmID1bICcuLi4sZm9yd2FyZGRldj14eHgsLi4uJ10K KworPWl0ZW0gQjxmb3J3YXJkZGV2PiAgICAgOkZvcndhcmQgZGV2aWNlcyBmb3IgcHJpbWFyeSBh bmQgc2Vjb25kYXJ5LCB0aGVyZSBhcmUKK2RpcmVjdGx5IGNvbm5lY3RlZC4KKwogPWJhY2sKIAog QjxPUFRJT05TPgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGwuYyBiL3Rvb2xzL2xpYnhs L2xpYnhsLmMKaW5kZXggNTQ4MjIxOS4uYjcwZDhiMCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGwuYworKysgYi90b29scy9saWJ4bC9saWJ4bC5jCkBAIC0zMzc5LDYgKzMzNzksMTEgQEAg dm9pZCBsaWJ4bF9fZGV2aWNlX25pY19hZGQobGlieGxfX2VnYyAqZWdjLCB1aW50MzJfdCBkb21p ZCwKICAgICAgICAgZmxleGFycmF5X2FwcGVuZChiYWNrLCBuaWMtPmlmbmFtZSk7CiAgICAgfQog CisgICAgaWYgKG5pYy0+Zm9yd2FyZGRldikgeworICAgICAgICBmbGV4YXJyYXlfYXBwZW5kKGJh Y2ssICJmb3J3YXJkZGV2Iik7CisgICAgICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgbmljLT5m b3J3YXJkZGV2KTsKKyAgICB9CisKICAgICBmbGV4YXJyYXlfYXBwZW5kKGJhY2ssICJtYWMiKTsK ICAgICBmbGV4YXJyYXlfYXBwZW5kKGJhY2ssR0NTUFJJTlRGKExJQlhMX01BQ19GTVQsIExJQlhM X01BQ19CWVRFUyhuaWMtPm1hYykpKTsKICAgICBpZiAobmljLT5pcCkgewpAQCAtMzUwMSw2ICsz NTA2LDcgQEAgc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX25pY19mcm9tX3hzX2JlKGxpYnhsX19n YyAqZ2MsCiAgICAgbmljLT5pcCA9IFJFQURfQkFDS0VORChOT0dDLCAiaXAiKTsKICAgICBuaWMt PmJyaWRnZSA9IFJFQURfQkFDS0VORChOT0dDLCAiYnJpZGdlIik7CiAgICAgbmljLT5zY3JpcHQg PSBSRUFEX0JBQ0tFTkQoTk9HQywgInNjcmlwdCIpOworICAgIG5pYy0+Zm9yd2FyZGRldiA9IFJF QURfQkFDS0VORChOT0dDLCAiZm9yd2FyZGRldiIpOwogCiAgICAgLyogdmlmX2lvZW11IG5pY3Mg dXNlIHRoZSBzYW1lIHhlbnN0b3JlIGVudHJpZXMgYXMgdmlmIGludGVyZmFjZXMgKi8KICAgICB0 bXAgPSBSRUFEX0JBQ0tFTkQoZ2MsICJ0eXBlIik7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9s aWJ4bF9jb2xvX3Jlc3RvcmUuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG9fcmVzdG9yZS5jCmlu ZGV4IGM4YWQ3OTYuLjM0ODNmMzkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG9f cmVzdG9yZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG9fcmVzdG9yZS5jCkBAIC0yMzMs NiArMjMzLDExIEBAIHZvaWQgbGlieGxfX2NvbG9fcmVzdG9yZV9zZXR1cChsaWJ4bF9fZWdjICpl Z2MsCiAgICAgY3Jjcy0+Y3JzID0gY3JzOwogICAgIGNycy0+cWRpc2tfc2V0dXBlZCA9IGZhbHNl OwogICAgIGNycy0+cWRpc2tfdXNlZCA9IGZhbHNlOworICAgIGlmIChkY3MtPmNvbG9fcHJveHlf c2NyaXB0KQorICAgICAgICBjcnMtPmNvbG9fcHJveHlfc2NyaXB0ID0gbGlieGxfX3N0cmR1cChn YywgZGNzLT5jb2xvX3Byb3h5X3NjcmlwdCk7CisgICAgZWxzZQorICAgICAgICBjcnMtPmNvbG9f cHJveHlfc2NyaXB0ID0gR0NTUFJJTlRGKCIlcy9jb2xvLXByb3h5LXNldHVwIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feGVuX3NjcmlwdF9kaXJf cGF0aCgpKTsKIAogICAgIC8qIHNldHVwIGRzcHMgKi8KICAgICBjcmNzLT5kc3BzLmFvID0gYW87 CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYyBiL3Rvb2xzL2xpYnhsL2xp YnhsX2NyZWF0ZS5jCmluZGV4IDZhOTZhN2QuLmRmODM4NDkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xp YnhsL2xpYnhsX2NyZWF0ZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCkBAIC0x NjIxLDYgKzE2MjEsNyBAQCBzdGF0aWMgdm9pZCBkb21haW5fY3JlYXRlX2NiKGxpYnhsX19lZ2Mg KmVnYywKIHN0YXRpYyBpbnQgZG9fZG9tYWluX2NyZWF0ZShsaWJ4bF9jdHggKmN0eCwgbGlieGxf ZG9tYWluX2NvbmZpZyAqZF9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDMyX3QgKmRvbWlkLCBpbnQgcmVzdG9yZV9mZCwgaW50IHNlbmRfYmFja19mZCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9kb21haW5fcmVzdG9yZV9wYXJhbXMgKnBh cmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpjb2xvX3Byb3h5 X3NjcmlwdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9hc3luY29w X2hvdyAqYW9faG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2Fz eW5jcHJvZ3Jlc3NfaG93ICphb3BfY29uc29sZV9ob3cpCiB7CkBAIC0xNjQ0LDYgKzE2NDUsNyBA QCBzdGF0aWMgaW50IGRvX2RvbWFpbl9jcmVhdGUobGlieGxfY3R4ICpjdHgsIGxpYnhsX2RvbWFp bl9jb25maWcgKmRfY29uZmlnLAogICAgIH0KICAgICBjZGNzLT5kY3MuY2FsbGJhY2sgPSBkb21h aW5fY3JlYXRlX2NiOwogICAgIGNkY3MtPmRjcy5kb21pZF9zb2Z0X3Jlc2V0ID0gSU5WQUxJRF9E T01JRDsKKyAgICBjZGNzLT5kY3MuY29sb19wcm94eV9zY3JpcHQgPSBjb2xvX3Byb3h5X3Njcmlw dDsKICAgICBsaWJ4bF9fYW9fcHJvZ3Jlc3NfZ2V0aG93KCZjZGNzLT5kY3MuYW9wX2NvbnNvbGVf aG93LCBhb3BfY29uc29sZV9ob3cpOwogICAgIGNkY3MtPmRvbWlkX291dCA9IGRvbWlkOwogCkBA IC0xODMxLDcgKzE4MzMsNyBAQCBpbnQgbGlieGxfZG9tYWluX2NyZWF0ZV9uZXcobGlieGxfY3R4 ICpjdHgsIGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jcHJvZ3Jlc3NfaG93ICphb3BfY29uc29sZV9ob3cp CiB7CiAgICAgdW5zZXRfZGlza19jb2xvX3Jlc3RvcmUoZF9jb25maWcpOwotICAgIHJldHVybiBk b19kb21haW5fY3JlYXRlKGN0eCwgZF9jb25maWcsIGRvbWlkLCAtMSwgLTEsIE5VTEwsCisgICAg cmV0dXJuIGRvX2RvbWFpbl9jcmVhdGUoY3R4LCBkX2NvbmZpZywgZG9taWQsIC0xLCAtMSwgTlVM TCwgTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhb19ob3csIGFvcF9jb25zb2xl X2hvdyk7CiB9CiAKQEAgLTE4NDIsMTQgKzE4NDQsMTcgQEAgaW50IGxpYnhsX2RvbWFpbl9jcmVh dGVfcmVzdG9yZShsaWJ4bF9jdHggKmN0eCwgbGlieGxfZG9tYWluX2NvbmZpZyAqZF9jb25maWcs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3BfaG93 ICphb19ob3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2Fz eW5jcHJvZ3Jlc3NfaG93ICphb3BfY29uc29sZV9ob3cpCiB7CisgICAgY2hhciAqY29sb19wcm94 eV9zY3JpcHQgPSBOVUxMOworCiAgICAgaWYgKHBhcmFtcy0+Y2hlY2twb2ludGVkX3N0cmVhbSA9 PSBMSUJYTF9DSEVDS1BPSU5URURfU1RSRUFNX0NPTE8pIHsKKyAgICAgICAgY29sb19wcm94eV9z Y3JpcHQgPSBwYXJhbXMtPmNvbG9fcHJveHlfc2NyaXB0OwogICAgICAgICBzZXRfZGlza19jb2xv X3Jlc3RvcmUoZF9jb25maWcpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHVuc2V0X2Rpc2tfY29s b19yZXN0b3JlKGRfY29uZmlnKTsKICAgICB9CiAKICAgICByZXR1cm4gZG9fZG9tYWluX2NyZWF0 ZShjdHgsIGRfY29uZmlnLCBkb21pZCwgcmVzdG9yZV9mZCwgc2VuZF9iYWNrX2ZkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgYW9faG93LCBhb3BfY29uc29sZV9ob3cpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgY29sb19wcm94eV9zY3JpcHQsIGFv X2hvdywgYW9wX2NvbnNvbGVfaG93KTsKIH0KIAogaW50IGxpYnhsX2RvbWFpbl9zb2Z0X3Jlc2V0 KGxpYnhsX2N0eCAqY3R4LApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRs IGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCmluZGV4IGE4YmUwNzguLmJkYmYwYmMgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAorKysgYi90b29scy9saWJ4bC9s aWJ4bF90eXBlcy5pZGwKQEAgLTM4NSw2ICszODUsNyBAQCBsaWJ4bF9kb21haW5fY3JlYXRlX2lu Zm8gPSBTdHJ1Y3QoImRvbWFpbl9jcmVhdGVfaW5mbyIsWwogbGlieGxfZG9tYWluX3Jlc3RvcmVf cGFyYW1zID0gU3RydWN0KCJkb21haW5fcmVzdG9yZV9wYXJhbXMiLCBbCiAgICAgKCJjaGVja3Bv aW50ZWRfc3RyZWFtIiwgaW50ZWdlciksCiAgICAgKCJzdHJlYW1fdmVyc2lvbiIsIHVpbnQzMiwg eydpbml0X3ZhbCc6ICcxJ30pLAorICAgICgiY29sb19wcm94eV9zY3JpcHQiLCBzdHJpbmcpLAog ICAgIF0pCiAKIGxpYnhsX2RvbWFpbl9zY2hlZF9wYXJhbXMgPSBTdHJ1Y3QoImRvbWFpbl9zY2hl ZF9wYXJhbXMiLFsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL3hsLmMgYi90b29scy9saWJ4bC94 bC5jCmluZGV4IGRmYWU4NGEuLmEyNzIyNTggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL3hsLmMK KysrIGIvdG9vbHMvbGlieGwveGwuYwpAQCAtNDUsNiArNDUsNyBAQCBjaGFyICpkZWZhdWx0X2Jy aWRnZSA9IE5VTEw7CiBjaGFyICpkZWZhdWx0X2dhdGV3YXlkZXYgPSBOVUxMOwogY2hhciAqZGVm YXVsdF92aWZiYWNrZW5kID0gTlVMTDsKIGNoYXIgKmRlZmF1bHRfcmVtdXNfbmV0YnVmc2NyaXB0 ID0gTlVMTDsKK2NoYXIgKmRlZmF1bHRfY29sb19wcm94eV9zY3JpcHQgPSBOVUxMOwogZW51bSBv dXRwdXRfZm9ybWF0IGRlZmF1bHRfb3V0cHV0X2Zvcm1hdCA9IE9VVFBVVF9GT1JNQVRfSlNPTjsK IGludCBjbGFpbV9tb2RlID0gMTsKIGJvb2wgcHJvZ3Jlc3NfdXNlX2NyID0gMDsKQEAgLTE3OSw2 ICsxODAsOCBAQCBzdGF0aWMgdm9pZCBwYXJzZV9nbG9iYWxfY29uZmlnKGNvbnN0IGNoYXIgKmNv bmZpZ2ZpbGUsCiAKICAgICB4bHVfY2ZnX3JlcGxhY2Vfc3RyaW5nIChjb25maWcsICJyZW11cy5k ZWZhdWx0Lm5ldGJ1ZnNjcmlwdCIsCiAgICAgICAgICZkZWZhdWx0X3JlbXVzX25ldGJ1ZnNjcmlw dCwgMCk7CisgICAgeGx1X2NmZ19yZXBsYWNlX3N0cmluZyAoY29uZmlnLCAiY29sby5kZWZhdWx0 LnByb3h5c2NyaXB0IiwKKyAgICAgICAgJmRlZmF1bHRfY29sb19wcm94eV9zY3JpcHQsIDApOwog CiAgICAgeGx1X2NmZ19kZXN0cm95KGNvbmZpZyk7CiB9CmRpZmYgLS1naXQgYS90b29scy9saWJ4 bC94bC5oIGIvdG9vbHMvbGlieGwveGwuaAppbmRleCBiZGFiMTI1Li43MDljM2ZkIDEwMDY0NAot LS0gYS90b29scy9saWJ4bC94bC5oCisrKyBiL3Rvb2xzL2xpYnhsL3hsLmgKQEAgLTE4OSw2ICsx ODksNyBAQCBleHRlcm4gY2hhciAqZGVmYXVsdF9icmlkZ2U7CiBleHRlcm4gY2hhciAqZGVmYXVs dF9nYXRld2F5ZGV2OwogZXh0ZXJuIGNoYXIgKmRlZmF1bHRfdmlmYmFja2VuZDsKIGV4dGVybiBj aGFyICpkZWZhdWx0X3JlbXVzX25ldGJ1ZnNjcmlwdDsKK2V4dGVybiBjaGFyICpkZWZhdWx0X2Nv bG9fcHJveHlfc2NyaXB0OwogZXh0ZXJuIGNoYXIgKmJsa2Rldl9zdGFydDsKIAogZW51bSBvdXRw dXRfZm9ybWF0IHsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYyBiL3Rvb2xz L2xpYnhsL3hsX2NtZGltcGwuYwppbmRleCAzMGQyNmJjLi4zZmE1Y2Q5IDEwMDY0NAotLS0gYS90 b29scy9saWJ4bC94bF9jbWRpbXBsLmMKKysrIGIvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jCkBA IC0xNTgsNiArMTU4LDcgQEAgc3RydWN0IGRvbWFpbl9jcmVhdGUgewogICAgIGNvbnN0IGNoYXIg KmNvbmZpZ19maWxlOwogICAgIGNoYXIgKmV4dHJhX2NvbmZpZzsgLyogZXh0cmEgY29uZmlnIHN0 cmluZyAqLwogICAgIGNvbnN0IGNoYXIgKnJlc3RvcmVfZmlsZTsKKyAgICBjaGFyICpjb2xvX3By b3h5X3NjcmlwdDsKICAgICBpbnQgbWlncmF0ZV9mZDsgLyogLTEgbWVhbnMgbm9uZSAqLwogICAg IGludCBzZW5kX2JhY2tfZmQ7IC8qIC0xIG1lYW5zIG5vbmUgKi8KICAgICBjaGFyICoqbWlncmF0 aW9uX2RvbW5hbWVfcjsgLyogZnJvbSBtYWxsb2MgKi8KQEAgLTEwNTMsNiArMTA1NCw4IEBAIHN0 YXRpYyBpbnQgcGFyc2VfbmljX2NvbmZpZyhsaWJ4bF9kZXZpY2VfbmljICpuaWMsIFhMVV9Db25m aWcgKipjb25maWcsIGNoYXIgKnRvCiAgICAgICAgIHJlcGxhY2Vfc3RyaW5nKCZuaWMtPm1vZGVs LCBvcGFyZyk7CiAgICAgfSBlbHNlIGlmIChNQVRDSF9PUFRJT04oInJhdGUiLCB0b2tlbiwgb3Bh cmcpKSB7CiAgICAgICAgIHBhcnNlX3ZpZl9yYXRlKGNvbmZpZywgb3BhcmcsIG5pYyk7CisgICAg fSBlbHNlIGlmIChNQVRDSF9PUFRJT04oImZvcndhcmRkZXYiLCB0b2tlbiwgb3BhcmcpKSB7Cisg ICAgICAgIHJlcGxhY2Vfc3RyaW5nKCZuaWMtPmZvcndhcmRkZXYsIG9wYXJnKTsKICAgICB9IGVs c2UgaWYgKE1BVENIX09QVElPTigiYWNjZWwiLCB0b2tlbiwgb3BhcmcpKSB7CiAgICAgICAgIGZw cmludGYoc3RkZXJyLCAidGhlIGFjY2VsIHBhcmFtZXRlciBmb3IgdmlmcyBpcyBjdXJyZW50bHkg bm90IHN1cHBvcnRlZFxuIik7CiAgICAgfSBlbHNlIHsKQEAgLTI4OTYsNiArMjg5OSw3IEBAIHN0 YXJ0OgogICAgICAgICBwYXJhbXMuY2hlY2twb2ludGVkX3N0cmVhbSA9IGRvbV9pbmZvLT5jaGVj a3BvaW50ZWRfc3RyZWFtOwogICAgICAgICBwYXJhbXMuc3RyZWFtX3ZlcnNpb24gPQogICAgICAg ICAgICAgKGhkci5tYW5kYXRvcnlfZmxhZ3MgJiBYTF9NQU5EQVRPUllfRkxBR19TVFJFQU12Mikg PyAyIDogMTsKKyAgICAgICAgcGFyYW1zLmNvbG9fcHJveHlfc2NyaXB0ID0gZG9tX2luZm8tPmNv bG9fcHJveHlfc2NyaXB0OwogCiAgICAgICAgIHJldCA9IGxpYnhsX2RvbWFpbl9jcmVhdGVfcmVz dG9yZShjdHgsICZkX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZkb21pZCwgcmVzdG9yZV9mZCwKQEAgLTQ0MzgsNyArNDQ0Miw4IEBAIHN0YXRpYyB2 b2lkIG1pZ3JhdGVfZG9tYWluKHVpbnQzMl90IGRvbWlkLCBjb25zdCBjaGFyICpydW5lLCBpbnQg ZGVidWcsCiAKIHN0YXRpYyB2b2lkIG1pZ3JhdGVfcmVjZWl2ZShpbnQgZGVidWcsIGludCBkYWVt b25pemUsIGludCBtb25pdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzZW5k X2ZkLCBpbnQgcmVjdl9mZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9jaGVj a3BvaW50ZWRfc3RyZWFtIGNoZWNrcG9pbnRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWJ4bF9jaGVja3BvaW50ZWRfc3RyZWFtIGNoZWNrcG9pbnRlZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjaGFyICpjb2xvX3Byb3h5X3NjcmlwdCkKIHsKICAgICB1aW50MzJfdCBk b21pZDsKICAgICBpbnQgcmMsIHJjMjsKQEAgLTQ0NjcsNiArNDQ3Miw3IEBAIHN0YXRpYyB2b2lk IG1pZ3JhdGVfcmVjZWl2ZShpbnQgZGVidWcsIGludCBkYWVtb25pemUsIGludCBtb25pdG9yLAog ICAgIGRvbV9pbmZvLnNlbmRfYmFja19mZCA9IHNlbmRfZmQ7CiAgICAgZG9tX2luZm8ubWlncmF0 aW9uX2RvbW5hbWVfciA9ICZtaWdyYXRpb25fZG9tbmFtZTsKICAgICBkb21faW5mby5jaGVja3Bv aW50ZWRfc3RyZWFtID0gY2hlY2twb2ludGVkOworICAgIGRvbV9pbmZvLmNvbG9fcHJveHlfc2Ny aXB0ID0gY29sb19wcm94eV9zY3JpcHQ7CiAKICAgICByYyA9IGNyZWF0ZV9kb21haW4oJmRvbV9p bmZvKTsKICAgICBpZiAocmMgPCAwKSB7CkBAIC00NjYwLDggKzQ2NjYsMTMgQEAgaW50IG1haW5f bWlncmF0ZV9yZWNlaXZlKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBpbnQgZGVidWcgPSAw LCBkYWVtb25pemUgPSAxLCBtb25pdG9yID0gMTsKICAgICBsaWJ4bF9jaGVja3BvaW50ZWRfc3Ry ZWFtIGNoZWNrcG9pbnRlZCA9IExJQlhMX0NIRUNLUE9JTlRFRF9TVFJFQU1fTk9ORTsKICAgICBp bnQgb3B0OworICAgIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIG9wdHNbXSA9IHsKKyAgICAgICAgeyJz Y3JpcHQiLCAxLCAwLCAweDEwMH0sCisgICAgICAgIENPTU1PTl9MT05HX09QVFMKKyAgICB9Owor ICAgIGNoYXIgKnNjcmlwdCA9IE5VTEw7CiAKLSAgICBTV0lUQ0hfRk9SRUFDSF9PUFQob3B0LCAi RmVkcmMiLCBOVUxMLCAibWlncmF0ZS1yZWNlaXZlIiwgMCkgeworICAgIFNXSVRDSF9GT1JFQUNI X09QVChvcHQsICJGZWRyYyIsIG9wdHMsICJtaWdyYXRlLXJlY2VpdmUiLCAwKSB7CiAgICAgY2Fz ZSAnRic6CiAgICAgICAgIGRhZW1vbml6ZSA9IDA7CiAgICAgICAgIGJyZWFrOwpAQCAtNDY3OCw2 ICs0Njg5LDkgQEAgaW50IG1haW5fbWlncmF0ZV9yZWNlaXZlKGludCBhcmdjLCBjaGFyICoqYXJn dikKICAgICBjYXNlICdjJzoKICAgICAgICAgY2hlY2twb2ludGVkID0gTElCWExfQ0hFQ0tQT0lO VEVEX1NUUkVBTV9DT0xPOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIDB4MTAwOgorICAgICAg ICBzY3JpcHQgPSBvcHRhcmc7CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGlmIChhcmdj LW9wdGluZCAhPSAwKSB7CkBAIC00Njg2LDcgKzQ3MDAsNyBAQCBpbnQgbWFpbl9taWdyYXRlX3Jl Y2VpdmUoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgIH0KICAgICBtaWdyYXRlX3JlY2VpdmUo ZGVidWcsIGRhZW1vbml6ZSwgbW9uaXRvciwKICAgICAgICAgICAgICAgICAgICAgU1RET1VUX0ZJ TEVOTywgU1RESU5fRklMRU5PLAotICAgICAgICAgICAgICAgICAgICBjaGVja3BvaW50ZWQpOwor ICAgICAgICAgICAgICAgICAgICBjaGVja3BvaW50ZWQsIHNjcmlwdCk7CiAKICAgICByZXR1cm4g MDsKIH0KQEAgLTgwOTYsOCArODExMCwxMCBAQCBpbnQgbWFpbl9yZW11cyhpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCiAgICAgICAgIHJfaW5mby5pbnRlcnZhbCA9IDIwMDsKIAogICAgIGlmIChsaWJ4 bF9kZWZib29sX3ZhbChyX2luZm8uY29sbykpIHsKLSAgICAgICAgaWYgKHJfaW5mby5pbnRlcnZh bCB8fCBsaWJ4bF9kZWZib29sX3ZhbChyX2luZm8uYmxhY2tob2xlKSkgewotICAgICAgICAgICAg cGVycm9yKCJPcHRpb24gLWMgY29uZmxpY3RzIHdpdGggLWkgb3IgLWIiKTsKKyAgICAgICAgaWYg KHJfaW5mby5pbnRlcnZhbCB8fCBsaWJ4bF9kZWZib29sX3ZhbChyX2luZm8uYmxhY2tob2xlKSB8 fAorICAgICAgICAgICAgIWxpYnhsX2RlZmJvb2xfaXNfZGVmYXVsdChyX2luZm8ubmV0YnVmKSB8 fAorICAgICAgICAgICAgIWxpYnhsX2RlZmJvb2xfaXNfZGVmYXVsdChyX2luZm8uZGlza2J1Zikp IHsKKyAgICAgICAgICAgIHBlcnJvcigib3B0aW9uIC1jIGlzIGNvbmZsaWN0IHdpdGggLWksIC1k LCAtbiBvciAtYiIpOwogICAgICAgICAgICAgZXhpdCgtMSk7CiAgICAgICAgIH0KIApAQCAtODEw OCw4ICs4MTI0LDEyIEBAIGludCBtYWluX3JlbXVzKGludCBhcmdjLCBjaGFyICoqYXJndikKICAg ICAgICAgfQogICAgIH0KIAotICAgIGlmICghcl9pbmZvLm5ldGJ1ZnNjcmlwdCkKLSAgICAgICAg cl9pbmZvLm5ldGJ1ZnNjcmlwdCA9IGRlZmF1bHRfcmVtdXNfbmV0YnVmc2NyaXB0OworICAgIGlm ICghcl9pbmZvLm5ldGJ1ZnNjcmlwdCkgeworICAgICAgICBpZiAobGlieGxfZGVmYm9vbF92YWwo cl9pbmZvLmNvbG8pKQorICAgICAgICAgICAgcl9pbmZvLm5ldGJ1ZnNjcmlwdCA9IGRlZmF1bHRf Y29sb19wcm94eV9zY3JpcHQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJfaW5mby5uZXRi dWZzY3JpcHQgPSBkZWZhdWx0X3JlbXVzX25ldGJ1ZnNjcmlwdDsKKyAgICB9CiAKICAgICBpZiAo bGlieGxfZGVmYm9vbF92YWwocl9pbmZvLmJsYWNraG9sZSkpIHsKICAgICAgICAgc2VuZF9mZCA9 IG9wZW4oIi9kZXYvbnVsbCIsIE9fUkRXUiwgMDY0NCk7CkBAIC04MTIyLDEwICs4MTQyLDE5IEBA IGludCBtYWluX3JlbXVzKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgaWYgKCFzc2hf Y29tbWFuZFswXSkgewogICAgICAgICAgICAgcnVuZSA9IGhvc3Q7CiAgICAgICAgIH0gZWxzZSB7 Ci0gICAgICAgICAgICB4YXNwcmludGYoJnJ1bmUsICJleGVjICVzICVzIHhsIG1pZ3JhdGUtcmVj ZWl2ZSAlcyAlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgc3NoX2NvbW1hbmQsIGhvc3QsCi0g ICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGVmYm9vbF92YWwocl9pbmZvLmNvbG8pID8gIi1j IiA6ICItciIsCi0gICAgICAgICAgICAgICAgICAgICAgZGFlbW9uaXplID8gIiIgOiAiIC1lIik7 CisgICAgICAgICAgICBpZiAoIWxpYnhsX2RlZmJvb2xfdmFsKHJfaW5mby5jb2xvKSkgeworICAg ICAgICAgICAgICAgIHhhc3ByaW50ZigmcnVuZSwgImV4ZWMgJXMgJXMgeGwgbWlncmF0ZS1yZWNl aXZlICVzICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3NoX2NvbW1hbmQsIGhvc3Qs CisgICAgICAgICAgICAgICAgICAgICAgICAgICItciIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhZW1vbml6ZSA/ICIiIDogIiAtZSIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg ICAgICAgICAgICB4YXNwcmludGYoJnJ1bmUsICJleGVjICVzICVzIHhsIG1pZ3JhdGUtcmVjZWl2 ZSAlcyAlcyAlcyAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNzaF9jb21tYW5kLCBo b3N0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAiLWMiLAorICAgICAgICAgICAgICAgICAg ICAgICAgICByX2luZm8ubmV0YnVmc2NyaXB0ID8gIi0tc2NyaXB0IiA6ICIiLAorICAgICAgICAg ICAgICAgICAgICAgICAgICByX2luZm8ubmV0YnVmc2NyaXB0ID8gcl9pbmZvLm5ldGJ1ZnNjcmlw dCA6ICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBkYWVtb25pemUgPyAiIiA6ICIgLWUi KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIHNhdmVfZG9tYWluX2NvcmVf YmVnaW4oZG9taWQsIE5VTEwsICZjb25maWdfZGF0YSwgJmNvbmZpZ19sZW4pOwotLSAKMS45LjMK CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==