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 1rahhW-00B3Qc-R8 for pgsql-hackers@arkaria.postgresql.org; Thu, 15 Feb 2024 19:47:19 +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 1rahhV-00F9CC-Gz for pgsql-hackers@arkaria.postgresql.org; Thu, 15 Feb 2024 19:47:17 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rahhV-00F9C3-1J for pgsql-hackers@lists.postgresql.org; Thu, 15 Feb 2024 19:47:17 +0000 Received: from mail-roabra01olkn2024.outbound.protection.outlook.com ([40.92.96.24] helo=BRA01-ROA-obe.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rahhR-007Njy-2w for pgsql-hackers@postgresql.org; Thu, 15 Feb 2024 19:47:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I9Sg+Ryf/VNSLQi5OwJjrZx5sM2olaGUmJsxZK1TVXubXmwL+mKA3zTPCkNEWUEc5qjNIAJqGz5mImHl63jHZzJMomitol4NFvOUKjXVte0/w/THtnIwirXWOJArWi/2mUh2Nhdv5AGS2NY+BJRKZVcrL2sZ7UCsKFIIsmq292TdVOhIEj+R7ueBx6tRU3T/4jSEU04/LssYh2ADdrL2iZ4CcbMd5np9qtYlVaJrhGpglWl3t6PvgbCNYBXitSbyDdlylAisRnOXDyzPFeTtfiuw2FMi82jGFcMGRk03w19ZXOpEIkvrJldvW6KcDxyZ64v3VWhtk3Ubf0w9vZf4mA== 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=JOTBzcaK1gaVZiqK+ldXN26mrRYHafKHfH4IPv3KSFk=; b=oTx1tkHjFtv534RyKPE8YSV/ePfsip8nHdRC9tFl1dmlMy/xkFd50oa+a3ldz13rbyCJ8OSUSoqjk0vF2UiQu0N+ZbWKtawGJ5YKc0jiszJNaVIt8EjGXrZncJ7yWo9hhKV7i94BMB1Dhm6CSbO0U0wgdsN2GAUcsof2jUW/EEw4Zxg6f+L/DecgiXgMYCDe827p4vkXzvAt0I0nQ8wo3FYNn3+HwCC9n5iVI1nygCurvC6EzE0ETnrGkCusMLi9+g53H0ahoWOszEQ42S3XdxJdIGeH0nUNhTbODjcahowJW4yd9yAJInJ7XF1p/p8LZWyeFGUAfM6gb5ERzttrQw== 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 CP5P284MB2135.BRAP284.PROD.OUTLOOK.COM (2603:10d6:103:1f4::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.27; Thu, 15 Feb 2024 19:47:06 +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.7292.029; Thu, 15 Feb 2024 19:47:06 +0000 From: Maiquel Grassi To: Jim Jones , 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+O4ABA4CAgAA4UGOAASa0gIAFGF5sgAMAW4CAAhkLZg== Date: Thu, 15 Feb 2024 19:47:05 +0000 Message-ID: References: <20240206210605.GA3903769@nathanxps13> <20240206211205.GA3903996@nathanxps13> <20240206215022.GA3452@nathanxps13> <852cabef-f596-4826-9a54-d3f75d9a6cc8@postgrespro.ru> <49edac91-d47f-4cac-ae12-d51cabbd87c9@postgrespro.ru> <49635a5b-3d32-4f05-8ce4-c55c70181888@uni-muenster.de> In-Reply-To: <49635a5b-3d32-4f05-8ce4-c55c70181888@uni-muenster.de> 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: [yLcnx7OWp1vXr7vFtiJKiFVWqKPw0Gq+w8J3fy4XedzSVa2HcEryBDbR/Iollhcc] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CP8P284MB2496:EE_|CP5P284MB2135:EE_ x-ms-office365-filtering-correlation-id: 33efc6fc-9497-4bf4-f775-08dc2e5ee392 x-ms-exchange-slblob-mailprops: zZTkHIKWWP8gH2KBDRz5+aZ/2tDV8+vmHa1MqdTzT+EJPMhvN03S2TnoXy0ACB3Dllu4LICHHEFDOH1Op/MbLEQFRy2JZgNT5GpeqIAp3o04Mxd8N0msL3SxRAtYcr/aYphEn9V788ScuH7SYiGhE/L6LQJurXru/o+uQcHXTmRNrmeTI851sS+xjLLIOoZJLHH4UT2XVMpHWacAZWxHe6wbqIuViymIwVaX3KakFY66SqFW2/9Gof1E96nCOzQzFijLfZ9ESHeXE5yaz+zUl8YINtbzliFq6MJSSHFJ0p3+EjRrnm54O5A+ixrMtySolX+UdQw6HDkbf9twMzs4ZminCdPjm3muFGea5/+D61mGl2iGwMPwX2CdWoAt7UYbk9/AREFCNGR1Z8HxULCBxtin31/y5x8O8XrN33qSiIW+OWRK3M33dyXQjtVD7JTSDqPIL4YttDmo3AakOQdyXULo3B3E+khwzIsiy4u2651sIqRaJTUyYtxkswJaqJW5F5anmIE+reTQxQhCF7IhNEIKMoL/lVHpN2thvnk68rDhD/6XkB0EsMRRL7FFx+eyXsN1OrvshxKkC59kDIC/MaXLeReIvutxEPH/GSLHvTZLsxWjJjXXhPtvGeta3ae7bgSIuwKyn8DiE4sD8CYgZ36Z9oUCahAHcHawNWD4gvuhXPSuuFYVsQ== x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: RvgUDZxKKBs77NrqtC6/a6eZ8KMkir1BZYZJ+nGvufpvTbQ7Wwp7nXvO6YJspCZfiwcQSo7DpOPvvYdFeDfFhfNYUkoBPwRdkwzPHDsssgi3tCvGBjOeTLxY2XjxhBYl+7aN+bmDkRhpIzOOz9WcZxyc8wC9VAlIPerAoJj7jc6IoOqhaTJ7VQIDMDEJ6pjdEtXKAkLnx+bSJAXKr2vLG8BrXtoMI+T7uGC1P4OlKQVVhL+dMN2X5W0ErFBXHxiP47gcqlzToVFIYeARYUnvFU/+sCOlXhagcHRExPrjfj+MiFDd8WF6aKeiBYiEQvR/STgjwbNGRiiOedyRNeRwrhOdn7ACNdmBQSMnVa+DoMgEkZhu4Es19sJ8B5WlevCONgy/IxN3YvDtdUTob9cp/joEEgbaTwhu1KSHXU0rzxITszv7/n66OQI1GEgkVUVlVh3krQOMLqMRhoszbFg6YTbRRJJgdpRUqwoLL6u+KzMLBmLIv/8pzNte8by8RVPlVyf6/7Vhy+zPbw8aTY3oqmaueTbSBuL9t1aAoXWKPjYen7oIz7Aw2u3MaDcqR8IktCscElG8vkRQmOrcF5qLvMpmncGauDSiM+Wt0FdegRvFnX9QUeOOSfdCPh7CtUhH x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?gL1BM3E56h0qzyFQJyLC/qZfSuUEnKuFT0ifwPIX3CiBMXWvgqOHkU0k2n?= =?iso-8859-1?Q?pUD7UGOuQQ0RQC60km6MspcU5NhnfGucJgxDiH3Kz4PAZRiVouRgDxFavB?= =?iso-8859-1?Q?ffAC9AcQRqlY19B/SRnqb6EedoZ67ES8jCtbjT4I2SwcvcbZd9RygW8a9x?= =?iso-8859-1?Q?mol701AUCgwo6SNXiXcFXjh/Wen/iEP1zv4PnjfzlI4M91PtOiVCiC/Be8?= =?iso-8859-1?Q?EoIz8DKpmA99UuPQaZH9ZyyfxcBUT3mPPG4ats1f2tjKTIsANAx6jL/MO7?= =?iso-8859-1?Q?ZqK7a71kCFvFJpEvNHC4wJuJ8ljkcu66dlVd1127n5+WyOHEM7WKjou4YH?= =?iso-8859-1?Q?i2oIQScjmivf0eCpuTd591XzaraHmbI6EEf4CIUHBrdItVAb2JTTT+u08P?= =?iso-8859-1?Q?fvV61jHaEbGt+KhhMqrPrSSLspxkN3UgAFYPsEP/lnksMhpxNbrq3XDNTO?= =?iso-8859-1?Q?7iKFG+5uxP5gHPEpabRViQ25VKyGDEdVXPL77tPF6FtGZ9vNjfu9cp/3na?= =?iso-8859-1?Q?9ru7xvtnYYoNzweFnC61m2OxLPNi4wikpZVl4fCZEcV/mg1qgS0+kDejwY?= =?iso-8859-1?Q?U1g1g/oFv8j+G8l52bAMwIX+FYTAqT2rDXQqiapSo1n8ORmDy51LI7Izhc?= =?iso-8859-1?Q?QabvYPIZznVJyvOfaIJbjBIGmLa4F5Z9xNT/28hG47iwD66UO6P7rkbYXo?= =?iso-8859-1?Q?NBa44rc21EnAqqQP24kZP1dpq0xfpWmUv/xP0K7utPymLC/X0YF26fhz+8?= =?iso-8859-1?Q?q/l+Erp18NMOhryPhZCdryGhWTEXCoTRlaZq1qDkxalqSQ63KfoI/zrBj1?= =?iso-8859-1?Q?gIJn96tgaqj3b9OloSXIIserobrwAC9dOGy0x0fhV4k+Cik3ZSPWDnwDMU?= =?iso-8859-1?Q?cRPkTTbrJt77Ows1KRqAxyZu7vcxLlbxgYWOrMP9xHBaVc0/G8ZvAT2edS?= =?iso-8859-1?Q?P1qUQaFENDu3xt58p/wS//t+RxGgH8pRgFdVUloCAJCWEHkTC2bWf1oIkG?= =?iso-8859-1?Q?ytNM68T9fFuPVc9V1E/7+tmYdkignIIl8WnUf7B+MgtFYTIUjtI44zedo9?= =?iso-8859-1?Q?gyGVWROyb5mzVUmqAATemxa5Mc8cMIst0u9SIFNBNoLou7Z9is8+3wSQXM?= =?iso-8859-1?Q?F9c5Nkd1Hw7iORZ8//vJl7LAP9JHD8eWAbAQod9/915noYTrBOrGSujP0E?= =?iso-8859-1?Q?+EuCHw8KMOGrTcNtwbAyHaHBJFG4GE0FHGXp76HqURCQ9LA87U3uCPt6/x?= =?iso-8859-1?Q?6gIpB3BQ1x+tLjiDAcU/o323zJTF02ywhQ1E7+iFYTHJ6wf0HxnBOHCv//?= =?iso-8859-1?Q?O4OaOqVE+1VHDb+TUGqTQcQFXCQofm6cjBc1AbV2NjO4nPA=3D?= Content-Type: multipart/mixed; boundary="_004_CP8P284MB24969B39579E808F9F44CCF8EC4D2CP8P284MB2496BRAP_" 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: 33efc6fc-9497-4bf4-f775-08dc2e5ee392 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Feb 2024 19:47:05.9124 (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: CP5P284MB2135 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_CP8P284MB24969B39579E808F9F44CCF8EC4D2CP8P284MB2496BRAP_ Content-Type: multipart/alternative; boundary="_000_CP8P284MB24969B39579E808F9F44CCF8EC4D2CP8P284MB2496BRAP_" --_000_CP8P284MB24969B39579E808F9F44CCF8EC4D2CP8P284MB2496BRAP_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable >v14 applies cleanly and the SSL info is now shown as previously >suggested. Here is a more comprehensive test: > > >$ /usr/local/postgres-dev/bin/psql -x "\ > host=3Dserver.uni-muenster.de > hostaddr=3D172.19.42.1 > user=3Djim dbname=3Dpostgres > sslrootcert=3Dserver-certificates/server.crt > sslcert=3Djim-certificates/jim.crt > sslkey=3Djim-certificates/jim.key" > >psql (17devel) >SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, >compression: off) >Type "help" for help. > >postgres=3D# SET ROLE foo; >SET >postgres=3D> \conninfo+ >Current Connection Information >-[ RECORD 1 >]------+------------------------------------------------------------------= --------------------------------------------------------- >Database | postgres >Authenticated User | jim >System User | cert:emailAddress=3Djim@uni-muenster.de,CN=3Djim,OU= =3DWWU >IT,O=3DUniversitaet Muenster,L=3DMuenster,ST=3DNordrhein-Westfalen,C=3DDE >Current User | foo >Session User | jim >Backend PID | 278294 >Server Address | 172.19.42.1 >Server Port | 5432 >Client Address | 192.168.178.27 >Client Port | 54948 >Socket Directory | >Host | server.uni-muenster.de >Encryption | SSL >Protocol | TLSv1.3 >Cipher | TLS_AES_256_GCM_SHA384 >Compression | off > >postgres=3D> \conninfo >You are connected to database "postgres" as user "jim" on host >"server.uni-muenster.de" (address "127.0.0.1") at port "5432". >SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, >compression: off) >A little odd is that "Server Address" of \conninfo+ differs from >"address" of \conninfo... ----//---- Hi Jim! Tests performed on CentOS Linux 7. I made some further observations and concluded that there will be more cases where the "address" from \conninfo will differ from the "Server Address" from \conninfo+. Below is a more detailed example. The input of "hostaddr" or "host" in the psql call can be any pointing to "loopback local" and the connection will still be established. For example, all of these are accepted: Case (inet): psql -x --host 0 psql -x --host 0.0.0.0 psql -x hostaddr=3D0 psql -x hostaddr=3D0.0.0.0 All these examples will have "Server Address" =3D 127.0.0.1 Case (inet6): psql -x --host :: psql -x --host * (this entry is not accepted) psql -x --host \* psql -x --host "*" psql -x hostaddr=3D:: psql -x hostaddr=3D* All these examples will have "Server Address" =3D ::1 Thus, the inet_server_addr() function will return 127.0.0.1 or ::1 which in= some cases will differ from the "address" from \conninfo. [postgres@localhost bin]$ ./psql -x hostaddr=3D0 Password for user postgres: psql (17devel) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, com= pression: off) Type "help" for help. postgres=3D# SET ROLE maiquel; SET postgres=3D> \conninfo You are connected to database "postgres" as user "postgres" on host "0" (ad= dress "0.0.0.0") at port "5432". SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, com= pression: off) postgres=3D> \conninfo+ Current Connection Information -[ RECORD 1 ]------+---------------------------- Database | postgres Authenticated User | postgres System User | scram-sha-256:postgres Current User | maiquel Session User | postgres Backend PID | 15205 Server Address | 127.0.0.1 Server Port | 5432 Client Address | 127.0.0.1 Client Port | 57598 Socket Directory | Host | 0 Encryption | SSL Protocol | TLSv1.2 Cipher | ECDHE-RSA-AES256-GCM-SHA384 Compression | off postgres=3D> \q [postgres@localhost bin]$ ping 0.0.0.0 PING 0.0.0.0 (127.0.0.1) 56(84) bytes of data. 64 bytes from 127.0.0.1: icmp_seq=3D1 ttl=3D64 time=3D0.061 ms 64 bytes from 127.0.0.1: icmp_seq=3D2 ttl=3D64 time=3D0.069 ms 64 bytes from 127.0.0.1: icmp_seq=3D3 ttl=3D64 time=3D0.071 ms 64 bytes from 127.0.0.1: icmp_seq=3D4 ttl=3D64 time=3D0.107 ms ^C --- 0.0.0.0 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev =3D 0.061/0.077/0.107/0.017 ms As demonstrated above, "address" =3D 0.0.0.0 and "Server Address" =3D 127.0= .0.1 are divergent. In practice, these IPs are the "same", and the ping from the example proves= it. However, we are concerned here with the psql user, and this may seem confus= ing to them at first glance. I would like to propose a change in "address" so that it alwa= ys returns the same as "Server Address", that is, to use the inet_server_address() function in "ad= dress". Result: [postgres@localhost bin]$ ./psql -x hostaddr=3D0 psql (17devel) Type "help" for help. postgres=3D# \conninfo You are connected to database "postgres" as user "postgres" on host "0" (ad= dress "127.0.0.1") at port "5432". postgres=3D# \conninfo+ Current Connection Information -[ RECORD 1 ]------+---------- Database | postgres Authenticated User | postgres System User | Current User | postgres Session User | postgres Backend PID | 26859 Server Address | 127.0.0.1 Server Port | 5432 Client Address | 127.0.0.1 Client Port | 58254 Socket Directory | Host | 0 ----//---- >I think the documentation could add a little more info than just this: >> When no + is specified, it simply prints a textual description of a >>few connection options. When + is given, more complete information is >>displayed as a table. >Perhaps briefly mentioning the returned columns or simply listing them >would be IMHO a nice addition. For some users the semantics of >"Authenticated User", "System User", "Current User" and "Session User" >can be a little confusing. And yes, I realize the current documentation >of \conninfo is already a little vague :). Your suggestion was well received, and I'will made the adjustment to make the command description more comprehensive. Here is version v15 where I sought to correct 'Adress' to make it the same as 'Server Address'. Could you perform the same test and validate? Thank you so much! Maiquel Grassi. --_000_CP8P284MB24969B39579E808F9F44CCF8EC4D2CP8P284MB2496BRAP_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
>v14 applies cleanly and the SSL info is no= w shown as previously
>suggested. Here = is a more comprehensive test:
>
>
>$ /usr/local/pos= tgres-dev/bin/psql -x "\
>  &nbs= p; host=3Dserver.uni-muenster.de
>  &nbs= p; hostaddr=3D172.19.42.1
>  &nbs= p; user=3Djim dbname=3Dpostgres
>  &nbs= p; sslrootcert=3Dserver-certificates/server.crt
>  &nbs= p; sslcert=3Djim-certificates/jim.crt
>  &nbs= p; sslkey=3Djim-certificates/jim.key"
>   &nb= sp;
>psql (17devel)
>SSL connection (= protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384,
>compression: off= )
>Type "help&= quot; for help.
>
>postgres=3D# SET= ROLE foo;
>SET
>postgres=3D> = \conninfo+
>Current Connecti= on Information
>-[ RECORD 1
>]------+--------= ---------------------------------------------------------------------------= ----------------------------------------
>Database &n= bsp;         | postgres
>Authenticated Us= er | jim
>System User = ;       | cert:emailAddress=3Djim@uni-muenste= r.de,CN=3Djim,OU=3DWWU
>IT,O=3DUniversit= aet Muenster,L=3DMuenster,ST=3DNordrhein-Westfalen,C=3DDE
>Current User&nbs= p;      | foo
>Session User&nbs= p;      | jim
>Backend PID = ;       | 278294
>Server Address&n= bsp;    | 172.19.42.1
>Server Port = ;       | 5432
>Client Address&n= bsp;    | 192.168.178.27
>Client Port = ;       | 54948
>Socket Directory   |
>Host  =              | = server.uni-muenster.de
>Encryption =         | SSL
>Protocol &n= bsp;         | TLSv1.3
>Cipher &nbs= p;           | TLS_AES_25= 6_GCM_SHA384
>Compression = ;       | off
>
>postgres=3D> = \conninfo
>You are connecte= d to database "postgres" as user "jim" on host
>"server.uni= -muenster.de" (address "127.0.0.1") at port "5432"= .
>SSL connection (= protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384,
>compression: off)

>A little odd is that "Server Address" of \conninfo+ differs f= rom
>"address" of \conninfo...

----//----

Hi Jim!

Tests performed on CentOS Linux 7.

I made some further ob= servations and concluded that there will
be more cases where the "address" from \conninfo will differ from=
the "Server Address" from \conninfo+. Below is a more detailed ex= ample.

The input of "hostaddr" or "host" in the psql call can = be any pointing to
"loopback local" and the connection will still be established. Fo= r example,
all of these are accepted:


Case (inet):
psql -x --host 0
psql -x --host 0.0.0.0
psql -x hostaddr=3D0
psql -x hostaddr=3D0.0.0.0
All these examples will have "Server Address" =3D 127.0.0.1


Case (inet6):
psql -x --host ::
psql -x --host * (this entry is not accepted)
psql -x --host \*

psql -x --host "*= "
psql -x hostaddr=3D::
psql -x hostaddr=3D*
All these examples will have "Server Address" =3D ::1


Thus, the inet_server_addr() function will return 127.0.0.1 or ::1 which in= some cases will differ from the "address" from \conninfo.
=


[postgres@localhost bin]$ ./psql -x hostaddr=3D0

Password for user po= stgres:
psql (17devel)
SSL connection (prot= ocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, compression: off)
Type "help"= ; for help.

postgres=3D# SET ROL= E maiquel;
SET
postgres=3D> \con= ninfo
You are connected to= database "postgres" as user "postgres" on host "0= " (address "0.0.0.0") at port "5432".
SSL connection (prot= ocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, compression: off)
postgres=3D> \con= ninfo+
Current Connection I= nformation
-[ RECORD 1 ]------+----------------------------
Database   &nbs= p;       | postgres
Authenticated User |= postgres
System User   &= nbsp;    | scram-sha-256:postgres
Current User   =     | maiquel
Session User   =     | postgres
Backend PID   &= nbsp;    | 15205
Server Address  = ;   | 127.0.0.1
Server Port   &= nbsp;    | 5432
Client Address     | 127.0.0.1
Client Port   &= nbsp;    | 57598
Socket Directory &nb= sp; |
Host     &= nbsp;         | 0
Encryption   &n= bsp;     | SSL
Protocol   &nbs= p;       | TLSv1.2
Cipher    =         | ECDHE-RSA-AES256-GCM-SHA384
Compression   &= nbsp;    | off

postgres=3D> \q
[postgres@localhost = bin]$ ping 0.0.0.0
PING 0.0.0.0 (127.0.= 0.1) 56(84) bytes of data.
64 bytes from 127.0.= 0.1: icmp_seq=3D1 ttl=3D64 time=3D0.061 ms
64 bytes from 127.0.= 0.1: icmp_seq=3D2 ttl=3D64 time=3D0.069 ms
64 bytes from 127.0.= 0.1: icmp_seq=3D3 ttl=3D64 time=3D0.071 ms
64 bytes from 127.0.= 0.1: icmp_seq=3D4 ttl=3D64 time=3D0.107 ms
^C
--- 0.0.0.0 ping sta= tistics ---
4 packets transmitte= d, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev= =3D 0.061/0.077/0.107/0.017 ms


As demonstrated above, "address" =3D 0.0.0.0 and "Server Add= ress" =3D 127.0.0.1 are divergent.

In practice, these IPs are the "same", and the pin= g from the example proves it.

However, we are concerned here with the psql user, and this may seem con= fusing to them at
first glance. I would like to propose a change in "address" so th= at it always returns the same as
"Server Address", that is, to use the inet_server_address() funct= ion in "address".

Result:

[postgres@localhost bin]$ ./psql -x hostaddr=3D0

psql (17devel)
Type "help" for help.

postgres=3D# \conninfo
You are connected to database "postgres&q= uot; as user "postgres" on host "0" (address "127.= 0.0.1") at port "5432".
postgres=3D# \conninfo+
Current Connection Information
-[ RECORD 1 ]------+----------
Database           | = postgres
Authenticated User | postgres
System User        |
Current User       | postgres
Session User       | postgres
Backend PID        | 26859=
Server Address     | 127.0.0.1
Server Port        | 5432<= /span>
Client Address     | 127.0.0.1
Client Port        | 58254=
Socket Directory   |
Host     &n= bsp;         | 0

----//----

>I think the documentation could add a little more info than just this:<= br>
>> When no + is specified, it simply prints a textual description of = a
>>few connection options. When + is given, more complete information = is
>>displayed as a table.

>Perhaps briefly mentioning the returned columns or simply listing them<= br> >would be IMHO a nice addition. For some users the semantics of
>"Authenticated User", "System User", "Current = User" and "Session User"
>can be a little confusing. And yes, I realize the current documentation=
>of \conninfo is already a little vague :).

Your suggestion was well received, and I'will made the adjustment to make the command description more comprehensive.

Here is version v15 where I sought to correct 'Adress' to make it the same<= br> as 'Server Address'.

Could you perform the same test and validate?

Thank you so much!
Maiquel Grassi.
--_000_CP8P284MB24969B39579E808F9F44CCF8EC4D2CP8P284MB2496BRAP_-- --_004_CP8P284MB24969B39579E808F9F44CCF8EC4D2CP8P284MB2496BRAP_ Content-Type: application/octet-stream; name="v15-0001-psql-meta-command-conninfo-plus.patch" Content-Description: v15-0001-psql-meta-command-conninfo-plus.patch Content-Disposition: attachment; filename="v15-0001-psql-meta-command-conninfo-plus.patch"; size=9878; creation-date="Thu, 15 Feb 2024 19:39:18 GMT"; modification-date="Thu, 15 Feb 2024 19:39:28 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCBjYzdkNzk3Li40ZTg2YWQ5IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3Fs LXJlZi5zZ21sCkBAIC0xMDI5LDEwICsxMDI5LDE0IEBAIElOU0VSVCBJTlRPIHRibDEgVkFMVUVT ICgkMSwgJDIpIFxiaW5kICdmaXJzdCB2YWx1ZScgJ3NlY29uZCB2YWx1ZScgXGcKICAgICAgIDwv dmFybGlzdGVudHJ5PgogCiAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNv bW1hbmQtY29ubmluZm8iPgotICAgICAgICA8dGVybT48bGl0ZXJhbD5cY29ubmluZm88L2xpdGVy YWw+PC90ZXJtPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5cY29ubmluZm9bK108L2xpdGVyYWw+ PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgIDxwYXJhPgogICAgICAgICBPdXRw dXRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IGRhdGFiYXNlIGNvbm5lY3Rpb24uCisg ICAgICAgIFdoZW4gbm8gPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCBpdCBzaW1w bHkgcHJpbnRzCisgICAgICAgIGEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiBhIGZldyBjb25uZWN0 aW9uIG9wdGlvbnMuCisgICAgICAgIFdoZW4gPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgZ2l2ZW4s IG1vcmUgY29tcGxldGUgaW5mb3JtYXRpb24KKyAgICAgICAgaXMgZGlzcGxheWVkIGFzIGEgdGFi bGUuCiAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlz dGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9iaW4vcHNx bC9jb21tYW5kLmMKaW5kZXggNWM5MDZlNC4uYWY2OWI3NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w c3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC02OCw3ICs2OCw4 IEBAIHN0YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX0MoUHNxbFNjYW5TdGF0ZSBz Y2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuCiBzdGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNf Y29tbWFuZF9jb25uZWN0KFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJh bmNoKTsKIHN0YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX2NkKFBzcWxTY2FuU3Rh dGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLAogCQkJCQkJCQkJICAgY29uc3QgY2hh ciAqY21kKTsKLXN0YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX2Nvbm5pbmZvKFBz cWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoKTsKK3N0YXRpYyBiYWNr c2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX2Nvbm5pbmZvKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0 ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLAorCQkJCQkJCQkJCQkgY29uc3QgY2hhciAqY21kKTsKIHN0 YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX2NvcHkoUHNxbFNjYW5TdGF0ZSBzY2Fu X3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gpOwogc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVj X2NvbW1hbmRfY29weXJpZ2h0KFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVf YnJhbmNoKTsKIHN0YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX2Nyb3NzdGFidmll dyhQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCk7CkBAIC0zMTcs OCArMzE4LDggQEAgZXhlY19jb21tYW5kKGNvbnN0IGNoYXIgKmNtZCwKIAkJc3RhdHVzID0gZXhl Y19jb21tYW5kX2Nvbm5lY3Qoc2Nhbl9zdGF0ZSwgYWN0aXZlX2JyYW5jaCk7CiAJZWxzZSBpZiAo c3RyY21wKGNtZCwgImNkIikgPT0gMCkKIAkJc3RhdHVzID0gZXhlY19jb21tYW5kX2NkKHNjYW5f c3RhdGUsIGFjdGl2ZV9icmFuY2gsIGNtZCk7Ci0JZWxzZSBpZiAoc3RyY21wKGNtZCwgImNvbm5p bmZvIikgPT0gMCkKLQkJc3RhdHVzID0gZXhlY19jb21tYW5kX2Nvbm5pbmZvKHNjYW5fc3RhdGUs IGFjdGl2ZV9icmFuY2gpOworCWVsc2UgaWYgKHN0cmNtcChjbWQsICJjb25uaW5mbyIpID09IDAg fHwgc3RyY21wKGNtZCwgImNvbm5pbmZvKyIpID09IDApCisJCXN0YXR1cyA9IGV4ZWNfY29tbWFu ZF9jb25uaW5mbyhzY2FuX3N0YXRlLCBhY3RpdmVfYnJhbmNoLCBjbWQpOwogCWVsc2UgaWYgKHBn X3N0cmNhc2VjbXAoY21kLCAiY29weSIpID09IDApCiAJCXN0YXR1cyA9IGV4ZWNfY29tbWFuZF9j b3B5KHNjYW5fc3RhdGUsIGFjdGl2ZV9icmFuY2gpOwogCWVsc2UgaWYgKHN0cmNtcChjbWQsICJj b3B5cmlnaHQiKSA9PSAwKQpAQCAtNjQzLDQ3ICs2NDQsNzUgQEAgZXhlY19jb21tYW5kX2NkKFBz cWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25zdCBjaGFyICpj bWQpCiB9CiAKIC8qCi0gKiBcY29ubmluZm8gLS0gZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgY3VycmVudCBjb25uZWN0aW9uCisgKiBcY29ubmluZm8sIFxjb25uaW5mbysgLS0gZGlzcGxh eSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBjb25uZWN0aW9uCiAgKi8KIHN0YXRpYyBi YWNrc2xhc2hSZXN1bHQKLWV4ZWNfY29tbWFuZF9jb25uaW5mbyhQc3FsU2NhblN0YXRlIHNjYW5f c3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCkKK2V4ZWNfY29tbWFuZF9jb25uaW5mbyhQc3FsU2Nh blN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQog eworCWJvb2wJCXN1Y2Nlc3MgPSB0cnVlOworCiAJaWYgKGFjdGl2ZV9icmFuY2gpCiAJewogCQlj aGFyCSAgICpkYiA9IFBRZGIocHNldC5kYik7CisJCWJvb2wJCXNob3dfdmVyYm9zZTsKKworCQlz aG93X3ZlcmJvc2UgPSBzdHJjaHIoY21kLCAnKycpID8gdHJ1ZSA6IGZhbHNlOworCisJCS8qCisJ CSAqIFxjb25uaW5mbysKKwkJICovCisJCWlmIChzaG93X3ZlcmJvc2UpCisJCQlzdWNjZXNzID0g bGlzdENvbm5lY3Rpb25JbmZvcm1hdGlvbigpOwogCi0JCWlmIChkYiA9PSBOVUxMKQotCQkJcHJp bnRmKF8oIllvdSBhcmUgY3VycmVudGx5IG5vdCBjb25uZWN0ZWQgdG8gYSBkYXRhYmFzZS5cbiIp KTsKKwkJLyoKKwkJICogXGNvbm5pbmZvCisJCSAqLwogCQllbHNlCiAJCXsKLQkJCWNoYXIJICAg Kmhvc3QgPSBQUWhvc3QocHNldC5kYik7Ci0JCQljaGFyCSAgICpob3N0YWRkciA9IFBRaG9zdGFk ZHIocHNldC5kYik7CisJCQlQR3Jlc3VsdCAgICpyZXM7CisJCQlQUUV4cEJ1ZmZlckRhdGEgYnVm OwogCi0JCQlpZiAoaXNfdW5peHNvY2tfcGF0aChob3N0KSkKLQkJCXsKLQkJCQkvKiBob3N0YWRk ciBvdmVycmlkZXMgaG9zdCAqLwotCQkJCWlmIChob3N0YWRkciAmJiAqaG9zdGFkZHIpCi0JCQkJ CXByaW50ZihfKCJZb3UgYXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMgdXNlciBc IiVzXCIgb24gYWRkcmVzcyBcIiVzXCIgYXQgcG9ydCBcIiVzXCIuXG4iKSwKLQkJCQkJCSAgIGRi LCBQUXVzZXIocHNldC5kYiksIGhvc3RhZGRyLCBQUXBvcnQocHNldC5kYikpOwotCQkJCWVsc2UK LQkJCQkJcHJpbnRmKF8oIllvdSBhcmUgY29ubmVjdGVkIHRvIGRhdGFiYXNlIFwiJXNcIiBhcyB1 c2VyIFwiJXNcIiB2aWEgc29ja2V0IGluIFwiJXNcIiBhdCBwb3J0IFwiJXNcIi5cbiIpLAotCQkJ CQkJICAgZGIsIFBRdXNlcihwc2V0LmRiKSwgaG9zdCwgUFFwb3J0KHBzZXQuZGIpKTsKLQkJCX0K KwkJCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKwkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsICJT RUxFQ1QgaW5ldF9zZXJ2ZXJfYWRkcigpOyIpOworCQkJcmVzID0gUFNRTGV4ZWMoYnVmLmRhdGEp OworCQkJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCisJCQlpZiAoIXJlcykKKwkJCQlyZXR1cm4g UFNRTF9DTURfRVJST1I7CiAJCQllbHNlCiAJCQl7Ci0JCQkJaWYgKGhvc3RhZGRyICYmICpob3N0 YWRkciAmJiBzdHJjbXAoaG9zdCwgaG9zdGFkZHIpICE9IDApCi0JCQkJCXByaW50ZihfKCJZb3Ug YXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMgdXNlciBcIiVzXCIgb24gaG9zdCBc IiVzXCIgKGFkZHJlc3MgXCIlc1wiKSBhdCBwb3J0IFwiJXNcIi5cbiIpLAotCQkJCQkJICAgZGIs IFBRdXNlcihwc2V0LmRiKSwgaG9zdCwgaG9zdGFkZHIsIFBRcG9ydChwc2V0LmRiKSk7CisJCQkJ Y2hhcgkgICAqaG9zdCA9IFBRaG9zdChwc2V0LmRiKTsKKwkJCQljaGFyCSAgICpob3N0YWRkciA9 IFBRaG9zdGFkZHIocHNldC5kYik7CisKKwkJCQlpZiAoaXNfdW5peHNvY2tfcGF0aChob3N0KSkK KwkJCQl7CisJCQkJCS8qIGhvc3RhZGRyIG92ZXJyaWRlcyBob3N0ICovCisJCQkJCWlmIChob3N0 YWRkciAmJiAqaG9zdGFkZHIpCisJCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8g ZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIgXCIlc1wiIG9uIGFkZHJlc3MgXCIlc1wiIGF0IHBvcnQg XCIlc1wiLlxuIiksCisJCQkJCQkJICAgZGIsIFBRdXNlcihwc2V0LmRiKSwgUFFnZXR2YWx1ZShy ZXMsIDAsIDApLCBQUXBvcnQocHNldC5kYikpOworCQkJCQllbHNlCisJCQkJCQlwcmludGYoXygi WW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIgXCIlc1wiIHZpYSBz b2NrZXQgaW4gXCIlc1wiIGF0IHBvcnQgXCIlc1wiLlxuIiksCisJCQkJCQkJICAgZGIsIFBRdXNl cihwc2V0LmRiKSwgaG9zdCwgUFFwb3J0KHBzZXQuZGIpKTsKKwkJCQl9CiAJCQkJZWxzZQotCQkJ CQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIg XCIlc1wiIG9uIGhvc3QgXCIlc1wiIGF0IHBvcnQgXCIlc1wiLlxuIiksCi0JCQkJCQkgICBkYiwg UFF1c2VyKHBzZXQuZGIpLCBob3N0LCBQUXBvcnQocHNldC5kYikpOworCQkJCXsKKwkJCQkJaWYg KGhvc3RhZGRyICYmICpob3N0YWRkciAmJiBzdHJjbXAoaG9zdCwgaG9zdGFkZHIpICE9IDApCisJ CQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wiIGFzIHVz ZXIgXCIlc1wiIG9uIGhvc3QgXCIlc1wiIChhZGRyZXNzIFwiJXNcIikgYXQgcG9ydCBcIiVzXCIu XG4iKSwKKwkJCQkJCQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0LCBQUWdldHZhbHVlKHJl cywgMCwgMCksIFBRcG9ydChwc2V0LmRiKSk7CisJCQkJCWVsc2UKKwkJCQkJCXByaW50ZihfKCJZ b3UgYXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMgdXNlciBcIiVzXCIgb24gaG9z dCBcIiVzXCIgYXQgcG9ydCBcIiVzXCIuXG4iKSwKKwkJCQkJCQkgICBkYiwgUFF1c2VyKHBzZXQu ZGIpLCBob3N0LCBQUXBvcnQocHNldC5kYikpOworCQkJCX0KKwkJCQlQUWNsZWFyKHJlcyk7CisJ CQkJcHJpbnRTU0xJbmZvKCk7CisJCQkJcHJpbnRHU1NJbmZvKCk7CiAJCQl9Ci0JCQlwcmludFNT TEluZm8oKTsKLQkJCXByaW50R1NTSW5mbygpOwogCQl9CiAJfQorCWVsc2UKKwkJaWdub3JlX3Ns YXNoX29wdGlvbnMoc2Nhbl9zdGF0ZSk7CiAKLQlyZXR1cm4gUFNRTF9DTURfU0tJUF9MSU5FOwor CXJldHVybiBzdWNjZXNzID8gUFNRTF9DTURfU0tJUF9MSU5FIDogUFNRTF9DTURfRVJST1I7CiB9 CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCmluZGV4IGI2YTRlYjEuLjJlZjNkYjAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0yNiw2ICsy Niw3IEBACiAjaW5jbHVkZSAiZmVfdXRpbHMvbWJwcmludC5oIgogI2luY2x1ZGUgImZlX3V0aWxz L3ByaW50LmgiCiAjaW5jbHVkZSAiZmVfdXRpbHMvc3RyaW5nX3V0aWxzLmgiCisjaW5jbHVkZSAi bGlicHEvcHFjb21tLmgiCiAjaW5jbHVkZSAic2V0dGluZ3MuaCIKICNpbmNsdWRlICJ2YXJpYWJs ZXMuaCIKIApAQCAtOTAxLDYgKzkwMiw5MSBAQCBlcnJvcl9yZXR1cm46CiAJcmV0dXJuIGZhbHNl OwogfQogCisvKgorICogbGlzdENvbm5lY3Rpb25JbmZvcm1hdGlvbgorICoKKyAqIGZvciBcY29u bmluZm8rCisgKi8KK2Jvb2wKK2xpc3RDb25uZWN0aW9uSW5mb3JtYXRpb24odm9pZCkKK3sKKwlQ R3Jlc3VsdCAgICpyZXM7CisJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKKwlwcmludFF1ZXJ5T3B0IG15 b3B0ID0gcHNldC5wb3B0OworCisJY2hhcgkgICAqaG9zdCA9IFBRaG9zdChwc2V0LmRiKTsKKwlj aGFyCSAgICpob3N0YWRkciA9IFBRaG9zdGFkZHIocHNldC5kYik7CisJY29uc3QgY2hhciAqcHJv dG9jb2w7CisJY29uc3QgY2hhciAqY2lwaGVyOworCWNvbnN0IGNoYXIgKmNvbXByZXNzaW9uOwor CisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJ CQkJICAiU0VMRUNUXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5jdXJyZW50X2RhdGFiYXNlKCkg QVMgXCJEYXRhYmFzZVwiLFxuIgorCQkJCQkgICIgICclcycgQVMgXCJBdXRoZW50aWNhdGVkIFVz ZXJcIixcbiIsCisJCQkJCSAgUFF1c2VyKHBzZXQuZGIpKTsKKwlpZiAocHNldC5zdmVyc2lvbiA+ PSAxNjAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIgIHBnX2NhdGFs b2cuc3lzdGVtX3VzZXIoKSBBUyBcIlN5c3RlbSBVc2VyXCIsXG4iKTsKKwlhcHBlbmRQUUV4cEJ1 ZmZlcigmYnVmLAorCQkJCQkgICIgIHBnX2NhdGFsb2cuY3VycmVudF91c2VyKCkgQVMgXCJDdXJy ZW50IFVzZXJcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnNlc3Npb25fdXNlcigpIEFTIFwi U2Vzc2lvbiBVc2VyXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19iYWNrZW5kX3BpZCgp IEFTIFwiQmFja2VuZCBQSURcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLmluZXRfc2VydmVy X2FkZHIoKSBBUyBcIlNlcnZlciBBZGRyZXNzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5j dXJyZW50X3NldHRpbmcoJ3BvcnQnKSBBUyBcIlNlcnZlciBQb3J0XCIsXG4iCisJCQkJCSAgIiAg cGdfY2F0YWxvZy5pbmV0X2NsaWVudF9hZGRyKCkgQVMgXCJDbGllbnQgQWRkcmVzc1wiLFxuIgor CQkJCQkgICIgIHBnX2NhdGFsb2cuaW5ldF9jbGllbnRfcG9ydCgpIEFTIFwiQ2xpZW50IFBvcnRc IixcbiIpOworCWlmIChpc191bml4c29ja19wYXRoKGhvc3QpICYmICEoaG9zdGFkZHIgJiYgKmhv c3RhZGRyKSkKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIiAgJyVzJyBBUyBc IlNvY2tldCBEaXJlY3RvcnlcIixcbiIsCisJCQkJCQkgIGhvc3QpOworCWVsc2UKKwkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIiAgTlVMTCBBUyBcIlNvY2tldCBEaXJlY3Rvcnlc IixcbiIpOworCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCSAgIiAgQ0FTRVxuIgorCQkJ CQkgICIgICAgV0hFTlxuIgorCQkJCQkgICIgICAgICBwZ19jYXRhbG9nLmluZXRfc2VydmVyX2Fk ZHIoKSBJUyBOVUxMXG4iCisJCQkJCSAgIiAgICAgIEFORCBwZ19jYXRhbG9nLmluZXRfY2xpZW50 X2FkZHIoKSBJUyBOVUxMXG4iCisJCQkJCSAgIiAgICBUSEVOIE5VTExcbiIKKwkJCQkJICAiICAg IEVMU0UgJyVzJ1xuIgorCQkJCQkgICIgIEVORCBBUyBcIkhvc3RcIlxuIiwKKwkJCQkJICBob3N0 KTsKKwlpZiAoUFFzc2xJblVzZShwc2V0LmRiKSkKKwl7CisJCXByb3RvY29sID0gUFFzc2xBdHRy aWJ1dGUocHNldC5kYiwgInByb3RvY29sIik7CisJCWNpcGhlciA9IFBRc3NsQXR0cmlidXRlKHBz ZXQuZGIsICJjaXBoZXIiKTsKKwkJY29tcHJlc3Npb24gPSBQUXNzbEF0dHJpYnV0ZShwc2V0LmRi LCAiY29tcHJlc3Npb24iKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIiAg LCdTU0wnIEFTIFwiRW5jcnlwdGlvblwiLFxuIgorCQkJCQkJICAiICAnJXMnIEFTIFwiUHJvdG9j b2xcIixcbiIKKwkJCQkJCSAgIiAgJyVzJyBBUyBcIkNpcGhlclwiLFxuIgorCQkJCQkJICAiICAn JXMnIEFTIFwiQ29tcHJlc3Npb25cIlxuIiwKKwkJCQkJCSAgcHJvdG9jb2wgPyBwcm90b2NvbCA6 IF8oInVua25vd24iKSwKKwkJCQkJCSAgY2lwaGVyID8gY2lwaGVyIDogXygidW5rbm93biIpLAor CQkJCQkJICAoY29tcHJlc3Npb24gJiYgc3RyY21wKGNvbXByZXNzaW9uLCAib2ZmIikgIT0gMCkg PyBfKCJvbiIpIDogXygib2ZmIikpOworCX0KKwlpZiAoUFFnc3NFbmNJblVzZShwc2V0LmRiKSkK KwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIiAgLCdHU1NBUEknIEFTIFwiRW5j cnlwdGlvblwiXG4iKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICIgIDsiKTsK KworCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJ aWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCW15b3B0LnRpdGxlID0gXygiQ3VycmVudCBD b25uZWN0aW9uIEluZm9ybWF0aW9uIik7CisJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7 CisKKwlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQu bG9nZmlsZSk7CisKKwlQUWNsZWFyKHJlcyk7CisJcmV0dXJuIHRydWU7Cit9CiAKIC8qCiAgKiBs aXN0QWxsRGJzCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaCBiL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5oCmluZGV4IDI3M2Y5NzQuLjhhNGU4M2YgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5oCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCkBAIC02NCw2 ICs2NCw5IEBAIGV4dGVybiBib29sIGxpc3RUU0RpY3Rpb25hcmllcyhjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHZlcmJvc2UpOwogLyogXGRGdCAqLwogZXh0ZXJuIGJvb2wgbGlzdFRTVGVtcGxh dGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSk7CiAKKy8qIFxjb25uaW5mbyAq LworZXh0ZXJuIGJvb2wgbGlzdENvbm5lY3Rpb25JbmZvcm1hdGlvbih2b2lkKTsKKwogLyogXGwg Ki8KIGV4dGVybiBib29sIGxpc3RBbGxEYnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJi b3NlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2hlbHAuYyBiL3NyYy9iaW4vcHNxbC9o ZWxwLmMKaW5kZXggNGU3OWE4MS4uMmM1NDI2ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2hl bHAuYworKysgYi9zcmMvYmluL3BzcWwvaGVscC5jCkBAIC0zMTAsNyArMzEwLDcgQEAgc2xhc2hV c2FnZSh1bnNpZ25lZCBzaG9ydCBpbnQgcGFnZXIpCiAJZWxzZQogCQlIRUxQMCgiICBcXGNbb25u ZWN0XSB7W0RCTkFNRXwtIFVTRVJ8LSBIT1NUfC0gUE9SVHwtXSB8IGNvbm5pbmZvfVxuIgogCQkJ ICAiICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3QgdG8gbmV3IGRhdGFiYXNlIChjdXJy ZW50bHkgbm8gY29ubmVjdGlvbilcbiIpOwotCUhFTFAwKCIgIFxcY29ubmluZm8gICAgICAgICAg ICAgIGRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgY3VycmVudCBjb25uZWN0aW9uXG4iKTsKKwlI RUxQMCgiICBcXGNvbm5pbmZvWytdICAgICAgICAgICBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0 IGN1cnJlbnQgY29ubmVjdGlvblxuIik7CiAJSEVMUDAoIiAgXFxlbmNvZGluZyBbRU5DT0RJTkdd ICAgc2hvdyBvciBzZXQgY2xpZW50IGVuY29kaW5nXG4iKTsKIAlIRUxQMCgiICBcXHBhc3N3b3Jk IFtVU0VSTkFNRV0gICBzZWN1cmVseSBjaGFuZ2UgdGhlIHBhc3N3b3JkIGZvciBhIHVzZXJcbiIp OwogCUhFTFAwKCJcbiIpOwo= --_004_CP8P284MB24969B39579E808F9F44CCF8EC4D2CP8P284MB2496BRAP_--