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 1rXTAH-00ApMc-TU for pgsql-hackers@arkaria.postgresql.org; Tue, 06 Feb 2024 21:39:38 +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 1rXTAF-006sgv-05 for pgsql-hackers@arkaria.postgresql.org; Tue, 06 Feb 2024 21:39:35 +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 1rXTAE-006sgg-E8 for pgsql-hackers@lists.postgresql.org; Tue, 06 Feb 2024 21:39:34 +0000 Received: from mail-roabra01olkn2071.outbound.protection.outlook.com ([40.92.96.71] 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 1rXTA6-005QgF-4p for pgsql-hackers@postgresql.org; Tue, 06 Feb 2024 21:39:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ixzPSrEl5tDGBgGZNjvxo2Th/jyg9jbLcwWBDlSeXx4HIbhlzOHhRnxr0cV/qy9p9gefexJb9Nfc0n9yIsdu8A/5hdVu5KPOeukC4RLab9586flz7ihhEh8bY6fKJiu9WZ4icVzi9f4LpyqPh7wf80pet/4+OjA9meOKkUxU0xTH6u0dBoiBRVOOm+K13TOdj3wtg6lYJvGfYUgNjt7VM8qIK7eL6Y89j5WHzApkQP5F2z+7L8UG6PZazhurkeTKMeVMwvrj2ODU3P0SBHosXYRWcGEjgLIVgWzA7h8Zuc9iQFZGo6VWEQKTLEY/OXTX0PyWcgvGIpp7x/5+ceg1sQ== 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=E9579cH3F42kzZ64GlAR/RrP1PYREQMMlQAE/+HAHDg=; b=fGCMeWbr0tW9xJtS6JYK741EziDKuGY0009qPB7rzc4Qb5/mj1nAVSWW8x0oTr1k9tm8YwTjfeJTk/81KAQlLWjLOl+/R3sco5SdzxwlYV29O0xoxInQBExIGMVofroKMOGM54F9wwoIuIzelXYg77Dh8s8uwwvG95bHXsgxYPEzVzuxnb7N5RXpZ/BRkoP2n3LfyVKoos6Li9RdC/WiMGWuLk3wIsHe7+tZ0MaDmDMZaFzrqgYSpu5siApm1+/DXQOpfeDSK6f46a8nqOdeUqbLvAr2B4RFvt4xK6mEJewjM0Klgx9XbXfKsJp4HvYvQUU0fXGhDaTan4W458kVFg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from CP8P284MB2496.BRAP284.PROD.OUTLOOK.COM (2603:10d6:103:2dc::11) by CP5P284MB2985.BRAP284.PROD.OUTLOOK.COM (2603:10d6:103:2e8::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.36; Tue, 6 Feb 2024 21:39:20 +0000 Received: from CP8P284MB2496.BRAP284.PROD.OUTLOOK.COM ([fe80::ce6:bf75:3d4a:97cf]) by CP8P284MB2496.BRAP284.PROD.OUTLOOK.COM ([fe80::ce6:bf75:3d4a:97cf%6]) with mapi id 15.20.7249.035; Tue, 6 Feb 2024 21:39:20 +0000 From: Maiquel Grassi To: Nathan Bossart CC: Erik Wienhold , "pgsql-hackers@postgresql.org" Subject: RE: Psql meta-command conninfo+ Thread-Topic: Psql meta-command conninfo+ Thread-Index: AQHaWRQuU7L2MD2CX0quiO/hLxQK8bD9n9eAgAAOagCAABlrgoAABsOAgAAHQYw= Date: Tue, 6 Feb 2024 21:39:20 +0000 Message-ID: References: <20240206181919.GA3853632@nathanxps13> <20240206210605.GA3903769@nathanxps13> In-Reply-To: <20240206210605.GA3903769@nathanxps13> 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: [y7g9OpvopionIWij9rVDEuu+gaGQN62A] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CP8P284MB2496:EE_|CP5P284MB2985:EE_ x-ms-office365-filtering-correlation-id: aa7614ae-9082-48c5-af23-08dc275c13f9 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Y91wnVPXTnaWu38kjEiHlIs5rVdhuJGMlkiCvdhRiHPQrq/aoPe77lahLNBrtoN/Tts9bfkTTqcU+8fXF+ebvg7N7Y6khJek0r4bnwukp9Zb0Bv+xODoCsmPkARPZuTnt4Tyk6SY3W51fl1pv7nkVy092l2XjmD3HMkOKl6/ZCFtcN+fDTJm+vvWVPbXZ3j9Kgjqv7pD63tdoLqmw1ZtpkeHqeu8SEi9DhT3vW0rP0PkiPQ8s9IWMPfD4qEyUx8OJD5ko/DjhKq2VZmT/Q38h24D6GemwnZsFrH/I9W7dGCNFeRyLowgLvfhz9ozljnnFgrphX3rW45U6kQcUxuiZCTbdZl362RpIRJLFkz7WbWZwakoElFW+lkSlha2UKLiv+bhWNOAkoszzuxAFbBT77O2FDmdHhUhH9/f6/NM0qMYEQXJrHTlvcV/1ZMb+lIVqkdQU1aAHigFb9F7BgDSeIJvQcGRDBGEit4PZUPdOXFmk2cACi0aD3bu6rgbNFofwoUSGcF5enO2DEVT+ACpzMb+dgqxCi73ChcJemAqFZNquNZiBvAyFJyGAvIzb6849MK3Whbm0grmvty7wxqCLYDFaFqt9Xi70NjM5uXvL7eKBpsf5pw552toaY9wKedn x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?4vHa/65RXEh9klNQBWvPz9iPWelWYE7kJ2Bbb+7T2r6nHPO3PESkXfO0CL?= =?iso-8859-1?Q?Hd+qPrZnjv0qMDypGSpNrZo3lpq2NheqEN7rv0Kvxk90X7D4DXBoMLdpR+?= =?iso-8859-1?Q?DdJ+qe64o6fjzZc355zAKHP3CNRWMpvexKl6cJhm6ZHrNRB7QKoM22JjvO?= =?iso-8859-1?Q?csyiu6zi4RkK0weWEgEzBuMaF+4yZZnYM8pgZNXqoSvLog2buz3d5hCTYN?= =?iso-8859-1?Q?RpnSDxCiwVIAJJ27OhbGGPl4sK6B/E+eqVmLLQv4LbAhhNGthl37UxC2Lp?= =?iso-8859-1?Q?6Vvg0vH3LnRUOGyYzZNf9KqB60mYObH0mtzu0LQcSiwnXdMYuyQCtMacGe?= =?iso-8859-1?Q?pzWABOnWTyb98VGBsHUlWwSdAZIT5CryFRIILjPuGiv9THU0t3AK6jo/8S?= =?iso-8859-1?Q?wAS08/AZf2vFGUOVj30HpTb+BRTp0m3EQRqOavMU3mEHuwZ46TOqRr3bpX?= =?iso-8859-1?Q?YmlrK69En76y6y5H04hcW5UpIXdkjIQDQMDOilBX7axtjb9Y6VQH4kJK9w?= =?iso-8859-1?Q?KF0BlDN39dxi0p07oX+LDuKpX5g1Rh2448vUuukG8vscZkoV+FFcDJm6oD?= =?iso-8859-1?Q?pi5qCnizq54SOrufeN2TIYBwujTTbsp74ymoDPFjRx53vJ3qT/Jizvh+IS?= =?iso-8859-1?Q?sRtZm2YzLeflaNpvaAoFt2Zarhf9TzL/1l24qYc/HR7/BWJNR7y3IA2Gsl?= =?iso-8859-1?Q?YOMdeQqe/9HE7n80ihotY8bSWqcG1qc3qVQ93tcxLYMBl6ENKvBtUt10nT?= =?iso-8859-1?Q?a4ExPBGEwGKf85OT7w6x5CznXLceaCkOW8e2x/DQ4p2y05cSUBoCIZHeCt?= =?iso-8859-1?Q?SOgp+vARIYeOpon6mDWO24NzFrUadXW5SGC9Lv63lvyZy/j5MeBnfFhDo1?= =?iso-8859-1?Q?BQ+byHyY+mM4g62ys53Yv/o4da8Kq4Fnp1LnoRjWkk3mHHcdlFZl5qqBua?= =?iso-8859-1?Q?8A2/88wrYh7p+ESQFoO4GMNgSdjuu1CVmPsM2XEvV3q9ZUXA35/qjSAA4e?= =?iso-8859-1?Q?/eGQnarvkZThxEphv4pDblum9vDka+tckZ0PkfoXj6oYruZZaA3h5ONwG7?= =?iso-8859-1?Q?k5c6RW5TkS9ld6E4vPxPM0LpBVMJBUQ/TUtdf2aqs5uboa27y6VhYHAGds?= =?iso-8859-1?Q?tYPvhZyOObWzi33ias4dq/GL4AkyotHqO+IH8juEaIziDS5eKlOfv/Islz?= =?iso-8859-1?Q?MexENNKwv9Jj1BCm59YVPt4J3WxFmdIgLu6m1rfBVh8yggRqrPLxiZ0dCW?= =?iso-8859-1?Q?vDNqnPZm+c5icm2vGi5A=3D=3D?= Content-Type: multipart/mixed; boundary="_004_CP8P284MB249627ACFC116EA2BC99DCC4EC462CP8P284MB2496BRAP_" MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-7dc52.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CP8P284MB2496.BRAP284.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: aa7614ae-9082-48c5-af23-08dc275c13f9 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2024 21:39:20.4997 (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: CP5P284MB2985 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_CP8P284MB249627ACFC116EA2BC99DCC4EC462CP8P284MB2496BRAP_ Content-Type: multipart/alternative; boundary="_000_CP8P284MB249627ACFC116EA2BC99DCC4EC462CP8P284MB2496BRAP_" --_000_CP8P284MB249627ACFC116EA2BC99DCC4EC462CP8P284MB2496BRAP_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Tue, Feb 06, 2024 at 08:52:09PM +0000, Maiquel Grassi wrote: > I made the adjustment in the code and updated the patch. I believe this > is the format suggested by you all. Would this be it? I was thinking something more like SELECT pg_catalog.current_database() AS "Database", current_user AS "User", pg_catalog.current_setting('server_version') AS "Server Version"= , pg_catalog.inet_server_addr() AS "Server Address", pg_catalog.current_setting('port') AS "Port", pg_catalog.inet_client_addr() AS "Client Address", pg_catalog.inet_client_port() AS "Client Port", pg_catalog.pg_backend_pid() AS "Session PID"; --//-- Good, I had misunderstood. I liked this adjustment. Now it truly aligns wit= h the central idea of the other extended meta-commands. [postgres@localhost bin]$ ./psql -h 192.168.0.220 -p 5433 -U postgres -d po= stgres psql (17devel, server 16.1) Type "help" for help. postgres=3D# \conninfo+ Current Connection Information Database | User | Server Version | Server Address | Port | Client Addr= ess | Client Port | Session PID ----------+----------+----------------+----------------+------+------------= ----+-------------+------------- postgres | postgres | 16.1 | 192.168.0.220 | 5433 | 192.168.0.2= 20 | 57112 | 22120 (1 row) postgres=3D# \q [postgres@localhost bin]$ ./psql psql (17devel) Type "help" for help. postgres=3D# \conninfo+ Current Connection Information Database | User | Server Version | Server Address | Port | Client Addr= ess | Client Port | Session PID ----------+----------+----------------+----------------+------+------------= ----+-------------+------------- postgres | postgres | 17devel | | 5432 | = | | 31430 (1 row) postgres=3D# \q [postgres@localhost bin]$ ./psql -h localhost psql (17devel) Type "help" for help. postgres=3D# \conninfo+ Current Connection Information Database | User | Server Version | Server Address | Port | Client Addr= ess | Client Port | Session PID ----------+----------+----------------+----------------+------+------------= ----+-------------+------------- postgres | postgres | 17devel | ::1 | 5432 | ::1 = | 46918 | 31433 (1 row) postgres=3D# \q [postgres@localhost bin]$ ./psql -h 127.0.0.1 psql (17devel) Type "help" for help. postgres=3D# \conninfo+ Current Connection Information Database | User | Server Version | Server Address | Port | Client Addr= ess | Client Port | Session PID ----------+----------+----------------+----------------+------+------------= ----+-------------+------------- postgres | postgres | 17devel | 127.0.0.1 | 5432 | 127.0.0.1 = | 34970 | 31435 (1 row) Regards, Maiquel O. Grassi. --_000_CP8P284MB249627ACFC116EA2BC99DCC4EC462CP8P284MB2496BRAP_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
  On Tue, Feb 06, 2024 at 08:52:09PM +0000, Maiquel Gras= si wrote:
  > I made the adjustment in the code and updated the patch. I beli= eve this
  > is the format suggested by you all. Would this be it?
 
  I was thinking something more like
 
    SELECT pg_catalog.current_database() AS "Database&q= uot;,
           current_user AS "Us= er",
           pg_catalog.current_setti= ng('server_version') AS "Server Version",
           pg_catalog.inet_ser= ver_addr() AS "Server Address",
           pg_catalog.current_= setting('port') AS "Port",
           pg_catalog.inet_cli= ent_addr() AS "Client Address",
           pg_catalog.inet_cli= ent_port() AS "Client Port",
           pg_catalog.pg_backend_pi= d() AS "Session PID";

--//--

Good, I had misunderstood. I liked this adjustment. Now it truly align= s with the central idea of the other extended meta-commands.

[postgres@localhost bin]$ ./psql -h 192.168.0.220 -p 5433 -U postgres -d po= stgres
psql (17devel, server 16.1)
Type "help" for help.

postgres=3D# \conninfo+
            &nbs= p;                     &n= bsp;   Current Connection Information
 Database |   User   | Server V= ersion | Server Address | Port | Client Address | Client Port | Session PID=
----------+----------= +----------------+----------------+------+----------------+-------------+--= -----------
 postgres | postgres | 16.1    =       | 192.168.0.220  | 5433 | 192.168.0.220  | =       57112 |       22120
(1 row)

postgres=3D# \q
[postgres@localhost b= in]$ ./psql
psql (17devel)
Type "help" for help.

postgres=3D# \conninf= o+
            &nbs= p;                     &n= bsp;   Current Connection Information
 Database |   User   | Server V= ersion | Server Address | Port | Client Address | Client Port | Session PID=
----------+----------+----------------+-------= ---------+------+----------------+-------------+-------------
 postgres | postgres | 17devel   &nb= sp;    |                |= 5432 |                |   &nb= sp;         |       31430
(1 row)

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

postgres=3D# \conninfo+
      =                      = ;           Current Connection Information<= /div>
 Database |   User   | Server V= ersion | Server Address | Port | Client Address | Client Port | Session PID=
----------+----------+----------------+-------= ---------+------+----------------+-------------+-------------
 postgres | postgres | 17devel   &nb= sp;    | ::1            | 5432 | ::= 1            |       46918 | &= nbsp;     31433
(1 row)

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

postgres=3D# \conninfo+
            &nbs= p;                     &n= bsp;   Current Connection Information
 Database |   User   | Server V= ersion | Server Address | Port | Client Address | Client Port | Session PID=
----------+----------= +----------------+----------------+------+----------------+-------------+--= -----------
 postgres | postgres | 17devel   &nb= sp;    | 127.0.0.1      | 5432 | 127.0.0.1   =    |       34970 |       31435
(1 row)

Regards,
Maiquel O. Grassi.
--_000_CP8P284MB249627ACFC116EA2BC99DCC4EC462CP8P284MB2496BRAP_-- --_004_CP8P284MB249627ACFC116EA2BC99DCC4EC462CP8P284MB2496BRAP_ Content-Type: application/octet-stream; name="v3-0001-psql-meta-command-conninfo-plus.patch" Content-Description: v3-0001-psql-meta-command-conninfo-plus.patch Content-Disposition: attachment; filename="v3-0001-psql-meta-command-conninfo-plus.patch"; size=7419; creation-date="Tue, 06 Feb 2024 21:38:28 GMT"; modification-date="Tue, 06 Feb 2024 21:39:20 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFu ZC5jCmluZGV4IDVjOTA2ZTQuLmFkOGUzNzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21t 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 b3JtYXRpb24ocGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCWZyZWUocGF0dGVybik7CisJCQlw cmludFNTTEluZm8oKTsKKwkJCXByaW50R1NTSW5mbygpOworCQl9CiAKLQkJCWlmIChpc191bml4 c29ja19wYXRoKGhvc3QpKQotCQkJewotCQkJCS8qIGhvc3RhZGRyIG92ZXJyaWRlcyBob3N0ICov Ci0JCQkJaWYgKGhvc3RhZGRyICYmICpob3N0YWRkcikKLQkJCQkJcHJpbnRmKF8oIllvdSBhcmUg Y29ubmVjdGVkIHRvIGRhdGFiYXNlIFwiJXNcIiBhcyB1c2VyIFwiJXNcIiBvbiBhZGRyZXNzIFwi JXNcIiBhdCBwb3J0IFwiJXNcIi5cbiIpLAotCQkJCQkJICAgZGIsIFBRdXNlcihwc2V0LmRiKSwg aG9zdGFkZHIsIFBRcG9ydChwc2V0LmRiKSk7Ci0JCQkJZWxzZQotCQkJCQlwcmludGYoXygiWW91 IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIgXCIlc1wiIHZpYSBzb2Nr ZXQgaW4gXCIlc1wiIGF0IHBvcnQgXCIlc1wiLlxuIiksCi0JCQkJCQkgICBkYiwgUFF1c2VyKHBz ZXQuZGIpLCBob3N0LCBQUXBvcnQocHNldC5kYikpOwotCQkJfQorCQkvKgorCQkgKiBcY29ubmlu Zm8KKwkJICovCisJCWVsc2UKKwkJeworCQkJaWYgKGRiID09IE5VTEwpCisJCQkJcHJpbnRmKF8o IllvdSBhcmUgY3VycmVudGx5IG5vdCBjb25uZWN0ZWQgdG8gYSBkYXRhYmFzZS5cbiIpKTsKIAkJ CWVsc2UKIAkJCXsKLQkJCQlpZiAoaG9zdGFkZHIgJiYgKmhvc3RhZGRyICYmIHN0cmNtcChob3N0 LCBob3N0YWRkcikgIT0gMCkKLQkJCQkJcHJpbnRmKF8oIllvdSBhcmUgY29ubmVjdGVkIHRvIGRh dGFiYXNlIFwiJXNcIiBhcyB1c2VyIFwiJXNcIiBvbiBob3N0IFwiJXNcIiAoYWRkcmVzcyBcIiVz XCIpIGF0IHBvcnQgXCIlc1wiLlxuIiksCi0JCQkJCQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBo b3N0LCBob3N0YWRkciwgUFFwb3J0KHBzZXQuZGIpKTsKKwkJCQljaGFyCSAgICpob3N0ID0gUFFo b3N0KHBzZXQuZGIpOworCQkJCWNoYXIJICAgKmhvc3RhZGRyID0gUFFob3N0YWRkcihwc2V0LmRi KTsKKworCQkJCWlmIChpc191bml4c29ja19wYXRoKGhvc3QpKQorCQkJCXsKKwkJCQkJLyogaG9z dGFkZHIgb3ZlcnJpZGVzIGhvc3QgKi8KKwkJCQkJaWYgKGhvc3RhZGRyICYmICpob3N0YWRkcikK KwkJCQkJCXByaW50ZihfKCJZb3UgYXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMg dXNlciBcIiVzXCIgb24gYWRkcmVzcyBcIiVzXCIgYXQgcG9ydCBcIiVzXCIuXG4iKSwKKwkJCQkJ CQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0YWRkciwgUFFwb3J0KHBzZXQuZGIpKTsKKwkJ CQkJZWxzZQorCQkJCQkJcHJpbnRmKF8oIllvdSBhcmUgY29ubmVjdGVkIHRvIGRhdGFiYXNlIFwi JXNcIiBhcyB1c2VyIFwiJXNcIiB2aWEgc29ja2V0IGluIFwiJXNcIiBhdCBwb3J0IFwiJXNcIi5c biIpLAorCQkJCQkJCSAgIGRiLCBQUXVzZXIocHNldC5kYiksIGhvc3QsIFBRcG9ydChwc2V0LmRi KSk7CisJCQkJfQogCQkJCWVsc2UKLQkJCQkJcHJpbnRmKF8oIllvdSBhcmUgY29ubmVjdGVkIHRv IGRhdGFiYXNlIFwiJXNcIiBhcyB1c2VyIFwiJXNcIiBvbiBob3N0IFwiJXNcIiBhdCBwb3J0IFwi JXNcIi5cbiIpLAotCQkJCQkJICAgZGIsIFBRdXNlcihwc2V0LmRiKSwgaG9zdCwgUFFwb3J0KHBz ZXQuZGIpKTsKKwkJCQl7CisJCQkJCWlmIChob3N0YWRkciAmJiAqaG9zdGFkZHIgJiYgc3RyY21w KGhvc3QsIGhvc3RhZGRyKSAhPSAwKQorCQkJCQkJcHJpbnRmKF8oIllvdSBhcmUgY29ubmVjdGVk IHRvIGRhdGFiYXNlIFwiJXNcIiBhcyB1c2VyIFwiJXNcIiBvbiBob3N0IFwiJXNcIiAoYWRkcmVz cyBcIiVzXCIpIGF0IHBvcnQgXCIlc1wiLlxuIiksCisJCQkJCQkJICAgZGIsIFBRdXNlcihwc2V0 LmRiKSwgaG9zdCwgaG9zdGFkZHIsIFBRcG9ydChwc2V0LmRiKSk7CisJCQkJCWVsc2UKKwkJCQkJ CXByaW50ZihfKCJZb3UgYXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMgdXNlciBc IiVzXCIgb24gaG9zdCBcIiVzXCIgYXQgcG9ydCBcIiVzXCIuXG4iKSwKKwkJCQkJCQkgICBkYiwg UFF1c2VyKHBzZXQuZGIpLCBob3N0LCBQUXBvcnQocHNldC5kYikpOworCQkJCX0KKwkJCQlwcmlu dFNTTEluZm8oKTsKKwkJCQlwcmludEdTU0luZm8oKTsKIAkJCX0KLQkJCXByaW50U1NMSW5mbygp OwotCQkJcHJpbnRHU1NJbmZvKCk7CiAJCX0KIAl9CisJZWxzZQorCQlpZ25vcmVfc2xhc2hfb3B0 aW9ucyhzY2FuX3N0YXRlKTsKIAotCXJldHVybiBQU1FMX0NNRF9TS0lQX0xJTkU7CisJcmV0dXJu IHN1Y2Nlc3MgPyBQU1FMX0NNRF9TS0lQX0xJTkUgOiBQU1FMX0NNRF9FUlJPUjsKIH0KIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKaW5kZXggYjZhNGViMS4uYWE1Mzg3NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTkwMSw2ICs5MDEsNDMg QEAgZXJyb3JfcmV0dXJuOgogCXJldHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIGxpc3RDb25uZWN0 aW9uSW5mb3JtYXRpb24KKyAqCisgKiBmb3IgXGNvbm5pbmZvKworICovCitib29sCitsaXN0Q29u bmVjdGlvbkluZm9ybWF0aW9uKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKK3sK KyAgICBQR3Jlc3VsdCAgICpyZXM7CisgICAgUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKKyAgICBwcmlu dFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OworCisgICAgaW5pdFBRRXhwQnVmZmVyKCZidWYp OworCisgICAgcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAi U0VMRUNUIHBnX2NhdGFsb2cuY3VycmVudF9kYXRhYmFzZSgpIEFTIFwiRGF0YWJhc2VcIixcbiIK KyAgICAgICAgICAgICAgICAgICAgICAiICBjdXJyZW50X3VzZXIgQVMgXCJVc2VyXCIsXG4iCisg ICAgICAgICAgICAgICAgICAgICAgIiAgcGdfY2F0YWxvZy5jdXJyZW50X3NldHRpbmcoJ3NlcnZl cl92ZXJzaW9uJykgQVMgXCJTZXJ2ZXIgVmVyc2lvblwiLFxuIgorICAgICAgICAgICAgICAgICAg ICAgICIgIHBnX2NhdGFsb2cuaW5ldF9zZXJ2ZXJfYWRkcigpIEFTIFwiU2VydmVyIEFkZHJlc3Nc IixcbiIKKyAgICAgICAgICAgICAgICAgICAgICAiICBwZ19jYXRhbG9nLmN1cnJlbnRfc2V0dGlu ZygncG9ydCcpIEFTIFwiUG9ydFwiLFxuIgorICAgICAgICAgICAgICAgICAgICAgICIgIHBnX2Nh dGFsb2cuaW5ldF9jbGllbnRfYWRkcigpIEFTIFwiQ2xpZW50IEFkZHJlc3NcIixcbiIKKyAgICAg ICAgICAgICAgICAgICAgICAiICBwZ19jYXRhbG9nLmluZXRfY2xpZW50X3BvcnQoKSBBUyBcIkNs aWVudCBQb3J0XCIsXG4iCisgICAgICAgICAgICAgICAgICAgICAgIiAgcGdfY2F0YWxvZy5wZ19i YWNrZW5kX3BpZCgpIEFTIFwiU2Vzc2lvbiBQSURcIjsiKTsKKworICAgIHJlcyA9IFBTUUxleGVj KGJ1Zi5kYXRhKTsKKyAgICB0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisgICAgaWYgKCFyZXMpCisg ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG15b3B0LnRpdGxlID0gXygiQ3VycmVudCBDb25u ZWN0aW9uIEluZm9ybWF0aW9uIik7CisgICAgbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7 CisKKyAgICBwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBz ZXQubG9nZmlsZSk7CisKKyAgICBQUWNsZWFyKHJlcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CiAK IC8qCiAgKiBsaXN0QWxsRGJzCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaCBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCmluZGV4IDI3M2Y5NzQuLmI2MzhjNzEgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5o CkBAIC0xNDksNCArMTQ5LDcgQEAgZXh0ZXJuIGJvb2wgbGlzdE9wRmFtaWx5RnVuY3Rpb25zKGNv bnN0IGNoYXIgKmFjY2Vzc19tZXRob2RfcGF0dGVybiwKIC8qIFxkbCBvciBcbG9fbGlzdCAqLwog ZXh0ZXJuIGJvb2wgbGlzdExhcmdlT2JqZWN0cyhib29sIHZlcmJvc2UpOwogCisvKiBcY29ubmlu Zm8gKi8KK2V4dGVybiBib29sIGxpc3RDb25uZWN0aW9uSW5mb3JtYXRpb24oY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCB2ZXJib3NlKTsKKwogI2VuZGlmCQkJCQkJCS8qIERFU0NSSUJFX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9oZWxwLmMgYi9zcmMvYmluL3BzcWwvaGVscC5jCmlu ZGV4IDRlNzlhODEuLjJjNTQyNmQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMKKysr IGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMzEwLDcgKzMxMCw3IEBAIHNsYXNoVXNhZ2UodW5z aWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCWVsc2UKIAkJSEVMUDAoIiAgXFxjW29ubmVjdF0ge1tE Qk5BTUV8LSBVU0VSfC0gSE9TVHwtIFBPUlR8LV0gfCBjb25uaW5mb31cbiIKIAkJCSAgIiAgICAg ICAgICAgICAgICAgICAgICAgICBjb25uZWN0IHRvIG5ldyBkYXRhYmFzZSAoY3VycmVudGx5IG5v IGNvbm5lY3Rpb24pXG4iKTsKLQlIRUxQMCgiICBcXGNvbm5pbmZvICAgICAgICAgICAgICBkaXNw bGF5IGluZm9ybWF0aW9uIGFib3V0IGN1cnJlbnQgY29ubmVjdGlvblxuIik7CisJSEVMUDAoIiAg XFxjb25uaW5mb1srXSAgICAgICAgICAgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBjdXJyZW50 IGNvbm5lY3Rpb25cbiIpOwogCUhFTFAwKCIgIFxcZW5jb2RpbmcgW0VOQ09ESU5HXSAgIHNob3cg b3Igc2V0IGNsaWVudCBlbmNvZGluZ1xuIik7CiAJSEVMUDAoIiAgXFxwYXNzd29yZCBbVVNFUk5B TUVdICAgc2VjdXJlbHkgY2hhbmdlIHRoZSBwYXNzd29yZCBmb3IgYSB1c2VyXG4iKTsKIAlIRUxQ MCgiXG4iKTsK --_004_CP8P284MB249627ACFC116EA2BC99DCC4EC462CP8P284MB2496BRAP_--