Skip to content

Commit 84787b2

Browse files
[openwrt] Enhance firewall uci rule parser
1 parent e65f06c commit 84787b2

1 file changed

Lines changed: 20 additions & 6 deletions

File tree

netjsonconfig/backends/openwrt/converters/firewall.py

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -166,12 +166,26 @@ def to_netjson_loop(self, block, result, index):
166166
return self.type_cast(result)
167167

168168
def __netjson_rule(self, rule):
169-
if "enabled" in rule:
170-
rule["enabled"] = self.__netjson_generic_boolean(rule["enabled"])
169+
for param in ["enabled", "utc_time"]:
170+
if param in rule:
171+
rule[param] = self.__netjson_generic_boolean(rule[param])
171172

172173
if "proto" in rule:
173174
rule["proto"] = self.__netjson_generic_proto(rule["proto"])
174175

176+
if "weekdays" in rule:
177+
rule["weekdays"] = self.__netjson_generic_weekdays(
178+
rule["weekdays"]
179+
)
180+
181+
if "monthdays" in rule:
182+
rule["monthdays"] = self.__netjson_generic_monthdays(
183+
rule["monthdays"]
184+
)
185+
186+
if "limit_burst" in rule:
187+
rule["limit_burst"] = int(rule["limit_burst"])
188+
175189
return self.type_cast(rule)
176190

177191
def __netjson_zone(self, zone):
@@ -196,12 +210,12 @@ def __netjson_redirect(self, redirect):
196210
redirect["proto"] = self.__netjson_generic_proto(redirect["proto"])
197211

198212
if "weekdays" in redirect:
199-
redirect["weekdays"] = self.__netjson_redirect_weekdays(
213+
redirect["weekdays"] = self.__netjson_generic_weekdays(
200214
redirect["weekdays"]
201215
)
202216

203217
if "monthdays" in redirect:
204-
redirect["monthdays"] = self.__netjson_redirect_monthdays(
218+
redirect["monthdays"] = self.__netjson_generic_monthdays(
205219
redirect["monthdays"]
206220
)
207221

@@ -230,7 +244,7 @@ def __netjson_generic_proto(self, proto):
230244
else:
231245
return proto.split()
232246

233-
def __netjson_redirect_weekdays(self, weekdays):
247+
def __netjson_generic_weekdays(self, weekdays):
234248
if not isinstance(weekdays, list):
235249
wd = weekdays.split()
236250
else:
@@ -243,7 +257,7 @@ def __netjson_redirect_weekdays(self, weekdays):
243257

244258
return wd
245259

246-
def __netjson_redirect_monthdays(self, monthdays):
260+
def __netjson_generic_monthdays(self, monthdays):
247261
if not isinstance(monthdays, list):
248262
md = monthdays.split()
249263
else:

0 commit comments

Comments
 (0)