apt @VERSION@
Public Member Functions | Protected Member Functions | Protected Attributes

pkgAcqMetaIndex Class Reference

An item that is responsible for downloading the meta-index {{{ file (i.e., Release) itself and verifying its signature. More...

#include <acquire-item.h>

Inheritance diagram for pkgAcqMetaIndex:
pkgAcquire::Item WeakPointable pkgAcqMetaClearSig

List of all members.

Public Member Functions

virtual void Failed (string Message, pkgAcquire::MethodConfig *Cnf)
 Invoked by the acquire worker when the object couldn't be fetched.
virtual void Done (string Message, unsigned long Size, string Hash, pkgAcquire::MethodConfig *Cnf)
 Invoked by the acquire worker when the object was fetched successfully.
virtual string Custom600Headers ()
 Custom headers to be sent to the fetch process.
virtual string DescURI ()
 A "descriptive" URI-like string.
 pkgAcqMetaIndex (pkgAcquire *Owner, string URI, string URIDesc, string ShortDesc, string SigFile, const vector< struct IndexTarget * > *IndexTargets, indexRecords *MetaIndexParser)
 Create a new pkgAcqMetaIndex.

Protected Member Functions

bool VerifyVendor (string Message)
 Check that the release file is a release file for the correct distribution.
void RetrievalDone (string Message)
 Called when a file is finished being retrieved.
void AuthDone (string Message)
 Called when authentication succeeded.
void QueueIndexes (bool verify)
 Starts downloading the individual index files.

Protected Attributes

pkgAcquire::ItemDesc Desc
 The fetch command that is currently being processed.
string RealURI
 The URI that is actually being downloaded; never modified by pkgAcqMetaIndex.
string SigFile
 The file in which the signature for this index was stored.
const vector< struct
IndexTarget * > * 
IndexTargets
 The index files to download.
indexRecordsMetaIndexParser
 The parser for the meta-index file.
bool AuthPass
 If true, the index's signature is currently being verified.
bool IMSHit

Detailed Description

An item that is responsible for downloading the meta-index {{{ file (i.e., Release) itself and verifying its signature.

Once the download and verification are complete, the downloads of the individual index files are queued up using pkgAcqDiffIndex. If the meta-index file had a valid signature, the expected hashsums of the index files will be the md5sums listed in the meta-index; otherwise, the expected hashsums will be "" (causing the authentication of the index files to be bypassed).


Member Function Documentation

void AuthDone ( string  Message) [protected]

Called when authentication succeeded.

Sanity-checks the authenticated file, queues up the individual index files for download, and saves the signature in the lists directory next to the authenticated list file.

Parameters:
MessageThe message block received from the fetch subprocess.

References pkgAcquire::Item::ErrorText, QueueIndexes(), RealURI, pkgAcquire::Item::Rename(), SigFile, pkgAcquire::Item::StatAuthError, and VerifyVendor().

string Custom600Headers ( ) [virtual]

Custom headers to be sent to the fetch process.

Returns:
a string containing RFC822-style headers that are to be inserted into the 600 URI Acquire message sent to the fetch subprocess. The headers are inserted after a newline-less line, so they should (if nonempty) have a leading newline and no trailing newline.

Reimplemented from pkgAcquire::Item.

Reimplemented in pkgAcqMetaClearSig.

References RealURI.

virtual string DescURI ( ) [inline, virtual]

A "descriptive" URI-like string.

Returns:
a URI that should be used to describe what is being fetched.

Implements pkgAcquire::Item.

References RealURI.

virtual void Done ( string  Message,
unsigned long  Size,
string  Hash,
pkgAcquire::MethodConfig Cnf 
) [virtual]

Invoked by the acquire worker when the object was fetched successfully.

Note that the object might not have been written to DestFile; check for the presence of an Alt-Filename entry in Message to find the file to which it was really written.

Done is often used to switch from one stage of the processing to the next (e.g. fetching, unpacking, copying). It is one branch of the continuation of the fetch process.

Parameters:
MessageData from the acquire method. Use LookupTag() to parse it.
SizeThe size of the object that was fetched.
HashThe HashSum of the object that was fetched.
CnfThe method via which the object was fetched.
See also:
pkgAcqMethod

Reimplemented from pkgAcquire::Item.

virtual void Failed ( string  Message,
pkgAcquire::MethodConfig Cnf 
) [virtual]

Invoked by the acquire worker when the object couldn't be fetched.

This is a branch of the continuation of the fetch process.

Parameters:
MessageAn RFC822-formatted message from the acquire method describing what went wrong. Use LookupTag() to parse it.
CnfThe method via which the worker tried to fetch this object.
See also:
pkgAcqMethod

Reimplemented from pkgAcquire::Item.

Reimplemented in pkgAcqMetaClearSig.

void QueueIndexes ( bool  verify) [protected]

Starts downloading the individual index files.

Parameters:
verifyIf true, only indices whose expected hashsum can be determined from the meta-index will be downloaded, and the hashsums of indices will be checked (reporting StatAuthError if there is a mismatch). If verify is false, no hashsum checking will be performed.

References pkgAcquire::Item::ErrorText, indexRecords::Exists(), IndexTargets, pkgAcquire::Item::StatAuthError, and pkgAcquire::Item::StatError.

Referenced by AuthDone().

void RetrievalDone ( string  Message) [protected]

Called when a file is finished being retrieved.

If the file was not downloaded to DestFile, a copy process is set up to copy it to DestFile; otherwise, Complete is set to true and the file is moved to its final location.

Parameters:
MessageThe message block received from the fetch subprocess.

References pkgAcquire::Item::Complete, Desc, pkgAcquire::Item::ErrorText, pkgAcquire::Item::Local, pkgAcquire::Item::QueueURI(), RealURI, SigFile, pkgAcquire::Item::StatError, and pkgAcquire::ItemDesc::URI.

bool VerifyVendor ( string  Message) [protected]

Check that the release file is a release file for the correct distribution.

Returns:
true if no fatal errors were encountered.

References Desc, pkgAcquire::ItemDesc::Description, and RealURI.

Referenced by AuthDone().


Member Data Documentation

string SigFile [protected]

The file in which the signature for this index was stored.

If empty, the signature and the md5sums of the individual indices will not be checked.

Referenced by AuthDone(), pkgAcqMetaClearSig::pkgAcqMetaClearSig(), and RetrievalDone().


The documentation for this class was generated from the following files: