rpm  5.4.10
Macros | Functions | Variables
rpmio.c File Reference
#include "system.h"
#include <stdarg.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <rpmiotypes.h>
#include <rpmmacro.h>
#include <mongo.h>
#include <rpmaug.h>
#include <rpmficl.h>
#include <rpmgit.h>
#include <rpmjs.h>
#include <rpmlua.h>
#include <rpmnix.h>
#include <rpmodbc.h>
#include <rpmperl.h>
#include <rpmpython.h>
#include <rpmruby.h>
#include <rpmsql.h>
#include <rpmsquirrel.h>
#include <rpmtcl.h>
#include <rpmhkp.h>
#include <rpmsm.h>
#include <rpmsp.h>
#include <rpmsx.h>
#include <rpmio_internal.h>
#include <ugid.h>
#include <rpmcb.h>
#include <rpmdav.h>
#include "debug.h"
Include dependency graph for rpmio.c:

Go to the source code of this file.

Macros

#define NI_MAXHOST   1025
 
#define _RPMHKP_INTERNAL   /* XXX awol/crl bloom filters */
 
#define IPPORT_FTP   21
 
#define IPPORT_HTTP   80
 
#define inet_aton(cp, inp)   rpm_inet_aton(cp,inp)
 
#define fdOpen   __fdOpen
 
#define fdRead   __fdRead
 
#define fdWrite   __fdWrite
 
#define fdClose   __fdClose
 
#define FDTO(fd)   (fd ? ((FD_t)fd)->rd_timeoutsecs : -99)
 
#define FDCPIOPOS(fd)   (fd ? ((FD_t)fd)->fd_cpioPos : -99)
 
#define FDONLY(fd)   assert(fdGetIo(fd) == fdio)
 
#define UFDONLY(fd)   /* assert(fdGetIo(fd) == ufdio) */
 
#define fdGetFILE(_fd)   ((FILE *)fdGetFp(_fd))
 
#define TIMEOUT_SECS   60
 
#define IAC   ((unsigned char)255) /* interpret as command: */
 
#define IP   ((unsigned char)244) /* interrupt process--permanently */
 
#define DM   ((unsigned char)242) /* data mark--for connect. cleaning */
 
#define SHUT_RDWR   1+1
 
#define FDIOVEC(_fd, _vec)   ((fdGetIo(_fd) && fdGetIo(_fd)->_vec) ? fdGetIo(_fd)->_vec : NULL)
 
#define _PATH   "/bin:/usr/bin:/sbin:/usr/sbin"
 
#define alloca_strdup(_s)   strcpy((char *)alloca(strlen(_s)+1), (_s))
 

Functions

static int rpm_inet_aton (const char *cp, struct in_addr *inp)
 
const char * fdbg (FD_t fd)
 
FD_t fdDup (int fdno)
 
static int fdSeekNot (void *cookie, _libio_pos_t pos, int whence)
 
static void fdFini (void *_fd)
 
static FD_t fdGetPool (rpmioPool pool)
 
FD_t XfdNew (const char *msg, const char *fn, unsigned ln)
 
static ssize_t __fdRead (void *cookie, char *buf, size_t count)
 
static ssize_t __fdWrite (void *cookie, const char *buf, size_t count)
 
static int fdSeek (void *cookie, _libio_pos_t pos, int whence)
 
static int __fdClose (void *cookie)
 
static FD_t __fdOpen (const char *path, int flags, mode_t mode)
 
int fdWritable (FD_t fd, int secs)
 
int fdReadable (FD_t fd, int secs)
 
int fdFgets (FD_t fd, char *buf, size_t len)
 
const char * ftpStrerror (int errorNumber)
 
const char * urlStrerror (const char *url)
 
static int mygethostbyname (const char *host, struct in_addr *address)
 
static int getHostAddress (const char *host, struct in_addr *address)
 
static int tcpConnect (FD_t ctrl, const char *host, int port)
 
static int checkResponse (void *_u, FD_t ctrl, int *ecp, char **str)
 
