RPMIO.

Data Structures

struct  FDIO_s
struct  _FDSTACK_s
struct  _FDDIGEST_s
struct  _FD_s
 The FD_t File Handle data structure. More...
struct  rpmsw_s
struct  rpmop_s
 Cumulative statistics for an operation. More...

Files

file  argv.c
file  argv.h
file  getpass.c
file  macro.c
file  rpmcb.h
file  rpmlog.c
file  rpmlog.h
 

Yet Another syslog(3) API clone.


file  rpmio.c
file  rpmio.h
file  rpmio_internal.h
file  rpmmacro.h
file  rpmmalloc.c
file  rpmmg.c
file  rpmmg.h
file  rpmpgp.c
 

Routines to handle RFC-2440 detached signatures.


file  rpmrpc.c
file  rpmsq.c
file  rpmsq.h
file  rpmsw.c
file  rpmsw.h
file  rpmurl.h
file  strcasecmp.c
file  ugid.c
file  ugid.h
file  url.c

Typedefs

typedef struct _FD_sFD_t
typedef struct FDIO_sFDIO_t
typedef struct _FDSTACK_s FDSTACK_t
typedef enum fdOpX_e fdOpX
 Identify per-desciptor I/O operation statistics.
struct {
   struct rpmop_s   ops [FDSTAT_MAX]
FDSTAT_t
 Cumulative statistics for a descriptor.
typedef struct _FDDIGEST_sFDDIGEST_t
typedef struct rpmmg_s * rpmmg
typedef unsigned long int rpmtime_t
typedef struct rpmsw_srpmsw
typedef struct rpmop_srpmop

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

int xstrcasecmp (const char *s1, const char *s2)
 Locale insensitive strcasecmp(3).
int xstrncasecmp (const char *s1, const char *s2, size_t n)
 Locale insensitive strncasecmp(3).
const char * xstrtolocale (const char *str)
 Force encoding of string.
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.
static void fdUpdateDigests (FD_t fd, const unsigned char *buf, ssize_t buflen)
 Update digest(s) attached to fd.
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)
static rpmtime_t tvsub (const struct timeval *etv, const struct timeval *btv)
 Return difference of 2 timeval stamps in micro-seconds.
int rpmswEnter (rpmop op, ssize_t rc)
 Enter timed operation.
rpmtime_t rpmswExit (rpmop op, ssize_t rc)
 Exit timed operation.
rpmtime_t rpmswAdd (rpmop to, rpmop from)
 Sum statistic counters.
rpmtime_t rpmswSub (rpmop to, rpmop from)
 Subtract statistic counters.

Variables

int _rpmmg_debug



typedef off_t _libio_off_t
 Hide libio API lossage.
typedef off_t _libio_pos_t

Typedef Documentation

typedef off_t _libio_off_t

Hide libio API lossage.

The libio interface changed after glibc-2.1.3 to pass the seek offset argument as a pointer rather than as an off_t. The snarl below defines typedefs to isolate the lossage.

Definition at line 32 of file rpmio.h.

typedef off_t _libio_pos_t

Definition at line 33 of file rpmio.h.

typedef struct _FD_s* FD_t

Definition at line 39 of file rpmio.h.

typedef struct _FDDIGEST_s * FDDIGEST_t
typedef struct FDIO_s* FDIO_t

Definition at line 43 of file rpmio.h.

typedef enum fdOpX_e fdOpX

Identify per-desciptor I/O operation statistics.

typedef struct _FDSTACK_s FDSTACK_t
typedef { ... } * FDSTAT_t

Cumulative statistics for a descriptor.

typedef struct rpmmg_s* rpmmg

Definition at line 16 of file rpmmg.h.

typedef struct rpmop_s* rpmop

Definition at line 18 of file rpmsw.h.

typedef struct rpmsw_s* rpmsw

Definition at line 14 of file rpmsw.h.

typedef unsigned long int rpmtime_t

Definition at line 10 of file rpmsw.h.


