summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2014-07-26Add usbmuxd_log_buffer helper for easier debugging of binary payloadslograwGravatar Martin Szulecki2-6/+53
2014-05-27client: Fix crash that occured when receiving client command from old clientGravatar Martin Szulecki1-0/+5
2014-05-27Fix detection of new "-V" version argumentGravatar Martin Szulecki1-1/+1
2014-05-07Fix connection abort if device buffer is fullGravatar Peter Wu1-3/+4
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...
2014-05-06utils: Add missing plist_read_from_filename() helperGravatar Nikias Bassen1-0/+25
2014-04-16preflight: Unset preflight callback data when no longer needed to prevent ↵Gravatar Nikias Bassen1-0/+2
segfault
2014-03-27Add "--version" option to print version number and exit, useful for bug reportsGravatar Martin Szulecki1-0/+5
2014-03-27Update command usage output to match best practice and other toolsGravatar Martin Szulecki1-10/+11
2014-03-24usb-linux: massive read perf improvement with 3 parallel transfersGravatar Mikkel Kamstrup Erlandsen1-34/+73
By maintaining 3 parallel usb trasfers when reading we get 2-3x more throughput when reading. Without this the usb port is mostly just idling. I get 23mb/s on my system compared to a clean Apple stack that gives me 17mb/s. 3 was chosen because it is simple to hard code, gives very good performance, and have very little impact on out resource consumption.
2014-03-24usb-linux: add some explanatory comments to usb-linux.cGravatar Mikkel Kamstrup Erlandsen1-0/+5
2014-03-24device/utils: move mstime64() into utils since it is generally usefulGravatar Mikkel Kamstrup Erlandsen3-10/+16
2014-03-24device: fix potential integer overflow in mstime64() on 32 bit systemsGravatar Mikkel Kamstrup Erlandsen1-1/+4
2014-03-24device: more aggresively send ACKs when receiving TCP dataGravatar Mikkel Kamstrup Erlandsen1-49/+66
Before this it seemed that we only ever sent ACK when timing out... Looks like a perf double when reading.
2014-03-24client: add a bunch of comments and function docsGravatar Mikkel Kamstrup Erlandsen2-1/+90
2014-03-24Use plist_dict_set_item() instead of deprecated plist_dict_insert_item()Gravatar Martin Szulecki2-18/+18
2014-03-13device: suppress 'error reading from client (0)' which is not actually an errorGravatar Nikias Bassen1-1/+3
2014-02-15preflight: create preflight worker as detached thread and handle errorsGravatar Nikias Bassen1-1/+12
2014-01-25updated READMEGravatar Nikias Bassen1-4/+2
2014-01-10client: fix realloc in send_pkt() that made the buffer smaller instead of largerGravatar Nikias Bassen1-4/+10
2014-01-09device: reduce locking time inside device_get_list() and device_get_count()Gravatar Nikias Bassen1-5/+14
2014-01-09utils: add new collection_copy() functionGravatar Nikias Bassen2-0/+9
2014-01-09removed trailing \n from usbmuxd_log() messagesGravatar Nikias Bassen6-8/+8
2014-01-09device: suppress "No connection for device" if TH_RST is setGravatar Nikias Bassen1-1/+1
2014-01-09device/client: make device_get_list() allocate the result buffer itselfGravatar Nikias Bassen3-25/+26
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.
2014-01-09device: make device_list access thread safeGravatar Nikias Bassen1-0/+38
2014-01-09utils: collection_add don't double capacity but instead increase by a fixed ↵Gravatar Nikias Bassen1-6/+8
amount
2014-01-09client: fix 64-bit crash in process_send due to signed/unsigned fooGravatar Nikias Bassen1-2/+2
2014-01-07conf: fix wrong check for parameter that made SavePairRecord always failGravatar Nikias Bassen1-1/+1
2013-12-27preflight: check for device record before trying to read host idGravatar Nikias Bassen3-11/+47
2013-12-27client: plug several memory leaksGravatar Nikias Bassen1-1/+6
2013-12-27preflight: replace idevice_event_* with thread safe implementationGravatar Nikias Bassen4-12/+31
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.
2013-12-23increase number of open file descriptorsGravatar Nikias Bassen1-0/+7
When a large number of devices are used, the number of open file descriptors can reach the default system limit. Upon startup we now raise it to a much higher value to give more 'space'.
2013-12-23enlarge input+output buffer sizes.Gravatar Nikias Bassen1-13/+10
2013-12-13client: implemented ReadBUID, ReadPairRecord, SavePairRecord, and ↵Gravatar Nikias Bassen1-0/+107
DeletePairRecord commonds
2013-12-13add support for reading and writing config and pair record filesGravatar Nikias Bassen8-12/+709
2013-12-13make libplist/protov1 support mandatoryGravatar Nikias Bassen2-52/+4
2013-12-11client: return proper error packet on client version mismatchGravatar Nikias Bassen1-14/+11
2013-12-11fix compilation when compiling without plist supportGravatar Nikias Bassen1-0/+2
2013-12-10client: implemented "ListDevices" commandGravatar Nikias Bassen1-12/+55
2013-12-10client: add send_plist_pkt helper to remove code duplicationGravatar Nikias Bassen1-28/+19
2013-12-10main: make sure the non-privileged user has proper access to the config dirGravatar Nikias Bassen1-9/+21
2013-12-09client: also add DeviceID to main dictionary for Attached messageGravatar Nikias Bassen1-0/+1
2013-11-04usb: Output message to show USB configuration changeGravatar Martin Szulecki1-0/+3
2013-11-04preflight: Add messages to indicate start and finish of preflight processGravatar Martin Szulecki1-0/+9
2013-11-04preflight: Make device visible during trust dialog pairing and handle unplugGravatar Martin Szulecki1-5/+27
The usbmuxd implementation on Win/OS X does allow enumerating and accessing the device during the "trust dialog" pairing process. We now also exit the waiting loop during unplugging of a device while waiting for the trust dialog to be dismissed.
2013-11-04preflight: Add lockdownd prefix to name of set_untrusted_host_buid()Gravatar Martin Szulecki1-3/+3
2013-11-04udev: Set "deactivated" USB configuration on iOS devices by defaultGravatar Martin Szulecki1-2/+2
With the introduction of iOS 7, devices should start of in the "deactivated" USB configuration "0" by default to not trigger a trust dialog. Once the devices are identified, usbmuxd will set the correct USB configuration itself and immediately run the preflight worker code to ensure a trust relationship with the host is established. This change fixes the trust dialog from appearing during hotplug of paired devices. The last remaining issue is that current kernel code still sets the USB configuration to "1" by default before the udev rules and thus causes multiple connection beeps.
2013-10-09preflight: define extern userpref_remove_device_recordGravatar Nikias Bassen1-0/+2
2013-10-09preflight: Free version string in all cases to prevent memory leakGravatar Martin Szulecki1-3/+11
2013-10-08preflight: plug small memory leakGravatar Nikias Bassen1-0/+2