summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Hector Martin2009-04-28 02:13:12 +0200
committerGravatar Hector Martin2009-04-28 02:13:12 +0200
commitc2d46d901822c54a0677318522db62f30b8d5f04 (patch)
treec98b6fa1d654db978bcd756eba954786dfe2409f
parent2f6910a012f14e132565043b7f231373f6b8cc23 (diff)
downloadusbmuxd-c2d46d901822c54a0677318522db62f30b8d5f04.tar.gz
usbmuxd-c2d46d901822c54a0677318522db62f30b8d5f04.tar.bz2
poll on listenfd
-rw-r--r--main.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/main.c b/main.c
index 6773d0e..bc846cc 100644
--- a/main.c
+++ b/main.c
@@ -80,6 +80,7 @@ int main_loop(int listenfd)
80 usbmuxd_log(LL_SPEW, "USB timeout is %d ms", to); 80 usbmuxd_log(LL_SPEW, "USB timeout is %d ms", to);
81 81
82 fdlist_create(&pollfds); 82 fdlist_create(&pollfds);
83 fdlist_add(&pollfds, FD_LISTEN, listenfd, POLLIN);
83 usb_get_fds(&pollfds); 84 usb_get_fds(&pollfds);
84 usbmuxd_log(LL_SPEW, "fd count is %d", pollfds.count); 85 usbmuxd_log(LL_SPEW, "fd count is %d", pollfds.count);
85 86
@@ -92,13 +93,15 @@ int main_loop(int listenfd)
92 return -1; 93 return -1;
93 } 94 }
94 } else { 95 } else {
96 int done_usb = 0;
95 for(i=0; i<pollfds.count; i++) { 97 for(i=0; i<pollfds.count; i++) {
96 if(pollfds.fds[i].revents) { 98 if(pollfds.fds[i].revents) {
97 if(pollfds.owners[i] == FD_USB) { 99 if(!done_usb && pollfds.owners[i] == FD_USB) {
98 if(usb_process() < 0) { 100 if(usb_process() < 0) {
99 usbmuxd_log(LL_FATAL, "usb_process() failed"); 101 usbmuxd_log(LL_FATAL, "usb_process() failed");
100 return -1; 102 return -1;
101 } 103 }
104 done_usb = 1;
102 } 105 }
103 } 106 }
104 } 107 }