docs: def tick(self):
          """Accept a new connection and put it on the Queue."""
          try:
              s, addr = self.socket.accept()
              if not self.ready:
                  return
              
              prevent_socket_inheritance(s)
              if hasattr(s, 'settimeout'):
                  s.settimeout(self.timeout)
              
              makefile = CP_fileobject
              ssl_env = {}
              # if ssl cert and key are set, we try to be a secure HTTP server
              if self.ssl_adapter is not None:
                  try:
                      s, ssl_env = self.ssl_adapter.wrap(s)
                  except NoSSLError:
                      msg = ("The client sent a plain HTTP request, but "
                             "this server only speaks HTTPS on this port.")
                      buf = ["%s 400 Bad Request\r\n" % self.protocol,
                             "Content-Length: %s\r\n" % len(msg),
                             "Content-Type: text/plain\r\n\r\n",
                             msg]
                      
                      wfile = CP_fileobject(s, "wb", DEFAULT_BUFFER_SIZE)
                      try:
                          wfile.sendall("".join(buf))
                      except socket.error, x:
                          if x.args[0] not in socket_errors_to_ignore:
                              raise
                      return
                  if not s:
                      return
                  makefile = self.ssl_adapter.makefile
                  # Re-apply our timeout since we may have a new socket object
                  if hasattr(s, 'settimeout'):
                      s.settimeout(self.timeout)
              
              conn = self.ConnectionClass(self, s, makefile)
              
              if not isinstance(self.bind_addr, basestring):
                  # optional values
                  # Until we do DNS lookups, omit REMOTE_HOST
                  if addr is None: # sometimes this can happen
                      # figure out if AF_INET or AF_INET6.
                      if len(s.getsockname()) == 2:
                          # AF_INET
                          addr = ('0.0.0.0', 0)
                      else:
                          # AF_INET6
                          addr = ('::', 0)
                  conn.remote_addr = addr[0]
                  conn.remote_port = addr[1]
              
              conn.ssl_env = ssl_env
              
              self.requests.put(conn)
          except socket.timeout:
              # The only reason for the timeout in start() is so we can
              # notice keyboard interrupts on Win32, which don't interrupt
              # accept() by default
              return
          except socket.error, x:
              if x.args[0] in socket_error_eintr:
                  # I *think* this is right. EINTR should occur when a signal
                  # is received during the accept() call; all docs say retry
                  # the call, and I *think* I'm reading it right that Python
                  # will then go ahead and poll for and handle the signal
                  # elsewhere. See http://www.cherrypy.org/ticket/707.
                  return
              if x.args[0] in socket_errors_nonblocking:
                  # Just try again. See http://www.cherrypy.org/ticket/479.
                  return
              if x.args[0] in socket_errors_to_ignore:
                  # Our socket was closed.
                  # See http://www.cherrypy.org/ticket/686.
                  return
              raise