static int ftpCheckResponse (urlinfo u, char **str)
 
static int ftpCommand (urlinfo u, char **str,...)
 
static int ftpLogin (urlinfo u)
 
int ftpReq (FD_t data, const char *ftpCmd, const char *ftpArg)
 
int ufdCopy (FD_t sfd, FD_t tfd)
 
static int urlConnect (const char *url, urlinfo *uret)
 
int ufdGetFile (FD_t sfd, FD_t tfd)
 
int ftpCmd (const char *cmd, const char *url, const char *arg2)
 
static int ftpAbort (urlinfo u, FD_t data)
 
static int ftpFileDone (urlinfo u, FD_t data)
 
static int httpResp (urlinfo u, FD_t ctrl, char **str)
 
static int httpReq (FD_t ctrl, const char *httpCmd, const char *httpArg)
 
void * ufdGetUrlinfo (FD_t fd)
 
static ssize_t ufdRead (void *cookie, char *buf, size_t count)
 
static ssize_t ufdWrite (void *cookie, const char *buf, size_t count)
 
static int ufdSeek (void *cookie, _libio_pos_t pos, int whence)
 
int ufdClose (void *cookie)
 
FD_t ftpOpen (const char *url, int flags, mode_t mode, urlinfo *uret)
 
static FD_t ufdOpen (const char *url, int flags, mode_t mode)
 
static const char * getFdErrstr (FD_t fd)
 
const char * Fstrerror (FD_t fd)
 strerror(3) clone. More...
 
size_t Fread (void *buf, size_t size, size_t nmemb, FD_t fd)
 fread(3) clone. More...
 
size_t Fwrite (const void *buf, size_t size, size_t nmemb, FD_t fd)
 fwrite(3) clone. More...
 
int Fseek (FD_t fd, _libio_off_t offset, int whence)
 fseek(3) clone. More...
 
long Ftell (FD_t fd)
 
void Rewind (FD_t fd)
 
int Fgetpos (FD_t fd, fpos_t *pos)
 
int Fsetpos (FD_t fd, fpos_t *pos)
 
int Fclose (FD_t fd)
 fclose(3) clone. More...
 
static void cvtfmode (const char *m, char *stdio, size_t nstdio, char *other, size_t nother, const char **end, int *f)
 Convert stdio fmode to open(2) mode, filtering out zlib/bzlib flags. More...
 
FD_t Fdopen (FD_t ofd, const char *fmode)
 
FD_t Fopen (const char *path, const char *_fmode)
 fopen(3) clone. More...
 
int Fflush (FD_t fd)
 fflush(3) clone. More...
 
int Ferror (FD_t fd)
 ferror(3) clone. More...
 
int Fileno (FD_t fd)
 fileno(3) clone. More...
 
int Fcntl (FD_t fd, int op, void *lip)
 fcntl(2) clone. More...
 
int rpmioMkpath (const char *path, mode_t mode, uid_t uid, gid_t gid)
 Insure that directories in path exist, creating as needed. More...
 
int rpmioAccess (const char *FN, const char *path, int mode)
 Check FN access, expanding relative paths and twiddles. More...
 
void rpmioClean (void)
 Free all memory allocated by rpmio usage. More...
 

Variables

int noLibio = 1
 
static int ftpTimeoutSecs = 60
 
int _rpmio_debug = 0
 
int _av_debug = 0
 
int _ftp_debug = 0
 
int _dav_debug = 0
 
rpmioPool _fdPool
 
static struct FDIO_s fdio_s
 
FDIO_t fdio = &fdio_s
 
static struct FDIO_s ufdio_s
 
FDIO_t ufdio = &ufdio_s
 
static const char * _path = "/bin:/usr/bin:/sbin:/usr/sbin"
 
static struct FDIO_s fpio_s
 
FDIO_t fpio = &fpio_s
 

Macro Definition Documentation

§ _PATH

#define _PATH   "/bin:/usr/bin:/sbin:/usr/sbin"