Enumeration Type Documentation

enum fdOpX_e

Identify per-desciptor I/O operation statistics.

Enumerator:
FDSTAT_READ 

Read statistics index.

FDSTAT_WRITE 

Write statistics index.

FDSTAT_SEEK 

Seek statistics index.

FDSTAT_CLOSE 

Close statistics index

FDSTAT_DIGEST 

Digest statistics index.

FDSTAT_MAX 

Definition at line 29 of file rpmio_internal.h.


Function Documentation

static FD_t c2f ( void *  cookie  )  [inline, static]
int fdFgets ( FD_t  fd,
char *  buf,
size_t  len 
)

Definition at line 670 of file rpmio.c.

References _rpmio_debug, errno, fdFileno, fdRead, fdReadable(), _FD_s::rd_timeoutsecs, and _FD_s::syserrno.

Referenced by checkResponse(), and ftpNLST().

static int fdFileno ( void *  cookie  )  [inline, static]

Definition at line 642 of file rpmio_internal.h.

References c2f(), _FDSTACK_s::fdno, and _FD_s::fps.

static void fdFiniDigest ( FD_t  fd,
pgpHashAlgo  hashalgo,
void *  datap,
size_t *  lenp,
int  asAscii 
) [inline, static]
static unsigned long long fdGetCpioPos ( FD_t  fd  )  [inline, static]

Definition at line 492 of file rpmio_internal.h.

References _FD_s::fd_cpioPos, and FDSANE.

Referenced by fsmSetup(), and fsmStage().

static pgpDig fdGetDig ( FD_t  fd  )  [inline, static]

Definition at line 233 of file rpmio_internal.h.

References _FD_s::dig, and FDSANE.

Referenced by readFile(), and rpmReadHeader().

static int fdGetFdno ( FD_t  fd  )  [inline, static]

Definition at line 327 of file rpmio_internal.h.

References _FDSTACK_s::fdno, FDSANE, _FD_s::fps, and _FD_s::nfps.

Referenced by Fclose(), Fopen(), and ufdWrite().

static FILE* fdGetFILE ( FD_t  fd  )  [inline, static]

Definition at line 291 of file rpmio_internal.h.

References FDSANE, _FDSTACK_s::fp, _FD_s::fps, and _FD_s::nfps.

static void* fdGetFp ( FD_t  fd  )  [inline, static]
static FDIO_t fdGetIo ( FD_t  fd  )  [inline, static]

Definition at line 267 of file rpmio_internal.h.

References FDSANE, _FD_s::fps, _FDSTACK_s::io, and _FD_s::nfps.

Referenced by Fflush(), Fread(), Fseek(), Fwrite(), getFdErrstr(), ufdRead(), and ufdWrite().

static int fdGetOFlags ( FD_t  fd  )  [inline, static]

Definition at line 202 of file rpmio_internal.h.

References FDSANE, and _FD_s::oflags.

static mode_t fdGetOMode ( FD_t  fd  )  [inline, static]

Definition at line 212 of file rpmio_internal.h.

References FDSANE, and _FD_s::omode.

static const char* fdGetOPath ( FD_t  fd  )  [inline, static]

Definition at line 192 of file rpmio_internal.h.

References FDSANE, and _FD_s::opath.

Referenced by rdLead(), and rpmReadHeader().

static int fdGetRdTimeoutSecs ( FD_t  fd  )  [inline, static]

Definition at line 482 of file rpmio_internal.h.

References FDSANE, and _FD_s::rd_timeoutsecs.

static rpmxar fdGetXAR ( FD_t  fd  )  [inline, static]

Definition at line 255 of file rpmio_internal.h.

References FDSANE, and _FD_s::xar.

Referenced by rdLead(), rdSignature(), readFile(), and rpmReadHeader().

static void fdInitDigest ( FD_t  fd,
pgpHashAlgo  hashalgo,
int  flags 
) [inline, static]
static void fdPop ( FD_t  fd  )  [inline, static]

