*/
if ((c->data.map->lhs->type == TMPL_TYPE_ATTR) &&
(c->data.map->rhs->type == TMPL_TYPE_LITERAL)) {
- PW_TYPE type;
+ PW_TYPE type = c->data.map->lhs->tmpl_da->type;
switch (c->data.map->lhs->tmpl_da->type) {
case PW_TYPE_IPV4_ADDR:
- type = PW_TYPE_IPV4_PREFIX;
- c->cast = dict_attrbyvalue(PW_CAST_BASE + type, 0);
+ if (strchr(c->data.map->rhs->name, '/') != NULL) {
+ type = PW_TYPE_IPV4_PREFIX;
+ c->cast = dict_attrbyvalue(PW_CAST_BASE + type, 0);
+ }
break;
case PW_TYPE_IPV6_ADDR:
- type = PW_TYPE_IPV6_PREFIX;
- c->cast = dict_attrbyvalue(PW_CAST_BASE + type, 0);
+ if (strchr(c->data.map->rhs->name, '/') != NULL) {
+ type = PW_TYPE_IPV6_PREFIX;
+ c->cast = dict_attrbyvalue(PW_CAST_BASE + type, 0);
+ }
break;
default:
- type = c->data.map->lhs->tmpl_da->type;
break;
}
# All IP address literals should be parsed as prefixes
condition Framed-IP-Address <= 192.168.0.0/16
-data &Framed-IP-Address <= 192.168.0.0/16
+data <ipv4prefix>&Framed-IP-Address <= 192.168.0.0/16
# string attributes must be string
condition User-Name == "bob"
data &User-Name == 'bar'
condition &Vendor-11344-Attr-1 == 127.0.0.1
-data &FreeRADIUS-Proxied-To == 127.0.0.1/32
+data &FreeRADIUS-Proxied-To == 127.0.0.1
condition &FreeRADIUS-Attr-1 == 127.0.0.1
-data &FreeRADIUS-Proxied-To == 127.0.0.1/32
+data &FreeRADIUS-Proxied-To == 127.0.0.1
#
# Escape the backslashes correctly
data <ipv4prefix>&NAS-IP-Address < &PMIP6-Home-IPv4-HoA
condition &NAS-IP-Address < 192.168/16
-data <ipv4prefix>&Framed-IP-Address <= 192.168.0.0/16
+data <ipv4prefix>&NAS-IP-Address < 192.168.0.0/16