Diff
1diff --git a/plugins/ufw/README.md b/plugins/ufw/README.md
2index ffcc6d6f7191428006b3d3b88f93b7d1c7830a9f..5aeb7f1b938f4fce57dae2e86ce2779adcfbad3c 100644
3--- a/plugins/ufw/README.md
4+++ b/plugins/ufw/README.md
5@@ -16,3 +16,4 @@ Some of the commands include:
6 * `deny <port>/<optional: protocol>` add deny rule
7 * `disable` disables the firewall
8 * `enable` enables the firewall
9+* `route` add route rule
10diff --git a/plugins/ufw/_ufw b/plugins/ufw/_ufw
11index f5ad033770b0a17c0f4cc6ddef0a94df04d6fe09..701231ec752a10dcb1d75e9c30a005b2c78f63be 100644
12--- a/plugins/ufw/_ufw
13+++ b/plugins/ufw/_ufw
14@@ -31,6 +31,7 @@ _1st_arguments=(
15 'reject:add reject rule'
16 'reload:reloads firewall'
17 'reset:reset firewall'
18+ 'route:add route rule'
19 'show:show firewall report'
20 'status:show firewall status'
21 'version:display version information'
22@@ -43,6 +44,7 @@ _arguments -C \
23 '1:: :->cmds' \
24 '2:: :->subcmds' \
25 '3:: :->subsubcmds' \
26+ '4:: :->subsubsubcmds' \
27 && return 0
28
29 local rules
30@@ -83,6 +85,17 @@ case "$state" in
31 'raw' 'builtins' 'before-rules' 'user-rules' 'after-rules' 'logging-rules' 'listening' 'added' \
32 && ret=0
33 ;;
34+ (route)
35+ _values 'route' \
36+ 'delete[delete route rule]' \
37+ 'insert[insert route rule at NUM]' \
38+ 'prepend[prepend route rule]' \
39+ 'allow[add allow route rule]' \
40+ 'deny[add deny route rule]' \
41+ 'reject[add reject route rule]' \
42+ 'limit[add limit route rule]' \
43+ && ret=0
44+ ;;
45 (delete)
46 rules="$(_ufw_delete_rules)"
47 if [[ -n "$rules" ]] ; then
48@@ -109,6 +122,37 @@ case "$state" in
49 'incoming' 'outgoing' \
50 && ret=0
51 ;;
52+ (route)
53+ case "$line[2]" in
54+ (delete|prepend)
55+ _values 'route-action' \
56+ 'allow[route allow rule]' \
57+ 'deny[route deny rule]' \
58+ 'reject[route reject rule]' \
59+ 'limit[route limit rule]' \
60+ && ret=0
61+ ;;
62+ (insert)
63+ _message 'route rule number'
64+ ;;
65+ esac
66+ ;;
67+ esac
68+ ;;
69+ (subsubsubcmds)
70+ case "$line[1]" in
71+ (route)
72+ case "$line[2]" in
73+ (insert)
74+ _values 'route-action' \
75+ 'allow[route allow rule]' \
76+ 'deny[route deny rule]' \
77+ 'reject[route reject rule]' \
78+ 'limit[route limit rule]' \
79+ && ret=0
80+ ;;
81+ esac
82+ ;;
83 esac
84 esac
85