• Mat Martineau's avatar
    Bluetooth: Add common code for stream-oriented recvmsg() · 796c86ee
    Mat Martineau authored
    This commit adds a bt_sock_stream_recvmsg() function for use by any
    Bluetooth code that uses SOCK_STREAM sockets.  This code is copied
    from rfcomm_sock_recvmsg() with minimal modifications to remove
    RFCOMM-specific functionality and improve readability.
    
    L2CAP (with the SOCK_STREAM socket type) and RFCOMM have common needs
    when it comes to reading data.  Proper stream read semantics require
    that applications can read from a stream one byte at a time and not
    lose any data.  The RFCOMM code already operated on and pulled data
    from the underlying L2CAP socket, so very few changes were required to
    make the code more generic for use with non-RFCOMM data over L2CAP.
    
    Applications that need more awareness of L2CAP frame boundaries are
    still free to use SOCK_SEQPACKET sockets, and may verify that they
    connection did not fall back to basic mode by calling getsockopt().
    Signed-off-by: default avatarMat Martineau <mathewm@codeaurora.org>
    Acked-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    Signed-off-by: default avatarGustavo F. Padovan <padovan@profusion.mobi>
    796c86ee
bluetooth.h 5.08 KB