- struct rset_temp_info *info = ((struct rset_temp_rfd*)rfd)->info;
- struct rset_temp_rfd **rfdp;
-
- for (rfdp = &info->rfd_list; *rfdp; rfdp = &(*rfdp)->next)
- if (*rfdp == rfd)
- {
- struct rset_temp_rfd *rfd_tmp=*rfdp;
- r_flush (*rfdp, 0);
- *rfdp = (*rfdp)->next;
- rfd_tmp->next=info->free_list;
- info->free_list=rfd_tmp;
-
- if (!info->rfd_list && info->fname && info->fd != -1)
- {
- close (info->fd);
- info->fd = -1;
- }
- return;
- }
- logf (LOG_FATAL, "r_close but no rfd match!");
- assert (0);
+ /*struct rset_temp_rfd *mrfd = (struct rset_temp_rfd*) rfd->priv; */
+ struct rset_temp_info *info = (struct rset_temp_info *)rfd->rset->priv;
+ r_flush (rfd, 0);
+ if (info->fname && info->fd != -1)
+ {
+ close (info->fd);
+ info->fd = -1;
+ } /* FIXME - Is this right, don't we risk closing the file too early ?*/
+ rfd_delete_base(rfd);