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 1rXoIR-00Cm4n-FH for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Feb 2024 20:13:28 +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 1rXoIQ-00D9ko-8j for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Feb 2024 20:13:26 +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.94.2) (envelope-from ) id 1rXoIP-00D9kg-NG for pgsql-hackers@lists.postgresql.org; Wed, 07 Feb 2024 20:13:25 +0000 Received: from mail-roabra01olkn20800.outbound.protection.outlook.com ([2a01:111:f403:2c1e::800] helo=BRA01-ROA-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rXoIM-005b0Y-3l for pgsql-hackers@postgresql.org; Wed, 07 Feb 2024 20:13:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n4q8QohQu/teav1QGMXbhA+UqLgJ3farwKBswv4F+NwN+RXhc3CRMc6TcZXrC7jslBbS4PC80R2Fe3B8z/orDwbjfqW2VwUfYkOCreq2zVmAGNgKNRIH2DItTsKg39I4v3tenWIqRimXTkbzewSXHKIwzbKl7vZCRjj3oyUW/H3HgBPxYazcMYPLr0P7XPKu9Jn9xsrlmFc/RagGhxRPxhRGAZc3JHPpBfN/8+gzqv2HT+nGDtWWPyZ7gTyxDXgWMT0L7paM7E5ZRVFx3/1AOs3Xn3iXuJuQqSTkUEZeTYirQtlvOQBJGBDNIO6xDXP7dSxuoWgXDvnAWifbJxLxRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tx5qZ0hj4YHcws7BSN24tmLlW5zFAVQ8CWizMq2fPwk=; b=ZWfSEpTMTz+JZQADKbhix0TSX9fVK4pAKyITO9XcKpYgMbnJ82a4l7pCDccq/GqChk6SJcanwbUMxnJjRCtvqriMfPlL1905ODf4EQbBmA3biMRM5Ut1RxtV1lYcad0GQ+eyWMgK+FCFPponYfxszgKBE36XSJfj4P4WF6AwbqebK63g0BmnnG1+0UFkDON5wSfxHfkMoaRqvUqcxJvUVNWzJ/nZdbWWLEFf6TyI0QVYI9xzOo+kzG+pu7yOMFwf4u/EvxE5WDPBFFLutub0bhyVUf+nzgVfSSeaKdYH1xpEYjONuwUzIPTvYJmFAZjX4yJyv2u6rEFW4uUX7Uty7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from CP4P284MB2483.BRAP284.PROD.OUTLOOK.COM (2603:10d6:103:2a8::8) by ROAP284MB2100.BRAP284.PROD.OUTLOOK.COM (2603:10d6:10:df::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.38; Wed, 7 Feb 2024 20:13:16 +0000 Received: from CP4P284MB2483.BRAP284.PROD.OUTLOOK.COM ([fe80::115e:4dba:983c:f36d]) by CP4P284MB2483.BRAP284.PROD.OUTLOOK.COM ([fe80::115e:4dba:983c:f36d%3]) with mapi id 15.20.7249.038; Wed, 7 Feb 2024 20:13:15 +0000 From: Maiquel Grassi To: Pavel Luzanov , Nathan Bossart CC: Erik Wienhold , "pgsql-hackers@postgresql.org" Subject: RE: Psql meta-command conninfo+ Thread-Topic: Psql meta-command conninfo+ Thread-Index: AQHaWRQuU7L2MD2CX0quiO/hLxQK8bD9n9eAgAAOagCAABlrgoAABsOAgAABrYCAAAkRMoAAAaIAgABfmwKAAJe3AIAAHVoLgAAnEwCAADA+Ow== Date: Wed, 7 Feb 2024 20:13:15 +0000 Message-ID: References: <20240206181919.GA3853632@nathanxps13> <20240206210605.GA3903769@nathanxps13> <20240206211205.GA3903996@nathanxps13> <20240206215022.GA3452@nathanxps13> <852cabef-f596-4826-9a54-d3f75d9a6cc8@postgrespro.ru> In-Reply-To: Accept-Language: pt-BR, en-US Content-Language: pt-BR X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [om1AVQqGmFKJhZ9L/7lZCeHW7qg9THwO] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CP4P284MB2483:EE_|ROAP284MB2100:EE_ x-ms-office365-filtering-correlation-id: 56cbf9d8-1f16-4e2f-fc04-08dc2819380c x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: eHw2A4ZRwrZEe+hVRzH6fSLgiT4kwY9z46qsuw909isYMnBe4G/mXK8xzJkfpuTCrb4QLbXOxW+Feq2jGDud6fue9P59L03yRdRalFh5cETpJ1K8/va7s4VbQ0fL6pEzdOHqYt0Vx31cweRSvlyH6Tf5madiXZK1d+fkP0T+K9U5Yc1IIPWg1AM2c6bLwnEcd3yrvdLMQkVj6vjDEh+Z+Evy3Owx2a7ZwML7qINwdVY6jInJKkCo4r368+lOTvC8HDVmPAYtrSDozFldxib1vC9ruwAmHrflJsp8eGaB1D/vnVLtMTXFBpkARlSREjPRpfJgO1iorzi0w4Jse0jcoPlkWhIkcTESVHdIGyyfPRbRrnkvZ5mlIQOBNuF5Np9M3ka7vc84eigGBBnlYaEoAW92c/wHe+mWHM5Fbb1rHghc37FvWPkX2fYI7HBCabz1PD5WKyGGPUjq4vrYInsM1On32FxNRNv1yWpg6wQ5867rtcO6XeBs20ij/VeJ6+YFMSITHcR3krxHvc+eWX04UfHddI8oNKOnPWTg9sLEi5ClcPBOnczBA+56ezFB9jLsFMXD9XIYX0Pah7Mh9WonN0zkcTUr4iQm4F3IVMaPI8eE8gWwOXLPWYGEI8CfYUbD x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?D7DrzHfAXxFyGiGK++gw14MjPjbeq6wN/pznp1QEQgFpVDy3KuY4bt1+y3?= =?iso-8859-1?Q?csZ6idsdT9TBonhPMrS1q7ENOJUbfLwf2WhLmWgl3Ec9Uelb6e8pqZOL04?= =?iso-8859-1?Q?4Kp8tKHlYWyMlWdF3eSwz90RvVhxBXZR4wVD9j9RhFOzrnqMmkmYchh+s5?= =?iso-8859-1?Q?wWeyj0bSWfnjapScbNhbRl6RnH/9HsbipVbqrZrrfEdWbWnyHjqwaIAqGn?= =?iso-8859-1?Q?T0RMs1kyRC4trJ+v2qxV4SwfQFOK1QL0VBQieepZ7vhdsgbsT/+xfoqGiP?= =?iso-8859-1?Q?u6rputffyRItJyUujdjeVazwMKHGll60kTamJg+reP34g1D+CW+VZOC0Ji?= =?iso-8859-1?Q?jR00oW2y7qIQCMTgpvXyAFpt8d5Q2Z6vB9K3lg/hb1IWYsgPM+TM7XkSD+?= =?iso-8859-1?Q?wFdk9qAvKgrBlMJW0A6Qun2PsNtWsldxaBiO4c04SMTe+KPDNt1HoyqA5m?= =?iso-8859-1?Q?tkOjpk9IZlUy/1BvtoxfhoUANTnHEaJ4RSIuKI38kNBaY0h5Gd2KGh20n+?= =?iso-8859-1?Q?4R1HlE0x4cKMybryNrSlU3TXq4eVr8Twa/TZRT43OlZM86urtv1A+v5rP8?= =?iso-8859-1?Q?bxfy4460RyEbZMC1HGL19/JKq8xmSwUapcBzH1bmKo4zOv6qQllTyCN2S6?= =?iso-8859-1?Q?ZavsTcX/Cv6A0s8aANoGn+vPGodTnzdY40lxj2wvr6tkXWMSz3kXjRDMi8?= =?iso-8859-1?Q?osIJ8seZhly9mTW5xOKCI+1JYGmbJIw47IEdfKi9q5EI4uLqkvUcJO6cQT?= =?iso-8859-1?Q?6NLtVGykMcBFft49vRUKNBMDAvnpVHDtaiIcK+e4+d3DUNTTSvmLDhILxv?= =?iso-8859-1?Q?nDLzP+kKZ+/ih7OUYYH5pEjAfFTg7NwHZ9CZXkqJ0aHuRegaqVhXYa1ElM?= =?iso-8859-1?Q?Y5FX6rzOuw2dFRKqsvaQdokY4cbKkQE60LfLNsbk/mEbZcdsRyf7VZSU7a?= =?iso-8859-1?Q?wtBFJUScmGoPm+7a2svDxzGBJ/NI2HMydGMM4r8suwXkauTP87VqsFAmIs?= =?iso-8859-1?Q?Fo9g/TIlDe9PLlBImJWvVT1WKyykioPipMaRTJmDFR84Y79g0ZExSgdSPF?= =?iso-8859-1?Q?jb9Z283BC9TaS5+1Fxc8GIkCEs4AzGcBTrgIw6Dji+b93eGUUxmmlIDT9/?= =?iso-8859-1?Q?r4WeVnzCr2jsHlZhWSc7iGIxho05JTVbMtz9wRiLNsJJX+wsHU/rhdUUrF?= =?iso-8859-1?Q?H+ui8CJqZYFJtASQN3PNFn62kbTpX1kcUIpS0MtyBhxI+pci/gpXvnt1dd?= =?iso-8859-1?Q?VZWXMKMndCCOClcirjiw=3D=3D?= Content-Type: multipart/mixed; boundary="_004_CP4P284MB24830F5BF17FFA7F3D733142EC452CP4P284MB2483BRAP_" MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-0f7b9.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CP4P284MB2483.BRAP284.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 56cbf9d8-1f16-4e2f-fc04-08dc2819380c X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Feb 2024 20:13:15.9001 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: ROAP284MB2100 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_CP4P284MB24830F5BF17FFA7F3D733142EC452CP4P284MB2483BRAP_ Content-Type: multipart/alternative; boundary="_000_CP4P284MB24830F5BF17FFA7F3D733142EC452CP4P284MB2483BRAP_" --_000_CP4P284MB24830F5BF17FFA7F3D733142EC452CP4P284MB2483BRAP_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable > Hi, Maiquel! > > On 07.02.2024 17:47, Maiquel Grassi wrote: > "Also, it seems that the verbose parameter in the listConnectionInformati= on is unnecessary." > Could you point out exactly the line or code snippet you are referring to= ? > +bool > +listConnectionInformation(const char *pattern, bool verbose) > > I mean that parameter verbose is not used in the function body and listCo= nnectionInformation called only in verbose mode. --//-- There really was no need for the bool verbose. Therefore, it was removed. Regarding the "system_user" function, as it is relatively new, I added the necessary handling to avoid conflicts with versions lower than version = 16. I believe in v7 patch we have a quite substantial meta-command feature. I validated the "System User" column for three versions. This way, we have = a sample: [postgres@localhost bin]$ ./psql -h 192.168.0.5 -p 5432 -U postgres -d post= gres psql (17devel, server 14.3) Type "help" for help. postgres=3D# \conninfo You are connected to database "postgres" as user "postgres" on host "192.16= 8.0.5" at port "5432". postgres=3D# \conninfo+ = Current Connection Information Database | Authenticated User | Current User | Session User | Session PID = | Server Version | Server Address | Server Port | Client Address | Client P= ort | Socket Directory | Host ----------+--------------------+--------------+--------------+-------------= +----------------+----------------+-------------+----------------+---------= ----+------------------+------------- postgres | postgres | postgres | postgres | 9008 = | 14.3 | 192.168.0.5 | 5432 | 192.168.0.5 | 63= 631 | | 192.168.0.5 (1 row) postgres=3D# \q [postgres@localhost bin]$ ./psql -h 192.168.0.5 -p 5433 -U postgres -d post= gres psql (17devel, server 16.1) Type "help" for help. postgres=3D# \conninfo You are connected to database "postgres" as user "postgres" on host "192.16= 8.0.5" at port "5433". postgres=3D# \conninfo+ = Current Connection Information Database | Authenticated User | System User | Current User | Session User = | Session PID | Server Version | Server Address | Server Port | Client Addr= ess | Client Port | Socket Directory | Host ----------+--------------------+-------------+--------------+--------------= +-------------+----------------+----------------+-------------+------------= ----+-------------+------------------+------------- postgres | postgres | | postgres | postgres = | 3348 | 16.1 | 192.168.0.5 | 5433 | 192.168.0.5= | 63633 | | 192.168.0.5 (1 row) postgres=3D# \q [postgres@localhost bin]$ ./psql -h localhost psql (17devel) Type "help" for help. postgres=3D# \conninfo You are connected to database "postgres" as user "postgres" on host "localh= ost" (address "::1") at port "5432". postgres=3D# \conninfo+ = Current Connection Information Database | Authenticated User | System User | Current User | Session User = | Session PID | Server Version | Server Address | Server Port | Client Addr= ess | Client Port | Socket Directory | Host ----------+--------------------+-------------+--------------+--------------= +-------------+----------------+----------------+-------------+------------= ----+-------------+------------------+----------- postgres | postgres | | postgres | postgres = | 26147 | 17devel | ::1 | 5432 | ::1 = | 47466 | /tmp | localhost (1 row) Regards, Maiquel O. Grassi. --_000_CP4P284MB24830F5BF17FFA7F3D733142EC452CP4P284MB2483BRAP_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
> Hi, Maiquel!
>&nbs= p;
>&nbs= p;On 07.02.2024 17:47, Maiquel Grassi wrote:
> "Also, it seems that the verbose paramet= er in the listConnectionInformation is unnecessary."=0A= > Could you point out exactly the line or code snippet you are referring= to?
>= ; +bool=0A= > +listConnectionInformation(const char *pattern, bool verbose)= =0A= > =0A= > I mean that parameter verbose is not used in the function body and lis= tConnectionInformation called only in verbose mode.=0A=

--//--

Th= ere really was no need for the bool verbose. Therefore, it was removed.
= Regarding the "system_user" function, as it is relatively new, I = added
the necessary handling to avoid conflicts with versions lower than= version 16.

I believe in v7 patch we have a quite substantial meta-= command feature.

I validated the "System User" column for = three versions. This way, we have a sample:

[postgres@localhost bin]= $ ./psql -h 192.168.0.5 -p 5432 -U postgres -d postgres

psql (17devel, server 14.3)
Type "hel= p" for help.

You are connected to da= tabase "postgres" as user "postgres" on host "192.= 168.0.5" at port "5432".
postgres= =3D# \conninfo+
  =                      = ;                     &nb= sp;                     &= nbsp;           Current Connection Information
 Database | Authenticated User | Current User = | Session User | Session PID | Server Version | Server Address | Server Por= t | Client Address | Client Port | Socket Directory |    Host
----------+--------------------+--------------+----= ----------+-------------+----------------+----------------+-------------+--= --------------+-------------+------------------+-------------
<= div style=3D"white-space: normal;"> postgres | postgres           = | postgres     | postgres     |       &n= bsp;9008 | 14.3           | 192.168.0.5   &nb= sp;| 5432        | 192.168.0.5    |   &n= bsp;   63631 |                =  | 192.168.0.5
(1 row)

postgres=3D# \q
[postgres@localhost bin]$ ./psql -h 192.168.0.5 -p 5433 -U postgres= -d postgres
psql (17devel, server 16.1)<= /div>
Type "help" for help.

postgres=3D# \conninfo
You are connected to database "postgres" as user &quo= t;postgres" on host "192.168.0.5" at port "5433".<= /span>
postgres=3D# \conninfo+
                    =                      = ;                     &nb= sp;                     &= nbsp;Current Connection Information
 Databa= se | Authenticated User | System User | Current User | Session User | Sessi= on PID | Server Version | Server Address | Server Port | Client Address | C= lient Port | Socket Directory |    Host
 postgres | postgres           |  =           | postgres     | postgres &nb= sp;   |        3348 | 16.1       &n= bsp;   | 192.168.0.5    | 5433        | = 192.168.0.5    |       63633 |      = ;            | 192.168.0.5
(1 row)

postgres=3D# \q
[postgres@localhost bin]$ ./psq= l -h localhost
psql (17= devel)
Type "help" for help.

postgres=3D# \conninfo
You are connected to database "postgres"= as user "postgres" on host "localhost" (address "= ::1") at port "5432".
postgres=3D= # \conninfo+
          =                      = ;                     &nb= sp;                     &= nbsp;         Current Connection Information
 Database | Authenticated User | System User | Curren= t User | Session User | Session PID | Server Version | Server Address | Ser= ver Port | Client Address | Client Port | Socket Directory |   Host
----------+--------------------+-------------+----= ----------+--------------+-------------+----------------+----------------+-= ------------+----------------+-------------+------------------+-----------<= /span>
 postgres | postgres       &= nbsp;   |             | postgres   =   | postgres     |       26147 | 17devel &nbs= p;      | ::1            | 543= 2        | ::1            = ;|       47466 | /tmp           &nb= sp; | localhost
(1 row)=

Regards,
Maiquel O. Grassi.
--_000_CP4P284MB24830F5BF17FFA7F3D733142EC452CP4P284MB2483BRAP_-- --_004_CP4P284MB24830F5BF17FFA7F3D733142EC452CP4P284MB2483BRAP_ Content-Type: application/octet-stream; name="v7-0001-psql-meta-command-conninfo-plus.patch" Content-Description: v7-0001-psql-meta-command-conninfo-plus.patch Content-Disposition: attachment; filename="v7-0001-psql-meta-command-conninfo-plus.patch"; size=8292; creation-date="Wed, 07 Feb 2024 20:00:52 GMT"; modification-date="Wed, 07 Feb 2024 20:02:16 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFu ZC5jCmluZGV4IDVjOTA2ZTQuLmJmOTNjYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21t YW5kLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpAQCAtNjgsNyArNjgsOCBAQCBzdGF0 aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNfY29tbWFuZF9DKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0 ZSwgYm9vbCBhY3RpdmVfYnJhbgogc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVjX2NvbW1hbmRf Y29ubmVjdChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCk7CiBz dGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNfY29tbWFuZF9jZChQc3FsU2NhblN0YXRlIHNjYW5f c3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwKIAkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmNtZCk7 Ci1zdGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNfY29tbWFuZF9jb25uaW5mbyhQc3FsU2NhblN0 YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCk7CitzdGF0aWMgYmFja3NsYXNoUmVz dWx0IGV4ZWNfY29tbWFuZF9jb25uaW5mbyhQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wg YWN0aXZlX2JyYW5jaCwKKwkJCQkJCQkJCQkJIGNvbnN0IGNoYXIgKmNtZCk7CiBzdGF0aWMgYmFj a3NsYXNoUmVzdWx0IGV4ZWNfY29tbWFuZF9jb3B5KFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwg Ym9vbCBhY3RpdmVfYnJhbmNoKTsKIHN0YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19jb21tYW5k X2NvcHlyaWdodChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCk7 CiBzdGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNfY29tbWFuZF9jcm9zc3RhYnZpZXcoUHNxbFNj YW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gpOwpAQCAtMzE3LDggKzMxOCw4 IEBAIGV4ZWNfY29tbWFuZChjb25zdCBjaGFyICpjbWQsCiAJCXN0YXR1cyA9IGV4ZWNfY29tbWFu ZF9jb25uZWN0KHNjYW5fc3RhdGUsIGFjdGl2ZV9icmFuY2gpOwogCWVsc2UgaWYgKHN0cmNtcChj bWQsICJjZCIpID09IDApCiAJCXN0YXR1cyA9IGV4ZWNfY29tbWFuZF9jZChzY2FuX3N0YXRlLCBh Y3RpdmVfYnJhbmNoLCBjbWQpOwotCWVsc2UgaWYgKHN0cmNtcChjbWQsICJjb25uaW5mbyIpID09 IDApCi0JCXN0YXR1cyA9IGV4ZWNfY29tbWFuZF9jb25uaW5mbyhzY2FuX3N0YXRlLCBhY3RpdmVf YnJhbmNoKTsKKwllbHNlIGlmIChzdHJjbXAoY21kLCAiY29ubmluZm8iKSA9PSAwIHx8IHN0cmNt cChjbWQsICJjb25uaW5mbysiKSA9PSAwKQorCQlzdGF0dXMgPSBleGVjX2NvbW1hbmRfY29ubmlu Zm8oc2Nhbl9zdGF0ZSwgYWN0aXZlX2JyYW5jaCwgY21kKTsKIAllbHNlIGlmIChwZ19zdHJjYXNl Y21wKGNtZCwgImNvcHkiKSA9PSAwKQogCQlzdGF0dXMgPSBleGVjX2NvbW1hbmRfY29weShzY2Fu X3N0YXRlLCBhY3RpdmVfYnJhbmNoKTsKIAllbHNlIGlmIChzdHJjbXAoY21kLCAiY29weXJpZ2h0 IikgPT0gMCkKQEAgLTY0Myw0NyArNjQ0LDc0IEBAIGV4ZWNfY29tbWFuZF9jZChQc3FsU2NhblN0 YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQogfQog CiAvKgotICogXGNvbm5pbmZvIC0tIGRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJl bnQgY29ubmVjdGlvbgorICogXGNvbm5pbmZvLCBcY29ubmluZm8rIC0tIGRpc3BsYXkgaW5mb3Jt YXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgY29ubmVjdGlvbgogICovCiBzdGF0aWMgYmFja3NsYXNo UmVzdWx0Ci1leGVjX2NvbW1hbmRfY29ubmluZm8oUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBi b29sIGFjdGl2ZV9icmFuY2gpCitleGVjX2NvbW1hbmRfY29ubmluZm8oUHNxbFNjYW5TdGF0ZSBz Y2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkKIHsKKwlib29s CQlzdWNjZXNzID0gdHJ1ZTsKKwogCWlmIChhY3RpdmVfYnJhbmNoKQogCXsKIAkJY2hhcgkgICAq ZGIgPSBQUWRiKHBzZXQuZGIpOworCQljaGFyCSAgICpwYXR0ZXJuOworCQlib29sCQlzaG93X3Zl cmJvc2U7CiAKLQkJaWYgKGRiID09IE5VTEwpCi0JCQlwcmludGYoXygiWW91IGFyZSBjdXJyZW50 bHkgbm90IGNvbm5lY3RlZCB0byBhIGRhdGFiYXNlLlxuIikpOwotCQllbHNlCisJCXBhdHRlcm4g PSBwc3FsX3NjYW5fc2xhc2hfb3B0aW9uKHNjYW5fc3RhdGUsIE9UX05PUk1BTCwgTlVMTCwgdHJ1 ZSk7CisKKwkJc2hvd192ZXJib3NlID0gc3RyY2hyKGNtZCwgJysnKSA/IHRydWUgOiBmYWxzZTsK KworCQkvKgorCQkgKiBcY29ubmluZm8rCisJCSAqLworCQlpZiAoc2hvd192ZXJib3NlKQogCQl7 Ci0JCQljaGFyCSAgICpob3N0ID0gUFFob3N0KHBzZXQuZGIpOwotCQkJY2hhcgkgICAqaG9zdGFk ZHIgPSBQUWhvc3RhZGRyKHBzZXQuZGIpOworCQkJc3VjY2VzcyA9IGxpc3RDb25uZWN0aW9uSW5m b3JtYXRpb24ocGF0dGVybik7CisJCQlmcmVlKHBhdHRlcm4pOworCQkJcHJpbnRTU0xJbmZvKCk7 CisJCQlwcmludEdTU0luZm8oKTsKKwkJfQogCi0JCQlpZiAoaXNfdW5peHNvY2tfcGF0aChob3N0 KSkKLQkJCXsKLQkJCQkvKiBob3N0YWRkciBvdmVycmlkZXMgaG9zdCAqLwotCQkJCWlmIChob3N0 YWRkciAmJiAqaG9zdGFkZHIpCi0JCQkJCXByaW50ZihfKCJZb3UgYXJlIGNvbm5lY3RlZCB0byBk YXRhYmFzZSBcIiVzXCIgYXMgdXNlciBcIiVzXCIgb24gYWRkcmVzcyBcIiVzXCIgYXQgcG9ydCBc IiVzXCIuXG4iKSwKLQkJCQkJCSAgIGRiLCBQUXVzZXIocHNldC5kYiksIGhvc3RhZGRyLCBQUXBv cnQocHNldC5kYikpOwotCQkJCWVsc2UKLQkJCQkJcHJpbnRmKF8oIllvdSBhcmUgY29ubmVjdGVk IHRvIGRhdGFiYXNlIFwiJXNcIiBhcyB1c2VyIFwiJXNcIiB2aWEgc29ja2V0IGluIFwiJXNcIiBh dCBwb3J0IFwiJXNcIi5cbiIpLAotCQkJCQkJICAgZGIsIFBRdXNlcihwc2V0LmRiKSwgaG9zdCwg UFFwb3J0KHBzZXQuZGIpKTsKLQkJCX0KKwkJLyoKKwkJICogXGNvbm5pbmZvCisJCSAqLworCQll bHNlCisJCXsKKwkJCWlmIChkYiA9PSBOVUxMKQorCQkJCXByaW50ZihfKCJZb3UgYXJlIGN1cnJl bnRseSBub3QgY29ubmVjdGVkIHRvIGEgZGF0YWJhc2UuXG4iKSk7CiAJCQllbHNlCiAJCQl7Ci0J CQkJaWYgKGhvc3RhZGRyICYmICpob3N0YWRkciAmJiBzdHJjbXAoaG9zdCwgaG9zdGFkZHIpICE9 IDApCi0JCQkJCXByaW50ZihfKCJZb3UgYXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBcIiVzXCIg YXMgdXNlciBcIiVzXCIgb24gaG9zdCBcIiVzXCIgKGFkZHJlc3MgXCIlc1wiKSBhdCBwb3J0IFwi JXNcIi5cbiIpLAotCQkJCQkJICAgZGIsIFBRdXNlcihwc2V0LmRiKSwgaG9zdCwgaG9zdGFkZHIs IFBRcG9ydChwc2V0LmRiKSk7CisJCQkJY2hhcgkgICAqaG9zdCA9IFBRaG9zdChwc2V0LmRiKTsK KwkJCQljaGFyCSAgICpob3N0YWRkciA9IFBRaG9zdGFkZHIocHNldC5kYik7CisKKwkJCQlpZiAo aXNfdW5peHNvY2tfcGF0aChob3N0KSkKKwkJCQl7CisJCQkJCS8qIGhvc3RhZGRyIG92ZXJyaWRl cyBob3N0ICovCisJCQkJCWlmIChob3N0YWRkciAmJiAqaG9zdGFkZHIpCisJCQkJCQlwcmludGYo XygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIgXCIlc1wiIG9u IGFkZHJlc3MgXCIlc1wiIGF0IHBvcnQgXCIlc1wiLlxuIiksCisJCQkJCQkJICAgZGIsIFBRdXNl cihwc2V0LmRiKSwgaG9zdGFkZHIsIFBRcG9ydChwc2V0LmRiKSk7CisJCQkJCWVsc2UKKwkJCQkJ CXByaW50ZihfKCJZb3UgYXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMgdXNlciBc IiVzXCIgdmlhIHNvY2tldCBpbiBcIiVzXCIgYXQgcG9ydCBcIiVzXCIuXG4iKSwKKwkJCQkJCQkg ICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0LCBQUXBvcnQocHNldC5kYikpOworCQkJCX0KIAkJ CQllbHNlCi0JCQkJCXByaW50ZihfKCJZb3UgYXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBcIiVz XCIgYXMgdXNlciBcIiVzXCIgb24gaG9zdCBcIiVzXCIgYXQgcG9ydCBcIiVzXCIuXG4iKSwKLQkJ CQkJCSAgIGRiLCBQUXVzZXIocHNldC5kYiksIGhvc3QsIFBRcG9ydChwc2V0LmRiKSk7CisJCQkJ eworCQkJCQlpZiAoaG9zdGFkZHIgJiYgKmhvc3RhZGRyICYmIHN0cmNtcChob3N0LCBob3N0YWRk cikgIT0gMCkKKwkJCQkJCXByaW50ZihfKCJZb3UgYXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBc IiVzXCIgYXMgdXNlciBcIiVzXCIgb24gaG9zdCBcIiVzXCIgKGFkZHJlc3MgXCIlc1wiKSBhdCBw b3J0IFwiJXNcIi5cbiIpLAorCQkJCQkJCSAgIGRiLCBQUXVzZXIocHNldC5kYiksIGhvc3QsIGhv c3RhZGRyLCBQUXBvcnQocHNldC5kYikpOworCQkJCQllbHNlCisJCQkJCQlwcmludGYoXygiWW91 IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIgXCIlc1wiIG9uIGhvc3Qg XCIlc1wiIGF0IHBvcnQgXCIlc1wiLlxuIiksCisJCQkJCQkJICAgZGIsIFBRdXNlcihwc2V0LmRi KSwgaG9zdCwgUFFwb3J0KHBzZXQuZGIpKTsKKwkJCQl9CisJCQkJcHJpbnRTU0xJbmZvKCk7CisJ CQkJcHJpbnRHU1NJbmZvKCk7CiAJCQl9Ci0JCQlwcmludFNTTEluZm8oKTsKLQkJCXByaW50R1NT SW5mbygpOwogCQl9CiAJfQorCWVsc2UKKwkJaWdub3JlX3NsYXNoX29wdGlvbnMoc2Nhbl9zdGF0 ZSk7CiAKLQlyZXR1cm4gUFNRTF9DTURfU0tJUF9MSU5FOworCXJldHVybiBzdWNjZXNzID8gUFNR TF9DTURfU0tJUF9MSU5FIDogUFNRTF9DTURfRVJST1I7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGI2 YTRlYjEuLjA0NzYzMDcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC05MDEsNiArOTAxLDYwIEBAIGVycm9yX3JldHVy bjoKIAlyZXR1cm4gZmFsc2U7CiB9CiAKKy8qCisgKiBsaXN0Q29ubmVjdGlvbkluZm9ybWF0aW9u CisgKgorICogZm9yIFxjb25uaW5mbysKKyAqLworYm9vbAorbGlzdENvbm5lY3Rpb25JbmZvcm1h dGlvbihjb25zdCBjaGFyICpwYXR0ZXJuKQoreworICAgIFBHcmVzdWx0ICAgKnJlczsKKyAgICBQ UUV4cEJ1ZmZlckRhdGEgYnVmOworICAgIHByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7 CisKKyAgICBpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKyAgICBwcmludGZQUUV4cEJ1ZmZlcigm YnVmLAorICAgICAgICAgICAgICAgICAgICAgICJTRUxFQ1RcbiIKKyAgICAgICAgICAgICAgICAg ICAgICAiICBwZ19jYXRhbG9nLmN1cnJlbnRfZGF0YWJhc2UoKSBBUyBcIkRhdGFiYXNlXCIsXG4i CisgICAgICAgICAgICAgICAgICAgICAgIiAgJyVzJyBBUyBcIkF1dGhlbnRpY2F0ZWQgVXNlclwi LFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICBQUXVzZXIocHNldC5kYikpOworICAgIGlmIChw c2V0LnN2ZXJzaW9uID49IDE2MDAwMCkKKyAgICAgICAgYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgcGdfY2F0YWxvZy5zeXN0ZW1fdXNlcigpIEFT IFwiU3lzdGVtIFVzZXJcIixcbiIpOworICAgIGFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisgICAg ICAgICAgICAgICAgICAgICAgIiAgcGdfY2F0YWxvZy5jdXJyZW50X3VzZXIoKSBBUyBcIkN1cnJl bnQgVXNlclwiLFxuIgorICAgICAgICAgICAgICAgICAgICAgICIgIHBnX2NhdGFsb2cuc2Vzc2lv bl91c2VyKCkgQVMgXCJTZXNzaW9uIFVzZXJcIixcbiIKKyAgICAgICAgICAgICAgICAgICAgICAi ICBwZ19jYXRhbG9nLnBnX2JhY2tlbmRfcGlkKCkgQVMgXCJTZXNzaW9uIFBJRFwiLFxuIgorICAg ICAgICAgICAgICAgICAgICAgICIgIHBnX2NhdGFsb2cuY3VycmVudF9zZXR0aW5nKCdzZXJ2ZXJf dmVyc2lvbicpIEFTIFwiU2VydmVyIFZlcnNpb25cIixcbiIKKyAgICAgICAgICAgICAgICAgICAg ICAiICBwZ19jYXRhbG9nLmluZXRfc2VydmVyX2FkZHIoKSBBUyBcIlNlcnZlciBBZGRyZXNzXCIs XG4iCisgICAgICAgICAgICAgICAgICAgICAgIiAgcGdfY2F0YWxvZy5jdXJyZW50X3NldHRpbmco J3BvcnQnKSBBUyBcIlNlcnZlciBQb3J0XCIsXG4iCisgICAgICAgICAgICAgICAgICAgICAgIiAg cGdfY2F0YWxvZy5pbmV0X2NsaWVudF9hZGRyKCkgQVMgXCJDbGllbnQgQWRkcmVzc1wiLFxuIgor ICAgICAgICAgICAgICAgICAgICAgICIgIHBnX2NhdGFsb2cuaW5ldF9jbGllbnRfcG9ydCgpIEFT IFwiQ2xpZW50IFBvcnRcIixcbiIKKyAgICAgICAgICAgICAgICAgICAgICAiICBOVUxMSUYocGdf Y2F0YWxvZy5jdXJyZW50X3NldHRpbmcoJ3VuaXhfc29ja2V0X2RpcmVjdG9yaWVzJyksJycpIEFT IFwiU29ja2V0IERpcmVjdG9yeVwiLFxuIgorICAgICAgICAgICAgICAgICAgICAgICIgIENBU0Vc biIKKyAgICAgICAgICAgICAgICAgICAgICAiICAgIFdIRU5cbiIKKyAgICAgICAgICAgICAgICAg ICAgICAiICAgICAgcGdfY2F0YWxvZy5pbmV0X3NlcnZlcl9hZGRyKCkgSVMgTlVMTFxuIgorICAg ICAgICAgICAgICAgICAgICAgICIgICAgICBBTkQgcGdfY2F0YWxvZy5pbmV0X2NsaWVudF9hZGRy KCkgSVMgTlVMTFxuIgorICAgICAgICAgICAgICAgICAgICAgICIgICAgVEhFTiBOVUxMXG4iCisg ICAgICAgICAgICAgICAgICAgICAgIiAgICBFTFNFICclcydcbiIKKyAgICAgICAgICAgICAgICAg ICAgICAiICBFTkQgQVMgXCJIb3N0XCI7IiwKKyAgICAgICAgICAgICAgICAgICAgICBQUWhvc3Qo cHNldC5kYikpOworCisgICAgcmVzID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworICAgIHRlcm1QUUV4 cEJ1ZmZlcigmYnVmKTsKKyAgICBpZiAoIXJlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg ICAgbXlvcHQudGl0bGUgPSBfKCJDdXJyZW50IENvbm5lY3Rpb24gSW5mb3JtYXRpb24iKTsKKyAg ICBteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKKworICAgIHByaW50UXVlcnkocmVzLCAm bXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKworICAgIFBRY2xl YXIocmVzKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogLyoKICAqIGxpc3RBbGxEYnMKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgK aW5kZXggMjczZjk3NC4uNzc5OTE4YiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmgKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKQEAgLTE0OSw0ICsxNDksNyBAQCBleHRl cm4gYm9vbCBsaXN0T3BGYW1pbHlGdW5jdGlvbnMoY29uc3QgY2hhciAqYWNjZXNzX21ldGhvZF9w YXR0ZXJuLAogLyogXGRsIG9yIFxsb19saXN0ICovCiBleHRlcm4gYm9vbCBsaXN0TGFyZ2VPYmpl Y3RzKGJvb2wgdmVyYm9zZSk7CiAKKy8qIFxjb25uaW5mbyAqLworZXh0ZXJuIGJvb2wgbGlzdENv bm5lY3Rpb25JbmZvcm1hdGlvbihjb25zdCBjaGFyICpwYXR0ZXJuKTsKKwogI2VuZGlmCQkJCQkJ CS8qIERFU0NSSUJFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9oZWxwLmMgYi9zcmMv YmluL3BzcWwvaGVscC5jCmluZGV4IDRlNzlhODEuLjJjNTQyNmQgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMzEwLDcgKzMxMCw3 IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCWVsc2UKIAkJSEVMUDAo IiAgXFxjW29ubmVjdF0ge1tEQk5BTUV8LSBVU0VSfC0gSE9TVHwtIFBPUlR8LV0gfCBjb25uaW5m b31cbiIKIAkJCSAgIiAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0IHRvIG5ldyBkYXRh YmFzZSAoY3VycmVudGx5IG5vIGNvbm5lY3Rpb24pXG4iKTsKLQlIRUxQMCgiICBcXGNvbm5pbmZv ICAgICAgICAgICAgICBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IGN1cnJlbnQgY29ubmVjdGlv blxuIik7CisJSEVMUDAoIiAgXFxjb25uaW5mb1srXSAgICAgICAgICAgZGlzcGxheSBpbmZvcm1h dGlvbiBhYm91dCBjdXJyZW50IGNvbm5lY3Rpb25cbiIpOwogCUhFTFAwKCIgIFxcZW5jb2Rpbmcg W0VOQ09ESU5HXSAgIHNob3cgb3Igc2V0IGNsaWVudCBlbmNvZGluZ1xuIik7CiAJSEVMUDAoIiAg XFxwYXNzd29yZCBbVVNFUk5BTUVdICAgc2VjdXJlbHkgY2hhbmdlIHRoZSBwYXNzd29yZCBmb3Ig YSB1c2VyXG4iKTsKIAlIRUxQMCgiXG4iKTsK --_004_CP4P284MB24830F5BF17FFA7F3D733142EC452CP4P284MB2483BRAP_--