#35 ✓resolved
Martin S.

[PATCH] Fix receive of plists larger than a packet

Reported by Martin S. | April 18th, 2009 @ 05:55 PM

Both the "lockdown recv" and "mobilesync recv" functions only request a single usbmux packet using "iphone_mux_recv()" and ignore that the datalen reported might be larger than the amount of bytes received.

This causes havok for larger plists (or actually any data) which the device spreads and sends to us among multiple usbmux packets.

The patch below fixes this for the mobile sync part. It allows to correctly receive mobile sync plists now, even if they contain a lot of data (like JPEG image data from contacts). libplist seems to have no trouble parsing the response afterwards, too.

The question is though, if this should be addressed in each "client" using "iphone_mux_recv()" or if it would be feasable to somehow adjust the mux_recv itself to know that there is still data left to be read.

I have not checked whether libiphone should/does also spread data among packets or if sending large plists can work.

Comments and changes to this ticket

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

A project around supporting the iPhone in Linux.

See http://libimobiledevice.org

People watching this ticket

Referenced by