docs: def getsockopt(self, level, optname, *args, **kwargs):
          """get the value of a given socket option
  
          the values for ``level`` and ``optname`` will usually come from
          constants in the standard library ``socket`` module. consult the unix
          manpage ``getsockopt(2)`` for more information.
  
          :param level: the level of the requested socket option
          :type level: int
          :param optname: the specific socket option requested
          :type optname: int
          :param buflen:
              the length of the buffer to use to collect the raw value of the
              socket option. if provided, the buffer is returned as a string and
              it is not parsed.
          :type buflen: int
  
          :returns: a string of the socket option's value
          """
          return self._sock.getsockopt(level, optname, *args, **kwargs)