Definition at line 3066 of file rpmio.c.

§ _RPMHKP_INTERNAL

#define _RPMHKP_INTERNAL   /* XXX awol/crl bloom filters */

Definition at line 84 of file rpmio.c.

§ alloca_strdup

#define alloca_strdup (   _s)    strcpy((char *)alloca(strlen(_s)+1), (_s))

Definition at line 3070 of file rpmio.c.

Referenced by rpmioAccess().

§ DM

#define DM   ((unsigned char)242) /* data mark--for connect. cleaning */

Definition at line 1695 of file rpmio.c.

Referenced by ftpAbort().

§ fdClose

#define fdClose   __fdClose

Definition at line 136 of file rpmio.c.

Referenced by Fclose(), Fopen(), ftpAbort(), ftpLogin(), ftpReq(), httpReq(), and ufdClose().

§ FDCPIOPOS

#define FDCPIOPOS (   fd)    (fd ? ((FD_t)fd)->fd_cpioPos : -99)

Definition at line 151 of file rpmio.c.

§ fdGetFILE

#define fdGetFILE (   _fd)    ((FILE *)fdGetFp(_fd))

§ FDIOVEC

#define FDIOVEC (   _fd,
  _vec 
)    ((fdGetIo(_fd) && fdGetIo(_fd)->_vec) ? fdGetIo(_fd)->_vec : NULL)

Definition at line 2409 of file rpmio.c.

Referenced by Fclose(), Fread(), Fseek(), and Fwrite().

§ FDONLY

#define FDONLY (   fd)    assert(fdGetIo(fd) == fdio)

Definition at line 153 of file rpmio.c.

§ fdOpen

#define fdOpen   __fdOpen

Definition at line 130 of file rpmio.c.

Referenced by Fopen(), and ufdOpen().

§ fdRead

#define fdRead   __fdRead

Definition at line 132 of file rpmio.c.

Referenced by fdFgets(), and ufdRead().

§ FDTO

#define FDTO (   fd)    (fd ? ((FD_t)fd)->rd_timeoutsecs : -99)

Definition at line 150 of file rpmio.c.

§ fdWrite

#define fdWrite   __fdWrite

Definition at line 134 of file rpmio.c.

Referenced by ftpAbort(), ftpCommand(), ftpReq(), httpReq(), and ufdWrite().

§ IAC

#define IAC   ((unsigned char)255) /* interpret as command: */

Definition at line 1689 of file rpmio.c.

Referenced by ftpAbort().

§ inet_aton

#define inet_aton (   cp,
  inp 
)    rpm_inet_aton(cp,inp)

Definition at line 109 of file rpmio.c.

Referenced by ftpReq(), and getHostAddress().

§ IP

#define IP   ((unsigned char)244) /* interrupt process--permanently */

Definition at line 1692 of file rpmio.c.

Referenced by ftpAbort(), and runScript().

§ IPPORT_FTP

#define IPPORT_FTP   21

Definition at line 102 of file rpmio.c.

Referenced by ftpLogin().

§ IPPORT_HTTP

#define IPPORT_HTTP   80

Definition at line 105 of file rpmio.c.

§ NI_MAXHOST

#define NI_MAXHOST   1025

Definition at line 17 of file rpmio.c.

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

§ SHUT_RDWR

#define SHUT_RDWR   1+1

Definition at line 1698 of file rpmio.c.

Referenced by ftpAbort().

§ TIMEOUT_SECS

#define TIMEOUT_SECS   60

Definition at line 168 of file rpmio.c.

§ UFDONLY

#define UFDONLY (   fd)    /* assert(fdGetIo(fd) == ufdio) */

Definition at line 155 of file rpmio.c.

Referenced by ufdClose(), ufdRead(), and ufdWrite().

Function Documentation

§ __fdClose()

static int __fdClose ( void *  cookie)
static

§ __fdOpen()

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

Definition at line 531 of file rpmio.c.

References c2f(), DBGIO, fdbg(), fdFileno(), fdFree(), fdNew(), fdSetFdno(), fdSetOpen(), and _FD_s::flags.

