rpmio/rpmio.h File Reference

#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include "glob.h"
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

Go to the source code of this file.

Data Structures

struct  FDIO_s

RPMIO Utilities.

#define fdFileno(_fd)   fdio->_fileno(_fd)
#define fdOpen(_path, _flags, _mode)   fdio->_open((_path), (_flags), (_mode))
#define fdRead(_fd, _buf, _count)   fdio->read((_fd), (_buf), (_count))
#define fdWrite(_fd, _buf, _count)   fdio->write((_fd), (_buf), (_count))
#define fdClose(_fd)   fdio->close(_fd)
#define fdLink(_fd, _msg)   fdio->_fdref(_fd, _msg, __FILE__, __LINE__)
#define fdFree(_fd, _msg)   fdio->_fdderef(_fd, _msg, __FILE__, __LINE__)
#define fdNew(_msg)   fdio->_fdnew(_msg, __FILE__, __LINE__)
#define timedRead   (ufdio->read)
enum  ftperrCode_e {
  FTPERR_NE_ERROR = -1, FTPERR_NE_LOOKUP = -2, FTPERR_NE_AUTH = -3, FTPERR_NE_PROXYAUTH = -4,
  FTPERR_NE_CONNECT = -5, FTPERR_NE_TIMEOUT = -6, FTPERR_NE_FAILED = -7, FTPERR_NE_RETRY = -8,
  FTPERR_NE_REDIRECT = -9, FTPERR_BAD_SERVER_RESPONSE = -81, FTPERR_SERVER_IO_ERROR = -82, FTPERR_SERVER_TIMEOUT = -83,
  FTPERR_BAD_HOST_ADDR = -84, FTPERR_BAD_HOSTNAME = -85, FTPERR_FAILED_CONNECT = -86, FTPERR_FILE_IO_ERROR = -87,
  FTPERR_PASSIVE_ERROR = -88, FTPERR_FAILED_DATA_CONNECT = -89, FTPERR_FILE_NOT_FOUND = -90, FTPERR_NIC_ABORT_IN_PROGRESS = -91,
  FTPERR_UNKNOWN = -100
}
 FTP and HTTP error codes. More...
typedef enum ftperrCode_e ftperrCode
 FTP and HTTP error codes.
FDIO_t fdio
FDIO_t fpio
FDIO_t ufdio
FDIO_t gzdio
FDIO_t bzdio
FDIO_t fadio
off_t fdSize (FD_t fd)
FD_t fdDup (int fdno)
int fdFileno (void *cookie)
FD_t fdOpen (const char *path, int flags, mode_t mode)
ssize_t fdRead (void *cookie, char *buf, size_t count)
ssize_t fdWrite (void *cookie, const char *buf, size_t count)
int fdClose (void *cookie)
FD_t fdLink (void *cookie, const char *msg)
FD_t fdFree (FD_t fd, const char *msg)
FD_t fdNew (const char *msg)
int fdWritable (FD_t fd, int secs)
int fdReadable (FD_t fd, int secs)
int rpmioMkpath (const char *path, mode_t mode, uid_t uid, gid_t gid)
 Insure that directories in path exist, creating as needed.
char * rpmEscapeSpaces (const char *s)
 Escape isspace(3) characters in string.
const char *const ftpStrerror (int errorNumber)
void * ufdGetUrlinfo (FD_t fd)
const char * urlStrerror (const char *url)
int ufdCopy (FD_t sfd, FD_t tfd)
int ufdGetFile (FD_t sfd, FD_t tfd)
int timedRead (FD_t fd, void *bufptr, int length)

Typedefs

typedef struct pgpDig_spgpDig
typedef struct pgpDigParams_spgpDigParams
typedef struct _FD_sFD_t
typedef struct FDIO_sFDIO_t
typedef off_t _libio_off_t
 Hide libio API lossage.
typedef off_t _libio_pos_t
RPMIO Vectors.
typedef ssize_t(* fdio_read_function_t )(void *cookie, char *buf, size_t nbytes)
typedef ssize_t(* fdio_write_function_t )(void *cookie, const char *buf, size_t nbytes)
typedef int(* fdio_seek_function_t )(void *cookie, _libio_pos_t pos, int whence)
typedef int(* fdio_close_function_t )(void *cookie)
typedef FD_t(* fdio_ref_function_t )(void *cookie, const char *msg, const char *file, unsigned line)
typedef FD_t(* fdio_deref_function_t )(FD_t fd, const char *msg, const char *file, unsigned line)
typedef FD_t(* fdio_new_function_t )(const char *msg, const char *file, unsigned line)
typedef int(* fdio_fileno_function_t )(void *cookie)
typedef FD_t(* fdio_open_function_t )(const char *path, int flags, mode_t mode)
typedef FD_t(* fdio_fopen_function_t )(const char *path, const char *fmode)
typedef void *(* fdio_ffileno_function_t )(FD_t fd)
typedef int(* fdio_fflush_function_t )(FD_t fd)
RPMRPC Vectors.
typedef int(* fdio_mkdir_function_t )(const char *path, mode_t mode)
typedef int(* fdio_chdir_function_t )(const char *path)
typedef int(* fdio_rmdir_function_t )(const char *path)
typedef int(* fdio_rename_function_t )(const char *oldpath, const char *newpath)
typedef int(* fdio_unlink_function_t )(const char *path)
typedef int(* fdio_stat_function_t )(const char *path, struct stat *st)
typedef int(* fdio_lstat_function_t )(const char *path, struct stat *st)
typedef int(* fdio_access_function_t )(const char *path, int amode)

Functions

static int xislower (int c)
static int xisupper (int c)
static int xisalpha (int c)
static int xisdigit (int c)
static int xisalnum (int c)
static int xisblank (int c)
static int xisspace (int c)
static int xtolower (int c)
static int xtoupper (int c)
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).
RPMIO Interface.
const char * Fstrerror (FD_t fd)
 strerror(3) clone.
size_t Fread (void *buf, size_t size, size_t nmemb, FD_t fd)
 fread(3) clone.
size_t Fwrite (const void *buf, size_t size, size_t nmemb, FD_t fd)
 fwrite(3) clone.
int Fseek (FD_t fd, _libio_off_t offset, int whence)
 fseek(3) clone.
int Fclose (FD_t fd)
 fclose(3) clone.
FD_t Fdopen (FD_t ofd, const char *fmode)
FD_t Fopen (const char *path, const char *fmode)
 fopen(3) clone.
int Fflush (FD_t fd)
 fflush(3) clone.
int Ferror (FD_t fd)
 ferror(3) clone.
int Fileno (FD_t fd)
 fileno(3) clone.
int Fcntl (FD_t fd, int op, void *lip)
 fcntl(2) clone.
RPMRPC Interface.
int Mkdir (const char *path, mode_t mode)
 mkdir(2) clone.
int Chdir (const char *path)
 chdir(2) clone.
int Rmdir (const char *path)
 rmdir(2) clone.
int Rename (const char *oldpath, const char *newpath)
 rename(2) clone.
int Link (const char *oldpath, const char *newpath)
 link(2) clone.
int Unlink (const char *path)
 unlink(2) clone.
int Readlink (const char *path, char *buf, size_t bufsiz)
 readlink(2) clone.
int Stat (const char *path, struct stat *st)
 stat(2) clone.
int Lstat (const char *path, struct stat *st)
 lstat(2) clone.
int Access (const char *path, int amode)
 access(2) clone.
int Glob_pattern_p (const char *pattern, int quote)
 glob_pattern_p(3) clone.
int Glob_error (const char *epath, int eerrno)
 glob_error(3) clone.
int Glob (const char *pattern, int flags, int errfunc(const char *epath, int eerrno), glob_t *pglob)
 glob(3) clone.
void Globfree (glob_t *pglob)
 globfree(3) clone.
DIR * Opendir (const char *path)
 opendir(3) clone.
struct dirent * Readdir (DIR *dir)
 readdir(3) clone.
int Closedir (DIR *dir)
 closedir(3) clone.


Detailed Description

Definition in file rpmio.h.


Define Documentation

#define fdClose ( _fd   )     fdio->close(_fd)

Definition at line 515 of file rpmio.h.

#define fdFileno ( _fd   )     fdio->_fileno(_fd)

#define fdFree ( _fd,
_msg   )     fdio->_fdderef(_fd, _msg, __FILE__, __LINE__)

#define fdLink ( _fd,
_msg   )     fdio->_fdref(_fd, _msg, __FILE__, __LINE__)

#define fdNew ( _msg   )     fdio->_fdnew(_msg, __FILE__, __LINE__)

#define fdOpen ( _path,
_flags,
_mode   )     fdio->_open((_path), (_flags), (_mode))

Definition at line 490 of file rpmio.h.

#define fdRead ( _fd,
_buf,
_count   )     fdio->read((_fd), (_buf), (_count))

Definition at line 500 of file rpmio.h.

#define fdWrite ( _fd,
_buf,
_count   )     fdio->write((_fd), (_buf), (_count))

