#include "system.h"
#include <header_internal.h>
#include "debug.h"
Go to the source code of this file.
Data Structures | |
struct | headerIterator_s |
Header tag iterator data structure. More... | |
struct | headerSprintfArgs_s |
Defines | |
#define | __HEADER_PROTOTYPES__ |
#define | PARSER_BEGIN 0 |
#define | PARSER_IN_ARRAY 1 |
#define | PARSER_IN_EXPR 2 |
#define | hdrchkTags(_ntags) ((_ntags) & 0xffff0000) |
Sanity check on no. | |
#define | hdrchkType(_type) ((_type) < RPM_MIN_TYPE || (_type) > RPM_MAX_TYPE) |
Sanity check on type values. | |
#define | hdrchkData(_nbytes) ((_nbytes) & 0xff000000) |
Sanity check on data size and/or offset and/or count. | |
#define | hdrchkAlign(_type, _off) ((_off) & (typeAlign[_type]-1)) |
Sanity check on alignment for data type. | |
#define | hdrchkRange(_dl, _off) ((_off) < 0 || (_off) > (_dl)) |
Sanity check on range of data offset. | |
Typedefs | |
typedef headerSprintfArgs_s * | headerSprintfArgs |
Functions | |
const char *const | tagName (int tag) |
Return name of tag from value. | |
void * | _free (const void *p) |
Wrapper to free(3), hides const compilation noise, permit NULL, return NULL. | |
Header | headerLink (Header h) |
Header | headerUnlink (Header h) |
Header | headerFree (Header h) |
Header | headerNew (void) |
int | indexCmp (const void *avp, const void *bvp) |
void | headerSort (Header h) |
int | offsetCmp (const void *avp, const void *bvp) |
void | headerUnsort (Header h) |
unsigned int | headerSizeof (Header h, enum hMagic magicp) |
int | dataLength (int_32 type, hPTR_t p, int_32 count, int onDisk, hPTR_t pend) |
Return length of entry data. | |
int | regionSwab (indexEntry entry, int il, int dl, entryInfo pe, unsigned char *dataStart, const unsigned char *dataEnd, int regionid) |
void * | doHeaderUnload (Header h, int *lengthPtr) |
void * | headerUnload (Header h) |
indexEntry | findEntry (Header h, int_32 tag, int_32 type) |
Find matching (tag,type) entry in header. | |
int | headerRemoveEntry (Header h, int_32 tag) |
Header | headerLoad (void *uh) |
Header | headerReload (Header h, int tag) |
Header | headerCopyLoad (const void *uh) |
Header | headerRead (FD_t fd, enum hMagic magicp) |
int | headerWrite (FD_t fd, Header h, enum hMagic magicp) |
int | headerIsEntry (Header h, int_32 tag) |
int | copyEntry (const indexEntry entry, hTYP_t type, hPTR_t *p, hCNT_t c, int minMem) |
int | headerMatchLocale (const char *td, const char *l, const char *le) |
Does locale match entry in header i18n table? | |
char * | headerFindI18NString (Header h, indexEntry entry) |
Return i18n string from header that matches locale. | |
int | intGetEntry (Header h, int_32 tag, hTAG_t type, hPTR_t *p, hCNT_t c, int minMem) |
Retrieve tag data from header. | |
void * | headerFreeTag (Header h, const void *data, rpmTagType type) |
int | headerGetEntry (Header h, int_32 tag, hTYP_t type, void **p, hCNT_t c) |
int | headerGetEntryMinMemory (Header h, int_32 tag, hTYP_t type, hPTR_t *p, hCNT_t c) |
int | headerGetRawEntry (Header h, int_32 tag, int_32 *type, hPTR_t *p, int_32 *c) |
void | copyData (int_32 type, void *dstPtr, const void *srcPtr, int_32 cnt, int dataLength) |
void * | grabData (int_32 type, hPTR_t p, int_32 c, int *lengthPtr) |
Return (malloc'ed) copy of entry data. | |
int | headerAddEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
int | headerAppendEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
int | headerAddOrAppendEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
int | headerAddI18NString (Header h, int_32 tag, const char *string, const char *lang) |
int | headerModifyEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
char | escapedChar (const char ch) |
sprintfToken | freeFormat (sprintfToken format, int num) |
Destroy headerSprintf format array. | |
HeaderIterator | headerFreeIterator (HeaderIterator hi) |
HeaderIterator | headerInitIterator (Header h) |
int | headerNextIterator (HeaderIterator hi, hTAG_t tag, hTYP_t type, hPTR_t *p, hCNT_t c) |
Header | headerCopy (Header h) |
headerSprintfArgs | hsaInit (headerSprintfArgs hsa) |
Initialize an hsa iteration. | |
sprintfToken | hsaNext (headerSprintfArgs hsa) |
Return next hsa iteration item. | |
headerSprintfArgs | hsaFini (headerSprintfArgs hsa) |
Finish an hsa iteration. | |
char * | hsaReserve (headerSprintfArgs hsa, size_t need) |
Reserve sufficient buffer space for next output value. | |
int | findTag (headerSprintfArgs hsa, sprintfToken token, const char *name) |
int | parseExpression (headerSprintfArgs hsa, sprintfToken token, char *str, char **endPtr) |
int | parseFormat (headerSprintfArgs hsa, char *str, sprintfToken *formatPtr, int *numTokensPtr, char **endPtr, int state) |
int | getExtension (headerSprintfArgs hsa, headerTagTagFunction fn, hTYP_t typeptr, hPTR_t *data, hCNT_t countptr, rpmec ec) |
Call a header extension only once, saving results. | |
char * | formatValue (headerSprintfArgs hsa, sprintfTag tag, int element) |
char * | singleSprintf (headerSprintfArgs hsa, sprintfToken token, int element) |
rpmec | rpmecNew (const headerSprintfExtension exts) |
Create an extension cache. | |
rpmec | rpmecFree (const headerSprintfExtension exts, rpmec ec) |
Destroy an extension cache. | |
char * | headerSprintf (Header h, const char *fmt, const struct headerTagTableEntry_s *tbltags, const struct headerSprintfExtension_s *extensions, errmsg_t *errmsg) |
char * | octalFormat (int_32 type, hPTR_t data, char *formatPrefix, int padding, int element) |
char * | hexFormat (int_32 type, hPTR_t data, char *formatPrefix, int padding, int element) |
char * | realDateFormat (int_32 type, hPTR_t data, char *formatPrefix, int padding, int element, const char *strftimeFormat) |
char * | dateFormat (int_32 type, hPTR_t data, char *formatPrefix, int padding, int element) |
char * | dayFormat (int_32 type, hPTR_t data, char *formatPrefix, int padding, int element) |
char * | shescapeFormat (int_32 type, hPTR_t data, char *formatPrefix, int padding, int element) |
void | headerCopyTags (Header headerFrom, Header headerTo, hTAG_t tagstocopy) |
Variables | |
int | _hdr_debug = 0 |
unsigned char | header_magic [8] |
int | typeAlign [16] |
int | typeSizes [16] |
size_t | headerMaxbytes = (32*1024*1024) |
HV_t | hdrVec = &hdrVec1 |
const struct headerSprintfExtension_s | headerDefaultFormats [] |
HV_s | hdrVec1 |
Definition in file header.c.
|
|
|
Sanity check on alignment for data type.
|
|
Sanity check on data size and/or offset and/or count. This check imposes a limit of 16Mb, more than enough. |
|
Sanity check on range of data offset.
|
|
Sanity check on no. of tags. This check imposes a limit of 65K tags, more than enough. |
|
Sanity check on type values.
|
|
Definition at line 34 of file header.c. Referenced by headerSprintf(). |
|
Definition at line 35 of file header.c. Referenced by parseFormat(). |
|
Definition at line 36 of file header.c. Referenced by parseExpression(), and parseFormat(). |
|
|
|
Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
|
|
Definition at line 1807 of file header.c. References dataLength(), int_32, RPM_I18NSTRING_TYPE, and RPM_STRING_ARRAY_TYPE. Referenced by grabData(), and headerAppendEntry(). |
|
Return length of entry data.
Definition at line 394 of file header.c. References hPTR_t, int_32, RPM_I18NSTRING_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, and typeSizes. Referenced by copyData(), grabData(), headerAppendEntry(), and regionSwab(). |
|
Definition at line 3596 of file header.c. References _, hPTR_t, int_32, and realDateFormat(). |
|
Definition at line 3612 of file header.c. References _, hPTR_t, int_32, and realDateFormat(). |
|
Definition at line 2214 of file header.c. Referenced by parseFormat(). |
|
Find matching (tag,type) entry in header.
Definition at line 904 of file header.c. References headerToken_s::flags, HEADERFLAG_SORTED, headerSort(), headerToken_s::index, indexCmp(), headerToken_s::indexUsed, indexEntry_s::info, int_32, RPM_NULL_TYPE, entryInfo_s::tag, and entryInfo_s::type. |
|
Definition at line 2518 of file header.c. References alloca(), sprintfTag_s::ext, sprintfTag_s::extNum, headerSprintfArgs_s::exts, sprintfTag_s::fmt, HEADER_EXT_FORMAT, HEADER_EXT_LAST, HEADER_EXT_MORE, HEADER_EXT_TAG, headerTagTableEntry_s::name, headerSprintfExtension_s::name, stpcpy(), sprintfTag_s::tag, headerSprintfArgs_s::tags, sprintfTag_s::type, headerSprintfExtension_s::type, sprintfToken_s::type, headerSprintfExtension_s::u, sprintfToken_s::u, headerTagTableEntry_s::val, and xstrcasecmp(). Referenced by parseExpression(), and parseFormat(). |
|
Definition at line 2997 of file header.c. References _, _free(), sprintfTag_s::arrayCount, headerSprintfArgs_s::ec, headerSprintfArgs_s::errmsg, sprintfTag_s::ext, sprintfTag_s::extNum, sprintfTag_s::fmt, sprintfTag_s::format, getExtension(), headerSprintfArgs_s::h, headerFreeData(), headerGetEntry(), hPTR_t, hsaReserve(), int_32, int_8, sprintfTag_s::pad, RPM_BIN_TYPE, RPM_CHAR_TYPE, RPM_INT16_TYPE, RPM_INT32_TYPE, RPM_INT8_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, stpcpy(), sprintfTag_s::tag, uint_16, headerSprintfArgs_s::val, headerSprintfArgs_s::vallen, xmalloc(), and xstrdup(). Referenced by singleSprintf(). |
|
Destroy headerSprintf format array.
Definition at line 2235 of file header.c. References _free(), sprintfToken_s::array, sprintfToken_s::cond, sprintfToken_s::type, and sprintfToken_s::u. Referenced by headerSprintf(), parseExpression(), and parseFormat(). |
|
Call a header extension only once, saving results.
Definition at line 2968 of file header.c. References rpmec_s::avail, rpmec_s::count, rpmec_s::data, rpmec_s::freeit, headerSprintfArgs_s::h, hCNT_t, headerTagTagFunction, hPTR_t, hTYP_t, and rpmec_s::type. Referenced by formatValue(), and singleSprintf(). |
|
Return (malloc'ed) copy of entry data.
Definition at line 1847 of file header.c. References copyData(), dataLength(), hPTR_t, int_32, and xmalloc(). Referenced by headerAddEntry(), and headerModifyEntry(). |
|
|
Add locale specific tag to header. A NULL lang is interpreted as the C locale. Here are the rules: * - If the tag isn't in the header, it's added with the passed string * as new value. * - If the tag occurs multiple times in entry, which tag is affected * by the operation is undefined. * - If the tag is in the header w/ this language, the entry is * *replaced* (like headerModifyEntry()). *
Definition at line 2025 of file header.c. References _free(), alloca(), entryInfo_s::count, indexEntry_s::data, ENTRY_IN_REGION, findEntry(), HEADER_I18NTABLE, headerAddEntry(), indexEntry_s::info, int_32, indexEntry_s::length, entryInfo_s::offset, RPM_I18NSTRING_TYPE, RPM_STRING_ARRAY_TYPE, xmalloc(), and xrealloc(). Referenced by handlePreambleTag(), and parseDescription(). |
|
Add or append element to tag array in header.
Definition at line 1995 of file header.c. References findEntry(), headerAddEntry(), headerAppendEntry(), and int_32. Referenced by addFileToArrayTag(), addOrAppendListEntry(), addReqProv(), ftsCacheUpdate(), genCpioListAndHeader(), processPubkeyFile(), processScriptFiles(), processSourceFiles(), providePackageNVR(), and rpmcliImportPubkey(). |
|
Append element to tag array in header. Appends item p to entry w/ tag and type as passed. Won't work on RPM_STRING_TYPE. Any pointers into header memory returned from headerGetEntryMinMemory() for this entry are invalid after this call has been made!
Definition at line 1944 of file header.c. References copyData(), entryInfo_s::count, indexEntry_s::data, dataLength(), ENTRY_IN_REGION, findEntry(), indexEntry_s::info, int_32, indexEntry_s::length, entryInfo_s::offset, RPM_I18NSTRING_TYPE, RPM_STRING_TYPE, xmalloc(), and xrealloc(). Referenced by addChangelogEntry(), and headerAddOrAppendEntry(). |
|
Duplicate a header.
Definition at line 2368 of file header.c. References HEADER_IMAGE, headerAddEntry(), headerFreeData(), headerFreeIterator(), headerInitIterator(), headerNew(), headerNextIterator(), headerReload(), hPTR_t, and int_32. Referenced by hdrUnload(), and rpmdbRebuild(). |
|
Make a copy and convert header to in-memory representation.
Definition at line 1227 of file header.c. References _free(), headerToken_s::flags, hdrchkData, hdrchkTags, HEADERFLAG_ALLOCATED, headerLoad(), headerMaxbytes, int_32, and xmalloc(). Referenced by rpmdbNextIterator(), rpmpsmStage(), and rpmReSign(). |
|
Duplicate tag values from one header into another.
Definition at line 3691 of file header.c. References headerAddEntry(), headerFreeData(), headerGetEntryMinMemory(), headerIsEntry(), hPTR_t, hTAG_t, and int_32. Referenced by headerInject(), packageBinaries(), and parsePreamble(). |
|
Return i18n string from header that matches locale.
Definition at line 1615 of file header.c. References entryInfo_s::count, indexEntry_s::data, findEntry(), getenv(), HEADER_I18NTABLE, headerMatchLocale(), indexEntry_s::info, and RPM_STRING_ARRAY_TYPE. Referenced by intGetEntry(). |
|
Dereference a header instance.
Definition at line 193 of file header.c. References _free(), headerToken_s::blob, indexEntry_s::data, ENTRY_IN_REGION, ENTRY_IS_REGION, headerToken_s::flags, HEADERFLAG_ALLOCATED, headerUnlink(), headerToken_s::index, headerToken_s::indexUsed, int_32, indexEntry_s::length, and headerToken_s::nrefs. Referenced by delTE(), freeItem(), freePackage(), freeSpec(), ftsStashLatest(), hdr_dealloc(), hdrLoad(), hdrUnload(), headerFreeIterator(), headerInject(), headerReload(), headerSprintf(), IDTXfree(), IDTXglob(), main(), makeHDRSignature(), miFreeHeader(), readFile(), readRPM(), rhnLoad(), rhnUnload(), rpmcliImportPubkey(), rpmdb_subscript(), rpmdbFindByFile(), rpmdbRebuild(), rpmdbRemove(), rpmdsFree(), rpmfiFree(), rpmfiNew(), rpmFreeSignature(), rpmGraph(), rpmInstall(), rpmInstallSourcePackage(), rpmMergeHeaders(), rpmpsmStage(), rpmQueryVerify(), rpmReadHeader(), rpmReadHeaders(), rpmReadPackageFile(), rpmReadSignature(), rpmReSign(), rpmRollback(), rpmts_HdrFromFdno(), rpmtsRun(), rpmtsSolve(), and writeRPM(). |
|
Destroy header tag iterator.
Definition at line 2288 of file header.c. References _free(), headerIterator_s::h, and headerFree(). Referenced by checkForDuplicates(), hdrKeyList(), headerCopy(), headerCopyWithConvert(), headerMergeLegacySigs(), headerRegenSigHeader(), hsaFini(), initSourceHeader(), rpmMergeHeaders(), rpmpsmStage(), rpmReSign(), and rpmVerifySignatures(). |
|
Free data allocated when retrieved from header.
Definition at line 1718 of file header.c. References _free(), RPM_BIN_TYPE, RPM_I18NSTRING_TYPE, RPM_STRING_ARRAY_TYPE, and rpmTagType. |
|
Retrieve tag value. Will never return RPM_I18NSTRING_TYPE! RPM_STRING_TYPE elements with RPM_I18NSTRING_TYPE equivalent entries are translated (if HEADER_I18NTABLE entry is present).
Definition at line 1748 of file header.c. References hCNT_t, hPTR_t, hTYP_t, int_32, and intGetEntry(). Referenced by formatValue(), ftsStashLatest(), getSignid(), headerNEVRA(), headerNVR(), legacyRetrofit(), main(), makeHDRSignature(), readFile(), rhnLoad(), rhnUnload(), rpmHeaderGetEntry(), rpmInstall(), rpmMergeHeaders(), rpmpsmStage(), rpmReadPackageFile(), rpmReadSignature(), rpmReSign(), rpmteNew(), rpmtsFindPubkey(), rpmtsSolve(), rpmVersionCompare(), singleSprintf(), and writeRPM(). |
|
Retrieve tag value using header internal array. Get an entry using as little extra RAM as possible to return the tag value. This is only an issue for RPM_STRING_ARRAY_TYPE.
Definition at line 1771 of file header.c. References hCNT_t, hPTR_t, hTYP_t, int_32, and intGetEntry(). Referenced by headerCopyTags(). |
|
Definition at line 1781 of file header.c. References copyEntry(), findEntry(), headerIsEntry(), hPTR_t, int_32, and RPM_NULL_TYPE. |
|
Create header tag iterator.
Definition at line 2304 of file header.c. References headerIterator_s::h, headerLink(), headerSort(), headerIterator_s::next_index, and xmalloc(). Referenced by checkForDuplicates(), hdrKeyList(), headerCopy(), headerCopyWithConvert(), headerMergeLegacySigs(), headerRegenSigHeader(), hsaInit(), initSourceHeader(), rpmMergeHeaders(), rpmpsmStage(), rpmReSign(), and rpmVerifySignatures(). |
|
Check if tag is in header.
Definition at line 1392 of file header.c. References findEntry(), int_32, and RPM_NULL_TYPE. Referenced by addChangelogEntry(), checkForRequired(), checkSpec(), compressFilelist(), expandFilelist(), fillOutMainPackage(), headerCopyTags(), headerGetRawEntry(), headerInject(), headerMergeLegacySigs(), headerRegenSigHeader(), IDTXglob(), legacyRetrofit(), makeHDRSignature(), mungeFilelist(), parseDescription(), parseScript(), parseSpec(), readFile(), relocateFileList(), rhnLoad(), rhnUnload(), rpmdbAdd(), rpmdbNextIterator(), rpmdbRebuild(), rpmfiNew(), rpmInstall(), rpmInstallSourcePackage(), rpmpsmStage(), rpmReadPackageFile(), rpmtsAddInstallElement(), rpmVerifySignatures(), showVerifyPackage(), and singleSprintf(). |
|
Reference a header instance.
Definition at line 151 of file header.c. References headerToken_s::nrefs. Referenced by ftsStashLatest(), hdr_Wrap(), hdrUnload(), headerInitIterator(), headerLoad(), headerNew(), headerSprintf(), IDTXglob(), IDTXload(), relocateFileList(), rhnUnload(), rpmdbFindByFile(), rpmdbRemove(), rpmdsDup(), rpmdsNew(), rpmfiNew(), rpmInstallSourcePackage(), rpmpsmStage(), rpmReadHeader(), rpmReadPackageFile(), rpmReadSignature(), rpmReSign(), rpmtsSolve(), and writeRPM(). |
|
Convert header to in-memory representation.
Definition at line 1000 of file header.c. References _free(), alloca(), headerToken_s::blob, entryInfo_s::count, indexEntry_s::data, headerToken_s::flags, hdrchkData, hdrchkTags, hdrchkType, HEADER_BASENAMES, HEADER_I18NTABLE, HEADER_IMAGE, HEADER_OLDFILENAMES, HEADERFLAG_LEGACY, HEADERFLAG_SORTED, headerLink(), headerRemoveEntry(), headerSort(), headerToken_s::hv, headerToken_s::index, headerToken_s::indexAlloced, headerToken_s::indexUsed, indexEntry_s::info, int_32, indexEntry_s::length, headerToken_s::nrefs, entryInfo_s::offset, indexEntry_s::rdlen, REGION_TAG_COUNT, REGION_TAG_TYPE, regionSwab(), RPM_STRING_TYPE, entryInfo_s::tag, entryInfo_s::type, and xcalloc(). Referenced by hdrLoad(), headerCopyLoad(), headerRead(), headerReload(), rhnLoad(), rhnUnload(), rpmdbNextIterator(), rpmReadHeader(), and rpmReadSignature(). |
|
Does locale match entry in header i18n table?
* The range [l,le) contains the next locale to match: * ll[_CC][.EEEEE][@dddd] * where * ll ISO language code (in lowercase). * CC (optional) ISO coutnry code (in uppercase). * EEEEE (optional) encoding (not really standardized). * dddd (optional) dialect. *
Definition at line 1542 of file header.c. References alloca(). Referenced by headerFindI18NString(). |
|
Modify tag in header. If there are multiple entries with this tag, the first one gets replaced.
Definition at line 2170 of file header.c. References _free(), entryInfo_s::count, indexEntry_s::data, ENTRY_IN_REGION, findEntry(), grabData(), headerToken_s::index, indexEntry_s::info, int_32, indexEntry_s::length, entryInfo_s::offset, entryInfo_s::tag, and entryInfo_s::type. |
|
Create new (empty) header instance.
Definition at line 230 of file header.c. References headerToken_s::blob, headerToken_s::flags, HEADERFLAG_SORTED, headerLink(), headerToken_s::hv, headerToken_s::index, INDEX_MALLOC_SIZE, headerToken_s::indexAlloced, headerToken_s::indexUsed, headerToken_s::nrefs, and xcalloc(). |
|
Return next tag from header.
Definition at line 2326 of file header.c. References copyEntry(), ENTRY_IS_REGION, headerIterator_s::h, hCNT_t, hPTR_t, hTAG_t, hTYP_t, headerToken_s::index, headerToken_s::indexUsed, indexEntry_s::info, headerIterator_s::next_index, and entryInfo_s::tag. Referenced by checkForDuplicates(), hdrKeyList(), headerCopy(), headerCopyWithConvert(), headerMergeLegacySigs(), headerRegenSigHeader(), hsaNext(), initSourceHeader(), rpmMergeHeaders(), rpmpsmStage(), rpmReSign(), and rpmVerifySignatures(). |
|
Read (and load) header from file handle.
Definition at line 1266 of file header.c. References _free(), headerToken_s::flags, hdrchkData, hdrchkTags, header_magic, HEADER_MAGIC_YES, HEADERFLAG_ALLOCATED, headerLoad(), headerMaxbytes, hMagic, int_32, timedRead, and xmalloc(). Referenced by main(), makeHDRSignature(), readFile(), rpmMergeHeaders(), rpmReadHeaders(), and writeRPM(). |
|
Convert header to on-disk representation, and then reload. This is used to insure that all header data is in one chunk.
Definition at line 1190 of file header.c. References _free(), doHeaderUnload(), ENTRY_IS_REGION, headerToken_s::flags, HEADER_IMMUTABLE, HEADER_SIGNATURES, HEADERFLAG_ALLOCATED, headerFree(), headerLoad(), headerToken_s::index, indexEntry_s::info, and entryInfo_s::tag. Referenced by headerCopy(), rhnUnload(), rpmpsmStage(), rpmReSign(), and writeRPM(). |
|
Delete tag in header. Removes all entries of type tag from the header, returns 1 if none were found.
Definition at line 954 of file header.c. References _free(), indexEntry_s::data, ENTRY_IN_REGION, findEntry(), headerToken_s::index, headerToken_s::indexUsed, indexEntry_s::info, int_32, indexEntry_s::length, RPM_NULL_TYPE, and entryInfo_s::tag. Referenced by addFileToTag(), headerLoad(), legacyRetrofit(), rpmdbAdd(), rpmfcGenerateDepends(), rpmMergeHeaders(), and rpmReSign(). |
|
Return size of on-disk header representation in bytes.
Definition at line 321 of file header.c. References ENTRY_IS_REGION, headerToken_s::flags, HEADER_MAGIC_NO, HEADER_MAGIC_YES, HEADERFLAG_LEGACY, headerSort(), hMagic, headerToken_s::index, headerToken_s::indexUsed, indexEntry_s::info, int_32, indexEntry_s::length, entryInfo_s::offset, entryInfo_s::type, and typeSizes. Referenced by hdrUnload(), miFreeHeader(), readFile(), rhnUnload(), rpmdbAdd(), rpmReadPackageFile(), rpmReadSignature(), and rpmWriteSignature(). |
|
Sort tags in header.
Definition at line 271 of file header.c. References headerToken_s::flags, HEADERFLAG_SORTED, headerToken_s::index, indexCmp(), and headerToken_s::indexUsed. Referenced by doHeaderUnload(), findEntry(), headerInitIterator(), headerInject(), headerLoad(), and headerSizeof(). |
|
Return formatted output string from header tags. The returned string must be free()d.
Definition at line 3413 of file header.c. References _free(), alloca(), headerSprintfArgs_s::alloced, headerSprintfArgs_s::ec, headerSprintfArgs_s::errmsg, errmsg_t, headerSprintfArgs_s::exts, headerSprintfArgs_s::fmt, headerSprintfArgs_s::format, freeFormat(), headerSprintfArgs_s::h, headerFree(), headerLink(), hsaFini(), hsaInit(), hsaNext(), hsaReserve(), headerSprintfArgs_s::numTokens, parseFormat(), PARSER_BEGIN, rpmecFree(), rpmecNew(), singleSprintf(), stpcpy(), sprintfTag_s::tag, headerSprintfArgs_s::tags, sprintfTag_s::type, sprintfToken_s::type, sprintfToken_s::u, headerSprintfArgs_s::val, headerSprintfArgs_s::vallen, xrealloc(), and xstrdup(). Referenced by hdrSprintf(), packageBinaries(), printNewSpecfile(), queryHeader(), rpmcliImportPubkey(), rpmfiNew(), rpmHeaderGetEntry(), rpmpsmStage(), rpmShowProgress(), and rpmtsSolve(). |
|
Dereference a header instance.
Definition at line 175 of file header.c. References headerToken_s::nrefs. Referenced by headerFree(). |
|
Convert header to on-disk representation.
Definition at line 886 of file header.c. References doHeaderUnload(). Referenced by hdrUnload(), miFreeHeader(), rhnUnload(), and rpmdbAdd(). |
|
Restore tags in header to original ordering.
Definition at line 306 of file header.c. References headerToken_s::index, headerToken_s::indexUsed, and offsetCmp(). Referenced by doHeaderUnload(). |
|
Write (with unload) header to file handle.
Definition at line 1347 of file header.c. References _free(), doHeaderUnload(), Fwrite(), header_magic, HEADER_MAGIC_NO, HEADER_MAGIC_YES, and hMagic. Referenced by main(), makeHDRSignature(), rpmpsmStage(), rpmWriteSignature(), and writeRPM(). |
|
Definition at line 3532 of file header.c. References _, hPTR_t, int_32, RPM_INT32_TYPE, xmalloc(), and xstrdup(). |
|
Finish an hsa iteration.
Definition at line 2481 of file header.c. References headerFreeIterator(), headerSprintfArgs_s::hi, and headerSprintfArgs_s::i. Referenced by headerSprintf(). |
|
Initialize an hsa iteration.
Definition at line 2417 of file header.c. References headerSprintfArgs_s::format, headerSprintfArgs_s::h, headerInitIterator(), headerSprintfArgs_s::hi, headerSprintfArgs_s::i, sprintfTag_s::tag, sprintfToken_s::type, and sprintfToken_s::u. Referenced by headerSprintf(). |
|
Return next hsa iteration item.
Definition at line 2443 of file header.c. References headerSprintfArgs_s::format, headerNextIterator(), headerSprintfArgs_s::hi, headerSprintfArgs_s::i, int_32, headerSprintfArgs_s::numTokens, sprintfTag_s::tag, sprintfToken_s::type, and sprintfToken_s::u. Referenced by headerSprintf(). |
|
Reserve sufficient buffer space for next output value.
Definition at line 2500 of file header.c. References headerSprintfArgs_s::alloced, headerSprintfArgs_s::val, headerSprintfArgs_s::vallen, and xrealloc(). Referenced by formatValue(), headerSprintf(), and singleSprintf(). |
|
Definition at line 257 of file header.c. References indexEntry_s::info, and entryInfo_s::tag. Referenced by findEntry(), and headerSort(). |
|
Retrieve tag data from header.
Definition at line 1671 of file header.c. References copyEntry(), findEntry(), hCNT_t, headerFindI18NString(), hPTR_t, hTAG_t, indexEntry_s::info, int_32, RPM_I18NSTRING_TYPE, RPM_NULL_TYPE, RPM_STRING_TYPE, and entryInfo_s::type. Referenced by headerGetEntry(), and headerGetEntryMinMemory(). |
|
Definition at line 3503 of file header.c. References _, hPTR_t, int_32, RPM_INT32_TYPE, xmalloc(), and xstrdup(). |
|
Definition at line 284 of file header.c. References indexEntry_s::data, indexEntry_s::info, entryInfo_s::offset, and entryInfo_s::tag. Referenced by headerUnsort(). |
|
Definition at line 2859 of file header.c. References _, headerSprintfArgs_s::errmsg, findTag(), freeFormat(), parseFormat(), PARSER_IN_EXPR, sprintfToken_s::type, and sprintfToken_s::u. Referenced by parseFormat(). |
|
Definition at line 2607 of file header.c. References _, headerSprintfArgs_s::errmsg, escapedChar(), findTag(), freeFormat(), parseExpression(), PARSER_IN_ARRAY, PARSER_IN_EXPR, sprintfToken_s::type, sprintfToken_s::u, xcalloc(), and xisdigit(). Referenced by headerSprintf(), and parseExpression(). |
|
Definition at line 3555 of file header.c. References _, hPTR_t, int_32, RPM_INT32_TYPE, xmalloc(), and xstrdup(). Referenced by dateFormat(), and dayFormat(). |
|
Destroy an extension cache.
Definition at line 3382 of file header.c. References _free(), rpmec_s::data, rpmec_s::freeit, HEADER_EXT_LAST, HEADER_EXT_MORE, headerSprintfExtension_s::type, and headerSprintfExtension_s::u. Referenced by headerSprintf(). |
|
Create an extension cache.
Definition at line 3358 of file header.c. References HEADER_EXT_LAST, HEADER_EXT_MORE, headerSprintfExtension_s::type, headerSprintfExtension_s::u, and xcalloc(). Referenced by headerSprintf(). |
|
Definition at line 3628 of file header.c. References alloca(), hPTR_t, int_32, RPM_INT32_TYPE, and xmalloc(). |
|
Definition at line 3199 of file header.c. References _, headerSprintfArgs_s::ec, headerSprintfArgs_s::errmsg, formatValue(), getExtension(), headerSprintfArgs_s::h, headerGetEntry(), headerIsEntry(), hsaReserve(), int_32, RPM_BIN_TYPE, RPM_STRING_TYPE, stpcpy(), tagName(), sprintfToken_s::type, sprintfToken_s::u, headerSprintfArgs_s::val, and headerSprintfArgs_s::vallen. Referenced by headerSprintf(). |
|
Return name of tag from value.
Definition at line 10 of file tagname.c. References RPMDBI_ADDED, RPMDBI_AVAILABLE, RPMDBI_DEPENDS, RPMDBI_PACKAGES, RPMDBI_REMOVED, and xtolower(). Referenced by checkForDuplicates(), checkForRequired(), db3close(), db3New(), db3open(), dbiOpen(), i18nTag(), printNewSpecfile(), rpmdbAdd(), rpmdbMoveDatabase(), rpmdbRemove(), rpmdbRemoveDatabase(), rpmHeaderGetEntry(), singleSprintf(), and stashSt(). |
|
|
|
Header methods for rpm headers. |
|
|