'meta.mark': _('Packet mark', 'nft meta mark'),
+ 'meta.time': _('Packet receive time', 'nft meta time'),
'meta.hour': _('Current time', 'nft meta hour'),
'meta.day': _('Current weekday', 'nft meta day'),
'accept': _('Accept packet', 'nft accept action'),
'drop': _('Drop packet', 'nft drop action'),
'jump': _('Continue in <strong><a href="#%q.%q">%h</a></strong>', 'nft jump action'),
+ 'log': _('Log event "<strong>%h</strong>…"', 'nft log action'),
'reject.tcp reset': _('Reject packet with <strong>TCP reset</strong>', 'nft reject with tcp reset'),
'reject.icmp': _('Reject IPv4 packet with <strong>ICMP type %h</strong>', 'nft reject with icmp type'),
case 'masquerade':
case 'return':
case 'flow':
+ case 'log':
return true;
}
}
var k = 'reject.%s'.format(spec.type);
return E('span', {
- 'class': 'ifacebadge',
- 'data-tooltip': JSON.stringify(spec)
+ 'class': 'ifacebadge'
}, (action_translations[k] || k).format(this.exprToString(spec.expr)));
case 'accept':
'class': 'ifacebadge'
}, action_translations.flow.format(spec.flowtable.replace(/^@/, '')));
+ case 'log':
+ return E('span', {
+ 'class': 'ifacebadge'
+ }, action_translations.log.format(spec.prefix));
+
default:
return E('span', {
'class': 'ifacebadge',