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)