- struct rset_between_info *info = ((struct rset_between_rfd*)rfd)->info;
- struct rset_between_rfd **rfdp;
-
- for (rfdp = &info->rfd_list; *rfdp; rfdp = &(*rfdp)->next)
- if (*rfdp == rfd)
- {
- xfree ((*rfdp)->buf_l);
- xfree ((*rfdp)->buf_m);
- xfree ((*rfdp)->buf_r);
- xfree ((*rfdp)->buf_attr);
- rset_close (info->rset_l, (*rfdp)->rfd_l);
- rset_close (info->rset_m, (*rfdp)->rfd_m);
- rset_close (info->rset_r, (*rfdp)->rfd_r);
- if (info->rset_attr)
- rset_close (info->rset_attr, (*rfdp)->rfd_attr);
-
- *rfdp = (*rfdp)->next;
- xfree (rfd);
- return;
- }
- logf (LOG_FATAL, "r_close_between but no rfd match!");
- assert (0);
-}
-
-static void r_rewind_between (RSFD rfd)
-{
- struct rset_between_info *info = ((struct rset_between_rfd*)rfd)->info;
- struct rset_between_rfd *p = (struct rset_between_rfd *) rfd;
+ struct rset_between_info *info =(struct rset_between_info *)rfd->rset->priv;
+ struct rset_between_rfd *p=(struct rset_between_rfd *)rfd->priv;