宝塔用户_erflgn 发表于 2022-9-13 23:28:52

【待反馈】系统防火墙导出规则报错



面板版本:宝塔linux面板 7.9.4

系统版本:Debian GNU/Linux 11 x86_64

浏览器版本:Google Chrome 104.0.5112.102

问题现象:宝塔“系统防火墙”(版本:3.2)端口规则无法导出,点击“导出规则”后面板报错。

重现方式:

在软件商店中管理“系统防火墙”,点击“导出规则”后面板直接报错。






宝塔用户_erflgn 发表于 2022-9-14 01:45:05

没学过Python,扫了一眼代码,考虑是firewall_main.py中get_file()方法传参错误带来的问题。这个方法的return调用了宝塔公共库public.py中的send_file()方法。这个方法又封装了flask库里的send_file()方法,缺省了除了文件地址、类型和文件名之外的参数。firewall_main.py调用的时候,仍按照flask库的方法要求在传参,导致了报错。

解决方案:修改firewall_main.py中的get_file()方法
   def get_file(self, args):
      filename = args.filename
      mimetype = "application/octet-stream"
      fname = os.path.basename(filename)
      if not os.path.exists(filename): return abort(404)
      return send_file(filename, fname, mimetype)
问题解决。

大炮运维V587 发表于 2022-9-14 09:18:00

您好,您到这里 导出可以吗?插件的系统防火墙是有点问题,开发者正在抽空看
页: [1]
查看完整版本: 【待反馈】系统防火墙导出规则报错