§ __fdRead()

static ssize_t __fdRead ( void *  cookie,
char *  buf,
size_t  count 
)
static

§ __fdWrite()

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

§ checkResponse()

static int checkResponse ( void *  _u,
FD_t  ctrl,
int *  ecp,
char **  str 
)
static

§ cvtfmode()

static void cvtfmode ( const char *  m,
char *  stdio,
size_t  nstdio,
char *  other,
size_t  nother,
const char **  end,
int *  f 
)
inlinestatic

Convert stdio fmode to open(2) mode, filtering out zlib/bzlib flags.

returns stdio[0] = NUL on error.

Todo:
glibc also supports ",ccs="
  • glibc: m use mmap'd input
  • glibc: c no cancel
  • gzopen: [0-9] is compression level
  • gzopen: 'f' is filtered (Z_FILTERED)
  • gzopen: 'h' is Huffman encoding (Z_HUFFMAN_ONLY)
  • bzopen: [1-9] is block size (in 100K units)
  • bzopen: 's' is smallmode
  • bzopen: 'q' sets verbosity to 0
  • bzopen: 'v' does verbosity++ (up to 4)
  • HACK: '.' terminates, rest is type of I/O

Definition at line 2642 of file rpmio.c.

Referenced by Fdopen(), and Fopen().

§ Fclose()

int Fclose ( FD_t  fd)

fclose(3) clone.

Definition at line 2534 of file rpmio.c.

References FDIO_s::close, davDisconnect(), DBGIO, fdbg(), fdClose, fdFree(), fdGetFdno(), fdGetFILE, FDIOVEC, fdLink(), _FDSTACK_s::fdno, fdPop(), FDSANE, fdSetFp(), _FDSTACK_s::fp, fpio, _FD_s::fps, _FDSTACK_s::io, _FD_s::nfps, noLibio, _FD_s::persist, _FD_s::req, and ufdClose().

Referenced by addFileToTagAux(), closeCallback(), closeSpec(), compare(), cpio_doio(), dodigest(), doIcon(), dsort(), fsmStage(), grep_or_recurse(), IDTXglob(), iosmStage(), isCompressed(), main(), makeGPGSignature(), makeHDRSignature(), manageFile(), mireLoadPatternFiles(), mtreeReadExcludes(), mtreeVisitF(), processPackageFiles(), processScriptFiles(), readLineFromOFI(), rpmcliSign(), rpmdbExportHR_MIB(), rpmdcFiniFile(), rpmdcInitFile(), rpmdcParseCoreutils(), rpmdsSysinfoFile(), rpmfd_dealloc(), rpmfd_free(), rpmfd_init(), rpmgiFini(), rpmgiLoadManifest(), rpmgiNext(), rpmgiOpen(), rpmgiReadHeader(), rpmHeaderFromFD(), rpmHeaderFromFile(), rpmHeaderToFD(), rpmHeaderToFile(), rpmInstallSource(), rpmInstallSourcePackage(), rpmiobSlurp(), rpmLoadMacroFile(), rpmmgFile(), rpmPlatform(), rpmpsmStage(), rpmrepoFclose(), rpmrepoReadHeader(), rpmShowProgress(), rpmSingleHeaderFromFD(), rpmsqlFini(), rpmsqlI(), rpmsqlNew(), rpmsqlRun(), rpmTempFile(), rpmts_dealloc(), rpmts_free(), rpmts_HdrFromFdno(), rpmtsCallback(), rpmtsRollback(), rpmtsSolve(), runScript(), showVerifyPackage(), statFormat(), ufdGetFile(), unsatisfiedDepend(), urlFini(), urlGetFile(), and writeRPM().

§ Fcntl()

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

fcntl(2) clone.

Definition at line 3009 of file rpmio.c.

References Fileno().

§ fdbg()

const char* fdbg ( FD_t  fd)

§ fdDup()

FD_t fdDup ( int  fdno)

