summaryrefslogtreecommitdiff
path: root/conf/cf-lex.l
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2014-10-24 11:11:43 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2014-10-24 11:11:43 +0200
commit88a183c6c9a2b86b52f67e87bbc8b7edd32670c6 (patch)
treeb1348b71e69f9ed0d919a4792549026c9e31b092 /conf/cf-lex.l
parentf8fefde318c6248ad94e7b6d60155deed9ab8eed (diff)
Integrated IP functions.
Diffstat (limited to 'conf/cf-lex.l')
-rw-r--r--conf/cf-lex.l18
1 files changed, 10 insertions, 8 deletions
diff --git a/conf/cf-lex.l b/conf/cf-lex.l
index 35b590bb..b3e13311 100644
--- a/conf/cf-lex.l
+++ b/conf/cf-lex.l
@@ -124,22 +124,24 @@ include ^{WHITE}*include{WHITE}*\".*\"{WHITE}*;
}
{DIGIT}+\.{DIGIT}+\.{DIGIT}+\.{DIGIT}+ {
+ ip4_addr a;
+ if (!ip4_pton(yytext, &a))
+ cf_error("Invalid IPv4 address %s", yytext);
+
#ifdef IPV6
- if (ipv4_pton_u32(yytext, &cf_lval.i32))
- return RTRID;
- cf_error("Invalid IPv4 address %s", yytext);
+ cf_lval.i32 = ip4_to_u32(a);
+ return RTRID;
#else
- if (ip_pton(yytext, &cf_lval.a))
- return IPA;
- cf_error("Invalid IP address %s", yytext);
+ cf_lval.a = ipa_from_ip4(a);
+ return IPA;
#endif
}
({XIGIT}*::|({XIGIT}*:){3,})({XIGIT}*|{DIGIT}+\.{DIGIT}+\.{DIGIT}+\.{DIGIT}+) {
#ifdef IPV6
- if (ip_pton(yytext, &cf_lval.a))
+ if (ipa_pton(yytext, &cf_lval.a))
return IPA;
- cf_error("Invalid IP address %s", yytext);
+ cf_error("Invalid IPv6 address %s", yytext);
#else
cf_error("This is an IPv4 router, therefore IPv6 addresses are not supported");
#endif