Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

lib/verify.c File Reference

Verify installed payload files from package metadata. More...

#include "system.h"
#include <rpmcli.h>
#include "psm.h"
#include "rpmfi.h"
#include "rpmts.h"
#include "legacy.h"
#include "ugid.h"
#include "debug.h"

Go to the source code of this file.

Defines

#define S_ISDEV(m)   (S_ISBLK((m)) || S_ISCHR((m)))
#define _verify(_RPMVERIFY_F, _C)   ((verifyResult & _RPMVERIFY_F) ? _C : aok)
#define _verifylink(_RPMVERIFY_F, _C)
#define _verifyfile(_RPMVERIFY_F, _C)

Functions

int rpmVerifyFile (const rpmts ts, const rpmfi fi, rpmVerifyAttrs *res, rpmVerifyAttrs omitMask)
int rpmVerifyScript (QVA_t qva, rpmts ts, rpmfi fi, FD_t scriptFd)
 Return exit code from running verify script from header.

int verifyHeader (QVA_t qva, const rpmts ts, rpmfi fi)
 Check file info from header against what's actually installed.

int verifyDependencies (QVA_t qva, rpmts ts, Header h)
 Check installed package dependencies for problems.

int showVerifyPackage (QVA_t qva, rpmts ts, Header h)
int rpmcliVerify (rpmts ts, QVA_t qva, const char **argv)

Variables

int _rpmds_unspecified_epoch_noise


Detailed Description

Verify installed payload files from package metadata.

Definition in file verify.c.


Define Documentation

#define _verify _RPMVERIFY_F,
_C       ((verifyResult & _RPMVERIFY_F) ? _C : aok)
 

#define _verifyfile _RPMVERIFY_F,
_C   
 

Value:

((verifyResult & RPMVERIFY_READFAIL) ? unknown : \
         (verifyResult & _RPMVERIFY_F) ? _C : aok)

#define _verifylink _RPMVERIFY_F,
_C   
 

Value:

((verifyResult & RPMVERIFY_READLINKFAIL) ? unknown : \
         (verifyResult & _RPMVERIFY_F) ? _C : aok)

#define S_ISDEV      (S_ISBLK((m)) || S_ISCHR((m)))
 

Definition at line 22 of file verify.c.

Referenced by rpmVerifyFile().


Function Documentation

int rpmcliVerify rpmts    ts,
QVA_t    qva,
const char **    argv
 

Verify package install.

Todo:
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?
Parameters:
ts  transaction set
qva  parsed query/verify options
argv  verify argument(s) (or NULL)
Returns:
0 on success, else no. of failures

Definition at line 466 of file verify.c.

References _RPMVSF_NODIGESTS, _RPMVSF_NOSIGNATURES, argv, rpmQVKArguments_s::qva_flags, rpmQVKArguments_s::qva_showPackage, rpmQVKArguments_s::qva_source, rpmExpandNumeric(), rpmQueryVerify(), RPMQV_ALL, rpmts, rpmtsEmpty(), rpmtsSetVSFlags(), RPMVSF_NEEDPAYLOAD, RPMVSF_NOHDRCHK, rpmVSFlags, showVerifyPackage(), VERIFY_DIGEST, VERIFY_HDRCHK, and VERIFY_SIGNATURE.

Referenced by main().

int rpmVerifyFile const rpmts    ts,
rpmfi    fi,
rpmVerifyAttrs   res,
rpmVerifyAttrs    omitMask
 

Verify file attributes (including MD5 sum).

Todo:
gnorpm and python bindings prevent this from being static.
Parameters:
ts  transaction set
fi  file info (with linked header and current file index)
Return values:
res  bit(s) returned to indicate failure
Parameters:
omitMask  bit(s) to disable verify checks
Returns:
0 on success (or not installed), 1 on error

Definition at line 27 of file verify.c.

References alloca(), domd5(), gidToGname(), Lstat(), Readlink(), rpmfi, rpmfiFFlags(), rpmfiFGroup(), rpmfiFLink(), rpmfiFMode(), rpmfiFMtime(), rpmfiFN(), rpmfiFRdev(), rpmfiFSize(), rpmfiFState(), rpmfiFUser(), RPMFILE_GHOST, RPMFILE_STATE_NETSHARED, RPMFILE_STATE_NORMAL, RPMFILE_STATE_NOTINSTALLED, RPMFILE_STATE_REPLACED, RPMFILE_STATE_WRONGCOLOR, rpmfileAttrs, rpmfiMD5(), rpmfiVFlags(), rpmts, rpmtsRootDir(), RPMVERIFY_FILESIZE, RPMVERIFY_GROUP, RPMVERIFY_LINKTO, RPMVERIFY_LSTATFAIL, RPMVERIFY_MD5, RPMVERIFY_MODE, RPMVERIFY_MTIME, RPMVERIFY_NONE, RPMVERIFY_RDEV, RPMVERIFY_READFAIL, RPMVERIFY_READLINKFAIL, RPMVERIFY_USER, rpmVerifyAttrs, S_ISDEV, S_ISLNK, stpcpy(), uidToUname(), and uint_16.