§ fdFgets()

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().

§ fdFini()

static void fdFini ( void *  _fd)
static

§ fdGetPool()

static FD_t fdGetPool ( rpmioPool  pool)
static

Definition at line 337 of file rpmio.c.

References _fdPool, _FD_s::_item, _rpmio_debug, fdbg(), fdFini(), rpmioGetPool(), and rpmioNewPool().

Referenced by XfdNew().

§ Fdopen()

FD_t Fdopen ( FD_t  ofd,
const char *  fmode 
)

§ fdReadable()

int fdReadable ( FD_t  fd,
int  secs 
)

Definition at line 633 of file rpmio.c.

References errno, fdFileno(), and _FD_s::req.

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

§ fdSeek()

static int fdSeek ( void *  cookie,
_libio_pos_t  pos,
int  whence 
)
static

Definition at line 477 of file rpmio.c.

References _FD_s::bytesRemain, c2f(), DBGIO, fdbg(), fdFileno(), fdstat_enter(), fdstat_exit(), and FDSTAT_SEEK.

Referenced by ufdSeek().

§ fdSeekNot()

static int fdSeekNot ( void *  cookie,
_libio_pos_t  pos,
int  whence 
)
inlinestatic

Definition at line 283 of file rpmio.c.

References c2f(), and FDSANE.

§ fdWritable()

int fdWritable ( FD_t  fd,
int  secs 
)

Definition at line 578 of file rpmio.c.

References _rpmio_debug, errno, fdFileno(), and _FD_s::req.

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

§ Ferror()

int Ferror ( FD_t  fd)

§ Fflush()

int Fflush ( FD_t  fd)

fflush(3) clone.

Definition at line 2916 of file rpmio.c.

References FDIO_s::_flush, bzdio, fdGetFILE, fdGetFp(), fdGetIo(), fpio, gzdio, lzdio, and xzdio.

Referenced by copyFile(), cpio_doio(), extractRegular(), rpmdcPrintFile(), rpmpsmStage(), rpmsqlI(), rpmsqlRun(), and writeRPM().

§ Fgetpos()

int Fgetpos ( FD_t  fd,
fpos_t *  pos 
)

Definition at line 2506 of file rpmio.c.

References DBGIO, errno, fdbg(), fdGetFILE, fdGetIo(), FDSANE, and fpio.

§ Fileno()

int Fileno ( FD_t  fd)

§ Fopen()

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

§ Fread()

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

§ Fseek()

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

fseek(3) clone.

Definition at line 2457 of file rpmio.c.

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

Referenced by processScriptFiles().

§ Fsetpos()

int Fsetpos ( FD_t  fd,
fpos_t *  pos 
)

Definition at line 2520 of file rpmio.c.

References DBGIO, errno, fdbg(), fdGetFILE, fdGetIo(), FDSANE, and fpio.

§ Fstrerror()

const char* Fstrerror ( FD_t  fd)

§ Ftell()

long Ftell ( FD_t  fd)

Definition at line 2483 of file rpmio.c.

References DBGIO, errno, fdbg(), fdGetFILE, fdGetIo(), FDSANE, and fpio.

§ ftpAbort()

static int ftpAbort ( urlinfo  u,
FD_t  data 
)
static

§ ftpCheckResponse()

static int ftpCheckResponse ( urlinfo  u,
char **  str 
)
static

§ ftpCmd()

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().

§ ftpCommand()

static int ftpCommand ( urlinfo  u,
char **  str,
  ... 
)
static

§ ftpFileDone()

static int ftpFileDone ( urlinfo  u,
FD_t  data 
)
static

Definition at line 1765 of file rpmio.c.

References urlinfo_s::ctrl, fdFree(), ftpCheckResponse(), _FD_s::ftpFileDoneNeeded, and URLSANE.

Referenced by ufdClose().

§ ftpLogin()

static int ftpLogin ( urlinfo  u)
static

§ ftpOpen()

FD_t ftpOpen ( const char *  url,
int  flags,
mode_t  mode,
urlinfo uret 
)

