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 1rXhFg-00C6We-GW for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Feb 2024 12:42:09 +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 1rXhFf-00AZ3w-EI for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Feb 2024 12:42:07 +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 1rXhFe-00AZ3n-O3 for pgsql-hackers@lists.postgresql.org; Wed, 07 Feb 2024 12:42:07 +0000 Received: from mail-roabra01olkn20801.outbound.protection.outlook.com ([2a01:111:f403:2c1e::801] 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 1rXhFa-005XEI-MA for pgsql-hackers@postgresql.org; Wed, 07 Feb 2024 12:42:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PXjHdBwzCE8ABn0BwIVBzjxzgyH/nXRzCnR6xnkoJtc1HJI/l3vGYPlHh+ehR+rNbtNVvs74JhcwxBgIcXYk21DDPgg1XBxDiGK0lNBTT22MFXffVxWGd1GfxEsLXeFtYaBPEnoZqm/2MTzBmnoS8bKUq1fbQMSGhpNeH7qYLYQT75+Jx5yTeNPfNUmINkyJ85Frr/CUJaJZV3AZ3btjPi0ImiGzcYLciF9qAYqPD/UP4qdUCehZ/YciGt43b00dozrPjEAU9nCqisBsjQVVxh9NRmS/0eAbcUUIizVykA2A5VdOTtpZKdGp2NH8ni1sXHw9ZWZeW/2M7s9CO+ittA== 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=xaQK87yyMwuGzDhVDCsPjZiJktadudb4BT+sF2M8Z8E=; b=faRaE7A2HUix1WIPPdAqGzuV6cFeK/+Qv+e6LczuSDm6ztotCI9KgTK9lxolyajzdtwcCLwOA+GPj753ynRLWXbv0b/+9mWaAeYifJenP2woOFH+NC+p7AG9vZlgi1UJZOcnCl39nWwr8p0Ucx2PRSEpKK3mqsqr5X2ZbknG7IwYpfD2igN4PtPUJq1y5NPr0irrgHp71xzaXzsshNA2oLyakmPY9RcOY946mFqaQpAlvVcP2pOABAi6pA1uFSps1s7fOmQGCTmNLFqJNgOglZ7OJxqds5hmgRpGgTDuctpQW3FUUD+tbbtMCZDKqEAbn4bsExKs4uKmd07Im5BR6A== 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 CP5P284MB2150.BRAP284.PROD.OUTLOOK.COM (2603:10d6:103:1f0::12) 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 12:41:57 +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.038; Wed, 7 Feb 2024 12:41:56 +0000 From: Maiquel Grassi To: Erik Wienhold CC: Nathan Bossart , "pgsql-hackers@postgresql.org" Subject: RE: Psql meta-command conninfo+ Thread-Topic: Psql meta-command conninfo+ Thread-Index: AQHaWRQuU7L2MD2CX0quiO/hLxQK8bD9n9eAgAAOagCAABlrgoAABsOAgAABrYCAAAkRMoAAAaIAgABfmwKAAGqsgIAAD94r Date: Wed, 7 Feb 2024 12:41:56 +0000 Message-ID: References: <20240206181919.GA3853632@nathanxps13> <20240206210605.GA3903769@nathanxps13> <20240206211205.GA3903996@nathanxps13> <20240206215022.GA3452@nathanxps13> <2quadime4klthrjwamiqmwqizfptoabi74dfjzzs3cjba4j6tp@lqzijrwi6i2o> In-Reply-To: <2quadime4klthrjwamiqmwqizfptoabi74dfjzzs3cjba4j6tp@lqzijrwi6i2o> 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: [6rdgk+1Lddkr4Yugdr22Vqh+R6zebEw/] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CP8P284MB2496:EE_|CP5P284MB2150:EE_ x-ms-office365-filtering-correlation-id: 34f42cc9-6a0c-453d-8f22-08dc27da2bb2 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LZmqJlzBMtLpDKOWPK6VkoYCYQ5klDLegcM7v/ghPoZ9rk/AoiLcHpy1fiK/efUR7ABDgxtVNFWGI6rB2LZnRKsaN+SCHi2WOHLK1btuTJqFyRKaye2NKWzaqiB61K9MOpF8MEgjy10/5rapU0D0T2JZfEtRk5x60kuDM3PbknVnjrA5Ds9Z3sV83hcuFCbkEQcNkBoH6zjABeKtsHENVsdclPnuF7GWxz4KfG5zcLDKB2YZwQFV+ImJr1zFhB3yNmsbpCVDsfgIUSP9uC9zeVRO384OrcigCZleWd2QqtFLtlhQNVxysT8YYoxM1JxSK75e41v0brfd5FFfsHPe9wkJb0xknF6u7cVW7WWyswVJ3QZboGjVY2fKR2V0S8Zc1yPr3SLaVk96fgiT7Q2WLwUH9NQkZwj2aYf5azHwv8H+RjXoW0bnsBXYMyRBpQeNyrMPcVP9sE9dAi1TmrDrXYBWezJ+JZJDCzFc+khZTYp7Vb49tJT4TSSTHmE5o4v3Kvd0z+rPVsGspSe+nRELdJ4XDTrOkQqNV15ZEKho2+dS2pyKbGPL/wHhuqvpNmy9qeFIiaONPRnh0E/kSERd3kmLvAM+4c03lRnko7oduvzpPf3KeTEJlYXgeIw3sOac x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?8Uhpl3I27bBhwlWvgRTREgdypJDoP1vCxyVQYKzUpwsbrYOEXr13uPss4O?= =?iso-8859-1?Q?8+iJbzdmfvJdclzIDPugXPinsengAY9UxCT4si4QNSJLseaHDcyeT91WBV?= =?iso-8859-1?Q?zbw2CtQilxv6yv9jF2EcPZ/4BkQUOR1rZ2dUPKR3qw+1QAS5BIM25flh/x?= =?iso-8859-1?Q?0yfWOqqBG6hXDHKLGQooekKzX8qlQc75YbDgMwZXimhU6g1z/S1PAU7hTt?= =?iso-8859-1?Q?CfYIVleWgwp5F1NzlsiVP8yF3LDgbArl6YgF6JNCmthZlOZFcqz6B8stJ2?= =?iso-8859-1?Q?eiXxl7C/+unHOqIevnxZiuCgKJRGy6p1QRxvc9uYYCz1++zO+KDyCfbCGx?= =?iso-8859-1?Q?3+TYU7gAO2xPrdtJh2lGrVIXqaRfuddRGkygCGecaKzIVbS44uRvC2Dibc?= =?iso-8859-1?Q?4gTmfGPegl0wtlPbD64Kt3sN+CubebMf2aRB6tIDmj7iG5PQkHmxpPGW1D?= =?iso-8859-1?Q?TilAxmqUfKp1qIvEEKjmYcePmSt7fZkqaULiUQUjWNeqGVCh8lFEubR875?= =?iso-8859-1?Q?oWVVt4extSs2th3VIe8BWjvVGQfT+LzwHvVBjPb4DXX1vECa/PcQvH9ICM?= =?iso-8859-1?Q?aKTHloMdm1O0c4bTvXgrlJBXan3UmEH2yT96bSvyndkqWDXbltHqspMmZJ?= =?iso-8859-1?Q?FyzE2EwjYi7Eb2IEp+I+Jy5AZUXQfoENhw0Dd36z8R8NbElMTb0HN7gl9d?= =?iso-8859-1?Q?TrL0OjVU8o28bocOjO0bzY29c1iH5aRVVmde3RYCOM8ZoimOCdQIaxsIzl?= =?iso-8859-1?Q?jT2CRoe43mVe7jTbRqcGfZ3kpd3mIs/b383cT1sEnnAn/aOl51e05J3p+z?= =?iso-8859-1?Q?fLl+9SgiXzrldtbPGRwAgZHo5yqsGwGO9LAVNPbR3e9kXdPDTljtjzDqCF?= =?iso-8859-1?Q?KHxn4AyPUbvPxnKTts4NsU0j7+1sl8C5WgJMh3Qg2BKxyS1E/nwouB8RqV?= =?iso-8859-1?Q?guJFRenukYeZjDxyJtIiZMcOXejZ5ddgD16M4/tI8I5UM+yieWJtIikQoR?= =?iso-8859-1?Q?7tp4OObfp62ukwIrDeNFb/f1c7e0xI7F0iZGXu2FdJeUXSz+0FRV8TiFkW?= =?iso-8859-1?Q?ewMN5kA2ADjBbl8b/RP9cWoJnZbLXDCmQveqwNXSd7UcNWn5iyFjKKgy5Y?= =?iso-8859-1?Q?HX/1Nehx4T+NZQT8GP2fHb9Eooi6LGf2ks0+HQESuj3TC7aK6LZ8wM+RVu?= =?iso-8859-1?Q?PYKg2pzeFl4aSsEB6lQt5SafU49A0rmSvZ2LcRDnHZiFgfWgfgAKQ3Dh/N?= =?iso-8859-1?Q?be7pf0b1Kk6D+nZ4+d7w=3D=3D?= Content-Type: multipart/mixed; boundary="_004_CP8P284MB249690D959F698EF3187D8AEEC452CP8P284MB2496BRAP_" 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: 34f42cc9-6a0c-453d-8f22-08dc27da2bb2 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Feb 2024 12:41:56.8617 (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: CP5P284MB2150 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_CP8P284MB249690D959F698EF3187D8AEEC452CP8P284MB2496BRAP_ Content-Type: multipart/alternative; boundary="_000_CP8P284MB249690D959F698EF3187D8AEEC452CP8P284MB2496BRAP_" --_000_CP8P284MB249690D959F698EF3187D8AEEC452CP8P284MB2496BRAP_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On 2024-02-07 05:13 +0100, Maiquel Grassi wrote: > On Tue, Feb 06, 2024 at 09:45:54PM +0000, Maiquel Grassi wrote: > > My initial idea has always been that they should continue to appear > > because \conninfo+ should show all the things that \conninfo shows = and > > add more information. I think that's the purpose of the 'plus.' Now= we're > > on a better path than the initial one. We can still add the socket > > directory and the host. > > Agreed. > > --//-- > > I believe it's resolved reasonably well this way: > > SELECT > pg_catalog.current_database() AS "Database", > current_user AS "User", > pg_catalog.current_setting('server_version') AS "Server Version", > CASE > WHEN pg_catalog.inet_server_addr() IS NULL > THEN 'NULL' > ELSE pg_catalog.inet_server_addr()::text > END AS "Server Address", Should be NULL instead of string 'NULL'. So the entire CASE expression is redundant and you can just return pg_catalog.inet_server_addr(). > pg_catalog.current_setting('port') AS "Port", > CASE > WHEN pg_catalog.inet_client_addr() IS NULL > THEN 'NULL' > ELSE pg_catalog.inet_client_addr()::text > END AS "Client Address", > CASE > WHEN pg_catalog.inet_client_port() IS NULL > THEN 'NULL' > ELSE pg_catalog.inet_client_port()::text > END AS "Client Port", Same here. > pg_catalog.pg_backend_pid() AS "Session PID", > CASE > WHEN pg_catalog.current_setting('unix_socket_directories') =3D '' > THEN 'NULL' > ELSE pg_catalog.current_setting('unix_socket_directories') > END AS "Socket Directory", The CASE expression can be simplified to: nullif(pg_catalog.current_setting('unix_socket_directories'), '') > CASE > WHEN > pg_catalog.inet_server_addr() IS NULL > AND pg_catalog.inet_client_addr() IS NULL > THEN 'NULL' > WHEN > pg_catalog.inet_server_addr() =3D pg_catalog.inet_client_addr() > THEN 'localhost' Is it safe to assume localhost here? \conninfo prints localhost only when I connect with psql -hlocalhost: $ psql -hlocalhost postgres psql (16.1) postgres=3D# \conninfo You are connected to database "postgres" as user "ewie" on host "= localhost" (address "::1") at port "5432". postgres=3D# \q $ psql -h127.0.0.1 postgres psql (16.1) postgres=3D# \conninfo You are connected to database "postgres" as user "ewie" on host "= 127.0.0.1" at port "5432". > ELSE pg_catalog.inet_server_addr()::text > END AS "Host"; --//-- There really was no need for the CASES. However, they helped visualize the = psql output since for the null value, no word is printed on the screen. I m= ade the adjustment by removing this redundancy. Regarding the "Host" column, the most reliable way to solve this, I believe= , is by using the "host" variable. So it's necessary to declare char *host = =3D PQhost(pset.db); in listConnectionInformation() and use it in the SQL (= see patch v5). This way, we have the same return from \conninfo reliably. Once again, I ran a series of tests. [postgres@localhost bin]$ ./psql psql (17devel) Type "help" for help. postgres=3D# \conninfo You are connected to database "postgres" as user "postgres" via socket in "= /tmp" at port "5432". postgres=3D# \conninfo+ Current Connection I= nformation Database | User | Server Version | Server Address | Server Port | Clie= nt Address | Client Port | Session PID | Socket Directory | Host ----------+----------+----------------+----------------+-------------+-----= -----------+-------------+-------------+------------------+------ postgres | postgres | 17devel | | 5432 | = | | 15898 | /tmp | (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 | User | Server Version | Server Address | Server Port | Clie= nt Address | Client Port | Session PID | Socket Directory | Host ----------+----------+----------------+----------------+-------------+-----= -----------+-------------+-------------+------------------+----------- postgres | postgres | 17devel | ::1 | 5432 | ::1 = | 47012 | 15900 | /tmp | localhost (1 row) postgres=3D# \q [postgres@localhost bin]$ ./psql -h ::1 psql (17devel) Type "help" for help. postgres=3D# \conninfo You are connected to database "postgres" as user "postgres" on host "::1" a= t port "5432". postgres=3D# \conninfo+ Current Connection I= nformation Database | User | Server Version | Server Address | Server Port | Clie= nt Address | Client Port | Session PID | Socket Directory | Host ----------+----------+----------------+----------------+-------------+-----= -----------+-------------+-------------+------------------+------ postgres | postgres | 17devel | ::1 | 5432 | ::1 = | 47014 | 15905 | /tmp | ::1 (1 row) postgres=3D# \q [postgres@localhost bin]$ ./psql -h 127.0.0.1 psql (17devel) Type "help" for help. postgres=3D# \conninfo You are connected to database "postgres" as user "postgres" on host "127.0.= 0.1" at port "5432". postgres=3D# \conninfo+ Current Connection= Information Database | User | Server Version | Server Address | Server Port | Clie= nt Address | Client Port | Session PID | Socket Directory | Host ----------+----------+----------------+----------------+-------------+-----= -----------+-------------+-------------+------------------+----------- postgres | postgres | 17devel | 127.0.0.1 | 5432 | 127.= 0.0.1 | 35066 | 15908 | /tmp | 127.0.0.1 (1 row) postgres=3D# \q [postgres@localhost bin]$ ./psql -h 192.168.0.5 -p 5432 -d postgres -U 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 Connectio= n Information Database | User | Server Version | Server Address | Server Port | Clie= nt Address | Client Port | Session PID | Socket Directory | Host ----------+----------+----------------+----------------+-------------+-----= -----------+-------------+-------------+------------------+------------- postgres | postgres | 14.3 | 192.168.0.5 | 5432 | 192.= 168.0.5 | 60904 | 29264 | | 192.168.0.5 Regards, Maiquel O. Grassi. --_000_CP8P284MB249690D959F698EF3187D8AEEC452CP8P284MB2496BRAP_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
  On 2024-02-07 05:13 +0100, Mai= quel Grassi wrote:
  >   On Tue, Feb 06, 2024 at 09:45:54PM +0000, Maiquel G= rassi wrote:
  >   > My initial idea has always been that they shou= ld continue to appear
  >   > because \conninfo+ should show all the things = that \conninfo shows and
  >   > add more information. I think that's the purpo= se of the 'plus.' Now we're
  >   > on a better path than the initial one. We can = still add the socket
  >   > directory and the host.
  >
  >   Agreed.
  >
  > --//--
  >
  > I believe it's resolved reasonably well this way:
  >
  > SELECT
  >   pg_catalog.current_database() AS "Database&quo= t;,
  >   current_user AS "User",
  >   pg_catalog.current_setting('server_version') AS &qu= ot;Server Version",
  >   CASE
  >     WHEN pg_catalog.inet_server_addr() IS N= ULL
  >     THEN 'NULL'
  >     ELSE pg_catalog.inet_server_addr()::tex= t
  >   END AS "Server Address",

  Should be NULL instead of string 'NULL'.  So the entire CASE ex= pression
  is redundant and you can just return pg_catalog.inet_server_addr().<= br>  
  >   pg_catalog.current_setting('port') AS "Port&qu= ot;,
  >   CASE
  >     WHEN pg_catalog.inet_client_addr() IS N= ULL
  >     THEN 'NULL'
  >     ELSE pg_catalog.inet_client_addr()::tex= t
  >   END AS "Client Address",
  >   CASE
  >     WHEN pg_catalog.inet_client_port() IS N= ULL
  >      THEN 'NULL'
  >     ELSE pg_catalog.inet_client_port()::tex= t
  >   END AS "Client Port",
 
  Same here.
 
  >   pg_catalog.pg_backend_pid() AS "Session PID&qu= ot;,
  >   CASE
  >     WHEN pg_catalog.current_setting('unix_s= ocket_directories') =3D ''
  >     THEN 'NULL'
  >     ELSE pg_catalog.current_setting('unix_s= ocket_directories')
  >   END AS "Socket Directory",
 
  The CASE expression can be simplified to:

          nullif(pg_catalog.current_sett= ing('unix_socket_directories'), '')
 
  >   CASE
  >     WHEN
  >       pg_catalog.inet_server_addr= () IS NULL
  >       AND pg_catalog.inet_client_= addr() IS NULL
  >     THEN 'NULL'
  >     WHEN
  >       pg_catalog.inet_server_addr= () =3D pg_catalog.inet_client_addr()
  >     THEN 'localhost'
 
  Is it safe to assume localhost here?  \conninfo prints localhos= t only
  when I connect with psql -hlocalhost:
 
          $ psql -hlocalhost postgres           psql (16.1)
          postgres=3D# \conninfo
          You are connected to= database "postgres" as user "ewie" on host "local= host" (address "::1") at port "5432".
          postgres=3D# \q
 
          $ psql -h127.0.0.1 postgres           psql (16.1)
          postgres=3D# \conninfo
          You are connected to data= base "postgres" as user "ewie" on host "127.0.0.1&= quot; at port "5432".

  >     ELSE pg_catalog.inet_server_addr()::tex= t
  >   END AS "Host";

--//--

There really was no need for the CASES. Howe= ver, they helped visualize the psql output since for the null value, no wor= d is printed on the screen. I made the adjustment by removing this redundancy.

Regarding the "Host" column, the mos= t reliable way to solve this, I believe, is by using the "host" v= ariable. So it's necessary to declare char *host =3D PQhost(pset.db); in listConnectionInformation() and use it in the SQL (see patch v5). This = way, we have the same return from \conninfo reliably.

Once again, I ran a series of tests.

[postgres@localhost bin]$ ./psql
psql (17devel)
Type "help" for help.

postgres=3D# \conninfo
You are connected to database "postgres&q= uot; as user "postgres" via socket in "/tmp" at port &q= uot;5432".
postgres=3D# \conninfo+
            &nbs= p;                     &n= bsp;                    C= urrent Connection Information
 Database |   User   | Server V= ersion | Server Address | Server Port | Client Address | Client Port | Sess= ion PID | Socket Directory | Host
----------+----------+----------------+-------= ---------+-------------+----------------+-------------+-------------+------= ------------+------
 postgres | postgres | 17devel   &nb= sp;    |                |= 5432        |            = ;    |             |     =   15898 | /tmp             |
(1 row)

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

postgres=3D# \conninfo
You are connected to database "postgres&q= uot; as user "postgres" on host "localhost" (address &q= uot;::1") at port "5432".
postgres=3D# \conninfo+
            &nbs= p;                     &n= bsp;                     =  Current Connection Information
 Database |   User   | Server V= ersion | Server Address | Server Port | Client Address | Client Port | Sess= ion PID | Socket Directory |   Host
----------+----------+----------------+-------= ---------+-------------+----------------+-------------+-------------+------= ------------+-----------
 postgres | postgres | 17devel   &nb= sp;    | ::1            | 5432 &nbs= p;      | ::1            | &nb= sp;     47012 |       15900 | /tmp     &= nbsp;       | localhost
(1 row)

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

postgres=3D# \conninfo
You are connected to database "postgres&q= uot; as user "postgres" on host "::1" at port "543= 2".
postgres=3D# \conninfo+
            &nbs= p;                     &n= bsp;                    C= urrent Connection Information
 Database |   User   | Server V= ersion | Server Address | Server Port | Client Address | Client Port | Sess= ion PID | Socket Directory | Host
----------+----------+----------------+-------= ---------+-------------+----------------+-------------+-------------+------= ------------+------
 postgres | postgres | 17devel   &nb= sp;    | ::1            | 5432 &nbs= p;      | ::1            | &nb= sp;     47014 |       15905 | /tmp     &= nbsp;       | ::1
(1 row)

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

postgres=3D# \conninfo
You are connected to database "postgres&q= uot; as user "postgres" on host "127.0.0.1" at port &qu= ot;5432".
postgres=3D# \conninfo+
            &nbs= p;                     &n= bsp;                     =  Current Connection Information
 Database |   User   | Server V= ersion | Server Address | Server Port | Client Address | Client Port | Sess= ion PID | Socket Directory |   Host
----------+----------+----------------+-------= ---------+-------------+----------------+-------------+-------------+------= ------------+-----------
 postgres | postgres | 17devel   &nb= sp;    | 127.0.0.1      | 5432      = ;  | 127.0.0.1      |       35066 | &nbs= p;     15908 | /tmp             | 1= 27.0.0.1
(1 row)

postgres=3D# \q
[postgres@localhost bin]$ ./psql -h 192.168.0.= 5 -p 5432 -d postgres -U postgres
psql (17devel, server 14.3)
Type "help" for help.

postgres=3D# \conninfo
You are connected to database "postgres&q= uot; as user "postgres" on host "192.168.0.5" at port &= quot;5432".
postgres=3D# \conninfo+
            &nbs= p;                     &n= bsp;                     =   Current Connection Information
 Database |   User   | Server V= ersion | Server Address | Server Port | Client Address | Client Port | Sess= ion PID | Socket Directory |    Host
----------+----------+----------------+-------= ---------+-------------+----------------+-------------+-------------+------= ------------+-------------
 postgres | postgres | 14.3    =       | 192.168.0.5    | 5432      = ;  | 192.168.0.5    |       60904 |   &n= bsp;   29264 |                =  | 192.168.0.5

Regards,
Maiquel O. Grassi.
--_000_CP8P284MB249690D959F698EF3187D8AEEC452CP8P284MB2496BRAP_-- --_004_CP8P284MB249690D959F698EF3187D8AEEC452CP8P284MB2496BRAP_ Content-Type: application/octet-stream; name="v5-0001-psql-meta-command-conninfo-plus.patch" Content-Description: v5-0001-psql-meta-command-conninfo-plus.patch Content-Disposition: attachment; filename="v5-0001-psql-meta-command-conninfo-plus.patch"; size=7990; creation-date="Wed, 07 Feb 2024 12:41:11 GMT"; modification-date="Wed, 07 Feb 2024 12:41:53 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 aWJlLmMKaW5kZXggYjZhNGViMS4uNWZmNGU5ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTkwMSw2ICs5MDEsNTUg QEAgZXJyb3JfcmV0dXJuOgogCXJldHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIGxpc3RDb25uZWN0 aW9uSW5mb3JtYXRpb24KKyAqCisgKiBmb3IgXGNvbm5pbmZvKworICovCitib29sCitsaXN0Q29u bmVjdGlvbkluZm9ybWF0aW9uKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKK3sK KyAgICBQR3Jlc3VsdCAgICpyZXM7CisgICAgUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKKyAgICBwcmlu dFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OworCisgICAgY2hhciAgICAgICAqaG9zdCA9IFBR aG9zdChwc2V0LmRiKTsKKworICAgIGluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworICAgIHByaW50 ZlBRRXhwQnVmZmVyKCZidWYsCisgICAgICAgICAgICAgICAgICAgICAgIlNFTEVDVFxuIgorICAg ICAgICAgICAgICAgICAgICAgICIgIHBnX2NhdGFsb2cuY3VycmVudF9kYXRhYmFzZSgpIEFTIFwi RGF0YWJhc2VcIixcbiIKKyAgICAgICAgICAgICAgICAgICAgICAiICBjdXJyZW50X3VzZXIgQVMg XCJVc2VyXCIsXG4iCisgICAgICAgICAgICAgICAgICAgICAgIiAgcGdfY2F0YWxvZy5jdXJyZW50 X3NldHRpbmcoJ3NlcnZlcl92ZXJzaW9uJykgQVMgXCJTZXJ2ZXIgVmVyc2lvblwiLFxuIgorICAg ICAgICAgICAgICAgICAgICAgICIgIHBnX2NhdGFsb2cuaW5ldF9zZXJ2ZXJfYWRkcigpIEFTIFwi U2VydmVyIEFkZHJlc3NcIixcbiIKKyAgICAgICAgICAgICAgICAgICAgICAiICBwZ19jYXRhbG9n LmN1cnJlbnRfc2V0dGluZygncG9ydCcpIEFTIFwiU2VydmVyIFBvcnRcIixcbiIKKyAgICAgICAg ICAgICAgICAgICAgICAiICBwZ19jYXRhbG9nLmluZXRfY2xpZW50X2FkZHIoKSBBUyBcIkNsaWVu dCBBZGRyZXNzXCIsXG4iCisgICAgICAgICAgICAgICAgICAgICAgIiAgcGdfY2F0YWxvZy5pbmV0 X2NsaWVudF9wb3J0KCkgQVMgXCJDbGllbnQgUG9ydFwiLFxuIgorICAgICAgICAgICAgICAgICAg ICAgICIgIHBnX2NhdGFsb2cucGdfYmFja2VuZF9waWQoKSBBUyBcIlNlc3Npb24gUElEXCIsXG4i CisgICAgICAgICAgICAgICAgICAgICAgIiAgTlVMTElGKHBnX2NhdGFsb2cuY3VycmVudF9zZXR0 aW5nKCd1bml4X3NvY2tldF9kaXJlY3RvcmllcycpLCcnKSBBUyBcIlNvY2tldCBEaXJlY3Rvcnlc IixcbiIKKyAgICAgICAgICAgICAgICAgICAgICAiICBDQVNFXG4iCisgICAgICAgICAgICAgICAg ICAgICAgIiAgICBXSEVOXG4iCisgICAgICAgICAgICAgICAgICAgICAgIiAgICAgIHBnX2NhdGFs b2cuaW5ldF9zZXJ2ZXJfYWRkcigpIElTIE5VTExcbiIKKyAgICAgICAgICAgICAgICAgICAgICAi ICAgICAgQU5EIHBnX2NhdGFsb2cuaW5ldF9jbGllbnRfYWRkcigpIElTIE5VTExcbiIKKyAgICAg ICAgICAgICAgICAgICAgICAiICAgIFRIRU4gTlVMTFxuIgorICAgICAgICAgICAgICAgICAgICAg ICIgICAgRUxTRSAnJXMnXG4iCisgICAgICAgICAgICAgICAgICAgICAgIiAgRU5EIEFTIFwiSG9z dFwiOyIsCisgICAgICAgICAgICAgICAgICAgICAgaG9zdCk7CisKKyAgICByZXMgPSBQU1FMZXhl YyhidWYuZGF0YSk7CisgICAgdGVybVBRRXhwQnVmZmVyKCZidWYpOworICAgIGlmICghcmVzKQor ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBteW9wdC50aXRsZSA9IF8oIkN1cnJlbnQgQ29u bmVjdGlvbiBJbmZvcm1hdGlvbiIpOworICAgIG15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVl OworCisgICAgcHJpbnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBw c2V0LmxvZ2ZpbGUpOworCisgICAgUFFjbGVhcihyZXMpOworICAgIHJldHVybiB0cnVlOworfQog CiAvKgogICogbGlzdEFsbERicwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgg Yi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAppbmRleCAyNzNmOTc0Li5iNjM4YzcxIDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUu aApAQCAtMTQ5LDQgKzE0OSw3IEBAIGV4dGVybiBib29sIGxpc3RPcEZhbWlseUZ1bmN0aW9ucyhj b25zdCBjaGFyICphY2Nlc3NfbWV0aG9kX3BhdHRlcm4sCiAvKiBcZGwgb3IgXGxvX2xpc3QgKi8K IGV4dGVybiBib29sIGxpc3RMYXJnZU9iamVjdHMoYm9vbCB2ZXJib3NlKTsKIAorLyogXGNvbm5p bmZvICovCitleHRlcm4gYm9vbCBsaXN0Q29ubmVjdGlvbkluZm9ybWF0aW9uKGNvbnN0IGNoYXIg KnBhdHRlcm4sIGJvb2wgdmVyYm9zZSk7CisKICNlbmRpZgkJCQkJCQkvKiBERVNDUklCRV9IICov CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpp bmRleCA0ZTc5YTgxLi4yYzU0MjZkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvaGVscC5jCisr KyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKQEAgLTMxMCw3ICszMTAsNyBAQCBzbGFzaFVzYWdlKHVu c2lnbmVkIHNob3J0IGludCBwYWdlcikKIAllbHNlCiAJCUhFTFAwKCIgIFxcY1tvbm5lY3RdIHtb REJOQU1FfC0gVVNFUnwtIEhPU1R8LSBQT1JUfC1dIHwgY29ubmluZm99XG4iCiAJCQkgICIgICAg ICAgICAgICAgICAgICAgICAgICAgY29ubmVjdCB0byBuZXcgZGF0YWJhc2UgKGN1cnJlbnRseSBu byBjb25uZWN0aW9uKVxuIik7Ci0JSEVMUDAoIiAgXFxjb25uaW5mbyAgICAgICAgICAgICAgZGlz cGxheSBpbmZvcm1hdGlvbiBhYm91dCBjdXJyZW50IGNvbm5lY3Rpb25cbiIpOworCUhFTFAwKCIg IFxcY29ubmluZm9bK10gICAgICAgICAgIGRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgY3VycmVu dCBjb25uZWN0aW9uXG4iKTsKIAlIRUxQMCgiICBcXGVuY29kaW5nIFtFTkNPRElOR10gICBzaG93 IG9yIHNldCBjbGllbnQgZW5jb2RpbmdcbiIpOwogCUhFTFAwKCIgIFxccGFzc3dvcmQgW1VTRVJO QU1FXSAgIHNlY3VyZWx5IGNoYW5nZSB0aGUgcGFzc3dvcmQgZm9yIGEgdXNlclxuIik7CiAJSEVM UDAoIlxuIik7Cg== --_004_CP8P284MB249690D959F698EF3187D8AEEC452CP8P284MB2496BRAP_--