#include "system.h"#include <rpmlib.h>#include <rpmte.h>#include <rpmgi.h>#include <rpmdb.h>#include <rpmmacro.h>#include "manifest.h"#include "debug.h"Go to the source code of this file.
Defines | |
| #define | _RPMGI_INTERNAL |
| #define | _RPMTS_INTERNAL |
Functions | |
| static const char * | ftsInfoStr (int fts_info) |
| static FD_t | rpmgiOpen (const char *path, const char *fmode) |
| Open a file after macro expanding path. | |
| static rpmRC | rpmgiLoadManifest (rpmgi gi, const char *path) |
| Load manifest into iterator arg list. | |
| static Header | rpmgiReadHeader (rpmgi gi, const char *path) |
| Return header from package. | |
| static rpmRC | rpmgiLoadReadHeader (rpmgi gi) |
| Read next header from package, lazily expanding manifests as found. | |
| static rpmRC | rpmgiWalkPathFilter (rpmgi gi) |
| Filter file tree walk path. | |
| static rpmRC | rpmgiWalkReadHeader (rpmgi gi) |
| Read header from next package, lazily walking file tree. | |
| static rpmRC | rpmgiGlobArgv (rpmgi gi, ARGV_t argv) |
| Append globbed arg list to iterator. | |
| static rpmRC | rpmgiInitFilter (rpmgi gi) |
| Return rpmdb match iterator with filters (if any) set. | |
| rpmgi | XrpmgiUnlink (rpmgi gi, const char *msg, const char *fn, unsigned ln) |
| rpmgi | XrpmgiLink (rpmgi gi, const char *msg, const char *fn, unsigned ln) |
| rpmgi | rpmgiFree (rpmgi gi) |
| Destroy a generalized iterator. | |
| rpmgi | rpmgiNew (rpmts ts, int tag, const void *keyp, size_t keylen) |
| Return a generalized iterator. | |
| rpmRC | rpmgiNext (rpmgi gi) |
| Perform next iteration step. | |
| const char * | rpmgiHdrPath (rpmgi gi) |
| Return current header path. | |
| Header | rpmgiHeader (rpmgi gi) |
| Return current iteration header. | |
| rpmts | rpmgiTs (rpmgi gi) |
| Return current iteration transaction set. | |
| rpmRC | rpmgiSetArgs (rpmgi gi, ARGV_t argv, int ftsOpts, rpmgiFlags flags) |
| Load iterator args. | |
| int | rpmgiNumErrors (rpmgi gi) |
| Return number of errors (file not found etc) encountered during iteration. | |
Variables | |
| int | _rpmgi_debug = 0 |
| rpmgiFlags | giFlags = RPMGI_NONE |
| static int | indent = 2 |
| static const char * | ftsInfoStrings [] |
| static const char* ftsInfoStr | ( | int | fts_info | ) | [static] |
Definition at line 54 of file rpmgi.c.
References ftsInfoStrings.
Referenced by rpmgiWalkPathFilter().
Destroy a generalized iterator.
| gi | generalized iterator |
Definition at line 406 of file rpmgi.c.
References _free(), rpmgi_s::argv, argvFree(), Fclose(), rpmgi_s::fd, rpmgi_s::fts, Fts_close(), rpmgi_s::ftsp, rpmgi_s::h, rpmgi_s::hdrPath, headerFree(), rpmgi_s::mi, rpmgi_s::nrefs, rpmdbFreeIterator(), rpmgiUnlink, rpmtsFree(), rpmtsiFree, rpmgi_s::ts, and rpmgi_s::tsi.
Referenced by rpmcliArgIter().
Append globbed arg list to iterator.
| gi | generalized iterator | |
| argv | arg list to be globbed (or NULL) |
Definition at line 287 of file rpmgi.c.
References _free(), rpmgi_s::argc, rpmgi_s::argv, argvAppend(), argvFree(), rpmgi_s::flags, RPMDBI_ARGLIST, RPMDBI_FTSWALK, RPMDBI_HDLIST, rpmEscapeSpaces(), RPMGI_NOGLOB, rpmGlob(), RPMRC_OK, and rpmgi_s::tag.
Referenced by rpmgiSetArgs().
| const char* rpmgiHdrPath | ( | rpmgi | gi | ) |
Return current header path.
| gi | generalized iterator |
Definition at line 680 of file rpmgi.c.
References rpmgi_s::hdrPath.
Referenced by rpmcliArgIter().
Return current iteration header.
| gi | generalized iterator |
Definition at line 685 of file rpmgi.c.
References rpmgi_s::h.
Referenced by rpmgiShowMatches().
Return rpmdb match iterator with filters (if any) set.
| gi | generalized iterator |
Definition at line 331 of file rpmgi.c.
References _, _free(), _rpmgi_debug, rpmgi_s::argv, rpmgi_s::keylen, rpmgi_s::keyp, rpmgi_s::mi, rpmdbFreeIterator(), rpmdbSetIteratorRE(), RPMERR_QUERYINFO, rpmError, RPMMIRE_DEFAULT, RPMRC_FAIL, RPMRC_OK, rpmtsInitIterator(), rpmgi_s::tag, tagName(), tagValue(), rpmgi_s::ts, and xstrdup().
Referenced by rpmgiNext().
Load manifest into iterator arg list.
| gi | generalized iterator | |
| path | file path |
Definition at line 96 of file rpmgi.c.
References rpmgi_s::argc, rpmgi_s::argv, Fclose(), rpmgiOpen(), RPMRC_FAIL, and rpmReadPackageManifest().
Referenced by rpmgiLoadReadHeader().
Read next header from package, lazily expanding manifests as found.
An empty file read as manifest truncates argv returning RPMRC_NOTFOUND.
Chained manifests lose an arg someplace.
| gi | generalized iterator |
Definition at line 155 of file rpmgi.c.
References _free(), rpmgi_s::argv, errno, rpmgi_s::flags, rpmgi_s::h, headerFree(), headerLink(), rpmgi_s::i, RPMGI_NOHEADER, RPMGI_NOMANIFEST, rpmgiLoadManifest(), rpmgiReadHeader(), RPMRC_NOTFOUND, and RPMRC_OK.
Referenced by rpmgiNext().
Return a generalized iterator.
| ts | transaction set | |
| tag | rpm tag | |
| keyp | key data (NULL for sequential access) | |
| keylen | key data length (0 will use strlen(keyp)) |
Definition at line 445 of file rpmgi.c.
References rpmgi_s::active, rpmgi_s::argc, rpmgi_s::argv, rpmgi_s::errors, rpmgi_s::fd, rpmgi_s::flags, rpmgi_s::fts, rpmgi_s::ftsOpts, rpmgi_s::ftsp, rpmgi_s::h, rpmgi_s::hdrPath, rpmgi_s::i, rpmgi_s::keylen, rpmgi_s::keyp, rpmgi_s::mi, rpmgiLink, rpmtsLink, rpmgi_s::tag, rpmgi_s::ts, rpmgi_s::tsi, and xcalloc().
Referenced by rpmcliArgIter().
Perform next iteration step.
| gi | generalized iterator |
Definition at line 480 of file rpmgi.c.
References _, _free(), _rpmgi_debug, rpmgi_s::active, rpmgi_s::argc, rpmgi_s::argv, rpmts_s::dbmode, rpmgi_s::errors, Fclose(), rpmgi_s::fd, rpmgi_s::flags, rpmgi_s::fts, Fts_close(), Fts_open(), _ftsent::fts_path, rpmgi_s::ftsOpts, rpmgi_s::ftsp, rpmgi_s::h, rpmgi_s::hdrPath, HEADER_MAGIC_YES, headerFree(), headerLink(), headerRead(), rpmgi_s::i, rpmgi_s::mi, rpmts_s::nsuggests, rpmts_s::probs, rpmdbFreeIterator(), rpmdbGetIteratorOffset(), RPMDBI_ADDED, RPMDBI_ARGLIST, RPMDBI_FTSWALK, RPMDBI_HDLIST, RPMDBI_PACKAGES, rpmdbNextIterator(), rpmExpand(), RPMGI_NOHEADER, RPMGI_TSADD, RPMGI_TSORDER, rpmgiInitFilter(), rpmgiLoadReadHeader(), rpmgiOpen(), rpmgiWalkReadHeader(), rpmIsVerbose, RPMMESS_VERBOSE, rpmMessage, rpmpsFree(), rpmpsNumProblems(), rpmpsPrint(), RPMRC_NOTFOUND, RPMRC_OK, rpmteHeader(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsCloseDB(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), rpmtsOrder(), rpmtsProblems(), rpmts_s::suggests, rpmgi_s::tag, TR_ADDED, rpmgi_s::ts, rpmgi_s::tsi, and xstrdup().
Referenced by rpmcliArgIter(), and rpmgiShowMatches().
| static FD_t rpmgiOpen | ( | const char * | path, | |
| const char * | fmode | |||
| ) | [static] |
Open a file after macro expanding path.
| path | file path | |
| fmode | open mode |
Definition at line 73 of file rpmgi.c.
References _, _free(), Fclose(), Ferror(), Fopen(), Fstrerror(), RPMERR_OPEN, rpmError, and rpmExpand().
Referenced by rpmgiLoadManifest(), rpmgiNext(), and rpmgiReadHeader().
Return header from package.
| gi | generalized iterator | |
| path | file path |
Definition at line 117 of file rpmgi.c.
References Fclose(), headerFree(), rpmgiOpen(), RPMRC_FAIL, RPMRC_NOKEY, RPMRC_NOTFOUND, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadPackageFile(), and rpmgi_s::ts.
Referenced by rpmgiLoadReadHeader(), and rpmgiWalkReadHeader().
| rpmRC rpmgiSetArgs | ( | rpmgi | gi, | |
| ARGV_t | argv, | |||
| int | ftsOpts, | |||
| rpmgiFlags | flags | |||
| ) |
Load iterator args.
| gi | generalized iterator | |
| argv | arg list | |
| ftsOpts | fts(3) flags | |
| flags | iterator flags |
Definition at line 699 of file rpmgi.c.
References rpmgi_s::flags, rpmgi_s::ftsOpts, and rpmgiGlobArgv().
Referenced by rpmcliArgIter().
Return current iteration transaction set.
| gi | generalized iterator |
Definition at line 692 of file rpmgi.c.
References rpmgi_s::ts.
Filter file tree walk path.
| gi | generalized iterator |
Definition at line 204 of file rpmgi.c.
References _rpmgi_debug, rpmgi_s::fts, FTS_D, FTS_DC, FTS_DEFAULT, FTS_DNR, FTS_DOT, FTS_DP, FTS_ERR, FTS_F, _ftsent::fts_info, FTS_INIT, _ftsent::fts_level, _ftsent::fts_name, _ftsent::fts_namelen, FTS_NS, FTS_NSOK, FTS_SL, FTS_SLNONE, FTS_W, ftsInfoStr(), indent, RPMMESS_DEBUG, rpmMessage, RPMRC_NOTFOUND, and RPMRC_OK.
Referenced by rpmgiWalkReadHeader().
Read header from next package, lazily walking file tree.
| gi | generalized iterator |
Definition at line 253 of file rpmgi.c.
References rpmgi_s::flags, rpmgi_s::fts, _ftsent::fts_path, Fts_read(), rpmgi_s::ftsp, rpmgi_s::h, headerFree(), headerLink(), RPMGI_NOHEADER, rpmgiReadHeader(), rpmgiWalkPathFilter(), RPMRC_NOTFOUND, and RPMRC_OK.
Referenced by rpmgiNext().
Definition at line 395 of file rpmgi.c.
References _rpmgi_debug, and rpmgi_s::nrefs.
Definition at line 384 of file rpmgi.c.
References _rpmgi_debug, and rpmgi_s::nrefs.
| int _rpmgi_debug = 0 |
Definition at line 26 of file rpmgi.c.
Referenced by rpmgiInitFilter(), rpmgiNext(), rpmgiWalkPathFilter(), XrpmgiLink(), and XrpmgiUnlink().
const char* ftsInfoStrings[] [static] |
{
"UNKNOWN",
"D",
"DC",
"DEFAULT",
"DNR",
"DOT",
"DP",
"ERR",
"F",
"INIT",
"NS",
"NSOK",
"SL",
"SLNONE",
"W",
}
Definition at line 35 of file rpmgi.c.
Referenced by ftsInfoStr().
| rpmgiFlags giFlags = RPMGI_NONE |
Definition at line 29 of file rpmgi.c.
Referenced by rpmcliArgIter().
int indent = 2 [static] |
Definition at line 32 of file rpmgi.c.
Referenced by rpmfts_print(), and rpmgiWalkPathFilter().
1.6.1