Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jjNgd-0004Ac-JE for pgsql-hackers@arkaria.postgresql.org; Thu, 11 Jun 2020 13:56:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jjNgc-0006Tf-HP for pgsql-hackers@arkaria.postgresql.org; Thu, 11 Jun 2020 13:56:06 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jjNgc-0006TY-1o for pgsql-hackers@lists.postgresql.org; Thu, 11 Jun 2020 13:56:06 +0000 Received: from forward1-smtp.messagingengine.com ([66.111.4.223]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jjNgZ-0002t3-7k for pgsql-hackers@postgresql.org; Thu, 11 Jun 2020 13:56:05 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailforward.nyi.internal (Postfix) with ESMTP id 329D9194110B; Thu, 11 Jun 2020 09:56:02 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Thu, 11 Jun 2020 09:56:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=DNkwWp b0akdcn8hlvm9aZEu4oR0GXN2SRP9yFmRotW0=; b=nc/HW8+vkn7tsoxREjCccV rp4XRalrEmpPGVfe3td7FsP2PobNW8I7cP/l1k494X/Clbs6Vayecww+iEzB84ms 8P1fevt8kqAsMLhoOw96hPMvu1tdzHn0BNeutBhXMoTfdOtlo/hZqP9U0HoK/7/K tJPBuPd4q4qFRxXhFPvgGA2Jsohpf8n0Mk4DGGJz2FaOs7kN2xZPvx0MOGuYPIoz mFKYPtADzWhDhPQfPtxhOGuwcxdLrhZdcu7ISPOtlt88mtrdK8NFbwxzFRF19oC4 iJ/3Bw4k8vf8vkksVGiLgF/JP4edTIOqcm7UkIp4CnxY7zV2qvjSDAcHzt7HS/Pw == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrudehledggeehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne gfrhhlucfvnfffucdlfeehmdenucfjughrpefuvfhfhfhokffffgggjggtsehmtderredt feejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgvih hsvghnthhrrghuthesvdhnughquhgrughrrghnthdrtghomheqnecuggftrfgrthhtvghr nhepudfgueevieeluefggeeludfghfeuhffhjeehfefgledufedtieevudfggeevgfejne cuffhomhgrihhnpedvnhguqhhurggurhgrnhhtrdgtohhmnecukfhppeelfedrvdegfedr kedvrddvgeeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh homhepphgvthgvrhdrvghishgvnhhtrhgruhhtsedvnhguqhhurggurhgrnhhtrdgtohhm X-ME-Proxy: Received: from april.pezone.net (p5df352f6.dip0.t-ipconnect.de [93.243.82.246]) by mail.messagingengine.com (Postfix) with ESMTPA id A915E30614FA; Thu, 11 Jun 2020 09:56:00 -0400 (EDT) Subject: Re: remove some STATUS_* symbols To: Robert Haas , Michael Paquier References: <20200106063159.GQ3598@paquier.xyz> <20200110052332.GI1702@paquier.xyz> <4edc8a92-373c-1a4d-eded-6b342f0890dc@2ndquadrant.com> <20200116055001.GH3117@paquier.xyz> Cc: pgsql-hackers From: Peter Eisentraut Organization: 2ndQuadrant Message-ID: <3a4550d0-e899-b477-fd43-0745d18a4fc1@2ndquadrant.com> Date: Thu, 11 Jun 2020 15:55:59 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------45C6DB5D4532270FB8FD41FD" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------45C6DB5D4532270FB8FD41FD Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2020-01-16 13:56, Robert Haas wrote: > On Thu, Jan 16, 2020 at 12:50 AM Michael Paquier wrote: >> Thanks, that looks fine. I am still not sure whether the second patch >> adding an enum via ProcWaitStatus improves the code readability >> though, so my take would be to discard it for now. Perhaps others >> think differently, I don't know. > > IMHO, custom enums for each particular case would be a big improvement > over supposedly-generic STATUS codes. It makes it clearer which values > are possible in each code path, and it comes out nicer in the > debugger, too. Given this feedback, I would like to re-propose the original patch, attached again here. After this, the use of the remaining STATUS_* symbols will be contained to the frontend and backend libpq code, so it'll be more coherent. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------45C6DB5D4532270FB8FD41FD Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v2-0001-Remove-STATUS_WAITING.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v2-0001-Remove-STATUS_WAITING.patch" RnJvbSA0Nzc1MTVlYTRiMTEyZTg2MDU4NzY0MGYyNTVjYmZjZGZlZTE3NTVjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogU3VuLCAyOSBEZWMgMjAxOSAwOTowOToyMCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjIgMS80XSBSZW1vdmUgU1RBVFVTX1dBSVRJTkcKCkFkZCBhIHNlcGFyYXRl IGVudW0gZm9yIHVzZSBpbiB0aGUgbG9ja2luZyBBUElzLCB3aGljaCB3ZXJlIHRoZSBvbmx5 CnVzZXIuCgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdl LWlkL2ZsYXQvYTZmOTFlYWQtMGNlNC0yYTM0LTA2MmItN2FiOTgxM2VhMzA4JTQwMm5kcXVh ZHJhbnQuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdvcGhhc2UuYyB8 ICAyICstCiBzcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbG9jay5jICAgICAgIHwgIDggKyst LS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMgICAgICAgfCA0NiArKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2MuaCAgICAgICAgICAgICAgICAg ICAgICAgfCAgMSAtCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaCAgICAgICAgICAgIHwg MTMgKysrKysrLS0KIDUgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMzIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdv cGhhc2UuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3R3b3BoYXNlLmMKaW5kZXgg ZTE5MDQ4NzdmYS4uNTRmYjZjYzA0NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0vdHdvcGhhc2UuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90 d29waGFzZS5jCkBAIC00NjAsNyArNDYwLDcgQEAgTWFya0FzUHJlcGFyaW5nR3V0cyhHbG9i YWxUcmFuc2FjdGlvbiBneGFjdCwgVHJhbnNhY3Rpb25JZCB4aWQsIGNvbnN0IGNoYXIgKmdp ZCwKIAlNZW1TZXQocHJvYywgMCwgc2l6ZW9mKFBHUFJPQykpOwogCXByb2MtPnBncHJvY25v ID0gZ3hhY3QtPnBncHJvY25vOwogCVNITVF1ZXVlRWxlbUluaXQoJihwcm9jLT5saW5rcykp OwotCXByb2MtPndhaXRTdGF0dXMgPSBTVEFUVVNfT0s7CisJcHJvYy0+d2FpdFN0YXR1cyA9 IFBST0NfV0FJVF9TVEFUVVNfT0s7CiAJLyogV2Ugc2V0IHVwIHRoZSBneGFjdCdzIFZYSUQg YXMgSW52YWxpZEJhY2tlbmRJZC9YSUQgKi8KIAlwcm9jLT5seGlkID0gKExvY2FsVHJhbnNh Y3Rpb25JZCkgeGlkOwogCXBneGFjdC0+eGlkID0geGlkOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9s b2NrLmMKaW5kZXggN2ZlY2IzODE2Mi4uOTU5ODljZTc5YiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xt Z3IvbG9jay5jCkBAIC0xODU2LDcgKzE4NTYsNyBAQCBXYWl0T25Mb2NrKExPQ0FMTE9DSyAq bG9jYWxsb2NrLCBSZXNvdXJjZU93bmVyIG93bmVyKQogCSAqLwogCVBHX1RSWSgpOwogCXsK LQkJaWYgKFByb2NTbGVlcChsb2NhbGxvY2ssIGxvY2tNZXRob2RUYWJsZSkgIT0gU1RBVFVT X09LKQorCQlpZiAoUHJvY1NsZWVwKGxvY2FsbG9jaywgbG9ja01ldGhvZFRhYmxlKSAhPSBQ Uk9DX1dBSVRfU1RBVFVTX09LKQogCQl7CiAJCQkvKgogCQkJICogV2UgZmFpbGVkIGFzIGEg cmVzdWx0IG9mIGEgZGVhZGxvY2ssIHNlZSBDaGVja0RlYWRMb2NrKCkuIFF1aXQKQEAgLTE5 MDcsNyArMTkwNyw3IEBAIFdhaXRPbkxvY2soTE9DQUxMT0NLICpsb2NhbGxvY2ssIFJlc291 cmNlT3duZXIgb3duZXIpCiAvKgogICogUmVtb3ZlIGEgcHJvYyBmcm9tIHRoZSB3YWl0LXF1 ZXVlIGl0IGlzIG9uIChjYWxsZXIgbXVzdCBrbm93IGl0IGlzIG9uIG9uZSkuCiAgKiBUaGlz IGlzIG9ubHkgdXNlZCB3aGVuIHRoZSBwcm9jIGhhcyBmYWlsZWQgdG8gZ2V0IHRoZSBsb2Nr LCBzbyB3ZSBzZXQgaXRzCi0gKiB3YWl0U3RhdHVzIHRvIFNUQVRVU19FUlJPUi4KKyAqIHdh aXRTdGF0dXMgdG8gUFJPQ19XQUlUX1NUQVRVU19FUlJPUi4KICAqCiAgKiBBcHByb3ByaWF0 ZSBwYXJ0aXRpb24gbG9jayBtdXN0IGJlIGhlbGQgYnkgY2FsbGVyLiAgQWxzbywgY2FsbGVy IGlzCiAgKiByZXNwb25zaWJsZSBmb3Igc2lnbmFsaW5nIHRoZSBwcm9jIGlmIG5lZWRlZC4K QEAgLTE5MjMsNyArMTkyMyw3IEBAIFJlbW92ZUZyb21XYWl0UXVldWUoUEdQUk9DICpwcm9j LCB1aW50MzIgaGFzaGNvZGUpCiAJTE9DS01FVEhPRElEIGxvY2ttZXRob2RpZCA9IExPQ0tf TE9DS01FVEhPRCgqd2FpdExvY2spOwogCiAJLyogTWFrZSBzdXJlIHByb2MgaXMgd2FpdGlu ZyAqLwotCUFzc2VydChwcm9jLT53YWl0U3RhdHVzID09IFNUQVRVU19XQUlUSU5HKTsKKwlB c3NlcnQocHJvYy0+d2FpdFN0YXR1cyA9PSBQUk9DX1dBSVRfU1RBVFVTX1dBSVRJTkcpOwog CUFzc2VydChwcm9jLT5saW5rcy5uZXh0ICE9IE5VTEwpOwogCUFzc2VydCh3YWl0TG9jayk7 CiAJQXNzZXJ0KHdhaXRMb2NrLT53YWl0UHJvY3Muc2l6ZSA+IDApOwpAQCAtMTk0Niw3ICsx OTQ2LDcgQEAgUmVtb3ZlRnJvbVdhaXRRdWV1ZShQR1BST0MgKnByb2MsIHVpbnQzMiBoYXNo Y29kZSkKIAkvKiBDbGVhbiB1cCB0aGUgcHJvYydzIG93biBzdGF0ZSwgYW5kIHBhc3MgaXQg dGhlIG9rL2ZhaWwgc2lnbmFsICovCiAJcHJvYy0+d2FpdExvY2sgPSBOVUxMOwogCXByb2Mt PndhaXRQcm9jTG9jayA9IE5VTEw7Ci0JcHJvYy0+d2FpdFN0YXR1cyA9IFNUQVRVU19FUlJP UjsKKwlwcm9jLT53YWl0U3RhdHVzID0gUFJPQ19XQUlUX1NUQVRVU19FUlJPUjsKIAogCS8q CiAJICogRGVsZXRlIHRoZSBwcm9jbG9jayBpbW1lZGlhdGVseSBpZiBpdCByZXByZXNlbnRz IG5vIGFscmVhZHktaGVsZCBsb2Nrcy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvbG1nci9wcm9jLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJvYy5jCmluZGV4 IGY1ZWVmNmZhNGUuLmU1N2ZjZDI1MzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvbG1nci9wcm9jLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYwpA QCAtMzgzLDcgKzM4Myw3IEBAIEluaXRQcm9jZXNzKHZvaWQpCiAJICogaW5pdGlhbGl6ZWQg YnkgSW5pdFByb2NHbG9iYWwuCiAJICovCiAJU0hNUXVldWVFbGVtSW5pdCgmKE15UHJvYy0+ bGlua3MpKTsKLQlNeVByb2MtPndhaXRTdGF0dXMgPSBTVEFUVVNfT0s7CisJTXlQcm9jLT53 YWl0U3RhdHVzID0gUFJPQ19XQUlUX1NUQVRVU19PSzsKIAlNeVByb2MtPmx4aWQgPSBJbnZh bGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCU15UHJvYy0+ZnBWWElETG9jayA9IGZhbHNlOwog CU15UHJvYy0+ZnBMb2NhbFRyYW5zYWN0aW9uSWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlv bklkOwpAQCAtNTY3LDcgKzU2Nyw3IEBAIEluaXRBdXhpbGlhcnlQcm9jZXNzKHZvaWQpCiAJ ICogaW5pdGlhbGl6ZWQgYnkgSW5pdFByb2NHbG9iYWwuCiAJICovCiAJU0hNUXVldWVFbGVt SW5pdCgmKE15UHJvYy0+bGlua3MpKTsKLQlNeVByb2MtPndhaXRTdGF0dXMgPSBTVEFUVVNf T0s7CisJTXlQcm9jLT53YWl0U3RhdHVzID0gUFJPQ19XQUlUX1NUQVRVU19PSzsKIAlNeVBy b2MtPmx4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCU15UHJvYy0+ZnBWWElE TG9jayA9IGZhbHNlOwogCU15UHJvYy0+ZnBMb2NhbFRyYW5zYWN0aW9uSWQgPSBJbnZhbGlk TG9jYWxUcmFuc2FjdGlvbklkOwpAQCAtNzU1LDcgKzc1NSw3IEBAIExvY2tFcnJvckNsZWFu dXAodm9pZCkKIAkJICogZGlkIGdyYW50IHVzIHRoZSBsb2NrLCB3ZSdkIGJldHRlciByZW1l bWJlciBpdCBpbiBvdXIgbG9jYWwgbG9jawogCQkgKiB0YWJsZS4KIAkJICovCi0JCWlmIChN eVByb2MtPndhaXRTdGF0dXMgPT0gU1RBVFVTX09LKQorCQlpZiAoTXlQcm9jLT53YWl0U3Rh dHVzID09IFBST0NfV0FJVF9TVEFUVVNfT0spCiAJCQlHcmFudEF3YWl0ZWRMb2NrKCk7CiAJ fQogCkBAIC0xMDUxLDE0ICsxMDUxLDE0IEBAIFByb2NRdWV1ZUluaXQoUFJPQ19RVUVVRSAq cXVldWUpCiAgKiBUaGUgbG9jayB0YWJsZSdzIHBhcnRpdGlvbiBsb2NrIG11c3QgYmUgaGVs ZCBhdCBlbnRyeSwgYW5kIHdpbGwgYmUgaGVsZAogICogYXQgZXhpdC4KICAqCi0gKiBSZXN1 bHQ6IFNUQVRVU19PSyBpZiB3ZSBhY3F1aXJlZCB0aGUgbG9jaywgU1RBVFVTX0VSUk9SIGlm IG5vdCAoZGVhZGxvY2spLgorICogUmVzdWx0OiBQUk9DX1dBSVRfU1RBVFVTX09LIGlmIHdl IGFjcXVpcmVkIHRoZSBsb2NrLCBQUk9DX1dBSVRfU1RBVFVTX0VSUk9SIGlmIG5vdCAoZGVh ZGxvY2spLgogICoKICAqIEFTU1VNRTogdGhhdCBubyBvbmUgd2lsbCBmaWRkbGUgd2l0aCB0 aGUgcXVldWUgdW50aWwgYWZ0ZXIKICAqCQl3ZSByZWxlYXNlIHRoZSBwYXJ0aXRpb24gbG9j ay4KICAqCiAgKiBOT1RFUzogVGhlIHByb2Nlc3MgcXVldWUgaXMgbm93IGEgcHJpb3JpdHkg cXVldWUgZm9yIGxvY2tpbmcuCiAgKi8KLWludAorUHJvY1dhaXRTdGF0dXMKIFByb2NTbGVl cChMT0NBTExPQ0sgKmxvY2FsbG9jaywgTG9ja01ldGhvZCBsb2NrTWV0aG9kVGFibGUpCiB7 CiAJTE9DS01PREUJbG9ja21vZGUgPSBsb2NhbGxvY2stPnRhZy5tb2RlOwpAQCAtMTA3MCw3 ICsxMDcwLDcgQEAgUHJvY1NsZWVwKExPQ0FMTE9DSyAqbG9jYWxsb2NrLCBMb2NrTWV0aG9k IGxvY2tNZXRob2RUYWJsZSkKIAlMT0NLTUFTSwlteUhlbGRMb2NrcyA9IE15UHJvYy0+aGVs ZExvY2tzOwogCWJvb2wJCWVhcmx5X2RlYWRsb2NrID0gZmFsc2U7CiAJYm9vbAkJYWxsb3df YXV0b3ZhY3V1bV9jYW5jZWwgPSB0cnVlOwotCWludAkJCW15V2FpdFN0YXR1czsKKwlQcm9j V2FpdFN0YXR1cyBteVdhaXRTdGF0dXM7CiAJUEdQUk9DCSAgICpwcm9jOwogCVBHUFJPQwkg ICAqbGVhZGVyID0gTXlQcm9jLT5sb2NrR3JvdXBMZWFkZXI7CiAJaW50CQkJaTsKQEAgLTEx NjEsNyArMTE2MSw3IEBAIFByb2NTbGVlcChMT0NBTExPQ0sgKmxvY2FsbG9jaywgTG9ja01l dGhvZCBsb2NrTWV0aG9kVGFibGUpCiAJCQkJCS8qIFNraXAgdGhlIHdhaXQgYW5kIGp1c3Qg Z3JhbnQgbXlzZWxmIHRoZSBsb2NrLiAqLwogCQkJCQlHcmFudExvY2sobG9jaywgcHJvY2xv Y2ssIGxvY2ttb2RlKTsKIAkJCQkJR3JhbnRBd2FpdGVkTG9jaygpOwotCQkJCQlyZXR1cm4g U1RBVFVTX09LOworCQkJCQlyZXR1cm4gUFJPQ19XQUlUX1NUQVRVU19PSzsKIAkJCQl9CiAJ CQkJLyogQnJlYWsgb3V0IG9mIGxvb3AgdG8gcHV0IG15c2VsZiBiZWZvcmUgaGltICovCiAJ CQkJYnJlYWs7CkBAIC0xMTk1LDcgKzExOTUsNyBAQCBQcm9jU2xlZXAoTE9DQUxMT0NLICps b2NhbGxvY2ssIExvY2tNZXRob2QgbG9ja01ldGhvZFRhYmxlKQogCU15UHJvYy0+d2FpdFBy b2NMb2NrID0gcHJvY2xvY2s7CiAJTXlQcm9jLT53YWl0TG9ja01vZGUgPSBsb2NrbW9kZTsK IAotCU15UHJvYy0+d2FpdFN0YXR1cyA9IFNUQVRVU19XQUlUSU5HOworCU15UHJvYy0+d2Fp dFN0YXR1cyA9IFBST0NfV0FJVF9TVEFUVVNfV0FJVElORzsKIAogCS8qCiAJICogSWYgd2Ug ZGV0ZWN0ZWQgZGVhZGxvY2ssIGdpdmUgdXAgd2l0aG91dCB3YWl0aW5nLiAgVGhpcyBtdXN0 IGFncmVlIHdpdGgKQEAgLTEyMDQsNyArMTIwNCw3IEBAIFByb2NTbGVlcChMT0NBTExPQ0sg KmxvY2FsbG9jaywgTG9ja01ldGhvZCBsb2NrTWV0aG9kVGFibGUpCiAJaWYgKGVhcmx5X2Rl YWRsb2NrKQogCXsKIAkJUmVtb3ZlRnJvbVdhaXRRdWV1ZShNeVByb2MsIGhhc2hjb2RlKTsK LQkJcmV0dXJuIFNUQVRVU19FUlJPUjsKKwkJcmV0dXJuIFBST0NfV0FJVF9TVEFUVVNfRVJS T1I7CiAJfQogCiAJLyogbWFyayB0aGF0IHdlIGFyZSB3YWl0aW5nIGZvciBhIGxvY2sgKi8K QEAgLTEyMzYsNyArMTIzNiw3IEBAIFByb2NTbGVlcChMT0NBTExPQ0sgKmxvY2FsbG9jaywg TG9ja01ldGhvZCBsb2NrTWV0aG9kVGFibGUpCiAJLyoKIAkgKiBTZXQgdGltZXIgc28gd2Ug Y2FuIHdha2UgdXAgYWZ0ZXIgYXdoaWxlIGFuZCBjaGVjayBmb3IgYSBkZWFkbG9jay4gSWYg YQogCSAqIGRlYWRsb2NrIGlzIGRldGVjdGVkLCB0aGUgaGFuZGxlciBzZXRzIE15UHJvYy0+ d2FpdFN0YXR1cyA9Ci0JICogU1RBVFVTX0VSUk9SLCBhbGxvd2luZyB1cyB0byBrbm93IHRo YXQgd2UgbXVzdCByZXBvcnQgZmFpbHVyZSByYXRoZXIKKwkgKiBQUk9DX1dBSVRfU1RBVFVT X0VSUk9SLCBhbGxvd2luZyB1cyB0byBrbm93IHRoYXQgd2UgbXVzdCByZXBvcnQgZmFpbHVy ZSByYXRoZXIKIAkgKiB0aGFuIHN1Y2Nlc3MuCiAJICoKIAkgKiBCeSBkZWxheWluZyB0aGUg Y2hlY2sgdW50aWwgd2UndmUgd2FpdGVkIGZvciBhIGJpdCwgd2UgY2FuIGF2b2lkCkBAIC0x MzAyLDExICsxMzAyLDExIEBAIFByb2NTbGVlcChMT0NBTExPQ0sgKmxvY2FsbG9jaywgTG9j a01ldGhvZCBsb2NrTWV0aG9kVGFibGUpCiAJCX0KIAogCQkvKgotCQkgKiB3YWl0U3RhdHVz IGNvdWxkIGNoYW5nZSBmcm9tIFNUQVRVU19XQUlUSU5HIHRvIHNvbWV0aGluZyBlbHNlCisJ CSAqIHdhaXRTdGF0dXMgY291bGQgY2hhbmdlIGZyb20gUFJPQ19XQUlUX1NUQVRVU19XQUlU SU5HIHRvIHNvbWV0aGluZyBlbHNlCiAJCSAqIGFzeW5jaHJvbm91c2x5LiAgUmVhZCBpdCBq dXN0IG9uY2UgcGVyIGxvb3AgdG8gcHJldmVudCBzdXJwcmlzaW5nCiAJCSAqIGJlaGF2aW9y IChzdWNoIGFzIG1pc3NpbmcgbG9nIG1lc3NhZ2VzKS4KIAkJICovCi0JCW15V2FpdFN0YXR1 cyA9ICooKHZvbGF0aWxlIGludCAqKSAmTXlQcm9jLT53YWl0U3RhdHVzKTsKKwkJbXlXYWl0 U3RhdHVzID0gKigodm9sYXRpbGUgUHJvY1dhaXRTdGF0dXMgKikgJk15UHJvYy0+d2FpdFN0 YXR1cyk7CiAKIAkJLyoKIAkJICogSWYgd2UgYXJlIG5vdCBkZWFkbG9ja2VkLCBidXQgYXJl IHdhaXRpbmcgb24gYW4gYXV0b3ZhY3V1bS1pbmR1Y2VkCkBAIC0xNDg3LDI0ICsxNDg3LDI0 IEBAIFByb2NTbGVlcChMT0NBTExPQ0sgKmxvY2FsbG9jaywgTG9ja01ldGhvZCBsb2NrTWV0 aG9kVGFibGUpCiAJCQkJCQkJCQkJCSAgIGxvY2tIb2xkZXJzTnVtLCBsb2NrX2hvbGRlcnNf c2J1Zi5kYXRhLCBsb2NrX3dhaXRlcnNfc2J1Zi5kYXRhKSkpKTsKIAkJCX0KIAotCQkJaWYg KG15V2FpdFN0YXR1cyA9PSBTVEFUVVNfV0FJVElORykKKwkJCWlmIChteVdhaXRTdGF0dXMg PT0gUFJPQ19XQUlUX1NUQVRVU19XQUlUSU5HKQogCQkJCWVyZXBvcnQoTE9HLAogCQkJCQkJ KGVycm1zZygicHJvY2VzcyAlZCBzdGlsbCB3YWl0aW5nIGZvciAlcyBvbiAlcyBhZnRlciAl bGQuJTAzZCBtcyIsCiAJCQkJCQkJCU15UHJvY1BpZCwgbW9kZW5hbWUsIGJ1Zi5kYXRhLCBt c2VjcywgdXNlY3MpLAogCQkJCQkJIChlcnJkZXRhaWxfbG9nX3BsdXJhbCgiUHJvY2VzcyBo b2xkaW5nIHRoZSBsb2NrOiAlcy4gV2FpdCBxdWV1ZTogJXMuIiwKIAkJCQkJCQkJCQkJICAg IlByb2Nlc3NlcyBob2xkaW5nIHRoZSBsb2NrOiAlcy4gV2FpdCBxdWV1ZTogJXMuIiwKIAkJ CQkJCQkJCQkJICAgbG9ja0hvbGRlcnNOdW0sIGxvY2tfaG9sZGVyc19zYnVmLmRhdGEsIGxv Y2tfd2FpdGVyc19zYnVmLmRhdGEpKSkpOwotCQkJZWxzZSBpZiAobXlXYWl0U3RhdHVzID09 IFNUQVRVU19PSykKKwkJCWVsc2UgaWYgKG15V2FpdFN0YXR1cyA9PSBQUk9DX1dBSVRfU1RB VFVTX09LKQogCQkJCWVyZXBvcnQoTE9HLAogCQkJCQkJKGVycm1zZygicHJvY2VzcyAlZCBh Y3F1aXJlZCAlcyBvbiAlcyBhZnRlciAlbGQuJTAzZCBtcyIsCiAJCQkJCQkJCU15UHJvY1Bp ZCwgbW9kZW5hbWUsIGJ1Zi5kYXRhLCBtc2VjcywgdXNlY3MpKSk7CiAJCQllbHNlCiAJCQl7 Ci0JCQkJQXNzZXJ0KG15V2FpdFN0YXR1cyA9PSBTVEFUVVNfRVJST1IpOworCQkJCUFzc2Vy dChteVdhaXRTdGF0dXMgPT0gUFJPQ19XQUlUX1NUQVRVU19FUlJPUik7CiAKIAkJCQkvKgog CQkJCSAqIEN1cnJlbnRseSwgdGhlIGRlYWRsb2NrIGNoZWNrZXIgYWx3YXlzIGtpY2tzIGl0 cyBvd24KLQkJCQkgKiBwcm9jZXNzLCB3aGljaCBtZWFucyB0aGF0IHdlJ2xsIG9ubHkgc2Vl IFNUQVRVU19FUlJPUiB3aGVuCisJCQkJICogcHJvY2Vzcywgd2hpY2ggbWVhbnMgdGhhdCB3 ZSdsbCBvbmx5IHNlZSBQUk9DX1dBSVRfU1RBVFVTX0VSUk9SIHdoZW4KIAkJCQkgKiBkZWFk bG9ja19zdGF0ZSA9PSBEU19IQVJEX0RFQURMT0NLLCBhbmQgdGhlcmUncyBubyBuZWVkIHRv CiAJCQkJICogcHJpbnQgcmVkdW5kYW50IG1lc3NhZ2VzLiAgQnV0IGZvciBjb21wbGV0ZW5l c3MgYW5kCiAJCQkJICogZnV0dXJlLXByb29maW5nLCBwcmludCBhIG1lc3NhZ2UgaWYgaXQg bG9va3MgbGlrZSBzb21lb25lCkBAIC0xNTI5LDcgKzE1MjksNyBAQCBQcm9jU2xlZXAoTE9D QUxMT0NLICpsb2NhbGxvY2ssIExvY2tNZXRob2QgbG9ja01ldGhvZFRhYmxlKQogCQkJcGZy ZWUobG9ja19ob2xkZXJzX3NidWYuZGF0YSk7CiAJCQlwZnJlZShsb2NrX3dhaXRlcnNfc2J1 Zi5kYXRhKTsKIAkJfQotCX0gd2hpbGUgKG15V2FpdFN0YXR1cyA9PSBTVEFUVVNfV0FJVElO Ryk7CisJfSB3aGlsZSAobXlXYWl0U3RhdHVzID09IFBST0NfV0FJVF9TVEFUVVNfV0FJVElO Ryk7CiAKIAkvKgogCSAqIERpc2FibGUgdGhlIHRpbWVycywgaWYgdGhleSBhcmUgc3RpbGwg cnVubmluZy4gIEFzIGluIExvY2tFcnJvckNsZWFudXAsCkBAIC0xNTY4LDcgKzE1NjgsNyBA QCBQcm9jU2xlZXAoTE9DQUxMT0NLICpsb2NhbGxvY2ssIExvY2tNZXRob2QgbG9ja01ldGhv ZFRhYmxlKQogCS8qCiAJICogSWYgd2UgZ290IHRoZSBsb2NrLCBiZSBzdXJlIHRvIHJlbWVt YmVyIGl0IGluIHRoZSBsb2NhbGxvY2sgdGFibGUuCiAJICovCi0JaWYgKE15UHJvYy0+d2Fp dFN0YXR1cyA9PSBTVEFUVVNfT0spCisJaWYgKE15UHJvYy0+d2FpdFN0YXR1cyA9PSBQUk9D X1dBSVRfU1RBVFVTX09LKQogCQlHcmFudEF3YWl0ZWRMb2NrKCk7CiAKIAkvKgpAQCAtMTU5 MCwxMCArMTU5MCwxMCBAQCBQcm9jU2xlZXAoTE9DQUxMT0NLICpsb2NhbGxvY2ssIExvY2tN ZXRob2QgbG9ja01ldGhvZFRhYmxlKQogICogWFhYOiBwcmVzZW50bHksIHRoaXMgY29kZSBp cyBvbmx5IHVzZWQgZm9yIHRoZSAic3VjY2VzcyIgY2FzZSwgYW5kIG9ubHkKICAqIHdvcmtz IGNvcnJlY3RseSBmb3IgdGhhdCBjYXNlLiAgVG8gY2xlYW4gdXAgaW4gZmFpbHVyZSBjYXNl LCB3b3VsZCBuZWVkCiAgKiB0byB0d2lkZGxlIHRoZSBsb2NrJ3MgcmVxdWVzdCBjb3VudHMg dG9vIC0tLSBzZWUgUmVtb3ZlRnJvbVdhaXRRdWV1ZS4KLSAqIEhlbmNlLCBpbiBwcmFjdGlj ZSB0aGUgd2FpdFN0YXR1cyBwYXJhbWV0ZXIgbXVzdCBiZSBTVEFUVVNfT0suCisgKiBIZW5j ZSwgaW4gcHJhY3RpY2UgdGhlIHdhaXRTdGF0dXMgcGFyYW1ldGVyIG11c3QgYmUgUFJPQ19X QUlUX1NUQVRVU19PSy4KICAqLwogUEdQUk9DICoKLVByb2NXYWtldXAoUEdQUk9DICpwcm9j LCBpbnQgd2FpdFN0YXR1cykKK1Byb2NXYWtldXAoUEdQUk9DICpwcm9jLCBQcm9jV2FpdFN0 YXR1cyB3YWl0U3RhdHVzKQogewogCVBHUFJPQwkgICAqcmV0UHJvYzsKIApAQCAtMTYwMSw3 ICsxNjAxLDcgQEAgUHJvY1dha2V1cChQR1BST0MgKnByb2MsIGludCB3YWl0U3RhdHVzKQog CWlmIChwcm9jLT5saW5rcy5wcmV2ID09IE5VTEwgfHwKIAkJcHJvYy0+bGlua3MubmV4dCA9 PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsKLQlBc3NlcnQocHJvYy0+d2FpdFN0YXR1cyA9PSBT VEFUVVNfV0FJVElORyk7CisJQXNzZXJ0KHByb2MtPndhaXRTdGF0dXMgPT0gUFJPQ19XQUlU X1NUQVRVU19XQUlUSU5HKTsKIAogCS8qIFNhdmUgbmV4dCBwcm9jZXNzIGJlZm9yZSB3ZSB6 YXAgdGhlIGxpc3QgbGluayAqLwogCXJldFByb2MgPSAoUEdQUk9DICopIHByb2MtPmxpbmtz Lm5leHQ7CkBAIC0xNjU3LDcgKzE2NTcsNyBAQCBQcm9jTG9ja1dha2V1cChMb2NrTWV0aG9k IGxvY2tNZXRob2RUYWJsZSwgTE9DSyAqbG9jaykKIAkJewogCQkJLyogT0sgdG8gd2FrZW4g Ki8KIAkJCUdyYW50TG9jayhsb2NrLCBwcm9jLT53YWl0UHJvY0xvY2ssIGxvY2ttb2RlKTsK LQkJCXByb2MgPSBQcm9jV2FrZXVwKHByb2MsIFNUQVRVU19PSyk7CisJCQlwcm9jID0gUHJv Y1dha2V1cChwcm9jLCBQUk9DX1dBSVRfU1RBVFVTX09LKTsKIAogCQkJLyoKIAkJCSAqIFBy b2NXYWtldXAgcmVtb3ZlcyBwcm9jIGZyb20gdGhlIGxvY2sncyB3YWl0aW5nIHByb2Nlc3Mg cXVldWUKQEAgLTE3MzcsNyArMTczNyw3IEBAIENoZWNrRGVhZExvY2sodm9pZCkKIAkJICog cHJlc2VydmUgdGhlIGZsZXhpYmlsaXR5IHRvIGtpbGwgc29tZSBvdGhlciB0cmFuc2FjdGlv biB0aGFuIHRoZQogCQkgKiBvbmUgZGV0ZWN0aW5nIHRoZSBkZWFkbG9jay4pCiAJCSAqCi0J CSAqIFJlbW92ZUZyb21XYWl0UXVldWUgc2V0cyBNeVByb2MtPndhaXRTdGF0dXMgdG8gU1RB VFVTX0VSUk9SLCBzbworCQkgKiBSZW1vdmVGcm9tV2FpdFF1ZXVlIHNldHMgTXlQcm9jLT53 YWl0U3RhdHVzIHRvIFBST0NfV0FJVF9TVEFUVVNfRVJST1IsIHNvCiAJCSAqIFByb2NTbGVl cCB3aWxsIHJlcG9ydCBhbiBlcnJvciBhZnRlciB3ZSByZXR1cm4gZnJvbSB0aGUgc2lnbmFs CiAJCSAqIGhhbmRsZXIuCiAJCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYy5oIGIv c3JjL2luY2x1ZGUvYy5oCmluZGV4IGQ3MmIyM2FmZTQuLmE5MDRiNDlhMzcgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAgLTExMzMsNyAr MTEzMyw2IEBAIHR5cGVkZWYgdW5pb24gUEdBbGlnbmVkWExvZ0Jsb2NrCiAjZGVmaW5lIFNU QVRVU19PSwkJCQkoMCkKICNkZWZpbmUgU1RBVFVTX0VSUk9SCQkJKC0xKQogI2RlZmluZSBT VEFUVVNfRU9GCQkJCSgtMikKLSNkZWZpbmUgU1RBVFVTX1dBSVRJTkcJCQkoMikKIAogLyoK ICAqIGdldHRleHQgc3VwcG9ydApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9w cm9jLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaAppbmRleCAxZWU5MDAwYjJiLi5i MjBlMmFkNGY2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaAorKysg Yi9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaApAQCAtNzYsNiArNzYsMTMgQEAgc3RydWN0 IFhpZENhY2hlCiAgKi8KICNkZWZpbmUgSU5WQUxJRF9QR1BST0NOTwkJUEdfSU5UMzJfTUFY CiAKK3R5cGVkZWYgZW51bQoreworCVBST0NfV0FJVF9TVEFUVVNfT0ssCisJUFJPQ19XQUlU X1NUQVRVU19XQUlUSU5HLAorCVBST0NfV0FJVF9TVEFUVVNfRVJST1IsCit9IFByb2NXYWl0 U3RhdHVzOworCiAvKgogICogRWFjaCBiYWNrZW5kIGhhcyBhIFBHUFJPQyBzdHJ1Y3QgaW4g c2hhcmVkIG1lbW9yeS4gIFRoZXJlIGlzIGFsc28gYSBsaXN0IG9mCiAgKiBjdXJyZW50bHkt dW51c2VkIFBHUFJPQyBzdHJ1Y3RzIHRoYXQgd2lsbCBiZSByZWFsbG9jYXRlZCB0byBuZXcg YmFja2VuZHMuCkBAIC05OSw3ICsxMDYsNyBAQCBzdHJ1Y3QgUEdQUk9DCiAJUEdQUk9DCSAg Kipwcm9jZ2xvYmFsbGlzdDsgLyogcHJvY2dsb2JhbCBsaXN0IHRoYXQgb3ducyB0aGlzIFBH UFJPQyAqLwogCiAJUEdTZW1hcGhvcmUgc2VtOwkJCS8qIE9ORSBzZW1hcGhvcmUgdG8gc2xl ZXAgb24gKi8KLQlpbnQJCQl3YWl0U3RhdHVzOwkJLyogU1RBVFVTX1dBSVRJTkcsIFNUQVRV U19PSyBvciBTVEFUVVNfRVJST1IgKi8KKwlQcm9jV2FpdFN0YXR1cyB3YWl0U3RhdHVzOwog CiAJTGF0Y2gJCXByb2NMYXRjaDsJCS8qIGdlbmVyaWMgbGF0Y2ggZm9yIHByb2Nlc3MgKi8K IApAQCAtMzE1LDggKzMyMiw4IEBAIGV4dGVybiBib29sIEhhdmVORnJlZVByb2NzKGludCBu KTsKIGV4dGVybiB2b2lkIFByb2NSZWxlYXNlTG9ja3MoYm9vbCBpc0NvbW1pdCk7CiAKIGV4 dGVybiB2b2lkIFByb2NRdWV1ZUluaXQoUFJPQ19RVUVVRSAqcXVldWUpOwotZXh0ZXJuIGlu dAlQcm9jU2xlZXAoTE9DQUxMT0NLICpsb2NhbGxvY2ssIExvY2tNZXRob2QgbG9ja01ldGhv ZFRhYmxlKTsKLWV4dGVybiBQR1BST0MgKlByb2NXYWtldXAoUEdQUk9DICpwcm9jLCBpbnQg d2FpdFN0YXR1cyk7CitleHRlcm4gUHJvY1dhaXRTdGF0dXMgUHJvY1NsZWVwKExPQ0FMTE9D SyAqbG9jYWxsb2NrLCBMb2NrTWV0aG9kIGxvY2tNZXRob2RUYWJsZSk7CitleHRlcm4gUEdQ Uk9DICpQcm9jV2FrZXVwKFBHUFJPQyAqcHJvYywgUHJvY1dhaXRTdGF0dXMgd2FpdFN0YXR1 cyk7CiBleHRlcm4gdm9pZCBQcm9jTG9ja1dha2V1cChMb2NrTWV0aG9kIGxvY2tNZXRob2RU YWJsZSwgTE9DSyAqbG9jayk7CiBleHRlcm4gdm9pZCBDaGVja0RlYWRMb2NrQWxlcnQodm9p ZCk7CiBleHRlcm4gYm9vbCBJc1dhaXRpbmdGb3JMb2NrKHZvaWQpOwotLSAKMi4yNy4wCgo= --------------45C6DB5D4532270FB8FD41FD--