def recvfd(sock, msg_buf=4096): """Receive a message and a file descriptor from a Unix domain socket. Parameters: sock: file descriptor or socket object for an AF_UNIX socket buffersize: maximum message size to receive Return value: On success, recvfd returns a tuple containing the received file descriptor and message. If recvmsg fails, an OSError exception is raised. If the received data does not carry exactly one file descriptor, or if the received file descriptor is not valid, RuntimeError is raised.""" import _passfd (ret, msg) = _passfd.recvfd(__check_socket(sock), msg_buf) # -1 should raise OSError if ret == -2: raise RuntimeError("The message received did not contain exactly one" + " file descriptor") if ret == -3: raise RuntimeError("The received file descriptor is not valid") assert ret >= 0 return (ret, msg)
def recvfd(sock, msg_buf=4096): """ Receive a message and a file descriptor from a Unix domain socket. :param sock: file descriptor or socket object for an ``AF_UNIX`` socket :param buffersize: maximum message size to receive :return: On success, recvfd returns a tuple containing the received file descriptor and message :raise OSError: is raised if recvmsg fails :raise RuntimeError: is raised if the received data does not carry exactly one file descriptor, or if the received file descriptor is not valid. """ (ret, msg) = _passfd.recvfd(__check_socket(sock), msg_buf) print ret print msg # -1 should raise OSError if ret == -2: raise RuntimeError("The message received did not contain exactly one" + " file descriptor") if ret == -3: raise RuntimeError("The received file descriptor is not valid") assert ret >= 0 return (ret, msg)