Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)