Referenced by verifyHeader().

int rpmVerifyScript QVA_t    qva,
rpmts    ts,
rpmfi    fi,
FD_t    scriptFd
[static]
 

Return exit code from running verify script from header.

Todo:
malloc/free/refcount handling is fishy here.
Parameters:
qva  parsed query/verify options
ts  transaction set
fi  file info set
scriptFd  file handle to use for stderr (or NULL)
Returns:
0 on success

Definition at line 218 of file verify.c.

References rpmpsm_s::progTag, PSM_SCRIPT, rpmfi, rpmpsmFree(), rpmpsmNew(), rpmpsmStage(), RPMTAG_VERIFYSCRIPT, RPMTAG_VERIFYSCRIPTPROG, rpmts, rpmtsSetScriptFd(), rpmpsm_s::scriptTag, rpmpsm_s::stepName, and rpmpsm_s::ts.

Referenced by showVerifyPackage().

int showVerifyPackage QVA_t    qva,
rpmts    ts,
Header    h
 

Display results of package verify.

Parameters:
qva  parsed query/verify options
ts  transaction set
h  header to use for verify
Returns:
result of last non-zero verify return

Definition at line 426 of file verify.c.

References _rpmds_unspecified_epoch_noise, Fclose(), fdDup(), headerIsEntry(), rpmQVKArguments_s::qva_flags, rpmfi, rpmfiFree(), rpmfiNew(), rpmIsVerbose, RPMTAG_BASENAMES, RPMTAG_VERIFYSCRIPT, rpmts, rpmVerifyScript(), VERIFY_DEPS, VERIFY_FILES, VERIFY_SCRIPT, verifyDependencies(), and verifyHeader().

Referenced by rpmcliVerify().

int verifyDependencies QVA_t    qva,
rpmts    ts,
Header    h
[static]
 

Check installed package dependencies for problems.

Parameters:
qva  parsed query/verify options
ts  transaction set
h  header
Returns:
0 no problems, 1 problems found

Definition at line 363 of file verify.c.

References _, alloca(), rpmProblem_s::altNEVR, rpmProblem_s::pkgNEVR, rpmps_s::probs, RPMMESS_NORMAL, rpmMessage, rpmpsFree(), rpmpsNumProblems(), rpmts, rpmtsAddInstallElement(), rpmtsCheck(), rpmtsEmpty(), rpmtsProblems(), and stpcpy().

Referenced by showVerifyPackage().

int verifyHeader QVA_t    qva,
const rpmts    ts,
rpmfi    fi
[static]
 

Check file info from header against what's actually installed.

Parameters:
qva  parsed query/verify options
ts  transaction set
fi  file info set
Returns:
0 no problems, 1 problems found

Definition at line 253 of file verify.c.

References _, rpmQVKArguments_s::qva_fflags, rpmQVKArguments_s::qva_flags, rpmfi, rpmfiFFlags(), rpmfiFN(), rpmfiInit(), RPMFILE_CONFIG, RPMFILE_DOC, RPMFILE_GHOST, RPMFILE_LICENSE, RPMFILE_MISSINGOK, RPMFILE_PUBKEY, RPMFILE_README, rpmfileAttrs, rpmfiLink, rpmfiNext(), rpmfiUnlink, rpmIsVerbose, RPMMESS_NORMAL, rpmMessage, rpmts, RPMVERIFY_FILESIZE, RPMVERIFY_GROUP, RPMVERIFY_LINKTO, RPMVERIFY_MD5, RPMVERIFY_MODE, RPMVERIFY_MTIME, RPMVERIFY_RDEV, RPMVERIFY_USER, rpmVerifyAttrs, rpmVerifyFile(), and VERIFY_ATTRS.

Referenced by showVerifyPackage().


Variable Documentation

int _rpmds_unspecified_epoch_noise
 

Definition at line 25 of file verify.c.

Referenced by rpmdsCompare(), and showVerifyPackage().


Generated on Sun Oct 26 13:02:06 2003 for rpm by doxygen1.2.18