§ ftpReq()

int ftpReq ( FD_t  data,
const char *  ftpCmd,
const char *  ftpArg 
)

§ ftpStrerror()

const char* ftpStrerror ( int  errorNumber)

§ Fwrite()

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

§ getFdErrstr()

static const char* getFdErrstr ( FD_t  fd)
static

Definition at line 2366 of file rpmio.c.

References bzdio, _FD_s::errcookie, fdGetIo(), gzdio, lzdio, _FD_s::syserrno, and xzdio.

Referenced by Fstrerror().

§ getHostAddress()

static int getHostAddress ( const char *  host,
struct in_addr *  address 
)
static

Definition at line 849 of file rpmio.c.

References errno, FTPERR_BAD_HOST_ADDR, FTPERR_BAD_HOSTNAME, inet_aton, mygethostbyname(), and xisdigit().

Referenced by tcpConnect().

§ httpReq()

static int httpReq ( FD_t  ctrl,
const char *  httpCmd,
const char *  httpArg 
)
static

§ httpResp()

static int httpResp ( urlinfo  u,
FD_t  ctrl,
char **  str 
)
static

Definition at line 1784 of file rpmio.c.

References _ftp_debug, checkResponse(), FTPERR_FILE_NOT_FOUND, FTPERR_UNKNOWN, _FD_s::syserrno, and URLSANE.

Referenced by httpReq().

§ mygethostbyname()

static int mygethostbyname ( const char *  host,
struct in_addr *  address 
)
static

Definition at line 831 of file rpmio.c.

Referenced by getHostAddress().

§ Rewind()

void Rewind ( FD_t  fd)

Definition at line 2497 of file rpmio.c.

References DBGIO, fdbg(), fdGetFILE, fdGetIo(), FDSANE, and fpio.

§ rpm_inet_aton()

static int rpm_inet_aton ( const char *  cp,
struct in_addr *  inp 
)
static

Definition at line 110 of file rpmio.c.

§ rpmioAccess()

int rpmioAccess ( const char *  FN,
const char *  path,
int  mode 
)

Check FN access, expanding relative paths and twiddles.

Parameters
FNfile path to check
pathcolon separated search path (NULL uses $PATH)
modetype of access(2) to check (0 uses X_OK)
Returns
0 if accessible

Definition at line 3072 of file rpmio.c.

References _path, _rpmio_debug, Access(), alloca_strdup, F_OK, getenv(), R_OK, rpmCleanPath(), stpcpy(), W_OK, and X_OK.

Referenced by rpmtsPRCO(), and unsatisfiedDepend().

§ rpmioClean()

void rpmioClean ( void  )

§ rpmioMkpath()

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

Insure that directories in path exist, creating as needed.

Parameters
pathdirectory path
modedirectory mode (if created)
uiddirectory uid (if created), or -1 to skip
giddirectory uid (if created), or -1 to skip
Returns
0 on success, errno (or -1) on error

Definition at line 3017 of file rpmio.c.

References alloca(), Chown(), D_, errno, Mkdir(), rpmlog(), RPMLOG_DEBUG, Stat(), and stpcpy().

Referenced by db3open(), db_init(), doSetupMacro(), packageBinaries(), packageSources(), rpmdbExportHR_MIB(), rpmdbExportL10N_SQL(), rpmrepoMkdir(), rpmTempFile(), sql_initDB(), and sql_open().

§ tcpConnect()

static int tcpConnect ( FD_t  ctrl,
const char *  host,
int  port 
)
static

§ ufdClose()

int ufdClose ( void *  cookie)

§ ufdCopy()

int ufdCopy ( FD_t  sfd,
FD_t  tfd 
)

§ ufdGetFile()

int ufdGetFile ( FD_t  sfd,
FD_t  tfd 
)

Definition at line 1658 of file rpmio.c.

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

Referenced by urlGetFile().

§ ufdGetUrlinfo()

void* ufdGetUrlinfo ( FD_t  fd)