Definition at line 372 of file rpmio_internal.h.

References FDSANE, fdSetFdno(), fdSetFp(), fdSetIo(), and _FD_s::nfps.

Referenced by Fclose(), lzdReadOpen(), and lzdWriteOpen().

static void fdPush ( FD_t  fd,
FDIO_t  io,
void *  fp,
int  fdno 
) [inline, static]

Definition at line 357 of file rpmio_internal.h.

References FDSANE, fdSetFdno(), fdSetFp(), fdSetIo(), _FD_s::fps, and _FD_s::nfps.

Referenced by Fdopen(), Fopen(), lzdReadOpen(), lzdWriteOpen(), and XurlFree().

static void fdSetContentLength ( FD_t  fd,
ssize_t  contentLength 
) [inline, static]

Definition at line 347 of file rpmio_internal.h.

References _FD_s::bytesRemain, _FD_s::contentLength, and FDSANE.

static void fdSetCpioPos ( FD_t  fd,
long int  cpioPos 
) [inline, static]

Definition at line 502 of file rpmio_internal.h.

References _FD_s::fd_cpioPos, and FDSANE.

Referenced by fsmSetup(), and fsmStage().

static void fdSetDig ( FD_t  fd,
pgpDig  dig 
) [inline, static]

Definition at line 222 of file rpmio_internal.h.

References _FD_s::dig, FDSANE, pgpDigFree(), and pgpDigLink.

Referenced by rpmReadHeader(), rpmReadPackageFile(), and rpmVerifySignatures().

static void fdSetFdno ( FD_t  fd,
int  fdno 
) [inline, static]

Definition at line 337 of file rpmio_internal.h.

References _FDSTACK_s::fdno, FDSANE, _FD_s::fps, and _FD_s::nfps.

Referenced by fdClose(), fdDup(), fdOpen(), fdPop(), fdPush(), ftpReq(), lzdFdopen(), and tcpConnect().

static void fdSetFp ( FD_t  fd,
void *  fp 
) [inline, static]

Definition at line 314 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().

static void fdSetIo ( FD_t  fd,
FDIO_t  io 
) [inline, static]

Definition at line 278 of file rpmio_internal.h.

References FDSANE, _FD_s::fps, _FDSTACK_s::io, and _FD_s::nfps.

Referenced by fdPop(), fdPush(), ftpOpen(), ufdOpen(), and urlConnect().

static void fdSetOpen ( FD_t  fd,
const char *  path,
int  flags,
mode_t  mode 
) [inline, static]
static void fdSetSyserrno ( FD_t  fd,
int  syserrno,
const void *  errcookie 
) [inline, static]

Definition at line 469 of file rpmio_internal.h.

References _FD_s::errcookie, FDSANE, and _FD_s::syserrno.

Referenced by ftpLogin(), ftpReq(), httpReq(), and tcpConnect().

static void fdSetXAR ( FD_t  fd,
rpmxar  xar 
) [inline, static]

Definition at line 245 of file rpmio_internal.h.

References FDSANE, and _FD_s::xar.

Referenced by rdLead().

static void fdstat_enter ( FD_t  fd,
int  opx 
) [inline, static]
static void fdstat_exit ( FD_t  fd,
int  opx,
ssize_t  rc 
) [inline, static]
static rpmop fdstat_op ( FD_t  fd,
fdOpX  opx 
) [inline, static]

Definition at line 386 of file rpmio_internal.h.

References FDSTAT_MAX, and _FD_s::stats.

Referenced by fdstat_enter(), fdstat_exit(), fsmStage(), rpmpsmStage(), and rpmReadPackageFile().

static void fdstat_print ( FD_t  fd,
const char *  msg,
FILE *  fp 
) [inline, static]
static void fdStealDigest ( FD_t  fd,
pgpDig  dig 
) [inline, static]
static void fdUpdateDigests ( FD_t  fd,
const unsigned char *  buf,
ssize_t  buflen 
) [inline, static]

Update digest(s) attached to fd.

