@@ -293,7 +293,8 @@ def api_call(self, command, payload=None, sid=None, wait_for_task=True, timeout=
293
293
"User-Agent" : "python-api-wrapper" ,
294
294
"Accept" : "*/*" ,
295
295
"Content-Type" : "application/json" ,
296
- "Content-Length" : len (_data )
296
+ "Content-Length" : len (_data ),
297
+ "Connection" : "Keep-Alive"
297
298
}
298
299
299
300
# In all API calls (except for 'login') a header containing the Check Point session-id is required.
@@ -318,6 +319,11 @@ def api_call(self, command, payload=None, sid=None, wait_for_task=True, timeout=
318
319
res = APIResponse ("" , False , err_message = err_message )
319
320
else :
320
321
res = APIResponse ("" , False , err_message = err )
322
+ except (http_client .CannotSendRequest , http_client .BadStatusLine ) as e :
323
+ self .conn = self .create_https_connection ()
324
+ self .conn .request ("POST" , url , _data , _headers )
325
+ response = self .conn .getresponse ()
326
+ res = APIResponse .from_http_response (response )
321
327
except Exception as err :
322
328
res = APIResponse ("" , False , err_message = err )
323
329
finally :
@@ -461,7 +467,7 @@ def get_server_fingerprint(self):
461
467
Initiates an HTTPS connection to the server if need and extracts the SHA1 fingerprint from the server's certificate.
462
468
:return: string with SHA1 fingerprint (all uppercase letters)
463
469
"""
464
- conn = self .get_https_connection (set_fingerprint = False , set_debug_level = False )
470
+ conn = self .get_https_connection ()
465
471
fingerprint_hash = conn .get_fingerprint_hash ()
466
472
if not self .single_conn :
467
473
conn .close ()
@@ -709,7 +715,7 @@ def read_fingerprint_from_file(server, filename="fingerprints.txt"):
709
715
return json_dict [server ]
710
716
return ""
711
717
712
- def create_https_connection (self , set_fingerprint , set_debug_level ):
718
+ def create_https_connection (self ):
713
719
context = ssl .create_default_context ()
714
720
context .check_hostname = False
715
721
context .verify_mode = ssl .CERT_NONE
@@ -721,21 +727,19 @@ def create_https_connection(self, set_fingerprint, set_debug_level):
721
727
conn = HTTPSConnection (self .server , self .get_port (), context = context )
722
728
723
729
# Set fingerprint
724
- if set_fingerprint :
725
- conn .fingerprint = self .fingerprint
730
+ conn .fingerprint = self .fingerprint
726
731
727
732
# Set debug level
728
- if set_debug_level :
729
- conn .set_debuglevel (self .http_debug_level )
733
+ conn .set_debuglevel (self .http_debug_level )
730
734
conn .connect ()
731
735
return conn
732
736
733
- def get_https_connection (self , set_fingerprint = True , set_debug_level = True ):
737
+ def get_https_connection (self ):
734
738
if self .single_conn :
735
739
if self .conn is None :
736
- self .conn = self .create_https_connection (set_fingerprint , set_debug_level )
740
+ self .conn = self .create_https_connection ()
737
741
return self .conn
738
- return self .create_https_connection (set_fingerprint , set_debug_level )
742
+ return self .create_https_connection ()
739
743
740
744
def close_connection (self ):
741
745
if self .conn :
0 commit comments