Definition at line 1927 of file rpmio.c.

References FDSANE, _FD_s::u, and urlLink().

§ ufdOpen()

static FD_t ufdOpen ( const char *  url,
int  flags,
mode_t  mode 
)
static

§ ufdRead()

static ssize_t ufdRead ( void *  cookie,
char *  buf,
size_t  count 
)
static

§ ufdSeek()

static int ufdSeek ( void *  cookie,
_libio_pos_t  pos,
int  whence 
)
static

§ ufdWrite()

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

§ urlConnect()

static int urlConnect ( const char *  url,
urlinfo uret 
)
static

§ urlStrerror()

const char* urlStrerror ( const char *  url)

§ XfdNew()

FD_t XfdNew ( const char *  msg,
const char *  fn,
unsigned  ln 
)

Variable Documentation

§ _av_debug

int _av_debug = 0

Definition at line 183 of file rpmio.c.

§ _dav_debug

int _dav_debug = 0

Definition at line 193 of file rpmio.c.

§ _fdPool

rpmioPool _fdPool

Definition at line 335 of file rpmio.c.

Referenced by fdGetPool().

§ _ftp_debug

int _ftp_debug = 0

§ _path

const char* _path = "/bin:/usr/bin:/sbin:/usr/sbin"
static

Definition at line 3068 of file rpmio.c.

Referenced by rpmioAccess().

§ _rpmio_debug

int _rpmio_debug = 0

§ fdio

FDIO_t fdio = &fdio_s

Definition at line 576 of file rpmio.c.

Referenced by fdbg(), Fdopen(), and urlFini().

§ fdio_s

struct FDIO_s fdio_s
static
Initial value:
= {
__fdRead , __fdWrite , fdSeek, __fdClose , NULL, NULL, NULL,
}
static int __fdClose(void *cookie)
Definition: rpmio.c:499
static ssize_t __fdRead(void *cookie, char *buf, size_t count)
Definition: rpmio.c:401
static int fdSeek(void *cookie, _libio_pos_t pos, int whence)
Definition: rpmio.c:477
static ssize_t __fdWrite(void *cookie, const char *buf, size_t count)
Definition: rpmio.c:443

Definition at line 571 of file rpmio.c.

§ fpio

FDIO_t fpio = &fpio_s

§ fpio_s

struct FDIO_s fpio_s
static
Initial value:
= {
ufdRead, ufdWrite, fdSeek, ufdClose, NULL, NULL, NULL,
}
int ufdClose(void *cookie)
Definition: rpmio.c:2090
static ssize_t ufdWrite(void *cookie, const char *buf, size_t count)
Definition: rpmio.c:2001
static ssize_t ufdRead(void *cookie, char *buf, size_t count)
Definition: rpmio.c:1938
static int fdSeek(void *cookie, _libio_pos_t pos, int whence)
Definition: rpmio.c:477

Definition at line 3358 of file rpmio.c.

§ ftpTimeoutSecs

int ftpTimeoutSecs = 60
static

Definition at line 173 of file rpmio.c.

Referenced by ftpOpen(), and urlConnect().

§ noLibio

int noLibio = 1

Definition at line 165 of file rpmio.c.

Referenced by Fclose(), Fdopen(), and ufdClose().

§ ufdio

FDIO_t ufdio = &ufdio_s

Definition at line 2362 of file rpmio.c.

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

§ ufdio_s

struct FDIO_s ufdio_s
static
Initial value:
= {
ufdRead, ufdWrite, ufdSeek, ufdClose, NULL, NULL, NULL,
}
static int ufdSeek(void *cookie, _libio_pos_t pos, int whence)
Definition: rpmio.c:2066
int ufdClose(void *cookie)
Definition: rpmio.c:2090
static ssize_t ufdWrite(void *cookie, const char *buf, size_t count)
Definition: rpmio.c:2001
static ssize_t ufdRead(void *cookie, char *buf, size_t count)
Definition: rpmio.c:1938

Definition at line 2357 of file rpmio.c.