about summary refs log tree commit homepage
path: root/listen_parser_common.rl
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-04-14 00:50:12 +0000
committerEric Wong <normalperson@yhbt.net>2013-04-17 03:12:41 +0000
commit449b85daa42cae1b9542a26e6dd52a1db38cce93 (patch)
tree2a564e54d517beb5e1f3515d2f71b829f4dc6a87 /listen_parser_common.rl
parent29342bcd9864e4aabb9e6febef8748a5f51ac944 (diff)
downloadcmogstored-449b85daa42cae1b9542a26e6dd52a1db38cce93.tar.gz
MogileFS currently does not support IPv6, but maybe one day
it will.  When it does, we'll be ready.
Diffstat (limited to 'listen_parser_common.rl')
-rw-r--r--listen_parser_common.rl14
1 files changed, 11 insertions, 3 deletions
diff --git a/listen_parser_common.rl b/listen_parser_common.rl
index 17b1933..ffb260b 100644
--- a/listen_parser_common.rl
+++ b/listen_parser_common.rl
@@ -7,12 +7,20 @@
 
         ipv4 = (digit+ '.' digit+ '.' digit+ '.' digit+)
                 > { mark_beg = fpc; }
-                @ { mark_len = fpc - mark_beg + 1; };
+                @ {
+                        mark_len = fpc - mark_beg + 1;
+                        sa_family = AF_INET;
+                };
+        ipv6 = '['
+                        ((xdigit|':')+)
+                        > { mark_beg = fpc; }
+                        @ { mark_len = fpc - mark_beg + 1; }
+                ']' @ { sa_family = AF_INET6; };
         port = (digit+)
                 > { port_beg = fpc; }
                 @ { port_len = fpc - port_beg + 1; };
 
-        listen = (((ipv4)? ':')? port ) $! {
-                syslog(LOG_ERR, "bad character in IPv4 address: %c", fc);
+        listen = (((ipv4|ipv6)? ':')? port ) $! {
+                syslog(LOG_ERR, "bad character in IP address: %c", fc);
         };
 }%%