- struct rset_isamb_info *info = ((struct rset_pp_info*) rfd)->info;
- struct rset_pp_info **ptinfop;
-
- for (ptinfop = &info->ispt_list; *ptinfop; ptinfop = &(*ptinfop)->next)
- if (*ptinfop == rfd)
- {
- xfree ((*ptinfop)->buf);
- isamb_pp_close ((*ptinfop)->pt);
- *ptinfop = (*ptinfop)->next;
- xfree (rfd);
- return;
- }
- logf (LOG_FATAL, "r_close but no rfd match!");
- assert (0);
-}
-
-static void r_delete (RSET ct)
-{
- struct rset_isamb_info *info = (struct rset_isamb_info *) ct->buf;
-
- logf (LOG_DEBUG, "rsisamb_delete");
- assert (info->ispt_list == NULL);
- xfree (info);
+ struct rset_pp_info *ptinfo = (struct rset_pp_info *)(rfd->priv);
+ isamb_pp_close (ptinfo->pt);
+ rfd_delete_base(rfd);
+ yaz_log(log_level,"rsisamb_close");