From 19fd6ffae035337ffc8cb4373044c9f7678e22a5 Mon Sep 17 00:00:00 2001 From: Marius Tomaschewski Date: Thu, 9 Mar 2006 17:26:05 +0000 Subject: [PATCH] - Added close of media id if open in redirect() and reset() --- zypp/source/MediaSet.cc | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/zypp/source/MediaSet.cc b/zypp/source/MediaSet.cc index 21b921b..9c8e2da 100644 --- a/zypp/source/MediaSet.cc +++ b/zypp/source/MediaSet.cc @@ -36,6 +36,19 @@ namespace zypp void MediaSet::redirect (media::MediaNr medianr, media::MediaAccessId media_id) { + media::MediaManager media_mgr; + MediaMap::iterator it( medias.find(medianr)); + if( it != medias.end() && media_mgr.isOpen(it->second)) { + try { + DBG << "Closing media access id " << it->second << endl; + media_mgr.close(it->second); + } + // paranoia ... + catch (const Exception & excpt_r) { + ZYPP_CAUGHT(excpt_r); + } + } + medias[medianr] = media_id; } @@ -57,6 +70,20 @@ namespace zypp void MediaSet::reset() { + media::MediaManager media_mgr; + for (MediaMap::iterator it = medias.begin(); it != medias.end(); it++) + { + if( media_mgr.isOpen(it->second)) { + try { + DBG << "Closing media access id " << it->second << endl; + media_mgr.close(it->second); + } + // paranoia ... + catch (const Exception & excpt_r) { + ZYPP_CAUGHT(excpt_r); + } + } + } medias = MediaMap(); } -- 2.7.4