Пример #1
0
void netproc_devicelist_clear(NETDEVLIST_PTR *netdev_list)
{
	NETDEVLIST_PTR ptr;
	NETDEVLIST_PTR prev_ptr;
	NETDEVLIST_PTR del_ptr;

	if (*netdev_list==NULL) {
		return;
	}

	prev_ptr = NULL;
	ptr = *netdev_list;
	do {
		if (!ptr->info.alive) { /* if device was removed */
			if (prev_ptr!=NULL) {
				ptr->prev->next = ptr->next;
				ptr->next->prev = ptr->prev;
			} else {
				ptr->next->prev = NULL;
				*netdev_list = ptr->next;
			}

			del_ptr = ptr;
			ptr = ptr->next;
			netproc_netdevlist_destroy(del_ptr);
			g_free(del_ptr);
		} else {
			prev_ptr = ptr;
			ptr = ptr->next;
		}
	} while(ptr!=NULL);
}
Пример #2
0
int netproc_netdevlist_clear(NETDEVLIST_PTR *netdev_list)
{
	NETDEVLIST_PTR ptr;
	NETDEVLIST_PTR ptr_del;

	if (*netdev_list==NULL)
		return 0;

	ptr = *netdev_list;
	while(ptr->next!=NULL) {
		ptr_del = ptr;
		ptr = ptr->next;
		netproc_netdevlist_destroy(ptr_del);
		free(ptr_del);
	}

	*netdev_list = NULL;

	return 0;
}
Пример #3
0
void netproc_devicelist_clear(NETDEVLIST_PTR *netdev_list)
{
	NETDEVLIST_PTR ptr;
	NETDEVLIST_PTR next_ptr;

	for (ptr = *netdev_list; ptr != NULL; ptr = next_ptr) {
		next_ptr = ptr->next;
		if (!ptr->info.alive) { /* if device was removed */
			if (ptr->prev != NULL)
				ptr->prev->next = ptr->next;
			if (ptr->next != NULL)
				ptr->next->prev = ptr->prev;
			if (ptr == *netdev_list)
				*netdev_list = ptr->next;

			netproc_netdevlist_destroy(ptr);
			g_free(ptr);
		}
	}
}