Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bly3S-00069M-SX for pgsql-hackers@arkaria.postgresql.org; Mon, 19 Sep 2016 12:52:15 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bly3S-0000i8-Fj for pgsql-hackers@arkaria.postgresql.org; Mon, 19 Sep 2016 12:52:14 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bly24-0007bb-2u for pgsql-hackers@postgresql.org; Mon, 19 Sep 2016 12:50:48 +0000 Received: from [2001:41d0:2:9c82::1] (helo=ks311736.kimsufi.com) by magus.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bly1w-0004cn-7K for pgsql-hackers@postgresql.org; Mon, 19 Sep 2016 12:50:47 +0000 Received: from genius-map.net (verite.pro [195.154.189.246]) by ks311736.kimsufi.com (Postfix) with ESMTP id 8D378C0493; Mon, 19 Sep 2016 15:16:35 +0200 (CEST) Received: by genius-map.net (Postfix, from userid 1001) id 4CDD238A0758; Mon, 19 Sep 2016 14:50:37 +0200 (CEST) MIME-Version: 1.0 Subject: Re: Improvements in psql hooks for variables From: "Daniel Verite" To: "Rahila Syed" Cc: "Ashutosh Bapat" ,"pgsql-hackers" In-Reply-To: Date: Mon, 19 Sep 2016 14:50:35 +0200 Message-Id: <3e804c53-93d2-4889-9f0f-60afe591facd@mm> X-Mailer: Manitou v1.6.0 Content-type: multipart/mixed; boundary="----------=_1474289437-12528-22" X-Host-Lookup-Failed: Reverse DNS lookup failed for 2001:41d0:2:9c82::1 (failed) X-Pg-Spam-Score: -1.1 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org This is a multi-part message in MIME format... ------------=_1474289437-12528-22 Content-Type: text/plain; charset="iso-8859-15" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Rahila Syed wrote: > I am beginning to review this patch. Initial comment. I got following > compilation error when I applied the patch on latest sources and run make. Sorry about that, I forgot to make clean, here's an updated patch. Best regards, --=20 Daniel V=E9rit=E9 PostgreSQL-powered mailer: http://www.manitou-mail.org Twitter: @DanielVerite ------------=_1474289437-12528-22 Content-Type: text-x-patch; name="psql-var-hooks-v2.patch" Content-Disposition: attachment; filename="psql-var-hooks-v2.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmlu L3BzcWwvY29tbWFuZC5jCmluZGV4IGE5YTJmZGIuLjYxYjIzMDQgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKKysrIGIvc3JjL2Jpbi9w c3FsL2NvbW1hbmQuYwpAQCAtMjU0LDcgKzI1NCw3IEBAIGV4ZWNfY29tbWFu ZChjb25zdCBjaGFyICpjbWQsCiAJCWlmIChvcHQxICE9IE5VTEwgJiYgc3Ry bmNtcChvcHQxLCBwcmVmaXgsIHNpemVvZihwcmVmaXgpIC0gMSkgPT0gMCkK IAkJewogCQkJcmV1c2VfcHJldmlvdXMgPQotCQkJCVBhcnNlVmFyaWFibGVC b29sKG9wdDEgKyBzaXplb2YocHJlZml4KSAtIDEsIHByZWZpeCkgPworCQkJ CVBhcnNlVmFyaWFibGVCb29sKG9wdDEgKyBzaXplb2YocHJlZml4KSAtIDEs IHByZWZpeCwgTlVMTCkgPwogCQkJCVRSSV9ZRVMgOiBUUklfTk87CiAKIAkJ CWZyZWUob3B0MSk7CkBAIC0xNTQ4LDcgKzE1NDgsNyBAQCBleGVjX2NvbW1h bmQoY29uc3QgY2hhciAqY21kLAogCQkJCQkJCQkJCQkJIE9UX05PUk1BTCwg TlVMTCwgZmFsc2UpOwogCiAJCWlmIChvcHQpCi0JCQlwc2V0LnRpbWluZyA9 IFBhcnNlVmFyaWFibGVCb29sKG9wdCwgIlxcdGltaW5nIik7CisJCQlwc2V0 LnRpbWluZyA9IFBhcnNlVmFyaWFibGVCb29sKG9wdCwgIlxcdGltaW5nIiwg TlVMTCk7CiAJCWVsc2UKIAkJCXBzZXQudGltaW5nID0gIXBzZXQudGltaW5n OwogCQlpZiAoIXBzZXQucXVpZXQpCkBAIC0yNjYwLDcgKzI2NjAsNyBAQCBk b19wc2V0KGNvbnN0IGNoYXIgKnBhcmFtLCBjb25zdCBjaGFyICp2YWx1ZSwg cHJpbnRRdWVyeU9wdCAqcG9wdCwgYm9vbCBxdWlldCkKIAkJaWYgKHZhbHVl ICYmIHBnX3N0cmNhc2VjbXAodmFsdWUsICJhdXRvIikgPT0gMCkKIAkJCXBv cHQtPnRvcHQuZXhwYW5kZWQgPSAyOwogCQllbHNlIGlmICh2YWx1ZSkKLQkJ CXBvcHQtPnRvcHQuZXhwYW5kZWQgPSBQYXJzZVZhcmlhYmxlQm9vbCh2YWx1 ZSwgcGFyYW0pOworCQkJcG9wdC0+dG9wdC5leHBhbmRlZCA9IFBhcnNlVmFy aWFibGVCb29sKHZhbHVlLCBwYXJhbSwgTlVMTCk7CiAJCWVsc2UKIAkJCXBv cHQtPnRvcHQuZXhwYW5kZWQgPSAhcG9wdC0+dG9wdC5leHBhbmRlZDsKIAl9 CkBAIC0yNjY5LDcgKzI2NjksNyBAQCBkb19wc2V0KGNvbnN0IGNoYXIgKnBh cmFtLCBjb25zdCBjaGFyICp2YWx1ZSwgcHJpbnRRdWVyeU9wdCAqcG9wdCwg Ym9vbCBxdWlldCkKIAllbHNlIGlmIChzdHJjbXAocGFyYW0sICJudW1lcmlj bG9jYWxlIikgPT0gMCkKIAl7CiAJCWlmICh2YWx1ZSkKLQkJCXBvcHQtPnRv cHQubnVtZXJpY0xvY2FsZSA9IFBhcnNlVmFyaWFibGVCb29sKHZhbHVlLCBw YXJhbSk7CisJCQlwb3B0LT50b3B0Lm51bWVyaWNMb2NhbGUgPSBQYXJzZVZh cmlhYmxlQm9vbCh2YWx1ZSwgcGFyYW0sIE5VTEwpOwogCQllbHNlCiAJCQlw b3B0LT50b3B0Lm51bWVyaWNMb2NhbGUgPSAhcG9wdC0+dG9wdC5udW1lcmlj TG9jYWxlOwogCX0KQEAgLTI3MjQsNyArMjcyNCw3IEBAIGRvX3BzZXQoY29u c3QgY2hhciAqcGFyYW0sIGNvbnN0IGNoYXIgKnZhbHVlLCBwcmludFF1ZXJ5 T3B0ICpwb3B0LCBib29sIHF1aWV0KQogCWVsc2UgaWYgKHN0cmNtcChwYXJh bSwgInQiKSA9PSAwIHx8IHN0cmNtcChwYXJhbSwgInR1cGxlc19vbmx5Iikg PT0gMCkKIAl7CiAJCWlmICh2YWx1ZSkKLQkJCXBvcHQtPnRvcHQudHVwbGVz X29ubHkgPSBQYXJzZVZhcmlhYmxlQm9vbCh2YWx1ZSwgcGFyYW0pOworCQkJ cG9wdC0+dG9wdC50dXBsZXNfb25seSA9IFBhcnNlVmFyaWFibGVCb29sKHZh bHVlLCBwYXJhbSwgTlVMTCk7CiAJCWVsc2UKIAkJCXBvcHQtPnRvcHQudHVw bGVzX29ubHkgPSAhcG9wdC0+dG9wdC50dXBsZXNfb25seTsKIAl9CkBAIC0y NzU2LDcgKzI3NTYsNyBAQCBkb19wc2V0KGNvbnN0IGNoYXIgKnBhcmFtLCBj b25zdCBjaGFyICp2YWx1ZSwgcHJpbnRRdWVyeU9wdCAqcG9wdCwgYm9vbCBx dWlldCkKIAkJCXBvcHQtPnRvcHQucGFnZXIgPSAyOwogCQllbHNlIGlmICh2 YWx1ZSkKIAkJewotCQkJaWYgKFBhcnNlVmFyaWFibGVCb29sKHZhbHVlLCBw YXJhbSkpCisJCQlpZiAoUGFyc2VWYXJpYWJsZUJvb2wodmFsdWUsIHBhcmFt LCBOVUxMKSkKIAkJCQlwb3B0LT50b3B0LnBhZ2VyID0gMTsKIAkJCWVsc2UK IAkJCQlwb3B0LT50b3B0LnBhZ2VyID0gMDsKQEAgLTI3NzgsNyArMjc3OCw3 IEBAIGRvX3BzZXQoY29uc3QgY2hhciAqcGFyYW0sIGNvbnN0IGNoYXIgKnZh bHVlLCBwcmludFF1ZXJ5T3B0ICpwb3B0LCBib29sIHF1aWV0KQogCWVsc2Ug aWYgKHN0cmNtcChwYXJhbSwgImZvb3RlciIpID09IDApCiAJewogCQlpZiAo dmFsdWUpCi0JCQlwb3B0LT50b3B0LmRlZmF1bHRfZm9vdGVyID0gUGFyc2VW YXJpYWJsZUJvb2wodmFsdWUsIHBhcmFtKTsKKwkJCXBvcHQtPnRvcHQuZGVm YXVsdF9mb290ZXIgPSBQYXJzZVZhcmlhYmxlQm9vbCh2YWx1ZSwgcGFyYW0s IE5VTEwpOwogCQllbHNlCiAJCQlwb3B0LT50b3B0LmRlZmF1bHRfZm9vdGVy ID0gIXBvcHQtPnRvcHQuZGVmYXVsdF9mb290ZXI7CiAJfQpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYyBiL3NyYy9iaW4vcHNxbC9zdGFy dHVwLmMKaW5kZXggN2NlMDVmYi4uOWRjZmMwYSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL3N0YXJ0dXAuYworKysgYi9zcmMvYmluL3BzcWwvc3RhcnR1 cC5jCkBAIC03ODYsNDMgKzc4Niw1OSBAQCBzaG93VmVyc2lvbih2b2lkKQog ICogVGhpcyBpc24ndCBhbiBhbWF6aW5nbHkgZ29vZCBwbGFjZSBmb3IgdGhl bSwgYnV0IG5laXRoZXIgaXMgYW55d2hlcmUgZWxzZS4KICAqLwogCi1zdGF0 aWMgdm9pZAorLyoKKyAqIEhvb2sgdG8gc2V0IGFuIGludGVybmFsIGZsYWcg ZnJvbSBhIHVzZXItc3VwcGxpZWQgc3RyaW5nIHZhbHVlLgorICogSWYgdGhl IHN5bnRheCBpcyBjb3JyZWN0LCBhZmZlY3QgKmZsYWcgYW5kIHJldHVybiB0 cnVlLgorICogT3RoZXJ3aXNlLCBrZWVwICpmbGFnIHVudG91Y2hlZCBhbmQg cmV0dXJuIGZhbHNlLgorICovCitzdGF0aWMgYm9vbAorZ2VuZXJpY19ib29s ZWFuX2hvb2soY29uc3QgY2hhciAqbmV3dmFsLCBjb25zdCBjaGFyKiB2YXJu YW1lLCBib29sICpmbGFnKQoreworCWJvb2wgaXN2YWxpZDsKKwlib29sIHZh bCA9IFBhcnNlVmFyaWFibGVCb29sKG5ld3ZhbCwgdmFybmFtZSwgJmlzdmFs aWQpOworCWlmIChpc3ZhbGlkKQorCQkqZmxhZyA9IHZhbDsKKwlyZXR1cm4g aXN2YWxpZDsKK30KKworc3RhdGljIGJvb2wKIGF1dG9jb21taXRfaG9vayhj b25zdCBjaGFyICpuZXd2YWwpCiB7Ci0JcHNldC5hdXRvY29tbWl0ID0gUGFy c2VWYXJpYWJsZUJvb2wobmV3dmFsLCAiQVVUT0NPTU1JVCIpOworCXJldHVy biBnZW5lcmljX2Jvb2xlYW5faG9vayhuZXd2YWwsICJBVVRPQ09NTUlUIiwg JnBzZXQuYXV0b2NvbW1pdCk7CiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMg Ym9vbAogb25fZXJyb3Jfc3RvcF9ob29rKGNvbnN0IGNoYXIgKm5ld3ZhbCkK IHsKLQlwc2V0Lm9uX2Vycm9yX3N0b3AgPSBQYXJzZVZhcmlhYmxlQm9vbChu ZXd2YWwsICJPTl9FUlJPUl9TVE9QIik7CisJcmV0dXJuIGdlbmVyaWNfYm9v bGVhbl9ob29rKG5ld3ZhbCwgIk9OX0VSUk9SX1NUT1AiLCAmcHNldC5vbl9l cnJvcl9zdG9wKTsKIH0KIAotc3RhdGljIHZvaWQKK3N0YXRpYyBib29sCiBx dWlldF9ob29rKGNvbnN0IGNoYXIgKm5ld3ZhbCkKIHsKLQlwc2V0LnF1aWV0 ID0gUGFyc2VWYXJpYWJsZUJvb2wobmV3dmFsLCAiUVVJRVQiKTsKKwlyZXR1 cm4gZ2VuZXJpY19ib29sZWFuX2hvb2sobmV3dmFsLCAiUVVJRVQiLCAmcHNl dC5xdWlldCk7CiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgYm9vbAogc2lu Z2xlbGluZV9ob29rKGNvbnN0IGNoYXIgKm5ld3ZhbCkKIHsKLQlwc2V0LnNp bmdsZWxpbmUgPSBQYXJzZVZhcmlhYmxlQm9vbChuZXd2YWwsICJTSU5HTEVM SU5FIik7CisJcmV0dXJuIGdlbmVyaWNfYm9vbGVhbl9ob29rKG5ld3ZhbCwg IlNJTkdMRUxJTkUiLCAmcHNldC5zaW5nbGVsaW5lKTsKIH0KIAotc3RhdGlj IHZvaWQKK3N0YXRpYyBib29sCiBzaW5nbGVzdGVwX2hvb2soY29uc3QgY2hh ciAqbmV3dmFsKQogewotCXBzZXQuc2luZ2xlc3RlcCA9IFBhcnNlVmFyaWFi bGVCb29sKG5ld3ZhbCwgIlNJTkdMRVNURVAiKTsKKwlyZXR1cm4gZ2VuZXJp Y19ib29sZWFuX2hvb2sobmV3dmFsLCAiU0lOR0xFU1RFUCIsICZwc2V0LnNp bmdsZXN0ZXApOwogfQogCi1zdGF0aWMgdm9pZAorc3RhdGljIGJvb2wKIGZl dGNoX2NvdW50X2hvb2soY29uc3QgY2hhciAqbmV3dmFsKQogewogCXBzZXQu ZmV0Y2hfY291bnQgPSBQYXJzZVZhcmlhYmxlTnVtKG5ld3ZhbCwgLTEsIC0x LCBmYWxzZSk7CisJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkCitz dGF0aWMgYm9vbAogZWNob19ob29rKGNvbnN0IGNoYXIgKm5ld3ZhbCkKIHsK IAlpZiAobmV3dmFsID09IE5VTEwpCkBAIC04MzcsMzkgKzg1Myw1MiBAQCBl Y2hvX2hvb2soY29uc3QgY2hhciAqbmV3dmFsKQogCQlwc2V0LmVjaG8gPSBQ U1FMX0VDSE9fTk9ORTsKIAllbHNlCiAJewotCQlwc3FsX2Vycm9yKCJ1bnJl Y29nbml6ZWQgdmFsdWUgXCIlc1wiIGZvciBcIiVzXCI7IGFzc3VtaW5nIFwi JXNcIlxuIiwKLQkJCQkgICBuZXd2YWwsICJFQ0hPIiwgIm5vbmUiKTsKLQkJ cHNldC5lY2hvID0gUFNRTF9FQ0hPX05PTkU7CisJCXBzcWxfZXJyb3IoInVu cmVjb2duaXplZCB2YWx1ZSBcIiVzXCIgZm9yIFwiJXNcIlxuIiwKKwkJCQkg ICBuZXd2YWwsICJFQ0hPIik7CisJCXJldHVybiBmYWxzZTsKIAl9CisJcmV0 dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgYm9vbAogZWNo b19oaWRkZW5faG9vayhjb25zdCBjaGFyICpuZXd2YWwpCiB7CiAJaWYgKG5l d3ZhbCA9PSBOVUxMKQogCQlwc2V0LmVjaG9faGlkZGVuID0gUFNRTF9FQ0hP X0hJRERFTl9PRkY7CiAJZWxzZSBpZiAocGdfc3RyY2FzZWNtcChuZXd2YWws ICJub2V4ZWMiKSA9PSAwKQogCQlwc2V0LmVjaG9faGlkZGVuID0gUFNRTF9F Q0hPX0hJRERFTl9OT0VYRUM7Ci0JZWxzZSBpZiAoUGFyc2VWYXJpYWJsZUJv b2wobmV3dmFsLCAiRUNIT19ISURERU4iKSkKLQkJcHNldC5lY2hvX2hpZGRl biA9IFBTUUxfRUNIT19ISURERU5fT047Ci0JZWxzZQkvKiBQYXJzZVZhcmlh YmxlQm9vbCBwcmludGVkIG1zZyBpZiBuZWVkZWQgKi8KLQkJcHNldC5lY2hv X2hpZGRlbiA9IFBTUUxfRUNIT19ISURERU5fT0ZGOworCWVsc2UKKwl7CisJ CWJvb2wgaXN2YWxpZDsKKwkJYm9vbCB2YWwgPSBQYXJzZVZhcmlhYmxlQm9v bChuZXd2YWwsICJFQ0hPX0hJRERFTiIsICZpc3ZhbGlkKTsKKwkJaWYgKCFp c3ZhbGlkKQorCQkJcmV0dXJuIGZhbHNlOyAvKiBQYXJzZVZhcmlhYmxlQm9v bCBwcmludGVkIG1zZyAqLworCQlwc2V0LmVjaG9faGlkZGVuID0gdmFsID8g UFNRTF9FQ0hPX0hJRERFTl9PTiA6IFBTUUxfRUNIT19ISURERU5fT0ZGOwor CX0KKwlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQKK3N0YXRpYyBi b29sCiBvbl9lcnJvcl9yb2xsYmFja19ob29rKGNvbnN0IGNoYXIgKm5ld3Zh bCkKIHsKIAlpZiAobmV3dmFsID09IE5VTEwpCiAJCXBzZXQub25fZXJyb3Jf cm9sbGJhY2sgPSBQU1FMX0VSUk9SX1JPTExCQUNLX09GRjsKIAllbHNlIGlm IChwZ19zdHJjYXNlY21wKG5ld3ZhbCwgImludGVyYWN0aXZlIikgPT0gMCkK IAkJcHNldC5vbl9lcnJvcl9yb2xsYmFjayA9IFBTUUxfRVJST1JfUk9MTEJB Q0tfSU5URVJBQ1RJVkU7Ci0JZWxzZSBpZiAoUGFyc2VWYXJpYWJsZUJvb2wo bmV3dmFsLCAiT05fRVJST1JfUk9MTEJBQ0siKSkKLQkJcHNldC5vbl9lcnJv cl9yb2xsYmFjayA9IFBTUUxfRVJST1JfUk9MTEJBQ0tfT047Ci0JZWxzZQkv KiBQYXJzZVZhcmlhYmxlQm9vbCBwcmludGVkIG1zZyBpZiBuZWVkZWQgKi8K LQkJcHNldC5vbl9lcnJvcl9yb2xsYmFjayA9IFBTUUxfRVJST1JfUk9MTEJB Q0tfT0ZGOworCWVsc2UKKwl7CisJCWJvb2wgaXN2YWxpZDsKKwkJYm9vbCB2 YWwgPSBQYXJzZVZhcmlhYmxlQm9vbChuZXd2YWwsICJPTl9FUlJPUl9ST0xM QkFDSyIsICZpc3ZhbGlkKTsKKwkJaWYgKGlzdmFsaWQpCisJCQlwc2V0Lm9u X2Vycm9yX3JvbGxiYWNrID0gdmFsID8gUFNRTF9FUlJPUl9ST0xMQkFDS19P TiA6IFBTUUxfRVJST1JfUk9MTEJBQ0tfT0ZGOworCQllbHNlCisJCQkvKiBQ YXJzZVZhcmlhYmxlQm9vbCBwcmludGVkIG1zZyBpZiBuZWVkZWQgKi8KKwkJ CXJldHVybiBmYWxzZTsKKwl9CisJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRp YyB2b2lkCitzdGF0aWMgYm9vbAogY29tcF9rZXl3b3JkX2Nhc2VfaG9vayhj b25zdCBjaGFyICpuZXd2YWwpCiB7CiAJaWYgKG5ld3ZhbCA9PSBOVUxMKQpA QCAtODg0LDEzICs5MTMsMTQgQEAgY29tcF9rZXl3b3JkX2Nhc2VfaG9vayhj b25zdCBjaGFyICpuZXd2YWwpCiAJCXBzZXQuY29tcF9jYXNlID0gUFNRTF9D T01QX0NBU0VfTE9XRVI7CiAJZWxzZQogCXsKLQkJcHNxbF9lcnJvcigidW5y ZWNvZ25pemVkIHZhbHVlIFwiJXNcIiBmb3IgXCIlc1wiOyBhc3N1bWluZyBc IiVzXCJcbiIsCi0JCQkJICAgbmV3dmFsLCAiQ09NUF9LRVlXT1JEX0NBU0Ui LCAicHJlc2VydmUtdXBwZXIiKTsKLQkJcHNldC5jb21wX2Nhc2UgPSBQU1FM X0NPTVBfQ0FTRV9QUkVTRVJWRV9VUFBFUjsKKwkJcHNxbF9lcnJvcigidW5y ZWNvZ25pemVkIHZhbHVlIFwiJXNcIiBmb3IgXCIlc1wiXG4iLAorCQkJCSAg IG5ld3ZhbCwgIkNPTVBfS0VZV09SRF9DQVNFIik7CisJCXJldHVybiBmYWxz ZTsKIAl9CisJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0 aWMgYm9vbAogaGlzdGNvbnRyb2xfaG9vayhjb25zdCBjaGFyICpuZXd2YWwp CiB7CiAJaWYgKG5ld3ZhbCA9PSBOVUxMKQpAQCAtOTA1LDMxICs5MzUsMzUg QEAgaGlzdGNvbnRyb2xfaG9vayhjb25zdCBjaGFyICpuZXd2YWwpCiAJCXBz ZXQuaGlzdGNvbnRyb2wgPSBoY3RsX25vbmU7CiAJZWxzZQogCXsKLQkJcHNx bF9lcnJvcigidW5yZWNvZ25pemVkIHZhbHVlIFwiJXNcIiBmb3IgXCIlc1wi OyBhc3N1bWluZyBcIiVzXCJcbiIsCi0JCQkJICAgbmV3dmFsLCAiSElTVENP TlRST0wiLCAibm9uZSIpOwotCQlwc2V0Lmhpc3Rjb250cm9sID0gaGN0bF9u b25lOworCQlwc3FsX2Vycm9yKCJ1bnJlY29nbml6ZWQgdmFsdWUgXCIlc1wi IGZvciBcIiVzXCJcbiIsCisJCQkJICAgbmV3dmFsLCAiSElTVENPTlRST0wi KTsKKwkJcmV0dXJuIGZhbHNlOwogCX0KKwlyZXR1cm4gdHJ1ZTsKIH0KIAot c3RhdGljIHZvaWQKK3N0YXRpYyBib29sCiBwcm9tcHQxX2hvb2soY29uc3Qg Y2hhciAqbmV3dmFsKQogewogCXBzZXQucHJvbXB0MSA9IG5ld3ZhbCA/IG5l d3ZhbCA6ICIiOworCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZAor c3RhdGljIGJvb2wKIHByb21wdDJfaG9vayhjb25zdCBjaGFyICpuZXd2YWwp CiB7CiAJcHNldC5wcm9tcHQyID0gbmV3dmFsID8gbmV3dmFsIDogIiI7CisJ cmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgYm9vbAog cHJvbXB0M19ob29rKGNvbnN0IGNoYXIgKm5ld3ZhbCkKIHsKIAlwc2V0LnBy b21wdDMgPSBuZXd2YWwgPyBuZXd2YWwgOiAiIjsKKwlyZXR1cm4gdHJ1ZTsK IH0KIAotc3RhdGljIHZvaWQKK3N0YXRpYyBib29sCiB2ZXJib3NpdHlfaG9v ayhjb25zdCBjaGFyICpuZXd2YWwpCiB7CiAJaWYgKG5ld3ZhbCA9PSBOVUxM KQpAQCAtOTQyLDE2ICs5NzYsMTcgQEAgdmVyYm9zaXR5X2hvb2soY29uc3Qg Y2hhciAqbmV3dmFsKQogCQlwc2V0LnZlcmJvc2l0eSA9IFBRRVJST1JTX1ZF UkJPU0U7CiAJZWxzZQogCXsKLQkJcHNxbF9lcnJvcigidW5yZWNvZ25pemVk IHZhbHVlIFwiJXNcIiBmb3IgXCIlc1wiOyBhc3N1bWluZyBcIiVzXCJcbiIs Ci0JCQkJICAgbmV3dmFsLCAiVkVSQk9TSVRZIiwgImRlZmF1bHQiKTsKLQkJ cHNldC52ZXJib3NpdHkgPSBQUUVSUk9SU19ERUZBVUxUOworCQlwc3FsX2Vy cm9yKCJ1bnJlY29nbml6ZWQgdmFsdWUgXCIlc1wiIGZvciBcIiVzXCJcbiIs CisJCQkJICAgbmV3dmFsLCAiVkVSQk9TSVRZIik7CisJCXJldHVybiBmYWxz ZTsKIAl9CiAKIAlpZiAocHNldC5kYikKIAkJUFFzZXRFcnJvclZlcmJvc2l0 eShwc2V0LmRiLCBwc2V0LnZlcmJvc2l0eSk7CisJcmV0dXJuIHRydWU7CiB9 CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgYm9vbAogc2hvd19jb250ZXh0X2hv b2soY29uc3QgY2hhciAqbmV3dmFsKQogewogCWlmIChuZXd2YWwgPT0gTlVM TCkKQEAgLTk2NCwxMyArOTk5LDE0IEBAIHNob3dfY29udGV4dF9ob29rKGNv bnN0IGNoYXIgKm5ld3ZhbCkKIAkJcHNldC5zaG93X2NvbnRleHQgPSBQUVNI T1dfQ09OVEVYVF9BTFdBWVM7CiAJZWxzZQogCXsKLQkJcHNxbF9lcnJvcigi dW5yZWNvZ25pemVkIHZhbHVlIFwiJXNcIiBmb3IgXCIlc1wiOyBhc3N1bWlu ZyBcIiVzXCJcbiIsCi0JCQkJICAgbmV3dmFsLCAiU0hPV19DT05URVhUIiwg ImVycm9ycyIpOwotCQlwc2V0LnNob3dfY29udGV4dCA9IFBRU0hPV19DT05U RVhUX0VSUk9SUzsKKwkJcHNxbF9lcnJvcigidW5yZWNvZ25pemVkIHZhbHVl IFwiJXNcIiBmb3IgXCIlc1wiXG4iLAorCQkJCSAgIG5ld3ZhbCwgIlNIT1df Q09OVEVYVCIpOworCQlyZXR1cm4gZmFsc2U7CiAJfQogCiAJaWYgKHBzZXQu ZGIpCiAJCVBRc2V0RXJyb3JDb250ZXh0VmlzaWJpbGl0eShwc2V0LmRiLCBw c2V0LnNob3dfY29udGV4dCk7CisJcmV0dXJuIHRydWU7CiB9CiAKIApkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3ZhcmlhYmxlcy5jIGIvc3JjL2Jpbi9w c3FsL3ZhcmlhYmxlcy5jCmluZGV4IGY0M2Y0MTguLjI0Y2E3NTAgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcHNxbC92YXJpYWJsZXMuYworKysgYi9zcmMvYmlu L3BzcWwvdmFyaWFibGVzLmMKQEAgLTg2LDEyICs4NiwxNiBAQCBHZXRWYXJp YWJsZShWYXJpYWJsZVNwYWNlIHNwYWNlLCBjb25zdCBjaGFyICpuYW1lKQog ICoKICAqICJuYW1lIiBpcyB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUgd2Un cmUgYXNzaWduaW5nIHRvLCB0byB1c2UgaW4gZXJyb3IKICAqIHJlcG9ydCBp ZiBhbnkuICBQYXNzIG5hbWUgPT0gTlVMTCB0byBzdXBwcmVzcyB0aGUgZXJy b3IgcmVwb3J0LgorICoKKyAqICIqdmFsaWQiIHJlcG9ydHMgd2hldGhlciAi dmFsdWUiIHdhcyBzeW50YWN0aWNhbGx5IHZhbGlkLCB1bmxlc3MgdmFsaWQg PT0gTlVMTAogICovCiBib29sCi1QYXJzZVZhcmlhYmxlQm9vbChjb25zdCBj aGFyICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSkKK1BhcnNlVmFyaWFibGVC b29sKGNvbnN0IGNoYXIgKnZhbHVlLCBjb25zdCBjaGFyICpuYW1lLCBib29s ICp2YWxpZCkKIHsKIAlzaXplX3QJCWxlbjsKIAorCWlmICh2YWxpZCkKKwkJ KnZhbGlkID0gdHJ1ZTsKIAlpZiAodmFsdWUgPT0gTlVMTCkKIAkJcmV0dXJu IGZhbHNlOwkJCS8qIG5vdCBzZXQgLT4gYXNzdW1lICJvZmYiICovCiAKQEAg LTExNiwxMCArMTIwLDE2IEBAIFBhcnNlVmFyaWFibGVCb29sKGNvbnN0IGNo YXIgKnZhbHVlLCBjb25zdCBjaGFyICpuYW1lKQogCQlyZXR1cm4gZmFsc2U7 CiAJZWxzZQogCXsKLQkJLyogTlVMTCBpcyB0cmVhdGVkIGFzIGZhbHNlLCBz byBhIG5vbi1tYXRjaGluZyB2YWx1ZSBpcyAndHJ1ZScgKi8KKwkJLyoKKwkJ ICogTlVMTCBpcyB0cmVhdGVkIGFzIGZhbHNlLCBzbyBhIG5vbi1tYXRjaGlu ZyB2YWx1ZSBpcyAndHJ1ZScuCisJCSAqIEEgY2FsbGVyIHRoYXQgY2FyZXMg YWJvdXQgc3ludGFjdGljIGNvbmZvcm1hbmNlIHNob3VsZAorCQkgKiBjaGVj ayAqdmFsaWQgdG8ga25vdyB3aGV0aGVyIHRoZSB2YWx1ZSB3YXMgcmVjb2du aXplZC4KKwkJICovCiAJCWlmIChuYW1lKQotCQkJcHNxbF9lcnJvcigidW5y ZWNvZ25pemVkIHZhbHVlIFwiJXNcIiBmb3IgXCIlc1wiOyBhc3N1bWluZyBc IiVzXCJcbiIsCi0JCQkJCSAgIHZhbHVlLCBuYW1lLCAib24iKTsKKwkJCXBz cWxfZXJyb3IoInVucmVjb2duaXplZCB2YWx1ZSBcIiVzXCIgZm9yIFwiJXNc IjogYm9vbGVhbiBleHBlY3RlZFxuIiwKKwkJCQkJICAgdmFsdWUsIG5hbWUp OworCQlpZiAodmFsaWQpCisJCQkqdmFsaWQgPSBmYWxzZTsKIAkJcmV0dXJu IHRydWU7CiAJfQogfQpAQCAtMjA1LDEzICsyMTUsMTkgQEAgU2V0VmFyaWFi bGUoVmFyaWFibGVTcGFjZSBzcGFjZSwgY29uc3QgY2hhciAqbmFtZSwgY29u c3QgY2hhciAqdmFsdWUpCiAJewogCQlpZiAoc3RyY21wKGN1cnJlbnQtPm5h bWUsIG5hbWUpID09IDApCiAJCXsKLQkJCS8qIGZvdW5kIGVudHJ5LCBzbyB1 cGRhdGUgKi8KLQkJCWlmIChjdXJyZW50LT52YWx1ZSkKLQkJCQlmcmVlKGN1 cnJlbnQtPnZhbHVlKTsKLQkJCWN1cnJlbnQtPnZhbHVlID0gcGdfc3RyZHVw KHZhbHVlKTsKKwkJCS8qIGZvdW5kIGVudHJ5LCBzbyB1cGRhdGUsIHVubGVz cyBhIGhvb2sgcmV0dXJucyBmYWxzZSAqLworCQkJYm9vbCBjb25maXJtZWQg PSB0cnVlOwogCQkJaWYgKGN1cnJlbnQtPmFzc2lnbl9ob29rKQotCQkJCSgq Y3VycmVudC0+YXNzaWduX2hvb2spIChjdXJyZW50LT52YWx1ZSk7Ci0JCQly ZXR1cm4gdHJ1ZTsKKwkJCXsKKwkJCQljb25maXJtZWQgPSAoKmN1cnJlbnQt PmFzc2lnbl9ob29rKSAodmFsdWUpOworCQkJfQorCQkJaWYgKGNvbmZpcm1l ZCkKKwkJCXsKKwkJCQlpZiAoY3VycmVudC0+dmFsdWUpCisJCQkJCWZyZWUo Y3VycmVudC0+dmFsdWUpOworCQkJCWN1cnJlbnQtPnZhbHVlID0gcGdfc3Ry ZHVwKHZhbHVlKTsKKwkJCX0KKwkJCXJldHVybiBjb25maXJtZWQ7CiAJCX0K IAl9CiAKQEAgLTI0OCw3ICsyNjQsNyBAQCBTZXRWYXJpYWJsZUFzc2lnbkhv b2soVmFyaWFibGVTcGFjZSBzcGFjZSwgY29uc3QgY2hhciAqbmFtZSwgVmFy aWFibGVBc3NpZ25Ib29rCiAJCXsKIAkJCS8qIGZvdW5kIGVudHJ5LCBzbyB1 cGRhdGUgKi8KIAkJCWN1cnJlbnQtPmFzc2lnbl9ob29rID0gaG9vazsKLQkJ CSgqaG9vaykgKGN1cnJlbnQtPnZhbHVlKTsKKwkJCSh2b2lkKSgqaG9vaykg KGN1cnJlbnQtPnZhbHVlKTsgLyogaWdub3JlIHJldHVybiB2YWx1ZSAqLwog CQkJcmV0dXJuIHRydWU7CiAJCX0KIAl9CkBAIC0yNjAsNyArMjc2LDcgQEAg U2V0VmFyaWFibGVBc3NpZ25Ib29rKFZhcmlhYmxlU3BhY2Ugc3BhY2UsIGNv bnN0IGNoYXIgKm5hbWUsIFZhcmlhYmxlQXNzaWduSG9vawogCWN1cnJlbnQt PmFzc2lnbl9ob29rID0gaG9vazsKIAljdXJyZW50LT5uZXh0ID0gTlVMTDsK IAlwcmV2aW91cy0+bmV4dCA9IGN1cnJlbnQ7Ci0JKCpob29rKSAoTlVMTCk7 CisJKHZvaWQpKCpob29rKSAoTlVMTCk7CQkvKiBpZ25vcmUgcmV0dXJuIHZh bHVlICovCiAJcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC92YXJpYWJsZXMuaCBiL3NyYy9iaW4vcHNxbC92YXJpYWJsZXMu aAppbmRleCBkN2EwNWExLi45ODM2ZmM1IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvdmFyaWFibGVzLmgKKysrIGIvc3JjL2Jpbi9wc3FsL3ZhcmlhYmxl cy5oCkBAIC0yMCw3ICsyMCw3IEBACiAgKiBOb3RlOiBpZiB2YWx1ZSA9PSBO VUxMIHRoZW4gdGhlIHZhcmlhYmxlIGlzIGxvZ2ljYWxseSB1bnNldCwgYnV0 IHdlIGFyZQogICoga2VlcGluZyB0aGUgc3RydWN0IGFyb3VuZCBzbyBhcyBu b3QgdG8gZm9yZ2V0IGFib3V0IGl0cyBob29rIGZ1bmN0aW9uLgogICovCi10 eXBlZGVmIHZvaWQgKCpWYXJpYWJsZUFzc2lnbkhvb2spIChjb25zdCBjaGFy ICpuZXd2YWwpOwordHlwZWRlZiBib29sICgqVmFyaWFibGVBc3NpZ25Ib29r KSAoY29uc3QgY2hhciAqbmV3dmFsKTsKIAogc3RydWN0IF92YXJpYWJsZQog ewpAQCAtMzUsNyArMzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBfdmFyaWFibGUg KlZhcmlhYmxlU3BhY2U7CiBWYXJpYWJsZVNwYWNlIENyZWF0ZVZhcmlhYmxl U3BhY2Uodm9pZCk7CiBjb25zdCBjaGFyICpHZXRWYXJpYWJsZShWYXJpYWJs ZVNwYWNlIHNwYWNlLCBjb25zdCBjaGFyICpuYW1lKTsKIAotYm9vbAkJUGFy c2VWYXJpYWJsZUJvb2woY29uc3QgY2hhciAqdmFsdWUsIGNvbnN0IGNoYXIg Km5hbWUpOworYm9vbAkJUGFyc2VWYXJpYWJsZUJvb2woY29uc3QgY2hhciAq dmFsdWUsIGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgKnZhbGlkKTsKIGludCBQ YXJzZVZhcmlhYmxlTnVtKGNvbnN0IGNoYXIgKnZhbCwKIAkJCQkgaW50IGRl ZmF1bHR2YWwsCiAJCQkJIGludCBmYXVsdHZhbCwK ------------=_1474289437-12528-22 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers ------------=_1474289437-12528-22--