Definition at line 508 of file rpmio.h.

#define timedRead   (ufdio->read)


Typedef Documentation

typedef int(* fdio_access_function_t)(const char *path, int amode)

Definition at line 195 of file rpmio.h.

typedef int(* fdio_chdir_function_t)(const char *path)

Definition at line 158 of file rpmio.h.

typedef int(* fdio_close_function_t)(void *cookie)

Definition at line 84 of file rpmio.h.

typedef FD_t(* fdio_deref_function_t)(FD_t fd, const char *msg, const char *file, unsigned line)

Definition at line 98 of file rpmio.h.

typedef void*(* fdio_ffileno_function_t)(FD_t fd)

Definition at line 133 of file rpmio.h.

typedef int(* fdio_fflush_function_t)(FD_t fd)

Definition at line 139 of file rpmio.h.

typedef int(* fdio_fileno_function_t)(void *cookie)

Definition at line 114 of file rpmio.h.

typedef FD_t(* fdio_fopen_function_t)(const char *path, const char *fmode)

Definition at line 127 of file rpmio.h.

typedef int(* fdio_lstat_function_t)(const char *path,struct stat *st)

Definition at line 189 of file rpmio.h.

typedef int(* fdio_mkdir_function_t)(const char *path, mode_t mode)

Definition at line 152 of file rpmio.h.

typedef FD_t(* fdio_new_function_t)(const char *msg, const char *file, unsigned line)

Definition at line 106 of file rpmio.h.

typedef FD_t(* fdio_open_function_t)(const char *path, int flags, mode_t mode)

Definition at line 121 of file rpmio.h.

typedef ssize_t(* fdio_read_function_t)(void *cookie, char *buf, size_t nbytes)

Definition at line 64 of file rpmio.h.

typedef FD_t(* fdio_ref_function_t)(void *cookie, const char *msg, const char *file, unsigned line)

Definition at line 91 of file rpmio.h.

typedef int(* fdio_rename_function_t)(const char *oldpath, const char *newpath)

Definition at line 170 of file rpmio.h.

typedef int(* fdio_rmdir_function_t)(const char *path)

Definition at line 164 of file rpmio.h.

typedef int(* fdio_seek_function_t)(void *cookie, _libio_pos_t pos, int whence)

Definition at line 78 of file rpmio.h.

typedef int(* fdio_stat_function_t)(const char *path,struct stat *st)

Definition at line 183 of file rpmio.h.

typedef int(* fdio_unlink_function_t)(const char *path)

Definition at line 176 of file rpmio.h.

typedef ssize_t(* fdio_write_function_t)(void *cookie, const char *buf, size_t nbytes)

Definition at line 72 of file rpmio.h.

typedef enum ftperrCode_e ftperrCode

FTP and HTTP error codes.

typedef struct pgpDig_s* pgpDig

Definition at line 21 of file rpmio.h.

typedef struct pgpDigParams_s* pgpDigParams

Definition at line 25 of file rpmio.h.


Enumeration Type Documentation

FTP and HTTP error codes.

Enumerator:
FTPERR_NE_ERROR  Generic error.
FTPERR_NE_LOOKUP  Hostname lookup failed.
FTPERR_NE_AUTH  Server authentication failed.
FTPERR_NE_PROXYAUTH  Proxy authentication failed.
FTPERR_NE_CONNECT  Could not connect to server.
FTPERR_NE_TIMEOUT  Connection timed out.
FTPERR_NE_FAILED  The precondition failed.
FTPERR_NE_RETRY  Retry request.
FTPERR_NE_REDIRECT  Redirect received.
FTPERR_BAD_SERVER_RESPONSE  Bad server response
FTPERR_SERVER_IO_ERROR  Server I/O error
FTPERR_SERVER_TIMEOUT  Server timeout
FTPERR_BAD_HOST_ADDR  Unable to lookup server host address
FTPERR_BAD_HOSTNAME  Unable to lookup server host name
FTPERR_FAILED_CONNECT  Failed to connect to server
FTPERR_FILE_IO_ERROR  Failed to establish data connection to server
FTPERR_PASSIVE_ERROR  I/O error to local file
FTPERR_FAILED_DATA_CONNECT  Error setting remote server to passive mode
FTPERR_FILE_NOT_FOUND  File not found on server
FTPERR_NIC_ABORT_IN_PROGRESS  Abort in progress
FTPERR_UNKNOWN  Unknown or unexpected error

Definition at line 580 of file rpmio.h.


Function Documentation

int Access ( const char *  path,
int  amode 
)

