rpm 4.19.92
The RPM Package Manager
Loading...
Searching...
No Matches
Macros | Enumerations | Functions
rpmarchive.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define RPMERR_CHECK_ERRNO   -32768
 

Enumerations

enum  rpmfilesErrorCodes {
  RPMERR_ITER_END = -1 , RPMERR_BAD_MAGIC = -2 , RPMERR_BAD_HEADER = -3 , RPMERR_HDR_SIZE = -4 ,
  RPMERR_UNKNOWN_FILETYPE = -5 , RPMERR_MISSING_FILE = -6 , RPMERR_DIGEST_MISMATCH = -7 , RPMERR_INTERNAL = -8 ,
  RPMERR_UNMAPPED_FILE = -9 , RPMERR_ENOENT = -10 , RPMERR_ENOTEMPTY = -11 , RPMERR_FILE_SIZE = -12 ,
  RPMERR_ITER_SKIP = -13 , RPMERR_EXIST_AS_DIR = -14 , RPMERR_INVALID_SYMLINK = -15 , RPMERR_ENOTDIR = -16 ,
  RPMERR_OPEN_FAILED = -32768 , RPMERR_CHMOD_FAILED = -32769 , RPMERR_CHOWN_FAILED = -32770 , RPMERR_WRITE_FAILED = -32771 ,
  RPMERR_UTIME_FAILED = -32772 , RPMERR_UNLINK_FAILED = -32773 , RPMERR_RENAME_FAILED = -32774 , RPMERR_SYMLINK_FAILED = -32775 ,
  RPMERR_STAT_FAILED = -32776 , RPMERR_LSTAT_FAILED = -32777 , RPMERR_MKDIR_FAILED = -32778 , RPMERR_RMDIR_FAILED = -32779 ,
  RPMERR_MKNOD_FAILED = -32780 , RPMERR_MKFIFO_FAILED = -32781 , RPMERR_LINK_FAILED = -32782 , RPMERR_READLINK_FAILED = -32783 ,
  RPMERR_READ_FAILED = -32784 , RPMERR_COPY_FAILED = -32785 , RPMERR_LSETFCON_FAILED = -32786 , RPMERR_SETCAP_FAILED = -32787 ,
  RPMERR_CLOSE_FAILED = -32788
}
 

Functions

char * rpmfileStrerror (int rc)
 
rpmfi rpmfiNewArchiveWriter (FD_t fd, rpmfiles files)
 
rpmfi rpmfiNewArchiveReader (FD_t fd, rpmfiles files, int itype)
 
int rpmfiArchiveClose (rpmfi fi)
 
rpm_loff_t rpmfiArchiveTell (rpmfi fi)
 
size_t rpmfiArchiveWrite (rpmfi fi, const void *buf, size_t size)
 
int rpmfiArchiveWriteFile (rpmfi fi, FD_t fd)
 
ssize_t rpmfiArchiveRead (rpmfi fi, void *buf, size_t size)
 
int rpmfiArchiveHasContent (rpmfi fi)
 
int rpmfiArchiveReadToFile (rpmfi fi, FD_t fd, int nodigest)
 

Detailed Description

File archive (aka payload) API.

Enumeration Type Documentation

◆ rpmfilesErrorCodes

Error codes for archive and file handling

Function Documentation

◆ rpmfiArchiveClose()

int rpmfiArchiveClose ( rpmfi  fi)

Close payload archive

Parameters
fifile info
Returns
> 0 on error

◆ rpmfiArchiveHasContent()

int rpmfiArchiveHasContent ( rpmfi  fi)

Has current file content stored in the archive

Parameters
fifile info @ return 1 for regular files but 0 for hardlinks without content

◆ rpmfiArchiveRead()

ssize_t rpmfiArchiveRead ( rpmfi  fi,
void *  buf,
size_t  size 
)

Read content from current file in archive

Parameters
fifile info
bufpointer to buffer
sizenumber of bytes to read
Returns
bytes actually read, -1 on error

◆ rpmfiArchiveReadToFile()

int rpmfiArchiveReadToFile ( rpmfi  fi,
FD_t  fd,
int  nodigest 
)

Write content from current file in archive to a file

Parameters
fifile info
fdfile descriptor of file to write to
nodigestomit checksum check if 1
Returns
> 0 on error

◆ rpmfiArchiveTell()

rpm_loff_t rpmfiArchiveTell ( rpmfi  fi)

Return current position in payload archive

Parameters
fifile info
Returns
position

◆ rpmfiArchiveWrite()

size_t rpmfiArchiveWrite ( rpmfi  fi,
const void *  buf,
size_t  size 
)

Write content into current file in archive

Parameters
fifile info
bufpointer to content
sizenumber of bytes to write
Returns
bytes actually written

◆ rpmfiArchiveWriteFile()

int rpmfiArchiveWriteFile ( rpmfi  fi,
FD_t  fd 
)

Write content from given file into current file in archive

Parameters
fifile info
fdfile descriptor of file to read
Returns
> 0 on error

◆ rpmfileStrerror()

char * rpmfileStrerror ( int  rc)

Return formatted error message on payload handling failure.

Parameters
rcerror code
Returns
formatted error string (malloced)

◆ rpmfiNewArchiveReader()

rpmfi rpmfiNewArchiveReader ( FD_t  fd,
rpmfiles  files,
int  itype 
)

Get new file iterator for looping over the archive content. Returned rpmfi visites files in the order they are read from the payload. Content of the regular files can be retrieved with rpmfiArchiveRead() or rpmfiArchiveReadToFile() when they are visited with rpmfiNext(). rpmfiSetFX() is not supported for this type of iterator.

Parameters
fdfile
filesfile info
itypehow to handle hard links. See rpmFileIter.
Returns
new rpmfi

◆ rpmfiNewArchiveWriter()

rpmfi rpmfiNewArchiveWriter ( FD_t  fd,
rpmfiles  files 
)

Get new file iterator for writing the archive content. The returned rpmfi will only visit the files needing some content. You need to provide the content using rpmfiArchiveWrite() or rpmfiArchiveWriteFile(). Make sure to close the rpmfi with rpmfiArchiveClose() to get the trailer written. rpmfiSetFX() is not supported for this type of iterator.

Parameters
fdfile
filesfile info
Returns
new rpmfi