Why does "libusb_bulk_transfer" return 0?

I am using libusb-1.0. Sometimes when I call:

    int rc = libusb_bulk_transfer(handle_,
                                  EP_IN_ADDR,
                                  (unsigned char *)buf_,
                                  64,
                                  &read_,
                                  0);

      

it returns rc = 0 (no error) and read_ = 0 (zero bytes received). But I specified an infinite timeout (last argument), so libusb_bulk_transfer is not supposed to block until I have data?

+3


source to share


1 answer


Sometimes it returns rc = 0 (no error) and read_ == 0 (zero bytes received).



The primary endpoint can send you packets with zero data bytes, called null packets. This is not an error condition.

+1


source







All Articles