diff options
Diffstat (limited to 'filter')
-rw-r--r-- | filter/filter.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/filter/filter.c b/filter/filter.c index 05652e64..88763302 100644 --- a/filter/filter.c +++ b/filter/filter.c @@ -795,7 +795,7 @@ interpret(struct f_inst *what) case SA_GW: res.val.px.ip = rta->gw; break; case SA_NET: res.val.px.ip = (*f_rte)->net->n.prefix; res.val.px.len = (*f_rte)->net->n.pxlen; break; - case SA_PROTO: res.val.s = rta->proto->name; break; + case SA_PROTO: res.val.s = rta->src->proto->name; break; case SA_SOURCE: res.val.i = rta->source; break; case SA_SCOPE: res.val.i = rta->scope; break; case SA_CAST: res.val.i = rta->cast; break; @@ -827,7 +827,7 @@ interpret(struct f_inst *what) case SA_GW: { ip_addr ip = v1.val.px.ip; - neighbor *n = neigh_find(rta->proto, &ip, 0); + neighbor *n = neigh_find(rta->src->proto, &ip, 0); if (!n || (n->scope == SCOPE_HOST)) runtime( "Invalid gw address" ); |