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.96) (envelope-from ) id 1wjxOT-000OAn-1R for pgsql-hackers@arkaria.postgresql.org; Wed, 15 Jul 2026 11:03:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wjxOR-006txg-0c for pgsql-hackers@arkaria.postgresql.org; Wed, 15 Jul 2026 11:03:11 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wjxOQ-006txY-10 for pgsql-hackers@lists.postgresql.org; Wed, 15 Jul 2026 11:03:10 +0000 Received: from mail.postgrespro.ru ([93.174.132.70]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wjxOL-00000000ITv-2gG9 for pgsql-hackers@lists.postgresql.org; Wed, 15 Jul 2026 11:03:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1784113380; bh=tZE7UzcIDFQBk9qSNukUfiA5LGyfLQWuTMkVDO+Nt/w=; h=From:In-Reply-To:References:Date:Cc:To:Message-ID:Subject: User-Agent:From; b=ahvJwoqhOp29Qo3vNaW9USHs89qtWmRq9vF862kRXIzCLDM8I7XLwhcIIxRrSlAzJ XDzdZZe3RRL15lZ7PeYiCOVF6F8zlNOjOTw/DzZhT1XSqh0HJahQ1IX8wtgcx6KMpv 2+yoy5xiSOGUkTBiyBl0ZXLfcUGbIRu8BeAK6SIf0DhoRxY1GNUO4vfR/Y3BD8rNJc z/tzFEDm1Bk05OrVpFF8LVQ8IETYV6yz8PHx4vxPByVXG1tZX7XD9i5fl5sDiJG6zw nqGLQAML/jN/Csk8mNB67SVCnifWtgIRY2KZ6P++u5vCairhGPdkW04sFPJVseevAK Aprv+IODC3E3A== Received: from sogo.postgrespro.ru (sogo.l.postgrespro.ru [192.168.2.5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) by mail.postgrespro.ru (Postfix/587) with ESMTPS id 3EC5960196; Wed, 15 Jul 2026 14:03:00 +0300 (MSK) From: =?utf-8?q?=D0=91=D0=BE=D0=BD=D0=B4=D0=B0=D1=80=D1=8C_=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Content-Type: multipart/mixed; boundary="----=_=-_OpenGroupware_org_NGMime-387830-1784113380.094107-4------" In-Reply-To: <3f24365a-c440-47de-88cf-7ee7cd02c7dd@postgrespro.ru> X-Forward: 10.8.4.218, 192.168.26.65 References: <2da56b59-acb6-4ee3-af6b-6e800115dc7f@postgrespro.ru> <6e161344-d26a-4e3d-aa12-83a05a3ca8dc@postgrespro.ru> <6cf1ae29-0992-4a14-a52f-b769b560b92a@postgrespro.ru> <3f24365a-c440-47de-88cf-7ee7cd02c7dd@postgrespro.ru> Date: Wed, 15 Jul 2026 14:03:00 +0300 Cc: pgsql-hackers@lists.postgresql.org To: "Robert Haas" MIME-Version: 1.0 Message-ID: <502eb70c-658f-ae0e-780b-e9ebe7104db3@postgrespro.ru> Subject: =?utf-8?q?Re=3A?==?utf-8?q?_Pgbench=3A?= remove synchronous prepare User-Agent: SOGoMail 5.12.9 X-KSMG-AntiPhishing: NotDetected X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 3.0.0.9059, bases: 2026/07/15 08:41:00 #28460646 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ------=_=-_OpenGroupware_org_NGMime-387830-1784113380.094107-4------ Content-Type: multipart/alternative; boundary="----=_=-_OpenGroupware_org_NGMime-387830-1784113380.094036-3------" ------=_=-_OpenGroupware_org_NGMime-387830-1784113380.094036-3------ Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-Length: 329 I see that we are kind of stuck at this point. I agree that it is possi= ble to change pgbench without changing libpq, even though I am not sure= that this is better. I would like to submit another approach, which in= troduces a new state into the pgbench state machine to wait for the res= ponse to a Parse message. =C2=A0 ------=_=-_OpenGroupware_org_NGMime-387830-1784113380.094036-3------ Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-Length: 351

I see that we are kind of stuck at this point. I agree that it= is possible to change pgbench without changing libpq, even though I am= not sure that this is better. I would like to submit another approach,= which introduces a new state into the pgbench state machine to wait fo= r the response to a Parse message.
 

------=_=-_OpenGroupware_org_NGMime-387830-1784113380.094036-3-------- ------=_=-_OpenGroupware_org_NGMime-387830-1784113380.094107-4------ Content-Type: text/x-patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v4-0001-add-wait-prepare-state.patch" Content-Length: 12491 RnJvbSAwOTNlODAxYWI4YmE5NTM3MzZmZjJiOWY2YzNkYTU5MzIxMTA1Zjg0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEbWl0cmlpIEJvbmRhciA8ZC5ib25kYXJAcG9zdGdy ZXNwcm8ucnU+CkRhdGU6IFdlZCwgMTUgSnVsIDIwMjYgMTQ6Mjk6MzIgKzA3MDAKU3ViamVj dDogW1BBVENIIHY0XSBSZW1vdmUgc3luY2hyb25vdXMgcHJlcGFyZSBmcm9tIHBnYmVuY2gK ClBnYmVuY2ggd2FpdHMgZm9yIHRoZSByZXN1bHQgb2YgYSBwcmVwYXJlIHBhY2tldCBzeW5j aHJvbm91c2x5CndoZW4gdGhlIHByZXBhcmVkIHByb3RvY29sIGZsYWcgaXMgcHJvdmlkZWQu IEZvciB0aGlzIHJlYXNvbgppdCBpcyBpbXBvc3NpYmxlIHRvIHVzZSBpdCB3aXRoIHNvbWUg cG9vbGVycyAoc3VjaCBhcyBQZ0JvdW5jZXIpCmluIHRoZSBzZXNzaW9uIHBvb2xpbmcgbW9k ZS4KClJlcGxhY2UgdGhlIGJsb2NraW5nIFBRcHJlcGFyZSgpIGNhbGwgaW4gdGhlIHNpbmds ZS1jb21tYW5kIHBhdGgKd2l0aCBhbiBhc3luYyBQUXNlbmRQcmVwYXJlKCksIGFuZCBhZGQg YSBuZXcgQ1NUQVRFX1dBSVRfUFJFUEFSRV9SRVNVTFQKc3RhdGUgdG8gdGhlIGNvbm5lY3Rp b24gc3RhdGUgbWFjaGluZSB0aGF0IGRyYWlucyB0aGUgcHJlcGFyZSByZXN1bHQKd2l0aG91 dCBzdGFsbGluZyB0aGUgdGhyZWFkJ3MgZXZlbnQgbG9vcC4gQWZ0ZXIgdGhlIHByZXBhcmUg c3VjY2VlZHMsCnRoZSBwcmVwYXJlZCBmbGFnIGlzIHNldCBhbmQgdGhlIGFjdHVhbCBxdWVy eSBpcyBzZW50IHZpYQpQUXNlbmRRdWVyeVByZXBhcmVkIGFzIGJlZm9yZS4gVGhlIHBpcGVs aW5lIHBhdGgKKHByZXBhcmVDb21tYW5kc0luUGlwZWxpbmUpIGlzIGxlZnQgc3luY2hyb25v dXMgYmVjYXVzZSBwcmVwYXJlcyBtdXN0CmNvbXBsZXRlIGJlZm9yZSBQUWVudGVyUGlwZWxp bmVNb2RlIHRvIGF2b2lkIGFjcXVpcmluZyBhIHNuYXBzaG90CnRoYXQgd291bGQgYnJlYWsg QkVHSU4gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRS4KCkFsc28gZml4IGEgbGF0ZW50 IGJ1ZzogcHJlcGFyZUNvbW1hbmQgdXNlZCB0byBzZXQgdGhlIHByZXBhcmVkIGZsYWcKdG8g dHJ1ZSBldmVuIHdoZW4gdGhlIHByZXBhcmUgZmFpbGVkLCBzbyBzdWJzZXF1ZW50IGF0dGVt cHRzIHJhbgpQUXNlbmRRdWVyeVByZXBhcmVkIGFnYWluc3QgYSBub24tZXhpc3RlbnQgc3Rh dGVtZW50LiBUaGUgZmxhZyBpcwpub3cgc2V0IG9ubHkgb24gc3VjY2VzcywgYW5kIHByZXBh cmUgZmFpbHVyZXMgYXJlIHJvdXRlZCB0aHJvdWdoIHRoZQpub3JtYWwgZXJyb3IgcGF0aCAo Q1NUQVRFX0VSUk9SIGZvciByZXRyeWFibGUgZXJyb3JzLCBDU1RBVEVfQUJPUlRFRApvdGhl cndpc2UpLiBVcGRhdGUgdGhlIHNxbC1zeW50YXgtZXJyb3IgVEFQIHRlc3QgYWNjb3JkaW5n bHk6IGl0IG5vCmxvbmdlciBleHBlY3RzIHRoZSBkb3duc3RyZWFtICJwcmVwYXJlZCBzdGF0 ZW1lbnQgZG9lcyBub3QgZXhpc3QiCmVycm9yLgotLS0KIHNyYy9iaW4vcGdiZW5jaC9wZ2Jl bmNoLmMgICAgICAgICAgICAgICAgICAgIHwgMTM4ICsrKysrKysrKysrKysrKysrLS0KIHNy Yy9iaW4vcGdiZW5jaC90LzAwMV9wZ2JlbmNoX3dpdGhfc2VydmVyLnBsIHwgICAxIC0KIDIg ZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMgYi9zcmMvYmluL3BnYmVuY2gv cGdiZW5jaC5jCmluZGV4IDkwZDIyZTEyZmRiLi4yZGRmOTdlNDFmYSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYworKysgYi9zcmMvYmluL3BnYmVuY2gvcGdiZW5j aC5jCkBAIC01MzcsNiArNTM3LDExIEBAIHR5cGVkZWYgZW51bQogCSAqIENTVEFURV9XQUlU X1JFU1VMVCB3YWl0cyB1bnRpbCB3ZSBnZXQgYSByZXN1bHQgc2V0IGJhY2sgZnJvbSB0aGUg c2VydmVyCiAJICogZm9yIHRoZSBjdXJyZW50IGNvbW1hbmQuCiAJICoKKwkgKiBDU1RBVEVf V0FJVF9QUkVQQVJFX1JFU1VMVCB3YWl0cyBmb3IgdGhlIHJlc3VsdCBvZiBhbiBhc3luYyBQ UXNlbmRQcmVwYXJlCisJICogaXNzdWVkIGZyb20gQ1NUQVRFX1NUQVJUX0NPTU1BTkQgaW4g UVVFUllfUFJFUEFSRUQgbW9kZS4gIE9uY2UgdGhlIHByZXBhcmUKKwkgKiBzdWNjZWVkcywg dGhlIHByZXBhcmVkIGZsYWcgaXMgc2V0IGFuZCB3ZSBsb29wIGJhY2sgdG8gQ1NUQVRFX1NU QVJUX0NPTU1BTkQKKwkgKiB0byBzZW5kIHRoZSBhY3R1YWwgcXVlcnkuICBPbiBmYWlsdXJl IHdlIGdvIHRvIENTVEFURV9FUlJPUi4KKwkgKgogCSAqIENTVEFURV9TTEVFUCB3YWl0cyB1 bnRpbCB0aGUgZW5kIG9mIFxzbGVlcC4KIAkgKgogCSAqIENTVEFURV9FTkRfQ09NTUFORCBy ZWNvcmRzIHRoZSBlbmQtb2YtY29tbWFuZCB0aW1lc3RhbXAsIGluY3JlbWVudHMgdGhlCkBA IC01NDksNiArNTU0LDcgQEAgdHlwZWRlZiBlbnVtCiAJICovCiAJQ1NUQVRFX1NUQVJUX0NP TU1BTkQsCiAJQ1NUQVRFX1dBSVRfUkVTVUxULAorCUNTVEFURV9XQUlUX1BSRVBBUkVfUkVT VUxULAogCUNTVEFURV9TTEVFUCwKIAlDU1RBVEVfRU5EX0NPTU1BTkQsCiAJQ1NUQVRFX1NL SVBfQ09NTUFORCwKQEAgLTMxMDgsNiArMzExNCwzMCBAQCBwcmVwYXJlQ29tbWFuZChDU3Rh dGUgKnN0LCBpbnQgY29tbWFuZF9udW0pCiAJfQogfQogCisvKgorICogQXN5bmNocm9ub3Vz bHkgc3RhcnQgcHJlcGFyaW5nIHRoZSBTUUwgY29tbWFuZCBmcm9tIHN0LT51c2VfZmlsZSBh dAorICogY29tbWFuZF9udW0uICBDYWxsZXIgbXVzdCBlbnN1cmUgc3QtPnByZXBhcmVkIGlz IGFsbG9jYXRlZCBhbmQgdGhhdCB0aGUKKyAqIGNvbW1hbmQgaXMgbm90IHlldCBwcmVwYXJl ZC4gIFJldHVybnMgdHJ1ZSBpZiB0aGUgUHJlcGFyZSB3YXMgc2VudDsgdGhlCisgKiBjYWxs ZXIgbXVzdCB0aGVuIHdhaXQgZm9yIHRoZSByZXN1bHQgaW4gQ1NUQVRFX1dBSVRfUFJFUEFS RV9SRVNVTFQgYW5kIHNldAorICogdGhlIHByZXBhcmVkIGZsYWcgb25seSBhZnRlciB0aGUg cmVzdWx0IGlzIHJlYWQgc3VjY2Vzc2Z1bGx5LgorICoKKyAqIFVubGlrZSBwcmVwYXJlQ29t bWFuZCAoc3luY2hyb25vdXMsIHVzZWQgZm9yIHRoZSBwaXBlbGluZSBwYXRoKSwgdGhpcyBk b2VzCisgKiBub3Qgc2V0IHN0LT5wcmVwYXJlZFsuLi5dLgorICovCitzdGF0aWMgYm9vbAor c2VuZFByZXBhcmVDb21tYW5kKENTdGF0ZSAqc3QsIGludCBjb21tYW5kX251bSkKK3sKKwlD b21tYW5kICAgICpjb21tYW5kID0gc3FsX3NjcmlwdFtzdC0+dXNlX2ZpbGVdLmNvbW1hbmRz W2NvbW1hbmRfbnVtXTsKKworCUFzc2VydChjb21tYW5kLT50eXBlID09IFNRTF9DT01NQU5E KTsKKwlBc3NlcnQoc3QtPnByZXBhcmVkICE9IE5VTEwpOworCUFzc2VydCghc3QtPnByZXBh cmVkW3N0LT51c2VfZmlsZV1bY29tbWFuZF9udW1dKTsKKworCXBnX2xvZ19kZWJ1ZygiY2xp ZW50ICVkIHByZXBhcmluZyAlcyIsIHN0LT5pZCwgY29tbWFuZC0+cHJlcG5hbWUpOworCXJl dHVybiBQUXNlbmRQcmVwYXJlKHN0LT5jb24sIGNvbW1hbmQtPnByZXBuYW1lLAorCQkJCQkJ IGNvbW1hbmQtPmFyZ3ZbMF0sIGNvbW1hbmQtPmFyZ2MgLSAxLCBOVUxMKSAhPSAwOworfQor CiAvKgogICogUHJlcGFyZSBhbGwgdGhlIGNvbW1hbmRzIGluIHRoZSBzY3JpcHQgdGhhdCBj b21lIGFmdGVyIHRoZSBcc3RhcnRwaXBlbGluZQogICogdGhhdCdzIGF0IHBvc2l0aW9uIHN0 LT5jb21tYW5kLCBhbmQgdGhlIGZpcnN0IFxlbmRwaXBlbGluZSB3ZSBmaW5kLgpAQCAtMzE0 Nyw4ICszMTc3LDE2IEBAIHByZXBhcmVDb21tYW5kc0luUGlwZWxpbmUoQ1N0YXRlICpzdCkK IAlzdC0+cHJlcGFyZWRbc3QtPnVzZV9maWxlXVtzdC0+Y29tbWFuZF0gPSB0cnVlOwogfQog CisvKiBSZXN1bHQgb2Ygc2VuZENvbW1hbmQoKS4gKi8KK3R5cGVkZWYgZW51bQoreworCVNF TkRfRkFJTEVELAkJCQkvKiBjb3VsZCBub3Qgc2VuZCAqLworCVNFTkRfT0ssCQkJCQkvKiBz ZW50OyB3YWl0IGZvciBxdWVyeSByZXN1bHQgKi8KKwlTRU5EX1BSRVBBUkVfUEVORElORywJ CS8qIGFzeW5jIFByZXBhcmUgaXNzdWVkOyB3YWl0IGZvciBwcmVwYXJlIHJlc3VsdCAqLwor fSBTZW5kQ29tbWFuZFJlc3VsdDsKKwogLyogU2VuZCBhIFNRTCBjb21tYW5kLCB1c2luZyB0 aGUgY2hvc2VuIHF1ZXJ5bW9kZSAqLwotc3RhdGljIGJvb2wKK3N0YXRpYyBTZW5kQ29tbWFu ZFJlc3VsdAogc2VuZENvbW1hbmQoQ1N0YXRlICpzdCwgQ29tbWFuZCAqY29tbWFuZCkKIHsK IAlpbnQJCQlyOwpAQCAtMzE3OSw3ICszMjE3LDIwIEBAIHNlbmRDb21tYW5kKENTdGF0ZSAq c3QsIENvbW1hbmQgKmNvbW1hbmQpCiAJewogCQljb25zdCBjaGFyICpwYXJhbXNbTUFYX0FS R1NdOwogCi0JCXByZXBhcmVDb21tYW5kKHN0LCBzdC0+Y29tbWFuZCk7CisJCWlmICghc3Qt PnByZXBhcmVkKQorCQkJYWxsb2NDU3RhdGVQcmVwYXJlZChzdCk7CisKKwkJaWYgKCFzdC0+ cHJlcGFyZWRbc3QtPnVzZV9maWxlXVtzdC0+Y29tbWFuZF0pCisJCXsKKwkJCWlmICghc2Vu ZFByZXBhcmVDb21tYW5kKHN0LCBzdC0+Y29tbWFuZCkpCisJCQl7CisJCQkJcGdfbG9nX2Rl YnVnKCJjbGllbnQgJWQgY291bGQgbm90IHNlbmQgJXMiLAorCQkJCQkJCSBzdC0+aWQsIGNv bW1hbmQtPmFyZ3ZbMF0pOworCQkJCXJldHVybiBTRU5EX0ZBSUxFRDsKKwkJCX0KKwkJCXJl dHVybiBTRU5EX1BSRVBBUkVfUEVORElORzsKKwkJfQorCiAJCWdldFF1ZXJ5UGFyYW1zKCZz dC0+dmFyaWFibGVzLCBjb21tYW5kLCBwYXJhbXMpOwogCiAJCXBnX2xvZ19kZWJ1ZygiY2xp ZW50ICVkIHNlbmRpbmcgJXMiLCBzdC0+aWQsIGNvbW1hbmQtPnByZXBuYW1lKTsKQEAgLTMx OTIsMTAgKzMyNDMsMTAgQEAgc2VuZENvbW1hbmQoQ1N0YXRlICpzdCwgQ29tbWFuZCAqY29t bWFuZCkKIAlpZiAociA9PSAwKQogCXsKIAkJcGdfbG9nX2RlYnVnKCJjbGllbnQgJWQgY291 bGQgbm90IHNlbmQgJXMiLCBzdC0+aWQsIGNvbW1hbmQtPmFyZ3ZbMF0pOwotCQlyZXR1cm4g ZmFsc2U7CisJCXJldHVybiBTRU5EX0ZBSUxFRDsKIAl9CiAJZWxzZQotCQlyZXR1cm4gdHJ1 ZTsKKwkJcmV0dXJuIFNFTkRfT0s7CiB9CiAKIC8qCkBAIC0zODk0LDE4ICszOTQ1LDIzIEBA IGFkdmFuY2VDb25uZWN0aW9uU3RhdGUoVFN0YXRlICp0aHJlYWQsIENTdGF0ZSAqc3QsIFN0 YXRzRGF0YSAqYWdnKQogCQkJCQkJfQogCQkJCQl9CiAKLQkJCQkJaWYgKCFzZW5kQ29tbWFu ZChzdCwgY29tbWFuZCkpCisJCQkJCXN3aXRjaCAoc2VuZENvbW1hbmQoc3QsIGNvbW1hbmQp KQogCQkJCQl7Ci0JCQkJCQljb21tYW5kRmFpbGVkKHN0LCAiU1FMIiwgIlNRTCBjb21tYW5k IHNlbmQgZmFpbGVkIik7Ci0JCQkJCQlzdC0+c3RhdGUgPSBDU1RBVEVfQUJPUlRFRDsKLQkJ CQkJfQotCQkJCQllbHNlCi0JCQkJCXsKLQkJCQkJCS8qIFdhaXQgZm9yIHJlc3VsdHMsIHVu bGVzcyBpbiBwaXBlbGluZSBtb2RlICovCi0JCQkJCQlpZiAoUFFwaXBlbGluZVN0YXR1cyhz dC0+Y29uKSA9PSBQUV9QSVBFTElORV9PRkYpCi0JCQkJCQkJc3QtPnN0YXRlID0gQ1NUQVRF X1dBSVRfUkVTVUxUOwotCQkJCQkJZWxzZQotCQkJCQkJCXN0LT5zdGF0ZSA9IENTVEFURV9F TkRfQ09NTUFORDsKKwkJCQkJCWNhc2UgU0VORF9GQUlMRUQ6CisJCQkJCQkJY29tbWFuZEZh aWxlZChzdCwgIlNRTCIsICJTUUwgY29tbWFuZCBzZW5kIGZhaWxlZCIpOworCQkJCQkJCXN0 LT5zdGF0ZSA9IENTVEFURV9BQk9SVEVEOworCQkJCQkJCWJyZWFrOworCQkJCQkJY2FzZSBT RU5EX1BSRVBBUkVfUEVORElORzoKKwkJCQkJCQkvKiBXYWl0IGZvciB0aGUgYXN5bmMgUHJl cGFyZSByZXN1bHQgKi8KKwkJCQkJCQlzdC0+c3RhdGUgPSBDU1RBVEVfV0FJVF9QUkVQQVJF X1JFU1VMVDsKKwkJCQkJCQlicmVhazsKKwkJCQkJCWNhc2UgU0VORF9PSzoKKwkJCQkJCQkv KiBXYWl0IGZvciByZXN1bHRzLCB1bmxlc3MgaW4gcGlwZWxpbmUgbW9kZSAqLworCQkJCQkJ CWlmIChQUXBpcGVsaW5lU3RhdHVzKHN0LT5jb24pID09IFBRX1BJUEVMSU5FX09GRikKKwkJ CQkJCQkJc3QtPnN0YXRlID0gQ1NUQVRFX1dBSVRfUkVTVUxUOworCQkJCQkJCWVsc2UKKwkJ CQkJCQkJc3QtPnN0YXRlID0gQ1NUQVRFX0VORF9DT01NQU5EOworCQkJCQkJCWJyZWFrOwog CQkJCQl9CiAJCQkJfQogCQkJCWVsc2UgaWYgKGNvbW1hbmQtPnR5cGUgPT0gTUVUQV9DT01N QU5EKQpAQCAtMzkyNyw2ICszOTgzLDcgQEAgYWR2YW5jZUNvbm5lY3Rpb25TdGF0ZShUU3Rh dGUgKnRocmVhZCwgQ1N0YXRlICpzdCwgU3RhdHNEYXRhICphZ2cpCiAJCQkJICogc29tZXRo aW5nIGJhZCBoYXBwZW5lZC4KIAkJCQkgKi8KIAkJCQlBc3NlcnQoc3QtPnN0YXRlID09IENT VEFURV9XQUlUX1JFU1VMVCB8fAorCQkJCQkgICBzdC0+c3RhdGUgPT0gQ1NUQVRFX1dBSVRf UFJFUEFSRV9SRVNVTFQgfHwKIAkJCQkJICAgc3QtPnN0YXRlID09IENTVEFURV9FTkRfQ09N TUFORCB8fAogCQkJCQkgICBzdC0+c3RhdGUgPT0gQ1NUQVRFX1NMRUVQIHx8CiAJCQkJCSAg IHN0LT5zdGF0ZSA9PSBDU1RBVEVfQUJPUlRFRCk7CkBAIC00MDcwLDYgKzQxMjcsNTUgQEAg YWR2YW5jZUNvbm5lY3Rpb25TdGF0ZShUU3RhdGUgKnRocmVhZCwgQ1N0YXRlICpzdCwgU3Rh dHNEYXRhICphZ2cpCiAJCQkJCXN0LT5zdGF0ZSA9IENTVEFURV9BQk9SVEVEOwogCQkJCWJy ZWFrOwogCisJCQkJLyoKKwkJCQkgKiBXYWl0IGZvciB0aGUgYXN5bmMgUFFzZW5kUHJlcGFy ZSByZXN1bHQuCisJCQkJICovCisJCQljYXNlIENTVEFURV9XQUlUX1BSRVBBUkVfUkVTVUxU OgorCQkJCXsKKwkJCQkJUEdyZXN1bHQgICAqcmVzOworCisJCQkJCXBnX2xvZ19kZWJ1Zygi Y2xpZW50ICVkIHJlY2VpdmluZyBwcmVwYXJlIHJlc3VsdCIsIHN0LT5pZCk7CisKKwkJCQkJ aWYgKFBRaXNCdXN5KHN0LT5jb24pICYmICFQUWNvbnN1bWVJbnB1dChzdC0+Y29uKSkKKwkJ CQkJeworCQkJCQkJY29tbWFuZEZhaWxlZChzdCwgIlNRTCIsICJwZXJoYXBzIHRoZSBiYWNr ZW5kIGRpZWQgd2hpbGUgcHJlcGFyaW5nIik7CisJCQkJCQlzdC0+c3RhdGUgPSBDU1RBVEVf QUJPUlRFRDsKKwkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJCWlmIChQUWlzQnVzeShzdC0+ Y29uKSkKKwkJCQkJCXJldHVybjsJCS8qIGRvbid0IGhhdmUgdGhlIHdob2xlIHJlc3VsdCB5 ZXQgKi8KKworCQkJCQlyZXMgPSBQUWdldFJlc3VsdChzdC0+Y29uKTsKKwkJCQkJaWYgKFBR cmVzdWx0U3RhdHVzKHJlcykgPT0gUEdSRVNfQ09NTUFORF9PSykKKwkJCQkJeworCQkJCQkJ UFFjbGVhcihyZXMpOworCQkJCQkJLyogbnVsbCB0ZXJtaW5hdG9yIGV4cGVjdGVkIGFmdGVy IGEgc2luZ2xlIHJlc3VsdCAqLworCQkJCQkJcmVzID0gUFFnZXRSZXN1bHQoc3QtPmNvbik7 CisJCQkJCQlBc3NlcnQocmVzID09IE5VTEwpOworCisJCQkJCQlzdC0+cHJlcGFyZWRbc3Qt PnVzZV9maWxlXVtzdC0+Y29tbWFuZF0gPSB0cnVlOworCQkJCQkJLyogUmUtZW50ZXIgU1RB UlRfQ09NTUFORCB0byBzZW5kIHRoZSBhY3R1YWwgcXVlcnkgKi8KKwkJCQkJCXN0LT5zdGF0 ZSA9IENTVEFURV9TVEFSVF9DT01NQU5EOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJewor CQkJCQkJY29uc3QgY2hhciAqc3Fsc3RhdGUgPSBQUXJlc3VsdEVycm9yRmllbGQocmVzLAor CQkJCQkJCQkJCQkJCQkJCSBQR19ESUFHX1NRTFNUQVRFKTsKKwkJCQkJCXN0LT5lc3RhdHVz ID0gZ2V0U1FMRXJyb3JTdGF0dXMoc3QsIHNxbHN0YXRlKTsKKwkJCQkJCXBnX2xvZ19lcnJv cigiJXMiLCBQUWVycm9yTWVzc2FnZShzdC0+Y29uKSk7CisJCQkJCQlQUWNsZWFyKHJlcyk7 CisJCQkJCQkvKiBkcmFpbiBhbnl0aGluZyBlbHNlIHBlbmRpbmcgb24gdGhpcyBjb21tYW5k ICovCisJCQkJCQl3aGlsZSAoKHJlcyA9IFBRZ2V0UmVzdWx0KHN0LT5jb24pKSAhPSBOVUxM KQorCQkJCQkJCVBRY2xlYXIocmVzKTsKKwkJCQkJCWlmIChjYW5SZXRyeUVycm9yKHN0LT5l c3RhdHVzKSB8fAorCQkJCQkJCWNhbkNvbnRpbnVlT25FcnJvcihzdC0+ZXN0YXR1cykpCisJ CQkJCQkJc3QtPnN0YXRlID0gQ1NUQVRFX0VSUk9SOworCQkJCQkJZWxzZQorCQkJCQkJCXN0 LT5zdGF0ZSA9IENTVEFURV9BQk9SVEVEOworCQkJCQl9CisJCQkJCWJyZWFrOworCQkJCX0K KwogCQkJCS8qCiAJCQkJICogV2FpdCB1bnRpbCBzbGVlcCBpcyBkb25lLiBUaGlzIHN0YXRl IGlzIGVudGVyZWQgYWZ0ZXIgYQogCQkJCSAqIFxzbGVlcCBtZXRhY29tbWFuZC4gVGhlIGJl aGF2aW9yIGlzIHNpbWlsYXIgdG8KQEAgLTc2MzEsNiArNzczNyw3IEBAIHRocmVhZFJ1bih2 b2lkICphcmcpCiAJCQkJCW1pbl91c2VjID0gdGhpc191c2VjOwogCQkJfQogCQkJZWxzZSBp ZiAoc3QtPnN0YXRlID09IENTVEFURV9XQUlUX1JFU1VMVCB8fAorCQkJCQkgc3QtPnN0YXRl ID09IENTVEFURV9XQUlUX1BSRVBBUkVfUkVTVUxUIHx8CiAJCQkJCSBzdC0+c3RhdGUgPT0g Q1NUQVRFX1dBSVRfUk9MTEJBQ0tfUkVTVUxUKQogCQkJewogCQkJCS8qCkBAIC03NzIxLDYg Kzc4MjgsNyBAQCB0aHJlYWRSdW4odm9pZCAqYXJnKQogCQkJQ1N0YXRlCSAgICpzdCA9ICZz dGF0ZVtpXTsKIAogCQkJaWYgKHN0LT5zdGF0ZSA9PSBDU1RBVEVfV0FJVF9SRVNVTFQgfHwK KwkJCQlzdC0+c3RhdGUgPT0gQ1NUQVRFX1dBSVRfUFJFUEFSRV9SRVNVTFQgfHwKIAkJCQlz dC0+c3RhdGUgPT0gQ1NUQVRFX1dBSVRfUk9MTEJBQ0tfUkVTVUxUKQogCQkJewogCQkJCS8q IGRvbid0IGNhbGwgYWR2YW5jZUNvbm5lY3Rpb25TdGF0ZSB1bmxlc3MgZGF0YSBpcyBhdmFp bGFibGUgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdiZW5jaC90LzAwMV9wZ2JlbmNoX3dp dGhfc2VydmVyLnBsIGIvc3JjL2Jpbi9wZ2JlbmNoL3QvMDAxX3BnYmVuY2hfd2l0aF9zZXJ2 ZXIucGwKaW5kZXggYmIxMmFkZTU5ZjUuLjUzMDZjOGMxYWJjIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnYmVuY2gvdC8wMDFfcGdiZW5jaF93aXRoX3NlcnZlci5wbAorKysgYi9zcmMvYmlu L3BnYmVuY2gvdC8wMDFfcGdiZW5jaF93aXRoX3NlcnZlci5wbApAQCAtMTIzMSw3ICsxMjMx LDYgQEAgbXkgQGVycm9ycyA9ICgKIAkJMiwKIAkJWwogCQkJcXJ7RVJST1I6ICBzeW50YXgg ZXJyb3J9LAotCQkJcXJ7cHJlcGFyZWQgc3RhdGVtZW50IC4qIGRvZXMgbm90IGV4aXN0fQog CQldLAogCQlxey0tIFNRTCBzeW50YXggZXJyb3IKICAgICBTRUxFQ1QgMSArIDsKLS0gCjIu NTQuMAoK ------=_=-_OpenGroupware_org_NGMime-387830-1784113380.094107-4--------