rpm
5.4.10
|
#include <rpmiotypes.h>
#include <rpmlog.h>
#include <rpmio.h>
#include <rpmurl.h>
#include <rpmpgp.h>
#include <rpmxar.h>
Go to the source code of this file.
Data Structures | |
struct | _FDSTACK_s |
struct | _FDDIGEST_s |
struct | _FD_s |
The FD_t File Handle data structure. More... | |
Macros | |
#define | _RPMPGP_INTERNAL |
#define | RPMIO_DEBUG_IO 0x40000000 |
#define | RPMIO_DEBUG_REFS 0x20000000 |
#define | FDMAGIC 0x04463138 |
#define | FDSANE(fd) assert(fd != NULL && fd->magic == FDMAGIC) |
#define | DBG(_f, _m, _x) |
#define | DBGIO(_f, _x) DBG((_f), RPMIO_DEBUG_IO, _x) |
#define | DBGREFS(_f, _x) DBG((_f), RPMIO_DEBUG_REFS, _x) |
Typedefs | |
typedef struct _FDSTACK_s | FDSTACK_t |
typedef enum fdOpX_e | fdOpX |
Identify per-desciptor I/O operation statistics. More... | |
struct { | |
struct rpmop_s ops [FDSTAT_MAX] | |
} * | FDSTAT_t |
Cumulative statistics for a descriptor. More... | |
typedef struct _FDDIGEST_s * | FDDIGEST_t |
Enumerations | |
enum | fdOpX_e { FDSTAT_READ = 0, FDSTAT_WRITE = 1, FDSTAT_SEEK = 2, FDSTAT_CLOSE = 3, FDSTAT_DIGEST = 4, FDSTAT_MAX = 5 } |
Identify per-desciptor I/O operation statistics. More... | |
Functions | |
const char * | fdbg (FD_t fd) |
int | fdFgets (FD_t fd, char *buf, size_t len) |
FD_t | ftpOpen (const char *url, int flags, mode_t mode, urlinfo *uret) |
int | ftpReq (FD_t data, const char *ftpCmd, const char *ftpArg) |
int | ftpCmd (const char *cmd, const char *url, const char *arg2) |
int | ufdClose (void *cookie) |
static void | fdSetOpen (FD_t fd, const char *path, int flags, mode_t mode) |
static const char * | fdGetOPath (FD_t fd) |
static int | fdGetOFlags (FD_t fd) |
static mode_t | fdGetOMode (FD_t fd) |
static void | fdSetDig (FD_t fd, pgpDig dig) |
static pgpDig | fdGetDig (FD_t fd) |
static void | fdSetXAR (FD_t fd, rpmxar xar) |
static rpmxar | fdGetXAR (FD_t fd) |
static FDIO_t | fdGetIo (FD_t fd) |
static void | fdSetIo (FD_t fd, FDIO_t io) |
static FILE * | fdGetFILE (FD_t fd) |
static void * | fdGetFp (FD_t fd) |
static void | fdSetFp (FD_t fd, void *fp) |
static int | fdGetFdno (FD_t fd) |
static void | fdSetFdno (FD_t fd, int fdno) |
static void | fdSetContentLength (FD_t fd, ssize_t contentLength) |
static void | fdPush (FD_t fd, FDIO_t io, void *fp, int fdno) |
static void | fdPop (FD_t fd) |
static rpmop | fdstat_op (FD_t fd, fdOpX opx) |
static void | fdstat_enter (FD_t fd, int opx) |
static void | fdstat_exit (FD_t fd, int opx, ssize_t rc) |
static void | fdstat_print (FD_t fd, const char *msg, FILE *fp) |
static void | fdSetSyserrno (FD_t fd, int syserrno, const void *errcookie) |
static int | fdGetRdTimeoutSecs (FD_t fd) |
static unsigned long long | fdGetCpioPos (FD_t fd) |
static void | fdSetCpioPos (FD_t fd, long int cpioPos) |
static FD_t | c2f (void *cookie) |
static void | fdInitDigest (FD_t fd, pgpHashAlgo hashalgo, int _flags) |
Attach digest to fd. More... | |
static void | fdInitHmac (FD_t fd, const void *key, size_t keylen) |
Attach digest to fd. More... | |
static void | fdUpdateDigests (FD_t fd, const unsigned char *buf, ssize_t buflen) |
Update digest(s) attached to fd. More... | |
static void | fdFiniDigest (FD_t fd, pgpHashAlgo hashalgo, void *datap, size_t *lenp, int asAscii) |
static void | fdStealDigest (FD_t fd, pgpDig dig) |
static int | fdFileno (void *cookie) |
#define _RPMPGP_INTERNAL |
Definition at line 13 of file rpmio_internal.h.
#define DBG | ( | _f, | |
_m, | |||
_x | |||
) |
Definition at line 115 of file rpmio_internal.h.
#define DBGIO | ( | _f, | |
_x | |||
) | DBG((_f), RPMIO_DEBUG_IO, _x) |
Definition at line 124 of file rpmio_internal.h.
Referenced by __fdClose(), __fdOpen(), __fdRead(), __fdWrite(), Fclose(), fdDup(), Fdopen(), fdSeek(), Ferror(), Fgetpos(), Fileno(), Fread(), Fseek(), Fsetpos(), Ftell(), ftpAbort(), Fwrite(), Rewind(), ufdCopy(), and ufdOpen().
#define DBGREFS | ( | _f, | |
_x | |||
) | DBG((_f), RPMIO_DEBUG_REFS, _x) |
Definition at line 125 of file rpmio_internal.h.
#define FDMAGIC 0x04463138 |
Definition at line 65 of file rpmio_internal.h.
Referenced by XfdNew().
#define FDSANE | ( | fd | ) | assert(fd != NULL && fd->magic == FDMAGIC) |
Definition at line 113 of file rpmio_internal.h.
Referenced by c2f(), Fclose(), fdGetCpioPos(), fdGetDig(), fdGetFdno(), fdGetFILE(), fdGetFp(), fdGetIo(), fdGetOFlags(), fdGetOMode(), fdGetOPath(), fdGetRdTimeoutSecs(), fdGetXAR(), Fdopen(), fdPop(), fdPush(), fdSeekNot(), fdSetContentLength(), fdSetCpioPos(), fdSetDig(), fdSetFdno(), fdSetFp(), fdSetIo(), fdSetOpen(), fdSetSyserrno(), fdSetXAR(), Fgetpos(), Fread(), Fseek(), Fsetpos(), Fstrerror(), Ftell(), Fwrite(), Rewind(), ufdGetFile(), and ufdGetUrlinfo().
#define RPMIO_DEBUG_IO 0x40000000 |
Definition at line 62 of file rpmio_internal.h.
#define RPMIO_DEBUG_REFS 0x20000000 |
Definition at line 63 of file rpmio_internal.h.
typedef struct _FDDIGEST_s * FDDIGEST_t |
typedef struct _FDSTACK_s FDSTACK_t |
typedef { ... } * FDSTAT_t |
Cumulative statistics for a descriptor.
enum fdOpX_e |
Identify per-desciptor I/O operation statistics.
Definition at line 34 of file rpmio_internal.h.
|
inlinestatic |
Definition at line 513 of file rpmio_internal.h.
References FDSANE.
Referenced by __fdClose(), __fdOpen(), __fdRead(), __fdWrite(), fdFileno(), fdSeek(), fdSeekNot(), ftpReq(), ufdClose(), ufdRead(), ufdSeek(), and ufdWrite().
const char* fdbg | ( | FD_t | fd | ) |
Definition at line 197 of file rpmio.c.
References _FD_s::bytesRemain, bzdio, fdio, _FDSTACK_s::fdno, _FDSTACK_s::fp, fpio, _FD_s::fps, gzdio, _FDSTACK_s::io, lzdio, _FD_s::nfps, _FD_s::rd_timeoutsecs, ufdio, _FD_s::wr_chunked, and xzdio.
Referenced by __fdClose(), __fdOpen(), __fdRead(), __fdWrite(), Fclose(), fdDup(), fdGetPool(), Fdopen(), fdSeek(), Ferror(), Fgetpos(), Fileno(), Fread(), Fseek(), Fsetpos(), Ftell(), Fwrite(), Rewind(), and ufdOpen().
int fdFgets | ( | FD_t | fd, |
char * | buf, | ||
size_t | len | ||
) |
Definition at line 685 of file rpmio.c.
References _rpmio_debug, errno, fdFileno(), fdRead, fdReadable(), _FD_s::rd_timeoutsecs, and _FD_s::syserrno.
Referenced by checkResponse(), and ftpNLST().
|
inlinestatic |
Definition at line 654 of file rpmio_internal.h.
References c2f(), _FDSTACK_s::fdno, and _FD_s::fps.
Referenced by __fdClose(), __fdOpen(), __fdRead(), __fdWrite(), fdFgets(), fdReadable(), fdSeek(), fdWritable(), Ferror(), Fopen(), ftpAbort(), ftpLogin(), ftpReq(), httpReq(), ufdRead(), urlConnect(), and urlFini().
|
inlinestatic |
Definition at line 581 of file rpmio_internal.h.
References _FD_s::digests, FDSTAT_DIGEST, fdstat_enter(), fdstat_exit(), _FD_s::ndigests, rpmDigestAlgo(), and rpmDigestFinal().
Referenced by compare(), dodigest(), extractRegular(), main(), mtreeVisitF(), rpmdcPrintFile(), rpmrepoCloseMDFile(), rpmrepoReadHeader(), rpmrepoRfileDigest(), statFormat(), and writeRPM().
|
inlinestatic |
Definition at line 493 of file rpmio_internal.h.
References _FD_s::fd_cpioPos, and FDSANE.
Referenced by arHeaderRead(), arHeaderWrite(), fsmSetup(), fsmStage(), iosmSetup(), and iosmStage().
Definition at line 231 of file rpmio_internal.h.
References _FD_s::dig, and FDSANE.
Referenced by readFile(), and rpmReadHeader().
|
inlinestatic |
Definition at line 328 of file rpmio_internal.h.
References _FDSTACK_s::fdno, FDSANE, _FD_s::fps, and _FD_s::nfps.
Referenced by Fclose(), Fopen(), and ufdWrite().
|
inlinestatic |
Definition at line 292 of file rpmio_internal.h.
References FDSANE, _FDSTACK_s::fp, _FD_s::fps, and _FD_s::nfps.
|
inlinestatic |
Definition at line 304 of file rpmio_internal.h.
References FDSANE, _FDSTACK_s::fp, _FD_s::fps, and _FD_s::nfps.
Referenced by addFileToTagAux(), Fdopen(), Fflush(), Fopen(), processPackageFiles(), readLineFromOFI(), rpmfd_Fopen(), rpmReadPackageManifest(), and urlFini().
Definition at line 268 of file rpmio_internal.h.
References FDSANE, _FD_s::fps, _FDSTACK_s::io, and _FD_s::nfps.
Referenced by Fflush(), Fgetpos(), Fread(), Fseek(), Fsetpos(), Ftell(), Fwrite(), getFdErrstr(), Rewind(), ufdRead(), and ufdWrite().
|
inlinestatic |
Definition at line 197 of file rpmio_internal.h.
References FDSANE, and _FD_s::oflags.
|
inlinestatic |
Definition at line 207 of file rpmio_internal.h.
References FDSANE, and _FD_s::omode.
|
inlinestatic |
Definition at line 187 of file rpmio_internal.h.
References FDSANE, and _FD_s::opath.
Referenced by Fadvise(), Fallocate(), Fchflags(), Fchmod(), Fchown(), Fstat(), rdLead(), rpmReadHeader(), rpmReadPackageManifest(), and rpmrepoCloseMDFile().
|
inlinestatic |
Definition at line 483 of file rpmio_internal.h.
References FDSANE, and _FD_s::rd_timeoutsecs.
Definition at line 256 of file rpmio_internal.h.
References FDSANE, and _FD_s::xar.
Referenced by rdLead(), rdSignature(), readFile(), rpmReadHeader(), and xarRead().
|
inlinestatic |
Attach digest to fd.
Definition at line 527 of file rpmio_internal.h.
References _FD_s::digests, FDSTAT_DIGEST, fdstat_enter(), fdstat_exit(), _FD_s::ndigests, rpmDigestInit(), and xrealloc.
Referenced by compare(), dodigest(), extractRegular(), main(), mtreeVisitF(), rpmdcInitFile(), rpmReadPackageFile(), rpmrepoOpenMDFile(), rpmrepoReadHeader(), rpmrepoRfileDigest(), rpmVerifySignatures(), statFormat(), and writeRPM().
|
inlinestatic |
Attach digest to fd.
Definition at line 545 of file rpmio_internal.h.
References _FD_s::digests, _FD_s::ndigests, and rpmHmacInit().
Referenced by dodigest(), main(), and rpmdcInitFile().
|
inlinestatic |
Definition at line 373 of file rpmio_internal.h.
References FDSANE, fdSetFdno(), fdSetFp(), fdSetIo(), and _FD_s::nfps.
Referenced by Fclose().
Definition at line 358 of file rpmio_internal.h.
References FDSANE, fdSetFdno(), fdSetFp(), fdSetIo(), _FD_s::fps, and _FD_s::nfps.
|
inlinestatic |
Definition at line 348 of file rpmio_internal.h.
References _FD_s::bytesRemain, _FD_s::contentLength, and FDSANE.
|
inlinestatic |
Definition at line 503 of file rpmio_internal.h.
References _FD_s::fd_cpioPos, and FDSANE.
Referenced by fsmSetup(), iosmSetup(), and iosmStage().
Definition at line 217 of file rpmio_internal.h.
References _FD_s::dig, FDSANE, pgpDigFree(), and pgpDigLink().
Referenced by rpmReadHeader(), rpmReadPackageFile(), and rpmVerifySignatures().
|
inlinestatic |
Definition at line 338 of file rpmio_internal.h.
References _FDSTACK_s::fdno, FDSANE, _FD_s::fps, and _FD_s::nfps.
Referenced by __fdClose(), __fdOpen(), fdDup(), fdPop(), fdPush(), ftpReq(), and tcpConnect().
|
inlinestatic |
Definition at line 315 of file rpmio_internal.h.
References FDSANE, _FDSTACK_s::fp, _FD_s::fps, and _FD_s::nfps.
Referenced by Fclose(), Fdopen(), fdPop(), fdPush(), and ufdClose().
Definition at line 279 of file rpmio_internal.h.
References FDSANE, _FD_s::fps, _FDSTACK_s::io, and _FD_s::nfps.
Referenced by fdPop(), fdPush(), ftpOpen(), httpOpen(), ufdOpen(), and urlConnect().
|
inlinestatic |
Definition at line 171 of file rpmio_internal.h.
References FDSANE, _FD_s::oflags, _FD_s::omode, _FD_s::opath, and xstrdup().
Referenced by __fdOpen(), fdDup(), ftpOpen(), rpmtsCallback(), ufdOpen(), and urlConnect().
|
inlinestatic |
Definition at line 470 of file rpmio_internal.h.
References _FD_s::errcookie, FDSANE, and _FD_s::syserrno.
Referenced by ftpLogin(), ftpReq(), httpReq(), and tcpConnect().
Definition at line 243 of file rpmio_internal.h.
References FDSANE, rpmxarLink(), and _FD_s::xar.
Referenced by rdLead().
|
inlinestatic |
Definition at line 400 of file rpmio_internal.h.
References fdstat_op(), rpmswEnter(), and _FD_s::stats.
Referenced by __fdClose(), __fdRead(), __fdWrite(), fdFiniDigest(), fdInitDigest(), fdSeek(), and fdUpdateDigests().
|
inlinestatic |
Definition at line 412 of file rpmio_internal.h.
References _FD_s::bytesRemain, errno, fdstat_op(), FDSTAT_READ, FDSTAT_WRITE, rpmswExit(), _FD_s::stats, and _FD_s::syserrno.
Referenced by __fdClose(), __fdRead(), __fdWrite(), fdFiniDigest(), fdInitDigest(), fdSeek(), and fdUpdateDigests().
Definition at line 387 of file rpmio_internal.h.
References FDSTAT_MAX, and _FD_s::stats.
Referenced by compare(), fdstat_enter(), fdstat_exit(), grep_or_recurse(), iosmStage(), mireLoadPatternFiles(), mtreeVisitF(), rpmdcFiniFile(), rpmpsmStage(), rpmReadPackageFile(), and rpmrepoFclose().
|
inlinestatic |
Definition at line 435 of file rpmio_internal.h.
References rpmop_s::bytes, rpmop_s::count, FDSTAT_CLOSE, FDSTAT_READ, FDSTAT_SEEK, FDSTAT_WRITE, _FD_s::stats, and rpmop_s::usecs.
Definition at line 614 of file rpmio_internal.h.
References _FD_s::digests, _FD_s::ndigests, PGPHASHALGO_MD5, PGPHASHALGO_RIPEMD160, PGPHASHALGO_SHA1, PGPHASHALGO_SHA256, PGPHASHALGO_SHA384, PGPHASHALGO_SHA512, and rpmDigestAlgo().
Referenced by readFile(), and rpmReadPackageFile().
|
inlinestatic |
Update digest(s) attached to fd.
Definition at line 557 of file rpmio_internal.h.
References _FD_s::digests, FDSTAT_DIGEST, fdstat_enter(), fdstat_exit(), _FD_s::ndigests, and rpmDigestUpdate().
Referenced by __fdRead(), and __fdWrite().
int ftpCmd | ( | const char * | cmd, |
const char * | url, | ||
const char * | arg2 | ||
) |
Definition at line 1671 of file rpmio.c.
References urlinfo_s::ctrl, fdFree(), ftpCommand(), urlConnect(), and urlPath().
Referenced by ftpChdir(), ftpMkdir(), ftpRename(), ftpRmdir(), and ftpUnlink().
Definition at line 2209 of file rpmio.c.
References _FD_s::bytesRemain, _FD_s::contentLength, urlinfo_s::data, fdLink(), fdNew(), fdSetIo(), fdSetOpen(), _FD_s::ftpFileDoneNeeded, ftpTimeoutSecs, _FD_s::rd_timeoutsecs, _FD_s::u, ufdio, urlConnect(), and urlLink().
int ftpReq | ( | FD_t | data, |
const char * | ftpCmd, | ||
const char * | ftpArg | ||
) |
Definition at line 1274 of file rpmio.c.
References _ftp_debug, alloca(), c2f(), _FD_s::contentLength, urlinfo_s::ctrl, errno, fdClose, fdFileno(), fdLink(), fdSetFdno(), fdSetSyserrno(), fdWrite, ftpCheckResponse(), ftpCommand(), FTPERR_BAD_SERVER_RESPONSE, FTPERR_FAILED_CONNECT, FTPERR_FAILED_DATA_CONNECT, FTPERR_PASSIVE_ERROR, FTPERR_SERVER_IO_ERROR, FTPERR_UNKNOWN, _FD_s::ftpFileDoneNeeded, ftpStrerror(), HAVE_GETADDRINFO, inet_aton, NI_MAXHOST, stpcpy(), _FD_s::u, and URLSANE.
int ufdClose | ( | void * | cookie | ) |
Definition at line 2090 of file rpmio.c.
References _FD_s::bytesRemain, c2f(), _FD_s::contentLength, urlinfo_s::ctrl, urlinfo_s::data, fdClose, fdFree(), fdGetFILE, fdReadable(), fdSetFp(), ftpAbort(), ftpFileDone(), _FD_s::ftpFileDoneNeeded, noLibio, _FD_s::persist, urlinfo_s::scheme, _FD_s::u, UFDONLY, URL_IS_FTP, urlFree(), and urlType().
struct rpmop_s ops[FDSTAT_MAX] |
Cumulative statistics.
Definition at line 47 of file rpmio_internal.h.