#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 1806 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 3595 of file header.c. References _, hPTR_t, int_32, and realDateFormat(). |
|
Definition at line 3611 of file header.c. References _, hPTR_t, int_32, and realDateFormat(). |
|
Definition at line 2213 of file header.c. Referenced by parseFormat(). |
|
Find matching (tag,type) entry in header.
Definition at line 903 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 2517 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 2996 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 2234 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 2967 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 1846 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 2024 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 1994 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 1943 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 2367 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 1226 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 3690 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 1614 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 2287 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 1717 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 1747 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 1770 of file header.c. References hCNT_t, hPTR_t, hTYP_t, int_32, and intGetEntry(). Referenced by headerCopyTags(). |
|
Definition at line 1780 of file header.c. References copyEntry(), findEntry(), headerIsEntry(), hPTR_t, int_32, and RPM_NULL_TYPE. |
|
Create header tag iterator.
Definition at line 2303 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 1391 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 999 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 1541 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 2169 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 2325 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 1265 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 1189 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 953 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 3412 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 885 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 1346 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 3531 of file header.c. References _, hPTR_t, int_32, RPM_INT32_TYPE, xmalloc(), and xstrdup(). |
|
Finish an hsa iteration.
Definition at line 2480 of file header.c. References headerFreeIterator(), headerSprintfArgs_s::hi, and headerSprintfArgs_s::i. Referenced by headerSprintf(). |
|
Initialize an hsa iteration.
Definition at line 2416 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 2442 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 2499 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 1670 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 3502 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 2858 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 2606 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 3554 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 3381 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 3357 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 3627 of file header.c. References alloca(), hPTR_t, int_32, RPM_INT32_TYPE, and xmalloc(). |
|
Definition at line 3198 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. |
|
|