From a6ef7a56a99d84d7279ebbdc24585f0aece8a3d5 Mon Sep 17 00:00:00 2001 From: Dimitri Fontaine Date: Sat, 10 Nov 2018 21:01:30 +0100 Subject: [PATCH] Implement ipv6 hostname support in .pgpass rules. An hostname could be written [::1] in .pgass, without having to escape the colon characters, and with a proper enclosing in square brackets, as common for ipv6 addresses. Fixes #837. --- src/parsers/parse-pgpass.lisp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/parsers/parse-pgpass.lisp b/src/parsers/parse-pgpass.lisp index 82efbee..5f62aba 100644 --- a/src/parsers/parse-pgpass.lisp +++ b/src/parsers/parse-pgpass.lisp @@ -14,8 +14,14 @@ (defrule pgpass-escaped-char (and #\\ (or #\\ #\:)) (:lambda (c) (second c))) +(defrule pgpass-ipv6-hostname (and #\[ + (+ (or (digit-char-p character) ":")) + #\]) + (:lambda (ipv6) (text (second ipv6)))) + (defrule pgpass-entry (or "*" - (+ (or pgpass-escaped-char + (+ (or pgpass-ipv6-hostname + pgpass-escaped-char (pgpass-char-p character)))) (:lambda (e) (text e)))