Files | |
file | cpio.c |
Handle cpio payloads within rpm packages. | |
file | cpio.h |
Structures used to handle cpio payloads within rpm packages. | |
file | fsm.c |
File state machine to handle a payload from a package. | |
file | fsm.h |
File state machine to handle a payload within an rpm package. | |
file | psm.c |
Package state machine to handle a package from a transaction set. | |
file | psm.h |
Package state machine to handle a package from a transaction set. | |
file | rpmlib.h |
In Memoriam: Steve Taylor <staylor@redhat.com> was here, now he's not. | |
Data Structures | |
struct | cpioCrcPhysicalHeader |
struct | dnli_s |
struct | hardLink_s |
struct | fsmIterator_s |
struct | fsm_s |
RPMTS | |
typedef fsmIterator_s * | FSMI_t |
typedef fsm_s * | FSM_t |
Defines | |
#define | CPIOERR_CHECK_ERRNO 0x00008000 |
Typedefs | |
typedef enum cpioMapFlags_e | cpioMapFlags |
typedef dnli_s * | DNLI_t |
Enumerations | |
enum | cpioErrorReturns { CPIOERR_BAD_MAGIC = (2 ), CPIOERR_BAD_HEADER = (3 ), CPIOERR_OPEN_FAILED = (4 | 0x00008000 ), CPIOERR_CHMOD_FAILED = (5 | 0x00008000 ), CPIOERR_CHOWN_FAILED = (6 | 0x00008000 ), CPIOERR_WRITE_FAILED = (7 | 0x00008000 ), CPIOERR_UTIME_FAILED = (8 | 0x00008000 ), CPIOERR_UNLINK_FAILED = (9 | 0x00008000 ), CPIOERR_RENAME_FAILED = (10 | 0x00008000 ), CPIOERR_SYMLINK_FAILED = (11 | 0x00008000 ), CPIOERR_STAT_FAILED = (12 | 0x00008000 ), CPIOERR_LSTAT_FAILED = (13 | 0x00008000 ), CPIOERR_MKDIR_FAILED = (14 | 0x00008000 ), CPIOERR_RMDIR_FAILED = (15 | 0x00008000 ), CPIOERR_MKNOD_FAILED = (16 | 0x00008000 ), CPIOERR_MKFIFO_FAILED = (17 | 0x00008000 ), CPIOERR_LINK_FAILED = (18 | 0x00008000 ), CPIOERR_READLINK_FAILED = (19 | 0x00008000 ), CPIOERR_READ_FAILED = (20 | 0x00008000 ), CPIOERR_COPY_FAILED = (21 | 0x00008000 ), CPIOERR_LSETFCON_FAILED = (22 | 0x00008000 ), CPIOERR_HDR_SIZE = (23 ), CPIOERR_HDR_TRAILER = (24 ), CPIOERR_UNKNOWN_FILETYPE = (25 ), CPIOERR_MISSING_HARDLINK = (26 ), CPIOERR_MD5SUM_MISMATCH = (27 ), CPIOERR_INTERNAL = (28 ), CPIOERR_UNMAPPED_FILE = (29 ), CPIOERR_ENOENT = (30 ), CPIOERR_ENOTEMPTY = (31 ) } |
enum | cpioMapFlags_e { CPIO_MAP_PATH = (1 << 0), CPIO_MAP_MODE = (1 << 1), CPIO_MAP_UID = (1 << 2), CPIO_MAP_GID = (1 << 3), CPIO_FOLLOW_SYMLINKS = (1 << 4), CPIO_MAP_ABSOLUTE = (1 << 5), CPIO_MAP_ADDDOT = (1 << 6), CPIO_ALL_HARDLINKS = (1 << 7), CPIO_MAP_TYPE = (1 << 8) } |
Functions | |
const char *const | cpioStrerror (int rc) |
const char * | fsmFsPath (const FSM_t fsm, const struct stat *st, const char *subdir, const char *suffix) |
void * | mapFreeIterator (void *p) |
void * | mapInitIterator (rpmts ts, rpmfi fi) |
int | mapNextIterator (void *a) |
int | cpioStrCmp (const void *a, const void *b) |
int | mapFind (FSMI_t iter, const char *fsmPath) |
void * | dnlFreeIterator (const void *a) |
int | dnlCount (const DNLI_t dnli) |
int | dnlIndex (const DNLI_t dnli) |
void * | dnlInitIterator (const FSM_t fsm, int reverse) |
const char * | dnlNextIterator (DNLI_t dnli) |
int | saveHardLink (FSM_t fsm) |
void * | freeHardLink (struct hardLink_s *li) |
int | expandRegular (FSM_t fsm) |
int | writeFile (FSM_t fsm, int writeData) |
int | writeLinkedFile (FSM_t fsm) |
int | fsmMakeLinks (FSM_t fsm) |
int | fsmCommitLinks (FSM_t fsm) |
|
|
|
|
|
Directory name iterator. Referenced by dnlCount(), dnlFreeIterator(), dnlIndex(), dnlInitIterator(), and dnlNextIterator(). |
|
File state machine data. Definition at line 852 of file rpmlib.h. Referenced by cpioHeaderRead(), cpioHeaderWrite(), cpioTrailerWrite(), dnlInitIterator(), expandRegular(), freeFSM(), fsmCommitLinks(), fsmFsPath(), fsmGetFi(), fsmGetTs(), fsmMakeLinks(), fsmMapAttrs(), fsmMapFContext(), fsmMapPath(), fsmMkdirs(), fsmNext(), fsmRmdirs(), fsmSetup(), fsmStage(), fsmTeardown(), fsmThread(), newFSM(), saveHardLink(), writeFile(), and writeLinkedFile(). |
|
Iterator across package file info, forward on install, backward on erase. Definition at line 847 of file rpmlib.h. Referenced by fsmGetFi(), fsmGetTs(), mapFind(), mapFreeIterator(), mapInitIterator(), and mapNextIterator(). |
|
|
|
|
Definition at line 174 of file fsm.c. Referenced by mapFind(). |
|
Return formatted error message on payload handling failure.
Definition at line 196 of file cpio.c. References _, CPIOERR_BAD_HEADER, CPIOERR_BAD_MAGIC, CPIOERR_CHMOD_FAILED, CPIOERR_CHOWN_FAILED, CPIOERR_COPY_FAILED, CPIOERR_ENOENT, CPIOERR_ENOTEMPTY, CPIOERR_HDR_SIZE, CPIOERR_INTERNAL, CPIOERR_LINK_FAILED, CPIOERR_LSETFCON_FAILED, CPIOERR_LSTAT_FAILED, CPIOERR_MD5SUM_MISMATCH, CPIOERR_MISSING_HARDLINK, CPIOERR_MKDIR_FAILED, CPIOERR_MKFIFO_FAILED, CPIOERR_MKNOD_FAILED, CPIOERR_OPEN_FAILED, CPIOERR_READ_FAILED, CPIOERR_READLINK_FAILED, CPIOERR_RENAME_FAILED, CPIOERR_RMDIR_FAILED, CPIOERR_STAT_FAILED, CPIOERR_SYMLINK_FAILED, CPIOERR_UNKNOWN_FILETYPE, CPIOERR_UNLINK_FAILED, CPIOERR_UNMAPPED_FILE, CPIOERR_UTIME_FAILED, CPIOERR_WRITE_FAILED, and strerror(). Referenced by cpio_doio(), and rpmpsmStage(). |
|
Definition at line 259 of file fsm.c. References DNLI_t, and dnli_s::fi. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Destroy directory name iterator.
Definition at line 247 of file fsm.c. References _free(), dnli_s::active, and DNLI_t. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Definition at line 267 of file fsm.c. References DNLI_t, and dnli_s::isave. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Create directory name iterator.
Definition at line 282 of file fsm.c. References _, dnli_s::active, DNLI_t, dnli_s::fi, FSM_t, fsmGetFi(), dnli_s::i, reverse, dnli_s::reverse, rpmfi, RPMMESS_DEBUG, rpmMessage, xcalloc(), and XFA_SKIPPING. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Return next directory name (from file info).
Definition at line 372 of file fsm.c. References dnli_s::active, DNLI_t, dnli_s::fi, dnli_s::i, dnli_s::isave, dnli_s::reverse, and rpmfi. Referenced by fsmMkdirs(), and fsmRmdirs(). |
|
Create file from payload stream.
Definition at line 825 of file fsm.c. References _free(), fdFiniDigest(), fdInitDigest(), Fflush(), fsm_s::fmd5sum, FSM_DREAD, FSM_NOTIFY, FSM_t, FSM_WCLOSE, FSM_WOPEN, FSM_WRITE, fsmNext(), fsm_s::md5sum, PGPHASHALGO_MD5, fsm_s::sb, fsm_s::wfd, fsm_s::wrlen, fsm_s::wrnb, and fsm_s::wrsize. Referenced by fsmStage(). |
|
Destroy set of hard links.
Definition at line 517 of file fsm.c. References _free(), hardLink_s::filex, and hardLink_s::nsuffix. Referenced by freeFSM(), and fsmStage(). |
|
Commit hard linked file set atomically.
Definition at line 1156 of file fsm.c. References _free(), fsm_s::action, hardLink_s::filex, FSM_COMMIT, FSM_MAP, FSM_t, fsmNext(), fsm_s::ix, fsm_s::li, fsm_s::links, hardLink_s::next, hardLink_s::nlink, fsm_s::nsuffix, fsm_s::path, hardLink_s::sb, fsm_s::sb, and XFA_SKIPPING. Referenced by fsmStage(). |
|
Build path to file from file info, ornamented with subdir and suffix.
Definition at line 79 of file fsm.c. References fsm_s::baseName, fsm_s::dirName, FSM_t, stpcpy(), and xmalloc(). Referenced by fsmMapPath(), and fsmStage(). |
|
Create pending hard links to existing file.
Definition at line 1090 of file fsm.c. References _free(), fsm_s::action, hardLink_s::createdPath, fsm_s::failedFile, hardLink_s::filex, FSM_LINK, FSM_MAP, FSM_t, FSM_VERIFY, fsmNext(), fsmUNSAFE, fsm_s::ix, fsm_s::li, hardLink_s::linksLeft, hardLink_s::nlink, fsm_s::nsuffix, fsm_s::opath, fsm_s::path, XFA_SKIPPING, and xstrdup(). Referenced by fsmStage(). |
|
Locate archive path in file info.
Definition at line 205 of file fsm.c. References cpioStrCmp(), fsmIterator_s::fi, FSMI_t, fsmIterator_s::i, mapNextIterator(), and rpmfi. Referenced by fsmStage(). |
|
Destroy file info iterator.
Definition at line 113 of file fsm.c. References _free(), fsmIterator_s::fi, FSMI_t, rpmfiUnlink, rpmtsFree(), and fsmIterator_s::ts. Referenced by freeFSM(), and fsmTeardown(). |
|
Create file info iterator.
Definition at line 134 of file fsm.c. References fsmIterator_s::fi, FSMI_t, fsmIterator_s::i, fsmIterator_s::isave, fsmIterator_s::reverse, rpmfiLink, rpmteType(), rpmtsLink, TR_REMOVED, fsmIterator_s::ts, and xcalloc(). Referenced by fsmSetup(). |
|
Return next index into file info.
Definition at line 153 of file fsm.c. References fsmIterator_s::fi, FSMI_t, fsmIterator_s::i, fsmIterator_s::isave, fsmIterator_s::reverse, and rpmfi. Referenced by fsmStage(), and mapFind(). |
|
Save hard link in chain.
Definition at line 422 of file fsm.c. References _free(), hardLink_s::createdPath, hardLink_s::filex, FSM_MAP, FSM_t, fsmGetFi(), fsmNext(), fsm_s::goal, fsm_s::ix, fsm_s::li, hardLink_s::linkIndex, fsm_s::links, hardLink_s::linksLeft, hardLink_s::next, hardLink_s::nlink, fsm_s::nsuffix, hardLink_s::nsuffix, fsm_s::path, rpmfi, hardLink_s::sb, fsm_s::sb, xcalloc(), and XFA_SKIPPING. Referenced by fsmStage(). |
|
Write next item to payload stream.
Definition at line 894 of file fsm.c. References alloca(), alloca_strdup, fsm_s::baseName, fsm_s::dirName, Fileno(), FSM_DWRITE, FSM_HWRITE, FSM_PAD, FSM_RCLOSE, FSM_READ, FSM_READLINK, FSM_ROPEN, FSM_t, fsmGetFi(), fsmNext(), fsmUNSAFE, fsm_s::ix, fsm_s::mapFlags, fsm_s::opath, fsm_s::osb, fsm_s::path, fsm_s::rdbuf, fsm_s::rdlen, fsm_s::rdnb, fsm_s::rdsize, fsm_s::rfd, rpmfi, S_ISLNK, fsm_s::sb, stpcpy(), and fsm_s::wrnb. Referenced by fsmStage(), and writeLinkedFile(). |
|
Write set of linked files to payload stream.
Definition at line 1037 of file fsm.c. References _free(), fsm_s::failedFile, hardLink_s::filex, FSM_MAP, FSM_t, fsmNext(), fsm_s::ix, fsm_s::li, hardLink_s::nlink, fsm_s::nsuffix, fsm_s::path, writeFile(), and xstrdup(). Referenced by fsmStage(). |