summaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2014-12-02Rename usb-linux.c to more suitable usb.cGravatar Nikias Bassen2-2/+2
2014-11-12Use non-blocking sockets for client communicationGravatar Nikias Bassen2-1/+31
This approach is better than using blocking sockets and select() since there's no guarantee that send() doesn't block. Plus we're using poll() anyway so send() and recv() will only be called if the socket is actually ready for writing/reading.
2014-11-12Revert "client: Make sure fd is writable before calling send() to avoid ↵Gravatar Nikias Bassen1-18/+1
blocking" This reverts commit 23ecea077d8f22d9da5cae50df3e2ff3406fee90.
2014-11-11client: Make sure fd is writable before calling send() to avoid blockingGravatar Nikias Bassen1-1/+18
2014-11-11Get USB speed for device and use it for device attached client messageGravatar Martin Szulecki5-2/+34
2014-11-11client: Remove invalid line feed from log messageGravatar Nikias Bassen1-1/+1
2014-11-11client: Log pid of connecting clients (if supported)Gravatar Nikias Bassen1-0/+16
2014-11-11Use new get_tick_count() to avoid timing issues on packetsGravatar Martin Szulecki4-9/+24
2014-10-17Make sure usbmuxd-proto.h file is added to distributionGravatar Martin Szulecki1-1/+1
2014-10-16Only conditionally compile bits of udev and systemd supportGravatar Martin Szulecki1-1/+21
2014-10-14Fix support for more than one device with systemd by extending usbmuxd usageGravatar Martin Szulecki1-15/+41
Upon connecting a new device, usbmuxd was not notified to scan for it if systemd was used as the activation method. This change introduces the "--disable-hotplug" and "--enable-exit" options to have a finer control over usbmuxd's signaling behavior. The convenience option "--systemd" complements the "--udev" option and setups the right settings for systemd.
2014-10-14Fix broken "--user" option which didn't accept an argumentGravatar Martin Szulecki1-1/+1
2014-10-14Slightly clean up CFLAGS in Makefile.amGravatar Martin Szulecki1-4/+5
2014-10-06Update and slightly cleanup copyright headersGravatar Martin Szulecki16-307/+291
2014-09-19Flush input buffer for a client connection when calling connection_teardown().Gravatar Satoshi Ohgoh1-0/+16
Signed-off-by: Martin Szulecki <m.szulecki@libimobiledevice.org>
2014-09-13Properly rename header guards according to C++ standardGravatar Nikias Bassen8-18/+18
2014-05-27Use protocol version 2 by defaultGravatar Nikias Bassen1-1/+1
2014-05-27device: Add protocol version 2 supportGravatar Nikias Bassen1-12/+83
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-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