old_contents: from __future__ import print_function
  from pygelf.tcp import GelfTcpHandler
  import ssl
  import socket
  import sys
  
  
  class GelfTlsHandler(GelfTcpHandler):
  
      def __init__(self, cert=None, **kwargs):
          super(GelfTlsHandler, self).__init__(**kwargs)
          self.cert = cert
  
      def makeSocket(self, timeout=1):
          s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
          if hasattr(s, 'settimeout'):
              s.settimeout(timeout)
  
          try:
              if self.cert is None:
                  wrapped_socket = ssl.wrap_socket(s)
              else:
                  wrapped_socket = ssl.wrap_socket(s, ca_certs=self.cert, cert_reqs=ssl.CERT_REQUIRED)
              wrapped_socket.connect((self.host, self.port))
              return wrapped_socket
          except Exception as e:
              print('SSL socket exception:', e, file=sys.stderr)
  
new_contents: from __future__ import print_function
  from pygelf.tcp import GelfTcpHandler
  import ssl
  import socket
  import sys
  
  
  class GelfTlsHandler(GelfTcpHandler):
  
      def __init__(self, validate=False, ca_certs=None, **kwargs):
          super(GelfTlsHandler, self).__init__(**kwargs)
  
          if validate and ca_certs is None:
              raise ValueError('CA bundle file path must be specified')
  
          self.ca_certs = ca_certs
          self.reqs = ssl.CERT_REQUIRED if validate else ssl.CERT_NONE
  
      def makeSocket(self, timeout=1):
          s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
          if hasattr(s, 'settimeout'):
              s.settimeout(timeout)
  
          try:
              wrapped_socket = ssl.wrap_socket(s, ca_certs=self.ca_certs, cert_reqs=self.reqs)
              wrapped_socket.connect((self.host, self.port))
              return wrapped_socket
          except Exception as e:
              print('SSL socket exception:', e, file=sys.stderr)
  
subject: Add parameter 'validate' to TLS handler