- for (rfdp = &info->rfd_list; *rfdp; rfdp = &(*rfdp)->next)
- if (*rfdp == rfd)
- {
- int i;
- struct rset_prox_rfd *rfd_tmp=*rfdp;
- for (i = 0; i<info->rset_no; i++)
- rset_close (info->rset[i], (*rfdp)->rfd[i]);
- *rfdp = (*rfdp)->next;
- rfd_tmp->next=info->free_list;
- info->free_list=rfd_tmp;
- return;
- }
- logf (LOG_FATAL, "r_close but no rfd match!");
- assert (0);
-}
-
-static void r_rewind (RSFD rfd)
-{
- struct rset_prox_info *info = ((struct rset_prox_rfd*)rfd)->info;
- struct rset_prox_rfd *p = (struct rset_prox_rfd *) rfd;