Age | Commit message (Collapse) | Author | Files | Lines |
|
When trying to upload a IPSW filesystem to an iPad, the process would
randomly stop somewhere at 3% or 10%. It is possible that the receive
buffer of the iPad is full. To prevent erroring out because size ==
conn->sendable == 0, skip reading from the client.
There is a similar case where the clients is ready to accept data, but
the device has no data to send. Apply a similar fix there.
Hopefully the device is fast enough to reply in the next main loop
iteration, otherwise the CPU usage of usbmux will spike because the
client socket is ready while there is no data to process...
|
|
|
|
|
|
Before this it seemed that we only ever sent ACK when
timing out... Looks like a perf double when reading.
|
|
|
|
|
|
|
|
|
|
|
|
Using device_get_count() and device_get_list() separately can return different
device counts in case there are devices added to the list inbetween these two
function calls. To prevent this, device_get_list() will allocate the buffer by
itself.
|
|
|
|
idevice_event_subscribe() calls usbmuxd_subscribe() which will
start a thread waiting for device add/remove events. But this
implementation is not able to handle more than one "subscription".
However the preflight worker will start a thread for _each_ device
resulting in a really messed up situation if more than one device
is attached at the same time. This fix will use usbmuxd's internal
device_remove function calling a preflight callback to make this
implementation thread safe.
|
|
|
|
|
|
|
|
|
|
libusbmuxd has been split off and is now managed in a separate repository.
By the time of this commit, the repository is:
git clone http://git.sukimashita.com/libusbmuxd.git
|