1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
11 #include "zypp/base/String.h"
12 #include "zypp/base/Logger.h"
13 #include "zypp/base/Gettext.h"
15 #include "Downloader.h"
16 #include "zypp/KeyContext.h"
17 #include "zypp/ZYppCallbacks.h"
26 Downloader::Downloader()
29 Downloader::Downloader(const RepoInfo & repoinfo) : _repoinfo(repoinfo)
32 Downloader::~Downloader()
36 RepoStatus Downloader::status( MediaSetAccess &media )
38 WAR << "Non implemented" << endl;
42 void Downloader::download( MediaSetAccess &media,
43 const Pathname &dest_dir,
44 const ProgressData::ReceiverFnc & progress )
46 WAR << "Non implemented" << endl;
49 void Downloader::defaultDownloadMasterIndex( MediaSetAccess & media_r, const Pathname & destdir_r, const Pathname & masterIndex_r )
51 Pathname sigpath = masterIndex_r.extend( ".asc" );
52 Pathname keypath = masterIndex_r.extend( ".key" );
54 SignatureFileChecker sigchecker;
56 enqueue( OnMediaLocation( sigpath, 1 ).setOptional( true ) );
57 start( destdir_r, media_r );
60 // only add the signature if it exists
61 if ( PathInfo(destdir_r / sigpath).isExist() )
62 sigchecker = SignatureFileChecker( destdir_r / sigpath );
64 enqueue( OnMediaLocation( keypath, 1 ).setOptional( true ) );
65 start( destdir_r, media_r );
69 context.setRepoInfo( repoInfo() );
70 // only add the key if it exists
71 if ( PathInfo(destdir_r / keypath).isExist() )
72 sigchecker.addPublicKey( destdir_r / keypath, context );
74 // set the checker context even if the key is not known (unsigned repo, key
75 // file missing; bnc #495977)
76 sigchecker.setKeyContext( context );
78 if ( ! repoInfo().gpgCheck() )
80 WAR << "Signature checking disabled in config of repository " << repoInfo().alias() << endl;
82 enqueue( OnMediaLocation( masterIndex_r, 1 ),
83 repoInfo().gpgCheck() ? FileChecker(sigchecker) : FileChecker(NullFileChecker()) );
84 start( destdir_r, media_r );