diff options
| -rw-r--r-- | common/utils.c | 5 | ||||
| -rw-r--r-- | common/utils.h | 1 | ||||
| -rw-r--r-- | daemon/main.c | 5 | 
3 files changed, 9 insertions, 2 deletions
| diff --git a/common/utils.c b/common/utils.c index 6803941..f66d889 100644 --- a/common/utils.c +++ b/common/utils.c @@ -65,6 +65,11 @@ void fdlist_free(struct fdlist *list)  	list->fds = NULL;  } +void fdlist_reset(struct fdlist *list) +{ +	list->count = 0; +} +  void collection_init(struct collection *col)  {  	col->list = malloc(sizeof(void *)); diff --git a/common/utils.h b/common/utils.h index ad4ac9d..f9cfa93 100644 --- a/common/utils.h +++ b/common/utils.h @@ -39,6 +39,7 @@ struct fdlist {  void fdlist_create(struct fdlist *list);  void fdlist_add(struct fdlist *list, enum fdowner owner, int fd, short events);  void fdlist_free(struct fdlist *list); +void fdlist_reset(struct fdlist *list);  struct collection {  	void **list; diff --git a/daemon/main.c b/daemon/main.c index 893f26d..f85d034 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -138,6 +138,7 @@ int main_loop(int listenfd)  	int to, cnt, i, dto;  	struct fdlist pollfds; +	fdlist_create(&pollfds);  	while(!should_exit) {  		usbmuxd_log(LL_FLOOD, "main_loop iteration");  		to = usb_get_timeout(); @@ -147,7 +148,7 @@ int main_loop(int listenfd)  		if(dto < to)  			to = dto; -		fdlist_create(&pollfds); +		fdlist_reset(&pollfds);  		fdlist_add(&pollfds, FD_LISTEN, listenfd, POLLIN);  		usb_get_fds(&pollfds);  		client_get_fds(&pollfds); @@ -201,8 +202,8 @@ int main_loop(int listenfd)  				}  			}  		} -		fdlist_free(&pollfds);  	} +	fdlist_free(&pollfds);  	return 0;  } | 
