Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r2AeX-00FLM3-Mw for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Nov 2023 13:37:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1r2AeU-00AakF-Qm for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Nov 2023 13:37:26 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r2AeU-00Aak6-Dx for pgsql-hackers@lists.postgresql.org; Sun, 12 Nov 2023 13:37:26 +0000 Received: from mail-lf1-x12f.google.com ([2a00:1450:4864:20::12f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1r2AeN-0063t8-Rd for pgsql-hackers@postgresql.org; Sun, 12 Nov 2023 13:37:25 +0000 Received: by mail-lf1-x12f.google.com with SMTP id 2adb3069b0e04-5098e423ba2so5008607e87.2 for ; Sun, 12 Nov 2023 05:37:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699796239; x=1700401039; darn=postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=5JttnJ0B40P7GxJj7jEG65cP/GQxGysWT7jORKhHC2s=; b=ZCW7+pV2/f0LgY21tcpz7dxBXRVdr5Dyzm8i185VMk/FqO9f+R/gakOqwxg2dkca7j PqZr08ORe8vpKKgh1nIoFGoaTQAvSF40jiddmo1M8RZyEp5jmOZfQclEt8Y3pY9ce9yc zAUXmSZ+v1LqHKem/UBnX6mwUNlXpggqkq283HyrOCwW8dHJpCrsGT6fav3VkRo+0OKt 4u9k6gG0liZOHWF2CNd987J+oWA2dROxSI9g1C4vrsLCIEB8JGqVdaE5I9+9TrkPhA0x qe2NpTlbtEzGT7gSddcDaKD69u5uQz5/BcZTRCXO4uAgKVrMQr8Ggzmj3eOSViq5wBYH lCvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699796239; x=1700401039; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5JttnJ0B40P7GxJj7jEG65cP/GQxGysWT7jORKhHC2s=; b=f1AzXvcYbNZe0Jbb30MxI2DS3D6jdBtMXhQfhM9EMIYpbIuXD6lr2SMFaRdLS4C5/r Hubum6OPOm2bTrwTF1dNQcKNB4co6s1ugStvTakF5zTM3RjaPj0D/51fK+2mw4XeAXlP gYHeRbcCv2lWh/S3Ff8zqWewda94lLlolEREnnW5/dPAfMHD3CRB3eHyZByV8+rVl8YH IZppAj4WA3S0oL6k4V6GyM0rwSN2DlERiFtz+lh9y9YHoTaXwE1u9Dm5IO4JfDLap7U+ DLcdMp7ny0wzjyg4qIP9mYjyWG5F89qglOJxgNEhSQBITC550t/JUixBSxaOMd6FkZVS V7mA== X-Gm-Message-State: AOJu0YzRpvlX9Vd8CU07oJrMMtoeQMtblYBbDqCbf2GLbUTpc1d4mf7o zevUKRGDLefWXVYSmA5u6U8= X-Google-Smtp-Source: AGHT+IGNRO3VrfVG8bqmahco4YlnaAxAxfqQyZmK5nSuYzxdtcyt6QBPpbgxmalFIFR9eKZHPeX36w== X-Received: by 2002:a19:521a:0:b0:507:a8cd:6c90 with SMTP id m26-20020a19521a000000b00507a8cd6c90mr2677730lfb.51.1699796238272; Sun, 12 Nov 2023 05:37:18 -0800 (PST) Received: from [10.0.0.2] (cpc92320-cmbg19-2-0-cust976.5-4.cable.virginm.net. [82.13.67.209]) by smtp.gmail.com with ESMTPSA id c16-20020adfed90000000b00327cd5e5ac1sm3359409wro.1.2023.11.12.05.37.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 12 Nov 2023 05:37:17 -0800 (PST) Content-Type: multipart/mixed; boundary="------------N0QnR0cCATRgliXd7uNhQvcm" Message-ID: Date: Sun, 12 Nov 2023 13:37:16 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Add PQsendSyncMessage() to libpq To: Alvaro Herrera , Jelte Fennema-Nio Cc: Michael Paquier , Robert Haas , pgsql-hackers@postgresql.org References: <202311081620.s2a7ao5jtlpe@alvherre.pgsql> Content-Language: en-US From: Anton Kirilov In-Reply-To: <202311081620.s2a7ao5jtlpe@alvherre.pgsql> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------N0QnR0cCATRgliXd7uNhQvcm Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello, Thanks for the feedback! On 07/11/2023 09:23, Jelte Fennema-Nio wrote: > But I think it's looking at the situation from the wrong direction. [...] we should look at it as an addition to our current list of PQsend functions for a new packet type. And none of those PQsend functions ever needed a flag. Which makes sense, because they are the lowest level building blocks that make sense from a user perspective: They send a message type over the socket and don't do anything else. Yes, I think that this is quite close to my thinking when I created the original version of the patch. Also, the protocol specification states that the Sync message lacks parameters. Since there haven't been any comments from the other people who have chimed in on this e-mail thread, I will assume that there is consensus (we are doing a U-turn with the implementation approach after all), so here is the updated version of the patch. Best wishes, Anton Kirilov --------------N0QnR0cCATRgliXd7uNhQvcm Content-Type: text/x-patch; charset=UTF-8; name="v5-0001-Add-PQsendPipelineSync-to-libpq.patch" Content-Disposition: attachment; filename="v5-0001-Add-PQsendPipelineSync-to-libpq.patch" Content-Transfer-Encoding: base64 RnJvbSBiNzUyMjY5YjI3NjNmOGQ2NmJjZmM3OWZhZjc1MWU1MjIyNmMzNDRiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbiBLaXJpbG92IDxhbnRvbnZraXJpbG92QGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAyMiBNYXIgMjAyMyAyMDozOTo1NyArMDAwMApTdWJqZWN0 OiBbUEFUQ0ggdjVdIEFkZCBQUXNlbmRQaXBlbGluZVN5bmMoKSB0byBsaWJwcQoKVGhpcyBu ZXcgZnVuY3Rpb24gaXMgZXF1aXZhbGVudCB0byBQUXBpcGVsaW5lU3luYygpLCBleGNlcHQK dGhhdCBpdCBkb2VzIG5vdCBmbHVzaCBhbnl0aGluZyB0byB0aGUgc2VydmVyOyB0aGUgdXNl ciBtdXN0CnN1YnNlcXVlbnRseSBjYWxsIFBRZmx1c2goKSBpbnN0ZWFkLiBJdHMgcHVycG9z ZSBpcyB0byByZWR1Y2UKdGhlIHN5c3RlbSBjYWxsIG92ZXJoZWFkIG9mIHBpcGVsaW5lIG1v ZGUuCi0tLQogZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwgICAgICAgICAgICAgICAgICAgICAg IHwgNDUgKysrKysrKysrKysrKysrKy0tLQogc3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0 cy50eHQgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhl Yy5jICAgICAgICAgICAgICAgIHwgMTcgKysrKystLQogc3JjL2ludGVyZmFjZXMvbGlicHEv bGlicHEtZmUuaCAgICAgICAgICAgICAgIHwgIDEgKwogLi4uL21vZHVsZXMvbGlicHFfcGlw ZWxpbmUvbGlicHFfcGlwZWxpbmUuYyAgIHwgMzcgKysrKysrKysrKysrKysrCiAuLi4vdHJh Y2VzL211bHRpX3BpcGVsaW5lcy50cmFjZSAgICAgICAgICAgICAgfCAxMSArKysrKwogNiBm aWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbGlicHEu c2dtbAppbmRleCA2NGIyOTEwZmVlLi42MWJlZTgyYTU0IDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvbGlicHEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbApAQCAtMzU0 Nyw4ICszNTQ3LDkgQEAgRXhlY1N0YXR1c1R5cGUgUFFyZXN1bHRTdGF0dXMoY29uc3QgUEdy ZXN1bHQgKnJlcyk7CiAgICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT4K ICAgICAgICAgICAgIFRoZSA8c3RydWN0bmFtZT5QR3Jlc3VsdDwvc3RydWN0bmFtZT4gcmVw cmVzZW50cyBhCi0gICAgICAgICAgICBzeW5jaHJvbml6YXRpb24gcG9pbnQgaW4gcGlwZWxp bmUgbW9kZSwgcmVxdWVzdGVkIGJ5Ci0gICAgICAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJw cS1QUXBpcGVsaW5lU3luYyIvPi4KKyAgICAgICAgICAgIHN5bmNocm9uaXphdGlvbiBwb2lu dCBpbiBwaXBlbGluZSBtb2RlLCByZXF1ZXN0ZWQgYnkgZWl0aGVyCisgICAgICAgICAgICA8 eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXBpcGVsaW5lU3luYyIvPiBvcgorICAgICAgICAgICAg PHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUGlwZWxpbmVTeW5jIi8+LgogICAgICAgICAg ICAgVGhpcyBzdGF0dXMgb2NjdXJzIG9ubHkgd2hlbiBwaXBlbGluZSBtb2RlIGhhcyBiZWVu IHNlbGVjdGVkLgogICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICAgPC9saXN0aXRlbT4K QEAgLTUxMjIsNyArNTEyMyw4IEBAIGludCBQUXNlbmRDbG9zZVBvcnRhbChQR2Nvbm4gKmNv bm4sIGNvbnN0IGNoYXIgKnBvcnRhbE5hbWUpOwogICAgICAgIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiLz4sCiAgICAgICAgPHhyZWYgbGlua2VuZD0i bGlicHEtUFFzZW5kRGVzY3JpYmVQb3J0YWwiLz4sCiAgICAgICAgPHhyZWYgbGlua2VuZD0i bGlicHEtUFFzZW5kQ2xvc2VQcmVwYXJlZCIvPiwKLSAgICAgICA8eHJlZiBsaW5rZW5kPSJs aWJwcS1QUXNlbmRDbG9zZVBvcnRhbCIvPiwgb3IKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJs aWJwcS1QUXNlbmRDbG9zZVBvcnRhbCIvPiwKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJw cS1QUXNlbmRQaXBlbGluZVN5bmMiLz4sIG9yCiAgICAgICAgPHhyZWYgbGlua2VuZD0ibGli cHEtUFFwaXBlbGluZVN5bmMiLz4KICAgICAgICBjYWxsLCBhbmQgcmV0dXJucyBpdC4KICAg ICAgICBBIG51bGwgcG9pbnRlciBpcyByZXR1cm5lZCB3aGVuIHRoZSBjb21tYW5kIGlzIGNv bXBsZXRlIGFuZCB0aGVyZQpAQCAtNTUwNiw4ICs1NTA4LDkgQEAgaW50IFBRZmx1c2goUEdj b25uICpjb25uKTsKICAgICAgY2xpZW50IHNlbmRzIHRoZW0uICBUaGUgc2VydmVyIHdpbGwg YmVnaW4gZXhlY3V0aW5nIHRoZSBjb21tYW5kcyBpbiB0aGUKICAgICAgcGlwZWxpbmUgaW1t ZWRpYXRlbHksIG5vdCB3YWl0aW5nIGZvciB0aGUgZW5kIG9mIHRoZSBwaXBlbGluZS4KICAg ICAgTm90ZSB0aGF0IHJlc3VsdHMgYXJlIGJ1ZmZlcmVkIG9uIHRoZSBzZXJ2ZXIgc2lkZTsg dGhlIHNlcnZlciBmbHVzaGVzCi0gICAgIHRoYXQgYnVmZmVyIHdoZW4gYSBzeW5jaHJvbml6 YXRpb24gcG9pbnQgaXMgZXN0YWJsaXNoZWQgd2l0aAotICAgICA8ZnVuY3Rpb24+UFFwaXBl bGluZVN5bmM8L2Z1bmN0aW9uPiwgb3Igd2hlbgorICAgICB0aGF0IGJ1ZmZlciB3aGVuIGEg c3luY2hyb25pemF0aW9uIHBvaW50IGlzIGVzdGFibGlzaGVkIHdpdGggZWl0aGVyCisgICAg IDxmdW5jdGlvbj5QUXBpcGVsaW5lU3luYzwvZnVuY3Rpb24+IG9yCisgICAgIDxmdW5jdGlv bj5QUXNlbmRQaXBlbGluZVN5bmM8L2Z1bmN0aW9uPiwgb3Igd2hlbgogICAgICA8ZnVuY3Rp b24+UFFzZW5kRmx1c2hSZXF1ZXN0PC9mdW5jdGlvbj4gaXMgY2FsbGVkLgogICAgICBJZiBh bnkgc3RhdGVtZW50IGVuY291bnRlcnMgYW4gZXJyb3IsIHRoZSBzZXJ2ZXIgYWJvcnRzIHRo ZSBjdXJyZW50CiAgICAgIHRyYW5zYWN0aW9uIGFuZCBkb2VzIG5vdCBleGVjdXRlIGFueSBz dWJzZXF1ZW50IGNvbW1hbmQgaW4gdGhlIHF1ZXVlCkBAIC01NTY0LDcgKzU1NjcsOCBAQCBp bnQgUFFmbHVzaChQR2Nvbm4gKmNvbm4pOwogICAgICA8dHlwZT5QR3Jlc3VsdDwvdHlwZT4g dHlwZXMgPGxpdGVyYWw+UEdSRVNfUElQRUxJTkVfU1lOQzwvbGl0ZXJhbD4KICAgICAgYW5k IDxsaXRlcmFsPlBHUkVTX1BJUEVMSU5FX0FCT1JURUQ8L2xpdGVyYWw+LgogICAgICA8bGl0 ZXJhbD5QR1JFU19QSVBFTElORV9TWU5DPC9saXRlcmFsPiBpcyByZXBvcnRlZCBleGFjdGx5 IG9uY2UgZm9yIGVhY2gKLSAgICAgPGZ1bmN0aW9uPlBRcGlwZWxpbmVTeW5jPC9mdW5jdGlv bj4gYXQgdGhlIGNvcnJlc3BvbmRpbmcgcG9pbnQKKyAgICAgPGZ1bmN0aW9uPlBRcGlwZWxp bmVTeW5jPC9mdW5jdGlvbj4gb3IKKyAgICAgPGZ1bmN0aW9uPlBRc2VuZFBpcGVsaW5lU3lu YzwvZnVuY3Rpb24+IGF0IHRoZSBjb3JyZXNwb25kaW5nIHBvaW50CiAgICAgIGluIHRoZSBw aXBlbGluZS4KICAgICAgPGxpdGVyYWw+UEdSRVNfUElQRUxJTkVfQUJPUlRFRDwvbGl0ZXJh bD4gaXMgZW1pdHRlZCBpbiBwbGFjZSBvZiBhIG5vcm1hbAogICAgICBxdWVyeSByZXN1bHQg Zm9yIHRoZSBmaXJzdCBlcnJvciBhbmQgYWxsIHN1YnNlcXVlbnQgcmVzdWx0cwpAQCAtNTYw Miw3ICs1NjA2LDggQEAgaW50IFBRZmx1c2goUEdjb25uICpjb25uKTsKICAgICAgPGZ1bmN0 aW9uPlBRcmVzdWx0U3RhdHVzPC9mdW5jdGlvbj4gd2lsbCByZXBvcnQgYQogICAgICA8bGl0 ZXJhbD5QR1JFU19QSVBFTElORV9BQk9SVEVEPC9saXRlcmFsPiByZXN1bHQgZm9yIGVhY2gg cmVtYWluaW5nIHF1ZXVlZAogICAgICBvcGVyYXRpb24gaW4gYW4gYWJvcnRlZCBwaXBlbGlu ZS4gVGhlIHJlc3VsdCBmb3IKLSAgICAgPGZ1bmN0aW9uPlBRcGlwZWxpbmVTeW5jPC9mdW5j dGlvbj4gaXMgcmVwb3J0ZWQgYXMKKyAgICAgPGZ1bmN0aW9uPlBRcGlwZWxpbmVTeW5jPC9m dW5jdGlvbj4gb3IKKyAgICAgPGZ1bmN0aW9uPlBRc2VuZFBpcGVsaW5lU3luYzwvZnVuY3Rp b24+IGlzIHJlcG9ydGVkIGFzCiAgICAgIDxsaXRlcmFsPlBHUkVTX1BJUEVMSU5FX1NZTkM8 L2xpdGVyYWw+IHRvIHNpZ25hbCB0aGUgZW5kIG9mIHRoZSBhYm9ydGVkIHBpcGVsaW5lCiAg ICAgIGFuZCByZXN1bXB0aW9uIG9mIG5vcm1hbCByZXN1bHQgcHJvY2Vzc2luZy4KICAgICA8 L3BhcmE+CkBAIC01ODM0LDYgKzU4MzksMzIgQEAgaW50IFBRc2VuZEZsdXNoUmVxdWVzdChQ R2Nvbm4gKmNvbm4pOwogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAg IDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFzZW5k UGlwZWxpbmVTeW5jIj4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRc2VuZFBpcGVsaW5lU3lu YzwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXNlbmRQaXBlbGluZVN5bmM8L3By aW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPgorICAgICAgIE1hcmtzIGEgc3luY2hyb25pemF0aW9uIHBvaW50IGluIGEgcGlwZWxp bmUgYnkgc2VuZGluZyBhCisgICAgICAgPGxpbmsgbGlua2VuZD0icHJvdG9jb2wtZmxvdy1l eHQtcXVlcnkiPnN5bmMgbWVzc2FnZTwvbGluaz4KKyAgICAgICB3aXRob3V0IGZsdXNoaW5n IHRoZSBzZW5kIGJ1ZmZlci4gVGhpcyBzZXJ2ZXMgYXMKKyAgICAgICB0aGUgZGVsaW1pdGVy IG9mIGFuIGltcGxpY2l0IHRyYW5zYWN0aW9uIGFuZCBhbiBlcnJvciByZWNvdmVyeQorICAg ICAgIHBvaW50OyBzZWUgPHhyZWYgbGlua2VuZD0ibGlicHEtcGlwZWxpbmUtZXJyb3JzIi8+ LgorCis8c3lub3BzaXM+CitpbnQgUFFzZW5kUGlwZWxpbmVTeW5jKFBHY29ubiAqY29ubik7 Cis8L3N5bm9wc2lzPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUmV0 dXJucyAxIGZvciBzdWNjZXNzLiBSZXR1cm5zIDAgaWYgdGhlIGNvbm5lY3Rpb24gaXMgbm90 IGluCisgICAgICAgcGlwZWxpbmUgbW9kZSBvciBzZW5kaW5nIGEKKyAgICAgICA8bGluayBs aW5rZW5kPSJwcm90b2NvbC1mbG93LWV4dC1xdWVyeSI+c3luYyBtZXNzYWdlPC9saW5rPgor ICAgICAgIGZhaWxlZC4KKyAgICAgICBOb3RlIHRoYXQgdGhlIG1lc3NhZ2UgaXMgbm90IGl0 c2VsZiBmbHVzaGVkIHRvIHRoZSBzZXJ2ZXIgYXV0b21hdGljYWxseTsKKyAgICAgICB1c2Ug PGZ1bmN0aW9uPlBRZmx1c2g8L2Z1bmN0aW9uPiBpZiBuZWNlc3NhcnkuCisgICAgICA8L3Bh cmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CiAgICA8L3Zhcmlh YmxlbGlzdD4KICAgPC9zZWN0Mj4KIApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGli cHEvZXhwb3J0cy50eHQgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dAppbmRl eCA4NTA3MzRhYzk2Li5mNWFhNjQxMDAxIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9s aWJwcS9leHBvcnRzLnR4dAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4 dApAQCAtMTkxLDMgKzE5MSw0IEBAIFBRY2xvc2VQcmVwYXJlZCAgICAgICAgICAgMTg4CiBQ UWNsb3NlUG9ydGFsICAgICAgICAgICAgIDE4OQogUFFzZW5kQ2xvc2VQcmVwYXJlZCAgICAg ICAxOTAKIFBRc2VuZENsb3NlUG9ydGFsICAgICAgICAgMTkxCitQUXNlbmRQaXBlbGluZVN5 bmMgICAgICAgIDE5MgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhl Yy5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCmluZGV4IDA0NjEwY2NmNWUu LmMwZGNiMDQyODIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMu YworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKQEAgLTMyMjQsNiArMzIy NCwxNiBAQCBwcVBpcGVsaW5lUHJvY2Vzc1F1ZXVlKFBHY29ubiAqY29ubikKICAqLwogaW50 CiBQUXBpcGVsaW5lU3luYyhQR2Nvbm4gKmNvbm4pCit7CisJcmV0dXJuIFBRc2VuZFBpcGVs aW5lU3luYyhjb25uKSAmJiBwcUZsdXNoKGNvbm4pID49IDA7Cit9CisKKy8qCisgKiBQUXNl bmRQaXBlbGluZVN5bmMKKyAqCQlTZW5kIGEgU3luYyBtZXNzYWdlIGFzIHBhcnQgb2YgYSBw aXBlbGluZSB3aXRob3V0IGZsdXNoaW5nIHRvIHNlcnZlcgorICovCitpbnQKK1BRc2VuZFBp cGVsaW5lU3luYyhQR2Nvbm4gKmNvbm4pCiB7CiAJUEdjbWRRdWV1ZUVudHJ5ICplbnRyeTsK IApAQCAtMzI2NywxMCArMzI3NywxMSBAQCBQUXBpcGVsaW5lU3luYyhQR2Nvbm4gKmNvbm4p CiAJCWdvdG8gc2VuZEZhaWxlZDsKIAogCS8qCi0JICogR2l2ZSB0aGUgZGF0YSBhIHB1c2gu ICBJbiBub25ibG9jayBtb2RlLCBkb24ndCBjb21wbGFpbiBpZiB3ZSdyZSB1bmFibGUKLQkg KiB0byBzZW5kIGl0IGFsbDsgUFFnZXRSZXN1bHQoKSB3aWxsIGRvIGFueSBhZGRpdGlvbmFs IGZsdXNoaW5nIG5lZWRlZC4KKwkgKiBHaXZlIHRoZSBkYXRhIGEgcHVzaCBpZiB3ZSdyZSBw YXN0IHRoZSBzaXplIHRocmVzaG9sZC4gSW4gbm9uYmxvY2sKKwkgKiBtb2RlLCBkb24ndCBj b21wbGFpbiBpZiB3ZSdyZSB1bmFibGUgdG8gc2VuZCBpdCBhbGw7IHRoZSBjYWxsZXIgaXMK KwkgKiBleHBlY3RlZCB0byBleGVjdXRlIFBRZmx1c2goKSBhdCBzb21lIHBvaW50IGFueXdh eS4KIAkgKi8KLQlpZiAoUFFmbHVzaChjb25uKSA8IDApCisJaWYgKHBxUGlwZWxpbmVGbHVz aChjb25uKSA8IDApCiAJCWdvdG8gc2VuZEZhaWxlZDsKIAogCS8qIE9LLCBpdCdzIGxhdW5j aGVkISAqLwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaCBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKaW5kZXggOTc3NjJkNTZmNS4uYjBk ODlhNTkyZCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaAor KysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oCkBAIC00NzQsNiArNDc0LDcg QEAgZXh0ZXJuIGludAlQUWVudGVyUGlwZWxpbmVNb2RlKFBHY29ubiAqY29ubik7CiBleHRl cm4gaW50CVBRZXhpdFBpcGVsaW5lTW9kZShQR2Nvbm4gKmNvbm4pOwogZXh0ZXJuIGludAlQ UXBpcGVsaW5lU3luYyhQR2Nvbm4gKmNvbm4pOwogZXh0ZXJuIGludAlQUXNlbmRGbHVzaFJl cXVlc3QoUEdjb25uICpjb25uKTsKK2V4dGVybiBpbnQJUFFzZW5kUGlwZWxpbmVTeW5jKFBH Y29ubiAqY29ubik7CiAKIC8qIExJU1RFTi9OT1RJRlkgc3VwcG9ydCAqLwogZXh0ZXJuIFBH bm90aWZ5ICpQUW5vdGlmaWVzKFBHY29ubiAqY29ubik7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL2xpYnBxX3BpcGVsaW5lLmMgYi9zcmMvdGVzdC9t b2R1bGVzL2xpYnBxX3BpcGVsaW5lL2xpYnBxX3BpcGVsaW5lLmMKaW5kZXggM2MwMDllZTE1 My4uMjNmYjgwOTg2YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBl bGluZS9saWJwcV9waXBlbGluZS5jCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlw ZWxpbmUvbGlicHFfcGlwZWxpbmUuYwpAQCAtMTY5LDYgKzE2OSwxNCBAQCB0ZXN0X211bHRp X3BpcGVsaW5lcyhQR2Nvbm4gKmNvbm4pCiAJaWYgKFBRcGlwZWxpbmVTeW5jKGNvbm4pICE9 IDEpCiAJCXBnX2ZhdGFsKCJQaXBlbGluZSBzeW5jIGZhaWxlZDogJXMiLCBQUWVycm9yTWVz c2FnZShjb25uKSk7CiAKKwlpZiAoUFFzZW5kUXVlcnlQYXJhbXMoY29ubiwgIlNFTEVDVCAk MSIsIDEsIGR1bW15X3BhcmFtX29pZHMsCisJCQkJCQkgIGR1bW15X3BhcmFtcywgTlVMTCwg TlVMTCwgMCkgIT0gMSkKKwkJcGdfZmF0YWwoImRpc3BhdGNoaW5nIGZpcnN0IFNFTEVDVCBm YWlsZWQ6ICVzIiwgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCisJLyogU2tpcCBmbHVzaGlu ZyBvbmNlLiAqLworCWlmIChQUXNlbmRQaXBlbGluZVN5bmMoY29ubikgIT0gMSkKKwkJcGdf ZmF0YWwoIlBpcGVsaW5lIHN5bmMgZmFpbGVkOiAlcyIsIFBRZXJyb3JNZXNzYWdlKGNvbm4p KTsKKwogCWlmIChQUXNlbmRRdWVyeVBhcmFtcyhjb25uLCAiU0VMRUNUICQxIiwgMSwgZHVt bXlfcGFyYW1fb2lkcywKIAkJCQkJCSAgZHVtbXlfcGFyYW1zLCBOVUxMLCBOVUxMLCAwKSAh PSAxKQogCQlwZ19mYXRhbCgiZGlzcGF0Y2hpbmcgc2Vjb25kIFNFTEVDVCBmYWlsZWQ6ICVz IiwgUFFlcnJvck1lc3NhZ2UoY29ubikpOwpAQCAtMjA2LDYgKzIxNCwzNSBAQCB0ZXN0X211 bHRpX3BpcGVsaW5lcyhQR2Nvbm4gKmNvbm4pCiAKIAkvKiBzZWNvbmQgcGlwZWxpbmUgKi8K IAorCXJlcyA9IFBRZ2V0UmVzdWx0KGNvbm4pOworCWlmIChyZXMgPT0gTlVMTCkKKwkJcGdf ZmF0YWwoIlBRZ2V0UmVzdWx0IHJldHVybmVkIG51bGwgd2hlbiB0aGVyZSdzIGEgcGlwZWxp bmUgaXRlbTogJXMiLAorCQkJCSBQUWVycm9yTWVzc2FnZShjb25uKSk7CisKKwlpZiAoUFFy ZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0spCisJCXBnX2ZhdGFsKCJVbmV4 cGVjdGVkIHJlc3VsdCBjb2RlICVzIGZyb20gZmlyc3QgcGlwZWxpbmUgaXRlbSIsCisJCQkJ IFBRcmVzU3RhdHVzKFBRcmVzdWx0U3RhdHVzKHJlcykpKTsKKwlQUWNsZWFyKHJlcyk7CisJ cmVzID0gTlVMTDsKKworCWlmIChQUWdldFJlc3VsdChjb25uKSAhPSBOVUxMKQorCQlwZ19m YXRhbCgiUFFnZXRSZXN1bHQgcmV0dXJuZWQgc29tZXRoaW5nIGV4dHJhIGFmdGVyIGZpcnN0 IHJlc3VsdCIpOworCisJaWYgKFBRZXhpdFBpcGVsaW5lTW9kZShjb25uKSAhPSAwKQorCQlw Z19mYXRhbCgiZXhpdGluZyBwaXBlbGluZSBtb2RlIGFmdGVyIHF1ZXJ5IGJ1dCBiZWZvcmUg c3luYyBzdWNjZWVkZWQgaW5jb3JyZWN0bHkiKTsKKworCXJlcyA9IFBRZ2V0UmVzdWx0KGNv bm4pOworCWlmIChyZXMgPT0gTlVMTCkKKwkJcGdfZmF0YWwoIlBRZ2V0UmVzdWx0IHJldHVy bmVkIG51bGwgd2hlbiBzeW5jIHJlc3VsdCBleHBlY3RlZDogJXMiLAorCQkJCSBQUWVycm9y TWVzc2FnZShjb25uKSk7CisKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19Q SVBFTElORV9TWU5DKQorCQlwZ19mYXRhbCgiVW5leHBlY3RlZCByZXN1bHQgY29kZSAlcyBp bnN0ZWFkIG9mIHN5bmMgcmVzdWx0LCBlcnJvcjogJXMiLAorCQkJCSBQUXJlc1N0YXR1cyhQ UXJlc3VsdFN0YXR1cyhyZXMpKSwgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCVBRY2xlYXIo cmVzKTsKKworCS8qIHRoaXJkIHBpcGVsaW5lICovCisKIAlyZXMgPSBQUWdldFJlc3VsdChj b25uKTsKIAlpZiAocmVzID09IE5VTEwpCiAJCXBnX2ZhdGFsKCJQUWdldFJlc3VsdCByZXR1 cm5lZCBudWxsIHdoZW4gdGhlcmUncyBhIHBpcGVsaW5lIGl0ZW06ICVzIiwKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL211bHRpX3BpcGVs aW5lcy50cmFjZSBiL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvdHJhY2VzL211 bHRpX3BpcGVsaW5lcy50cmFjZQppbmRleCA0YjlhYjA3Y2E0Li4xZWUyMWY2MWRjIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL2xpYnBxX3BpcGVsaW5lL3RyYWNlcy9tdWx0aV9w aXBlbGluZXMudHJhY2UKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90 cmFjZXMvbXVsdGlfcGlwZWxpbmVzLnRyYWNlCkBAIC04LDYgKzgsMTcgQEAgRgkxOQlCaW5k CSAiIiAiIiAwIDEgMSAnMScgMSAwCiBGCTYJRGVzY3JpYmUJIFAgIiIKIEYJOQlFeGVjdXRl CSAiIiAwCiBGCTQJU3luYworRgkyMQlQYXJzZQkgIiIgIlNFTEVDVCAkMSIgMSBOTk5OCitG CTE5CUJpbmQJICIiICIiIDAgMSAxICcxJyAxIDAKK0YJNglEZXNjcmliZQkgUCAiIgorRgk5 CUV4ZWN1dGUJICIiIDAKK0YJNAlTeW5jCitCCTQJUGFyc2VDb21wbGV0ZQorQgk0CUJpbmRD b21wbGV0ZQorQgkzMwlSb3dEZXNjcmlwdGlvbgkgMSAiP2NvbHVtbj8iIE5OTk4gMCBOTk5O IDQgLTEgMAorQgkxMQlEYXRhUm93CSAxIDEgJzEnCitCCTEzCUNvbW1hbmRDb21wbGV0ZQkg IlNFTEVDVCAxIgorQgk1CVJlYWR5Rm9yUXVlcnkJIEkKIEIJNAlQYXJzZUNvbXBsZXRlCiBC CTQJQmluZENvbXBsZXRlCiBCCTMzCVJvd0Rlc2NyaXB0aW9uCSAxICI/Y29sdW1uPyIgTk5O TiAwIE5OTk4gNCAtMSAwCi0tIAoyLjM0LjEKCg== --------------N0QnR0cCATRgliXd7uNhQvcm--