#include "system.h"
#include <rpmio_internal.h>
#include <rpmlib.h>
#include "tar.h"
#include "fsm.h"
#include "ugid.h"
#include "rpmerr.h"
#include "debug.h"

Go to the source code of this file.
Functions | |
| static int | strntoul (const char *str, char **endptr, int base, int num) |
| Convert string to unsigned integer (with buffer size check). | |
| static int | tarHeaderReadName (FSM_t fsm, int len, const char **fnp) |
| Read long file/link name from tar archive. | |
| int | tarHeaderRead (FSM_t fsm, struct stat *st) |
| Read tar header from payload. | |
| static int | tarHeaderWriteName (FSM_t fsm, const char *path) |
| Write long file/link name into tar archive. | |
| static int | tarHeaderWriteBlock (FSM_t fsm, struct stat *st, tarHeader hdr) |
| Write tar header block with checksum into tar archive. | |
| int | tarHeaderWrite (FSM_t fsm, struct stat *st) |
| Write tar header to payload. | |
| int | tarTrailerWrite (FSM_t fsm) |
| Write cpio trailer to payload. | |
Variables | |
| int | _tar_debug = 0 |
| static int | nochksum = 0 |
Definition in file tar.c.
| static int strntoul | ( | const char * | str, | |
| char ** | endptr, | |||
| int | base, | |||
| int | num | |||
| ) | [static] |
Convert string to unsigned integer (with buffer size check).
| str | input string |
| endptr | address of 1st character not processed |
| base | numerical conversion base | |
| num | max no. of bytes to read |
Definition at line 34 of file tar.c.
References alloca(), and StringBufRec::buf.
| int tarHeaderRead | ( | FSM_t | fsm, | |
| struct stat * | st | |||
| ) |
Read tar header from payload.
| fsm | file path and stat info | |
| st |
Definition at line 95 of file tar.c.
References _tar_debug, tarHeader_s::checksum, CPIOERR_BAD_HEADER, CPIOERR_BAD_MAGIC, CPIOERR_HDR_TRAILER, CPIOERR_READ_FAILED, tarHeader_s::devMajor, tarHeader_s::devMinor, tarHeader_s::filesize, FSM_DREAD, fsmNext(), tarHeader_s::gid, tarHeader_s::linkname, fsm_s::lpath, tarHeader_s::magic, major, makedev, minor, tarHeader_s::mode, tarHeader_s::mtime, tarHeader_s::name, nochksum, fsm_s::path, fsm_s::rdnb, strntoul(), TAR_BLOCK_SIZE, TAR_MAGIC, tarHeaderReadName(), tarHeader_s::typeflag, tarHeader_s::uid, fsm_s::wrbuf, fsm_s::wrlen, and xmalloc().
Referenced by fsmSetup().
| static int tarHeaderReadName | ( | FSM_t | fsm, | |
| int | len, | |||
| const char ** | fnp | |||
| ) | [static] |
Read long file/link name from tar archive.
| fsm | file state machine | |
| len | no. bytes of name |
| *fnp | long file/link name |
Definition at line 65 of file tar.c.
References _free(), CPIOERR_READ_FAILED, FSM_DREAD, fsmNext(), fsm_s::rdnb, TAR_BLOCK_SIZE, fsm_s::wrbuf, fsm_s::wrlen, and xmalloc().
Referenced by tarHeaderRead().
| int tarHeaderWrite | ( | FSM_t | fsm, | |
| struct stat * | st | |||
| ) |
Write tar header to payload.
| fsm | file path and stat info |
| st |
Definition at line 349 of file tar.c.
References _tar_debug, tarHeader_s::devMajor, tarHeader_s::devMinor, tarHeader_s::filesize, FSM_PAD, fsmNext(), tarHeader_s::gid, gidToGname(), tarHeader_s::gname, tarHeader_s::linkname, fsm_s::lpath, major, minor, tarHeader_s::mode, tarHeader_s::mtime, tarHeader_s::name, fsm_s::path, fsm_s::rdbuf, S_ISLNK, S_ISSOCK, tarHeaderWriteBlock(), tarHeaderWriteName(), tarHeader_s::typeflag, tarHeader_s::uid, uidToUname(), and tarHeader_s::uname.
Referenced by fsmSetup(), and writeLinkedFile().
Write tar header block with checksum into tar archive.
| fsm | file state machine | |
| st | file info | |
| hdr | tar header block |
Definition at line 310 of file tar.c.
References _tar_debug, tarHeader_s::checksum, CPIOERR_WRITE_FAILED, FSM_DWRITE, fsmNext(), tarHeader_s::magic, fsm_s::path, fsm_s::rdnb, stpcpy(), TAR_BLOCK_SIZE, TAR_MAGIC, TAR_VERSION, tarHeader_s::typeflag, and fsm_s::wrnb.
Referenced by tarHeaderWrite().
| static int tarHeaderWriteName | ( | FSM_t | fsm, | |
| const char * | path | |||
| ) | [static] |
Write long file/link name into tar archive.
| fsm | file state machine | |
| path | long file/link name |
Definition at line 271 of file tar.c.
References _tar_debug, CPIOERR_WRITE_FAILED, FSM_DWRITE, FSM_PAD, fsmNext(), fsm_s::rdbuf, fsm_s::rdnb, TAR_BLOCK_SIZE, and fsm_s::wrnb.
Referenced by tarHeaderWrite().
| int tarTrailerWrite | ( | FSM_t | fsm | ) |
Write cpio trailer to payload.
| fsm | file path and stat info |
Definition at line 455 of file tar.c.
References _tar_debug, fsm_s::blksize, FSM_PAD, and fsmNext().
Referenced by fsmSetup().
| int _tar_debug = 0 |
Definition at line 21 of file tar.c.
Referenced by tarHeaderRead(), tarHeaderWrite(), tarHeaderWriteBlock(), tarHeaderWriteName(), and tarTrailerWrite().
int nochksum = 0 [static] |
1.5.7.1