Re: fix psql \conninfo & \connect when using hostaddr - Mailing list pgsql-hackers
From | Alvaro Herrera |
---|---|
Subject | Re: fix psql \conninfo & \connect when using hostaddr |
Date | |
Msg-id | 20181117125042.cmagk6izbfyvfw3d@alvherre.pgsql Whole thread Raw |
In response to | fix psql \conninfo & \connect when using hostaddr (Fabien COELHO <coelho@cri.ensmp.fr>) |
Responses |
Re: fix psql \conninfo & \connect when using hostaddr
|
List | pgsql-hackers |
Looks good to me, save that I would change the API of getHostaddr() to this: /* ---------- * getHostaddr - * Fills 'host_addr' with the string representation of the currently connected * socket in 'conn'. * ---------- */ static void getHostaddr(PGconn *conn, char *host_addr, int host_addr_len) (Trying to pass arrays as such to C functions is a lost cause -- just a documentation aid at best, and a source of confusion and crashes at worst.) I tried to see about overflowing the NI_MAXHOST length with a long socket dir, but that doesn't actually work, though the first line of error here is a bit surprising: LC_ALL=C psql "host="\'"`pwd`"\'"" could not identify current directory: Numerical result out of range psql: Unix-domain socket path "/tmp/En un lugar de la Mancha_ de cuyo nombre no quiero acordarme_ no ha mucho tiempo quevivía un hidalgo de los de lanza en astillero_ adarga antigua_ rocín flaco y galgo corredor./Una olla de algo más vacaque carnero_ salpicón las más noches_ duelos y quebrantos los sábados_ lentejas los viernes_ algún palomino de añadiduralos domingos_ consumían las tres partes de su hacienda./El resto della concluían sayo de velarte_ calzas de velludopara las fiestas con sus pantuflos de lo mismo_ los días de entre semana se honraba con su vellori de lo más fino./Teníaen su casa una ama que pasaba de los cuarenta_ y una sobrina que no llegaba a los veinte_ y un mozo de campo yplaza_ que así ensillaba el rocín como tomaba la podadera./Frisaba la edad de nuestro hidalgo con los cincuenta años_ erade complexión recia_ seco de carnes_ enjuto de rostro; gran madrugador y amigo de la caza./Quieren decir que tenía elsobrenombre de Quijada o Quesada (que en esto hay alguna diferencia en los autores que " is too long (maximum 107 bytes) This is after I replaced all the , to _, because the original was even more fun: LC_ALL=C psql "host="\'"`pwd`"\'"" could not identify current directory: Numerical result out of range psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/En un lugar de la Mancha/.s.PGSQL.55432"? could not translate host name " de cuyo nombre no quiero acordarme" to address: Name or service not known could not translate host name " no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero" to address: Name orservice not known could not translate host name " adarga antigua" to address: Name or service not known could not translate host name " rocín flaco y galgo corredor./Una olla de algo más vaca que carnero" to address: Name orservice not known could not translate host name " salpicón las más noches" to address: Name or service not known could not translate host name " duelos y quebrantos los sábados" to address: Name or service not known could not translate host name " lentejas los viernes" to address: Name or service not known could not translate host name " algún palomino de añadidura los domingos" to address: Name or service not known could not translate host name " consumían las tres partes de su hacienda./El resto della concluían sayo de velarte" to address:Name or service not known could not translate host name " calzas de velludo para las fiestas con sus pantuflos de lo mismo" to address: Name or servicenot known could not translate host name " los días de entre semana se honraba con su vellori de lo más fino./Tenía en su casa una amaque pasaba de los cuarenta" to address: Name or service not known could not translate host name " y una sobrina que no llegaba a los veinte" to address: Name or service not known could not translate host name " y un mozo de campo y plaza" to address: Name or service not known could not translate host name " que así ensillaba el rocín como tomaba la podadera./Frisaba la edad de nuestro hidalgo conlos cincuenta años" to address: Name or service not known could not translate host name " era de complexión recia" to address: Name or service not known could not translate host name " seco de carnes" to address: Name or service not known could not translate host name " enjuto de rostro; gran madrugador y amigo de la caza./Quieren decir que tenía el sobrenombrede Quijada o Quesada (que en esto hay alguna diferencia en los autores que deste caso escriben)" to address: Nameor service not known could not translate host name " aunque por conjeturas verosímiles se deja entender que se llama Quijana;/pero esto importapoco a nuestro cuento; basta que en la narración dél no se salga un punto de la verdad." to address: Name or servicenot known Funky test cases aside, I verified that giving hostaddr behaves better with the patch. This is unpatched: $ LC_ALL=C psql "host="\'"`pwd`"\'" hostaddr=::1" psql (12devel, server 11.1) Type "help" for help. 55442 12devel 879890=# \conninfo You are connected to database "alvherre" as user "alvherre" via socket in "/tmp/En un lugar de la Mancha_ de cuyo nombreno quiero acordarme_ no ha mucho tiempo" at port "55442". and this is patched: $ LC_ALL=C psql "host="\'"`pwd`"\'" hostaddr=::1" psql (12devel, server 11.1) Type "help" for help. 55442 12devel 881754=# \conninfo You are connected to database "alvherre" as user "alvherre" on address "::1" at port "55442". -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
pgsql-hackers by date: