summaryrefslogtreecommitdiffstats
path: root/src/libusbmuxd.c
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2009-05-18 00:39:41 +0200
committerGravatar Nikias Bassen2009-05-18 00:39:41 +0200
commitce97f25e9ab038f8a96b6d9c9f1b9d247aeec11c (patch)
tree0903d06a654eda8265a142bcb11cd6c0f7ce7503 /src/libusbmuxd.c
parenta04c396a21d29da832de21c693da18e6cbf56a13 (diff)
downloadusbmuxd-ce97f25e9ab038f8a96b6d9c9f1b9d247aeec11c.tar.gz
usbmuxd-ce97f25e9ab038f8a96b6d9c9f1b9d247aeec11c.tar.bz2
Added usbmuxd_recv, usbmuxd_recv_timeout, usbmuxd_send, and usbmuxd_disconnect
Diffstat (limited to 'src/libusbmuxd.c')
-rw-r--r--src/libusbmuxd.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/libusbmuxd.c b/src/libusbmuxd.c
index c8acbf8..4cd0a6d 100644
--- a/src/libusbmuxd.c
+++ b/src/libusbmuxd.c
@@ -200,3 +200,49 @@ int usbmuxd_connect(const int handle, const unsigned short tcp_port)
200 200
201 return -1; 201 return -1;
202} 202}
203
204int usbmuxd_disconnect(int sfd)
205{
206 return close(sfd);
207}
208
209int usbmuxd_send(int sfd, const char *data, uint32_t len, uint32_t *sent_bytes)
210{
211 int num_sent;
212
213 if (sfd < 0) {
214 return -EINVAL;
215 }
216
217 num_sent = send(sfd, (void*)data, len, 0);
218 if (num_sent < 0) {
219 *sent_bytes = 0;
220 fprintf(stderr, "%s: Error %d when sending: %s\n", __func__, num_sent, strerror(errno));
221 return num_sent;
222 } else if ((uint32_t)num_sent < len) {
223 fprintf(stderr, "%s: Warning: Did not send enough (only %d of %d)\n", __func__, num_sent, len);
224 }
225
226 *sent_bytes = num_sent;
227
228 return 0;
229}
230
231int usbmuxd_recv_timeout(int sfd, char *data, uint32_t len, uint32_t *recv_bytes, unsigned int timeout)
232{
233 int num_recv = recv_buf_timeout(sfd, (void*)data, len, 0, timeout);
234 if (num_recv < 0) {
235 *recv_bytes = 0;
236 return num_recv;
237 }
238
239 *recv_bytes = num_recv;
240
241 return 0;
242}
243
244int usbmuxd_recv(int sfd, char *data, uint32_t len, uint32_t *recv_bytes)
245{
246 return usbmuxd_recv_timeout(sfd, data, len, recv_bytes, 5000);
247}
248