From c4baaf7ef99131000eba7099e9bbd4f131d6ec7b Mon Sep 17 00:00:00 2001 From: Private Creator <10456533-private-creator@users.noreply.gitlab.com> Date: Fri, 17 Dec 2021 23:46:09 -0500 Subject: [PATCH] fix: support python2 fail2ban python2 pickles use different class names for some types. Specifically, builtins.str is __builtin__.str. --- src/socket/protocol.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/socket/protocol.go b/src/socket/protocol.go index 54d3b6e..e350e7b 100644 --- a/src/socket/protocol.go +++ b/src/socket/protocol.go @@ -59,7 +59,7 @@ func (s *Fail2BanSocket) read() (interface{}, error) { unpickler := pickle.NewUnpickler(bufReader) unpickler.FindClass = func(module, name string) (interface{}, error) { - if module == "builtins" && name == "str" { + if (module == "builtins" || module == "__builtin__") && name == "str" { return &Py_builtins_str{}, nil } return nil, fmt.Errorf("class not found: " + module + " : " + name)