Definition at line 544 of file rpmio_internal.h.

References _FD_s::digests, FDSTAT_DIGEST, fdstat_enter(), fdstat_exit(), _FDDIGEST_s::hashctx, _FD_s::ndigests, and rpmDigestUpdate().

Referenced by fdRead(), fdWrite(), lzdRead(), and lzdWrite().

int ftpCmd ( const char *  cmd,
const char *  url,
const char *  arg2 
)

Definition at line 1640 of file rpmio.c.

References urlinfo_s::ctrl, fdFree, ftpCommand(), urlConnect(), and urlPath().

Referenced by ftpChdir(), ftpMkdir(), ftpRename(), ftpRmdir(), and ftpUnlink().

FD_t ftpOpen ( const char *  url,
int  flags,
mode_t  mode,
urlinfo uret 
)
int ftpReq ( FD_t  data,
const char *  ftpCmd,
const char *  ftpArg 
)
rpmtime_t rpmswAdd ( rpmop  to,
rpmop  from 
)

Sum statistic counters.

Parameters:
to result statistics
from operation statistics
Returns:
cumulative usecs for operation

Definition at line 275 of file rpmsw.c.

References rpmop_s::bytes, rpmop_s::count, and rpmop_s::usecs.

Referenced by fsmStage(), headerFree(), psmWait(), rpmpsmStage(), rpmReadPackageFile(), rpmtsCleanDig(), rpmtsCloseDB(), rpmtsCloseSDB(), and rpmtsPrintStats().

int rpmswEnter ( rpmop  op,
ssize_t  rc 
)
rpmtime_t rpmswExit ( rpmop  op,
ssize_t  rc 
)

Exit timed operation.

Parameters:
op operation statistics
rc per-operation data (e.g. bytes transferred)
Returns:
cumulative usecs for operation

Definition at line 259 of file rpmsw.c.

References rpmop_s::begin, rpmop_s::bytes, rpmswDiff(), rpmswNow(), and rpmop_s::usecs.

Referenced by fdstat_exit(), headerCheck(), headerGet(), headerLoad(), headerNext(), headerUnload(), rpmpsmStage(), rpmReadPackageFile(), rpmsqWaitUnregister(), rpmtsCheck(), rpmtsOrder(), rpmtsPrintStats(), rpmtsRun(), verifyDSASignature(), verifyMD5Signature(), verifyRSASignature(), and verifySHA1Signature().

rpmtime_t rpmswSub ( rpmop  to,
rpmop  from 
)

Subtract statistic counters.

Parameters:
to result statistics
from operation statistics
Returns:
cumulative usecs for operation

Definition at line 287 of file rpmsw.c.

References rpmop_s::bytes, rpmop_s::count, and rpmop_s::usecs.

Referenced by rpmReadPackageFile().

static rpmtime_t tvsub ( const struct timeval *  etv,
const struct timeval *  btv 
) [inline, static]

Return difference of 2 timeval stamps in micro-seconds.

Parameters:
*etv end timeval
*btv begin timeval
Returns:
difference in milli-seconds

Definition at line 107 of file rpmsw.c.

References rpmop_s::usecs.

Referenced by rpmswDiff().

int ufdClose ( void *  cookie  ) 
int xstrcasecmp ( const char *  s1,
const char *  s2 
)
int xstrncasecmp ( const char *  s1,
const char *  s2,
size_t  n 
)

Locale insensitive strncasecmp(3).

Definition at line 30 of file strcasecmp.c.

References xtolower().

Referenced by findPreambleTag(), isPart(), Link(), matchTok(), pgpHashAlgoStringToNumber(), and Rename().

const char* xstrtolocale ( const char *  str  ) 

Force encoding of string.

Referenced by i18nTag(), localeTag(), parseChangelog(), xmlFormat(), and yamlFormat().


Variable Documentation

Definition at line 19 of file rpmmg.c.

Generated on Wed Jun 30 10:57:02 2010 for rpm by  doxygen 1.6.3