access(2) clone.

Definition at line 1375 of file rpmrpc.c.

References _rpmio_debug, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by rpmMkdirPath().

int Chdir ( const char *  path  ) 

chdir(2) clone.

Definition at line 114 of file rpmrpc.c.

References ftpChdir(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

int Closedir ( DIR *  dir  ) 

closedir(3) clone.

Definition at line 1539 of file rpmrpc.c.

References _rpmio_debug.

Referenced by Fts_open(), and Glob().

int Fclose ( FD_t  fd  ) 

int Fcntl ( FD_t  fd,
int  op,
void *  lip 
)

fcntl(2) clone.

Definition at line 3335 of file rpmio.c.

References Fileno().

int fdClose ( void *  cookie  ) 

FD_t fdDup ( int  fdno  ) 

int fdFileno ( void *  cookie  ) 

FD_t fdFree ( FD_t  fd,
const char *  msg 
)

FD_t fdLink ( void *  cookie,
const char *  msg 
)

FD_t fdNew ( const char *  msg  ) 

FD_t fdOpen ( const char *  path,
int  flags,
mode_t  mode 
)

FD_t Fdopen ( FD_t  ofd,
const char *  fmode 
)

ssize_t fdRead ( void *  cookie,
char *  buf,
size_t  count 
)

int fdReadable ( FD_t  fd,
int  secs 
)

Definition at line 570 of file rpmio.c.

References errno, fdFileno, and _FD_s::req.

Referenced by fdFgets(), ftpAbort(), ufdClose(), and ufdRead().

off_t fdSize ( FD_t  fd  ) 

int fdWritable ( FD_t  fd,
int  secs 
)

Definition at line 515 of file rpmio.c.

References _rpmio_debug, errno, fdFileno, _FD_s::req, and strerror.

Referenced by checkResponse(), ftpLogin(), httpReq(), and ufdWrite().

ssize_t fdWrite ( void *  cookie,
const char *  buf,
size_t  count 
)

int Ferror ( FD_t  fd  ) 

int Fflush ( FD_t  fd  ) 

fflush(3) clone.

Definition at line 3257 of file rpmio.c.

References fdGetFILE, fdGetFp(), fdGetIo(), and fpio.

Referenced by copyFile(), cpio_doio(), expandRegular(), rpmpsmStage(), and writeRPM().

int Fileno ( FD_t  fd  ) 

FD_t Fopen ( const char *  path,
const char *  fmode 
)

size_t Fread ( void *  buf,
size_t  size,
size_t  nmemb,
FD_t  fd 
)

int Fseek ( FD_t  fd,
_libio_off_t  offset,
int  whence 
)

fseek(3) clone.

Definition at line 2871 of file rpmio.c.

References DBGIO, fdbg(), fdGetFILE, fdGetIo(), FDIOVEC, FDSANE, fpio, and FDIO_s::seek.

Referenced by readRPM(), and writeRPM().

const char* Fstrerror ( FD_t  fd  ) 

const char* const ftpStrerror ( int  errorNumber  ) 

size_t Fwrite ( const void *  buf,
size_t  size,
size_t  nmemb,
FD_t  fd 
)

int Glob ( const char *  pattern,
int  flags,
int   errfuncconst char *epath, int eerrno,
glob_t *  pglob 
)

int Glob_error ( const char *  epath,
int  eerrno 
)

glob_error(3) clone.

Definition at line 1441 of file rpmrpc.c.

Referenced by rpmGlob().

int Glob_pattern_p ( const char *  pattern,
int  quote 
)

glob_pattern_p(3) clone.

Definition at line 1405 of file rpmrpc.c.

References urlPath().

Referenced by initGlobs(), processBinaryFile(), and rpmGlob().

void Globfree ( glob_t *  pglob  ) 

globfree(3) clone.

Definition at line 1484 of file rpmrpc.c.

References _rpmio_debug.

Referenced by rpmGlob().

int Link ( const char *  oldpath,
const char *  newpath 
)

link(2) clone.

Definition at line 231 of file rpmrpc.c.

References _rpmio_debug, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, urlPath(), and xstrncasecmp().

Referenced by fsmStage().

int Lstat ( const char *  path,
struct stat *  st 
)

int Mkdir ( const char *  path,
mode_t  mode 
)

DIR* Opendir ( const char *  path  ) 

opendir(3) clone.

Definition at line 1491 of file rpmrpc.c.

References _rpmio_debug, ftpOpendir(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by Fts_open(), and Glob().

struct dirent* Readdir ( DIR *  dir  )  [read]

readdir(3) clone.

Definition at line 1524 of file rpmrpc.c.

References _rpmio_debug.

Referenced by Fts_open(), and Glob().

int Readlink ( const char *  path,
char *  buf,
size_t  bufsiz 
)

readlink(2) clone.

Definition at line 1342 of file rpmrpc.c.

References ftpReadlink(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by fsmStage(), genCpioListAndHeader(), and rpmVerifyFile().

int Rename ( const char *  oldpath,
const char *  newpath 
)

rename(2) clone.

Definition at line 176 of file rpmrpc.c.

References _rpmio_debug, ftpRename(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, urlPath(), and xstrncasecmp().

Referenced by fsmStage().

int Rmdir ( const char *  path  ) 

rmdir(2) clone.

Definition at line 145 of file rpmrpc.c.

References ftpRmdir(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by fsmStage(), and rpmdbRebuild().

char* rpmEscapeSpaces ( const char *  s  ) 

Escape isspace(3) characters in string.

Parameters:
s string
Returns:
escaped string

Definition at line 3344 of file rpmio.c.

References xmalloc().

Referenced by rpmgiGlobArgv(), and rpmInstall().

int rpmioMkpath ( const char *  path,
mode_t  mode,
uid_t  uid,
gid_t  gid 
)

Insure that directories in path exist, creating as needed.

Parameters:
path diretory path
mode directory mode (if created)
uid directory uid (if created), or -1 to skip
gid directory uid (if created), or -1 to skip
Returns:
0 on success, errno (or -1) on error

Definition at line 3369 of file rpmio.c.

References alloca(), errno, Mkdir(), RPMMESS_DEBUG, rpmMessage, Stat(), and stpcpy().

Referenced by db3open(), and makeTempFile().

int Stat ( const char *  path,
struct stat *  st 
)

int timedRead ( FD_t  fd,
void *  bufptr,
int  length 
)

int ufdCopy ( FD_t  sfd,
FD_t  tfd 
)

int ufdGetFile ( FD_t  sfd,
FD_t  tfd 
)

Definition at line 1601 of file rpmio.c.

References Fclose(), FDSANE, and ufdCopy().

Referenced by urlGetFile().

void* ufdGetUrlinfo ( FD_t  fd  ) 

Definition at line 1877 of file rpmio.c.

References FDSANE, _FD_s::url, and urlLink.

int Unlink ( const char *  path  ) 

const char* urlStrerror ( const char *  url  ) 

static int xisalnum ( int  c  )  [inline, static]

Definition at line 688 of file rpmio.h.

References xisalpha(), and xisdigit().

Referenced by expandMacro(), parseRCPOT(), rdToken(), and rpmvercmp().

static int xisalpha ( int  c  )  [inline, static]

Definition at line 682 of file rpmio.h.

References xislower(), and xisupper().

Referenced by doDefine(), doUndefine(), parseBits(), rdToken(), rpmvercmp(), and xisalnum().

static int xisblank ( int  c  )  [inline, static]

Definition at line 691 of file rpmio.h.

Referenced by xisspace().

static int xisdigit ( int  c  )  [inline, static]

static int xislower ( int  c  )  [inline, static]

Definition at line 676 of file rpmio.h.

Referenced by xisalpha(), and xtoupper().

static int xisspace ( int  c  )  [inline, static]

Definition at line 694 of file rpmio.h.

References xisblank().

static int xisupper ( int  c  )  [inline, static]

Definition at line 679 of file rpmio.h.

Referenced by xisalpha(), and xtolower().

static int xtolower ( int  c  )  [inline, static]

Definition at line 698 of file rpmio.h.

References xisupper().

Referenced by myTagName(), rpmRebuildTargetVars(), tagName(), xstrcasecmp(), and xstrncasecmp().

static int xtoupper ( int  c  )  [inline, static]

Definition at line 701 of file rpmio.h.

References xislower().


Variable Documentation

Referenced by fdbg().

Definition at line 513 of file rpmio.c.

Referenced by fdbg(), XfdNew(), and XurlFree().

Definition at line 3479 of file rpmio.c.

Referenced by Fclose(), fdbg(), Fdopen(), Ferror(), Fflush(), Fopen(), Fread(), Fseek(), Fwrite(), and XurlFree().

Referenced by fdbg().

Definition at line 2351 of file rpmio.c.

Referenced by fdbg(), ftpOpen(), httpOpen(), ufdOpen(), and urlConnect().


Generated on Fri Dec 12 13:02:11 2008 for rpm by  doxygen 1.5.6