Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

rpmio/rpmio.c File Reference

More...

#include "system.h"
#include <stdarg.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <rpmio_internal.h>
#include "ugid.h"
#include "rpmmessages.h"
#include "debug.h"

Go to the source code of this file.

Defines

#define IPPORT_FTP   21
#define IPPORT_HTTP   80
#define fdOpen   __fdOpen
#define fdRead   __fdRead
#define fdWrite   __fdWrite
#define fdClose   __fdClose
#define FDNREFS(fd)   (fd ? ((FD_t)fd)->nrefs : -9)
#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 GZDONLY(fd)   assert(fdGetIo(fd) == gzdio)
#define BZDONLY(fd)   assert(fdGetIo(fd) == bzdio)
#define UFDONLY(fd)
#define fdGetFILE(_fd)   ((FILE *)fdGetFp(_fd))
#define TIMEOUT_SECS   60
#define IAC   255
#define IP   244
#define DM   242
#define SHUT_RDWR   1+1
#define FDIOVEC(_fd, _vec)   ((fdGetIo(_fd) && fdGetIo(_fd)->_vec) ? fdGetIo(_fd)->_vec : NULL)

Functions

int inet_aton (const char *cp, struct in_addr *inp)
void * _free (const void *p)
 Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.

const char * fdbg (FD_t fd)
off_t fdSize (FD_t fd)
FD_t fdDup (int fdno)
int fdSeekNot (void *cookie, _libio_pos_t pos, int whence)
FD_t XfdLink (void *cookie, const char *msg, const char *file, unsigned line)
FD_t XfdFree (FD_t fd, const char *msg, const char *file, unsigned line)
FD_t XfdNew (const char *msg, const char *file, unsigned line)
ssize_t __fdRead (void *cookie, char *buf, size_t count)
ssize_t __fdWrite (void *cookie, const char *buf, size_t count)
int fdSeek (void *cookie, _libio_pos_t pos, int whence)
int __fdClose (void *cookie)
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 *const ftpStrerror (int errorNumber)
const char * urlStrerror (const char *url)
int mygethostbyname (const char *host, struct in_addr *address)
int getHostAddress (const char *host, struct in_addr *address)
int tcpConnect (FD_t ctrl, const char *host, int port)
int checkResponse (void *uu, FD_t ctrl, int *ecp, char **str)
int ftpCheckResponse (urlinfo u, char **str)
int ftpCommand (urlinfo u, char **str,...)
int ftpLogin (urlinfo u)
int ftpReq (FD_t data, const char *ftpCmd, const char *ftpArg)
void urlSetCallback (rpmCallbackFunction notify, void *notifyData, int notifyCount)
int ufdCopy (FD_t sfd, FD_t tfd)
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)
int ftpAbort (urlinfo u, FD_t data)
int ftpFileDone (urlinfo u, FD_t data)
int httpResp (urlinfo u, FD_t ctrl, char **str)
int httpReq (FD_t ctrl, const char *httpCmd, const char *httpArg)
void * ufdGetUrlinfo (FD_t fd)
ssize_t ufdRead (void *cookie, char *buf, size_t count)
ssize_t ufdWrite (void *cookie, const char *buf, size_t count)
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)
FD_t httpOpen (const char *url, int flags, mode_t mode, urlinfo *uret)
FD_t ufdOpen (const char *url, int flags, mode_t mode)
const char * getFdErrstr (FD_t fd)
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.

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.

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.

int rpmioMkpath (const char *path, mode_t mode, uid_t uid, gid_t gid)
 Insure that directories in path exist, creating as needed.

int rpmioSlurp (const char *fn, const byte **bp, ssize_t *blenp)

Variables

int noLibio = 1
int ftpTimeoutSecs = 60
int httpTimeoutSecs = 60
int _ftp_debug = 0
int _rpmio_debug = 0
FDIO_s fdio_s
FDIO_t fdio = &fdio_s
FDIO_t fadio
rpmCallbackFunction urlNotify = NULL
void * urlNotifyData = NULL
int urlNotifyCount = -1
FDIO_s ufdio_s
FDIO_t ufdio = &ufdio_s
FDIO_s fpio_s
FDIO_t fpio = &fpio_s


Detailed Description

Definition in file rpmio.c.


Define Documentation

#define BZDONLY fd       assert(fdGetIo(fd) == bzdio)
 

Definition at line 83 of file rpmio.c.

#define DM   242
 

Definition at line 1430 of file rpmio.c.

Referenced by ftpAbort().

#define fdClose   __fdClose
 

Definition at line 66 of file rpmio.c.

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

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

Definition at line 79 of file rpmio.c.

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

Definition at line 87 of file rpmio.c.

Referenced by Fclose(), Ferror(), Fflush(), Fread(), Fseek(), Fwrite(), rdcl(), and ufdClose().

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

Definition at line 2598 of file rpmio.c.

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

#define FDNREFS fd       (fd ? ((FD_t)fd)->nrefs : -9)
 

Definition at line 77 of file rpmio.c.

Referenced by XfdFree(), and XfdLink().

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

Definition at line 81 of file rpmio.c.

#define fdOpen   __fdOpen
 

Definition at line 60 of file rpmio.c.

Referenced by Fopen(), and ufdOpen().

#define fdRead   __fdRead
 

Definition at line 62 of file rpmio.c.

Referenced by fdFgets(), and ufdRead().

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

Definition at line 78 of file rpmio.c.

#define fdWrite   __fdWrite
 

Definition at line 64 of file rpmio.c.

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

#define GZDONLY fd       assert(fdGetIo(fd) == gzdio)
 

Definition at line 82 of file rpmio.c.

#define IAC   255
 

Definition at line 1424 of file rpmio.c.

Referenced by ftpAbort().

#define IP   244
 

Definition at line 1427 of file rpmio.c.

Referenced by ftpAbort().

#define IPPORT_FTP   21
 

Definition at line 33 of file rpmio.c.

Referenced by ftpLogin().

#define IPPORT_HTTP   80
 

Definition at line 36 of file rpmio.c.

#define SHUT_RDWR   1+1
 

Definition at line 1433 of file rpmio.c.

Referenced by ftpAbort().

#define TIMEOUT_SECS   60
 

Definition at line 98 of file rpmio.c.

#define UFDONLY fd   
 

Definition at line 85 of file rpmio.c.

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


Function Documentation

int __fdClose void *    cookie [static]
 

Definition at line 434 of file rpmio.c.

References c2f(), DBGIO, fdbg(), fdFileno, fdFree, fdSetFdno(), FDSTAT_CLOSE, fdstat_enter(), and fdstat_exit().

FD_t __fdOpen const char *    path,
int    flags,
mode_t    mode
[static]
 

Definition at line 458 of file rpmio.c.

References DBGIO, fdbg(), fdNew, fdSetFdno(), and _FD_s::flags.

ssize_t __fdRead void *    cookie,
char *    buf,
size_t    count
[static]
 

Definition at line 349 of file rpmio.c.

References _FD_s::bytesRemain, c2f(), DBGIO, fdbg(), fdFileno, fdstat_enter(), fdstat_exit(), FDSTAT_READ, fdUpdateDigests(), and _FD_s::ndigests.

ssize_t __fdWrite void *    cookie,
const char *    buf,
size_t    count
[static]
 

Definition at line 373 of file rpmio.c.

References _FD_s::bytesRemain, c2f(), DBGIO, errno, fdbg(), fdFileno, fdstat_enter(), fdstat_exit(), FDSTAT_WRITE, fdUpdateDigests(), _FD_s::ndigests, _FD_s::syserrno, and _FD_s::wr_chunked.

void* _free const void *    p [inline, static]
 

Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.

Parameters:
p  memory to free
Return values:
NULL  always

Definition at line 126 of file rpmio.c.

int checkResponse void *    uu,
FD_t    ctrl,
int *    ecp,
char **    str
[static]
 

Definition at line 811 of file rpmio.c.

References urlinfo_s::buf, urlinfo_s::bufAlloced, _FD_s::contentLength, fdFgets(), fdWritable(), FTPERR_BAD_SERVER_RESPONSE, urlinfo_s::httpHasRange, urlinfo_s::httpVersion, _FD_s::persist, URLSANE, _FD_s::wr_chunked, and xcalloc().

Referenced by ftpCheckResponse(), and httpResp().

void cvtfmode const char *    m,
char *    stdio,
size_t    nstdio,
char *    other,
size_t    nother,
const char **    end,
int *    f
[inline, static]
 

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

returns stdio[0] = '\0' on error.

  • gzopen: [0-9] is compession level
  • gzopen: 'f' is filtered (Z_FILTERED)
  • gzopen: 'h' is Huffman encoding (Z_HUFFMAN_ONLY)
  • bzopen: [1-9] is block size (modulo 100K)
  • bzopen: 's' is smallmode
  • HACK: '.' terminates, rest is type of I/O

Definition at line 2762 of file rpmio.c.

Referenced by Fdopen(), and Fopen().

int Fclose FD_t    fd
 

fclose(3) clone.

Definition at line 2680 of file rpmio.c.

References DBGIO, fdbg(), fdFree, fdGetFdno(), fdGetFILE, fdio_close_function_t, FDIOVEC, fdLink, fdPop(), FDSANE, fdSetFp(), fpio, _FD_s::fps, _FDSTACK_s::io, _FD_s::nfps, and ufdClose().

Referenced by addFileToTagAux(), closeCallback(), closeSpec(), cpio_doio(), defaultMachine(), domd5(), doReadRC(), doScript(), fsmStage(), ftsStashLatest(), IDTXglob(), isCompressed(), isSpecFile(), main(), makeGPGSignature(), makeHDRSignature(), makePGPSignature(), makeTempFile(), manageFile(), processPackageFiles(), readIcon(), readLine(), readRPM(), rewriteRPM(), rpmcliSign(), rpmfd_dealloc(), rpmfd_free(), rpmfd_init(), rpmGraph(), rpmHeaderFromFD(), rpmHeaderFromFile(), rpmInitMacros(), rpmInstall(), rpmInstallSourcePackage(), rpmioSlurp(), rpmMergeHeadersFromFD(), rpmpsmStage(), rpmQueryVerify(), rpmShowProgress(), rpmts_dealloc(), rpmts_free(), rpmts_HdrFromFdno(), rpmtsCallback(), rpmtsSolve(), runScript(), showVerifyPackage(), ufdGetFile(), urlGetFile(), writeRPM(), and XurlFree().

int Fcntl FD_t    fd,
int    op,
void *    lip
 

fcntl(2) clone.

Definition at line 3080 of file rpmio.c.

References Fileno().

const char* fdbg FD_t    fd [static]
 

Definition at line 136 of file rpmio.c.

References _FD_s::bytesRemain, bzdio, fdio, _FDSTACK_s::fdno, _FDSTACK_s::fp, fpio, _FD_s::fps, gzdio, _FDSTACK_s::io, _FD_s::nfps, _FD_s::rd_timeoutsecs, ufdio, and _FD_s::wr_chunked.

Referenced by __fdClose(), __fdOpen(), __fdRead(), __fdWrite(), Fclose(), fdDup(), Fdopen(), fdSeek(), Ferror(), Fileno(), Fread(), Fseek(), Fwrite(), ufdOpen(), XfdFree(), and XfdLink().

FD_t fdDup int    fdno
 

Definition at line 222 of file rpmio.c.

References DBGIO, fdbg(), fdNew, and fdSetFdno().

Referenced by cpio_doio(), domd5(), main(), readRPM(), rpmHeaderFromFD(), rpmMergeHeadersFromFD(), rpmpsmStage(), rpmts_HdrFromFdno(), rpmts_setattr(), rpmtsCallback(), runScript(), showVerifyPackage(), and ufdOpen().

FD_t Fdopen FD_t    ofd,
const char *    fmode
 

Definition at line 2834 of file rpmio.c.

References FDIO_s::close, cvtfmode(), DBGIO, fdbg(), fdGetFp(), fdLink, fdPush(), FDSANE, fdSetFp(), Fileno(), fpio, noLibio, FDIO_s::read, FDIO_s::seek, and FDIO_s::write.

Referenced by cpio_doio(), doScript(), Fopen(), main(), and rpmpsmStage().

int fdReadable FD_t    fd,
int    secs
 

Definition at line 528 of file rpmio.c.

References errno, and fdFileno.

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

int fdSeek void *    cookie,
_libio_pos_t    pos,
int    whence
[inline, static]
 

Definition at line 412 of file rpmio.c.

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

Referenced by ufdSeek().

int fdSeekNot void *    cookie,
_libio_pos_t    pos,
int    whence
[inline, static]
 

Definition at line 235 of file rpmio.c.

References _libio_pos_t, c2f(), and FDSANE.

int fdWritable FD_t    fd,
int    secs
 

Definition at line 488 of file rpmio.c.

References _rpmio_debug, errno, fdFileno, and strerror().

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

int Ferror FD_t    fd
 

ferror(3) clone.

Definition at line 3031 of file rpmio.c.

References DBGIO, _FD_s::errcookie, fdbg(), fdFileno, fdGetFILE, fpio, _FD_s::fps, _FDSTACK_s::io, _FD_s::nfps, and _FD_s::syserrno.

Referenced by addFileToTagAux(), cpio_copy(), defaultMachine(), domd5(), doReadRC(), doScript(), fsmStage(), ftsStashLatest(), IDTXglob(), isCompressed(), isSpecFile(), main(), makeGPGSignature(), makeHDRSignature(), makePGPSignature(), makeTempFile(), manageFile(), processPackageFiles(), readIcon(), readLine(), readRPM(), rpmcliSign(), rpmfd_Fopen(), rpmfd_init(), rpmGraph(), rpmInitMacros(), rpmInstall(), rpmioSlurp(), rpmpsmStage(), rpmQueryVerify(), rpmReadRC(), rpmShowProgress(), rpmtsSolve(), runScript(), urlGetFile(), and writeRPM().

int Fflush FD_t    fd
 

fflush(3) clone.

Definition at line 3011 of file rpmio.c.

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

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

int Fileno FD_t    fd
 

fileno(3) clone.

Definition at line 3066 of file rpmio.c.

References DBGIO, fdbg(), _FDSTACK_s::fdno, _FD_s::fps, and _FD_s::nfps.

Referenced by cpio_doio(), doScript(), Fcntl(), Fdopen(), fdSize(), makeTempFile(), printSize(), rpmpsmStage(), rpmReadPackageFile(), runScript(), ufdOpen(), and writeRPM().

FD_t Fopen const char *    path,
const char *    fmode
 

fopen(3) clone.

Definition at line 2941 of file rpmio.c.

References cvtfmode(), fdClose, fdFileno, fdGetFdno(), fdGetFp(), fdOpen, Fdopen(), fdPush(), fpio, ufdOpen(), URL_IS_DASH, URL_IS_FTP, URL_IS_HTTP, URL_IS_PATH, URL_IS_UNKNOWN, and urlIsURL().

Referenced by addFileToTagAux(), defaultMachine(), domd5(), doReadRC(), fsmStage(), ftsStashLatest(), IDTXglob(), isCompressed(), isSpecFile(), main(), makeGPGSignature(), makeHDRSignature(), makePGPSignature(), makeTempFile(), manageFile(), processPackageFiles(), readIcon(), readLine(), readRPM(), rpmcliSign(), rpmfd_Fopen(), rpmfd_init(), rpmGraph(), rpmHeaderFromFile(), rpmInitMacros(), rpmInstall(), rpmioSlurp(), rpmpsmStage(), rpmQueryVerify(), rpmReadRC(), rpmShowProgress(), rpmtsSolve(), runScript(), urlGetFile(), and writeRPM().

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

fread(3) clone.

Definition at line 2601 of file rpmio.c.

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

Referenced by copyFile(), cpio_copy(), defaultMachine(), domd5(), doReadRC(), fsmStage(), isCompressed(), isSpecFile(), main(), readFile(), readIcon(), readRPM(), rpmioSlurp(), rpmReadPackageFile(), ufdCopy(), and writeRPM().

int Fseek FD_t    fd,
_libio_off_t    offset,
int    whence
 

fseek(3) clone.

Definition at line 2648 of file rpmio.c.

References _libio_off_t, _libio_pos_t, DBGIO, fdbg(), fdGetFILE, fdGetIo(), fdio_seek_function_t, FDIOVEC, FDSANE, and fpio.

Referenced by readRPM(), and writeRPM().

int ftpAbort urlinfo    u,
FD_t    data
[static]
 

Definition at line 1436 of file rpmio.c.

References urlinfo_s::buf, urlinfo_s::bufAlloced, urlinfo_s::ctrl, DBGIO, DM, fdClose, fdFileno, fdFree, _FDSTACK_s::fdno, fdReadable(), fdWrite, _FD_s::fps, ftpCheckResponse(), FTPERR_NIC_ABORT_IN_PROGRESS, FTPERR_SERVER_IO_ERROR, _FD_s::ftpFileDoneNeeded, IAC, IP, _FD_s::rd_timeoutsecs, SHUT_RDWR, timedRead, and URLSANE.

Referenced by ufdClose().

int ftpCheckResponse urlinfo    u,
char **    str
[static]
 

Definition at line 975 of file rpmio.c.

References checkResponse(), urlinfo_s::ctrl, FTPERR_BAD_SERVER_RESPONSE, FTPERR_FILE_NOT_FOUND, FTPERR_NIC_ABORT_IN_PROGRESS, and URLSANE.

Referenced by ftpAbort(), ftpCommand(), ftpFileDone(), ftpLogin(), and ftpReq().

int ftpCommand urlinfo    u,
char **    str,
...   
[static]
 

Definition at line 1001 of file rpmio.c.

References alloca(), urlinfo_s::ctrl, fdWrite, ftpCheckResponse(), FTPERR_SERVER_IO_ERROR, stpcpy(), and URLSANE.

Referenced by ftpCmd(), ftpLogin(), and ftpReq().

int ftpFileDone urlinfo    u,
FD_t    data
[static]
 

Definition at line 1499 of file rpmio.c.

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

Referenced by ufdClose().

int ftpLogin urlinfo    u [static]
 

Definition at line 1041 of file rpmio.c.

References alloca(), urlinfo_s::ctrl, errno, fdClose, fdFileno, fdLink, fdSetSyserrno(), fdWritable(), ftpCheckResponse(), ftpCommand(), FTPERR_BAD_HOSTNAME, ftpStrerror(), urlinfo_s::host, IPPORT_FTP, urlinfo_s::password, urlinfo_s::port, urlinfo_s::proxyh, urlinfo_s::proxyp, urlinfo_s::proxyu, tcpConnect(), URLSANE, and urlinfo_s::user.

Referenced by urlConnect().

const char* const ftpStrerror int    errorNumber
 

Definition at line 634 of file rpmio.c.

References _, FTPERR_BAD_HOST_ADDR, FTPERR_BAD_HOSTNAME, FTPERR_BAD_SERVER_RESPONSE, FTPERR_FAILED_CONNECT, FTPERR_FAILED_DATA_CONNECT, FTPERR_FILE_IO_ERROR, FTPERR_FILE_NOT_FOUND, FTPERR_NIC_ABORT_IN_PROGRESS, FTPERR_PASSIVE_ERROR, FTPERR_SERVER_IO_ERROR, FTPERR_SERVER_TIMEOUT, and FTPERR_UNKNOWN.

Referenced by ftpLogin(), ftpReq(), httpReq(), rpmInstall(), tcpConnect(), ufdCopy(), and urlStrerror().

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

fwrite(3) clone.

Definition at line 2623 of file rpmio.c.

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

Referenced by copyFile(), cpio_copy(), fsmStage(), headerWrite(), main(), rpmWriteSignature(), runScript(), ufdCopy(), writeLead(), and writeRPM().

const char* getFdErrstr FD_t    fd [static]
 

Definition at line 2564 of file rpmio.c.

References _FD_s::errcookie, fdGetIo(), strerror(), and _FD_s::syserrno.

Referenced by Fstrerror().

int getHostAddress const char *    host,
struct in_addr *    address
[static]
 

Definition at line 725 of file rpmio.c.

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

Referenced by tcpConnect().

FD_t httpOpen const char *    url,
int    flags,
mode_t    mode,
urlinfo   uret
[static]
 

Definition at line 1984 of file rpmio.c.

References _FD_s::bytesRemain, _FD_s::contentLength, urlinfo_s::ctrl, urlinfo_s::data, fdLink, fdNew, fdSetIo(), _FD_s::ftpFileDoneNeeded, httpTimeoutSecs, _FD_s::nrefs, _FD_s::rd_timeoutsecs, ufdio, _FD_s::url, URL_IS_HTTP, urlLink, urlSplit(), and _FD_s::urlType.

Referenced by ufdOpen().

int httpReq FD_t    ctrl,
const char *    httpCmd,
const char *    httpArg
[static]
 

Definition at line 1541 of file rpmio.c.

References alloca(), errno, fdClose, fdFileno, fdLink, fdSetSyserrno(), fdWritable(), fdWrite, FTPERR_BAD_HOSTNAME, FTPERR_SERVER_IO_ERROR, ftpStrerror(), urlinfo_s::host, httpResp(), urlinfo_s::httpVersion, urlinfo_s::port, urlinfo_s::proxyh, urlinfo_s::proxyp, tcpConnect(), urlinfo_s::url, _FD_s::url, URLSANE, VERSION, and _FD_s::wr_chunked.

Referenced by ufdOpen().

int httpResp urlinfo    u,
FD_t    ctrl,
char **    str
[static]
 

Definition at line 1517 of file rpmio.c.

References _ftp_debug, checkResponse(), FTPERR_FILE_NOT_FOUND, and URLSANE.

Referenced by httpReq(), and ufdClose().

int inet_aton const char *    cp,
struct in_addr *    inp
[static]
 

Definition at line 40 of file rpmio.c.

Referenced by ftpReq(), and getHostAddress().

int mygethostbyname const char *    host,
struct in_addr *    address
[static]
 

Definition at line 701 of file rpmio.c.

Referenced by getHostAddress().

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 3089 of file rpmio.c.

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

Referenced by db3open(), and makeTempFile().

int rpmioSlurp const char *    fn,
const byte **    bp,
ssize_t *    blenp
 

Definition at line 3140 of file rpmio.c.

References byte, Fclose(), fdSize(), Ferror(), Fopen(), Fread(), xmalloc(), and xrealloc().

int tcpConnect FD_t    ctrl,
const char *    host,
int    port
[static]
 

Definition at line 756 of file rpmio.c.

References errno, fdSetFdno(), fdSetSyserrno(), FTPERR_FAILED_CONNECT, ftpStrerror(), and getHostAddress().

Referenced by ftpLogin(), and httpReq().

int ufdCopy FD_t    sfd,
FD_t    tfd
 

Definition at line 1283 of file rpmio.c.

References DBGIO, Fread(), FTPERR_FILE_IO_ERROR, ftpStrerror(), Fwrite(), RPMCALLBACK_INST_OPEN_FILE, RPMCALLBACK_INST_PROGRESS, urlNotify, urlNotifyCount, and urlNotifyData.

Referenced by main(), and ufdGetFile().

int ufdGetFile FD_t    sfd,
FD_t    tfd
 

Definition at line 1393 of file rpmio.c.

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

Referenced by urlGetFile().

void* ufdGetUrlinfo FD_t    fd
 

Definition at line 1658 of file rpmio.c.

References FDSANE, _FD_s::url, and urlLink.

FD_t ufdOpen const char *    url,
int    flags,
mode_t    mode
[static]
 

Definition at line 2031 of file rpmio.c.

References _FD_s::bytesRemain, _FD_s::contentLength, DBGIO, fdbg(), fdDup(), fdLink, fdOpen, fdSetIo(), Fileno(), ftpOpen(), ftpReq(), httpOpen(), httpReq(), urlinfo_s::openError, _FD_s::rd_timeoutsecs, ufdClose(), ufdio, URL_IS_DASH, URL_IS_FTP, URL_IS_HTTP, URL_IS_PATH, URL_IS_UNKNOWN, urlPath(), _FD_s::urlType, urltype, and _FD_s::wr_chunked.

Referenced by Fopen().

ssize_t ufdRead void *    cookie,
char *    buf,
size_t    count
[static]
 

Definition at line 1667 of file rpmio.c.

References _FD_s::bytesRemain, c2f(), errno, fdFileno, fdGetIo(), fdRead, fdReadable(), _FD_s::rd_timeoutsecs, strerror(), and UFDONLY.

int ufdSeek void *    cookie,
_libio_pos_t    pos,
int    whence
[inline, static]
 

Definition at line 1799 of file rpmio.c.

References _libio_pos_t, c2f(), fdSeek(), URL_IS_DASH, URL_IS_FTP, URL_IS_HTTP, URL_IS_PATH, URL_IS_UNKNOWN, and _FD_s::urlType.

ssize_t ufdWrite void *    cookie,
const char *    buf,
size_t    count
[static]
 

Definition at line 1734 of file rpmio.c.

References _FD_s::bytesRemain, c2f(), errno, fdGetFdno(), fdGetIo(), fdWritable(), fdWrite, strerror(), and UFDONLY.

int urlConnect const char *    url,
urlinfo   uret
[static]
 

Definition at line 1347 of file rpmio.c.

References _, _FD_s::bytesRemain, _FD_s::contentLength, urlinfo_s::ctrl, fdFileno, fdFree, fdLink, fdNew, fdSetIo(), _FD_s::ftpFileDoneNeeded, ftpLogin(), ftpTimeoutSecs, urlinfo_s::host, urlinfo_s::openError, urlinfo_s::password, _FD_s::rd_timeoutsecs, RPMMESS_DEBUG, rpmMessage, ufdio, _FD_s::url, URL_IS_FTP, urlFree, urlLink, urlSplit(), urlinfo_s::urltype, and urlinfo_s::user.

Referenced by ftpCmd(), and ftpOpen().

void urlSetCallback rpmCallbackFunction    notify,
void *    notifyData,
int    notifyCount
 

Definition at line 1277 of file rpmio.c.

References rpmCallbackFunction, urlNotify, urlNotifyCount, and urlNotifyData.

const char* urlStrerror const char *    url
 

Definition at line 678 of file rpmio.c.

References errno, ftpStrerror(), urlinfo_s::openError, strerror(), URL_IS_FTP, URL_IS_HTTP, urlIsURL(), and urlSplit().

FD_t XfdFree FD_t    fd,
const char *    msg,
const char *    file,
unsigned    line
[inline, static]
 

Definition at line 281 of file rpmio.c.

References _free(), DBGREFS, _FD_s::digests, fdbg(), FDNREFS, FDSANE, _FDDIGEST_s::hashctx, _FD_s::ndigests, _FD_s::nrefs, rpmDigestFinal(), and _FD_s::stats.

FD_t XfdLink void *    cookie,
const char *    msg,
const char *    file,
unsigned    line
[inline, static]
 

Definition at line 263 of file rpmio.c.

References c2f(), DBGREFS, fdbg(), FDNREFS, and _FD_s::nrefs.

Referenced by XfdNew().

FD_t XfdNew const char *    msg,
const char *    file,
unsigned    line
[inline, static]
 

Definition at line 308 of file rpmio.c.

References _FD_s::bytesRemain, _FD_s::contentLength, _FD_s::digests, _FD_s::errcookie, _FD_s::fd_cpioPos, fdio, FDMAGIC, _FDSTACK_s::fdno, _FD_s::fileSize, _FD_s::firstFree, _FD_s::flags, _FDSTACK_s::fp, _FD_s::fps, _FD_s::ftpFileDoneNeeded, _FDSTACK_s::io, _FD_s::magic, _FD_s::ndigests, _FD_s::nfps, _FD_s::nrefs, _FD_s::rd_timeoutsecs, _FD_s::stats, _FD_s::syserrno, _FD_s::url, URL_IS_UNKNOWN, _FD_s::urlType, _FD_s::wr_chunked, xcalloc(), and XfdLink().


Variable Documentation

int _ftp_debug = 0
 

Definition at line 113 of file rpmio.c.

Referenced by httpResp().

int _rpmio_debug = 0
 

Definition at line 118 of file rpmio.c.

Referenced by fdWritable().

FDIO_t fadio
 

Definition at line 485 of file rpmio.c.

FDIO_t fdio = &fdio_s
 

Definition at line 482 of file rpmio.c.

Referenced by fdbg(), and XfdNew().

struct FDIO_s fdio_s [static]
 

Initial value:

 {
   __fdRead ,  __fdWrite , fdSeek,  __fdClose , XfdLink, XfdFree, XfdNew, fdFileno,
   __fdOpen , NULL, fdGetFp, NULL,      mkdir, chdir, rmdir, rename, unlink
}

Definition at line 478 of file rpmio.c.

FDIO_t fpio = &fpio_s
 

Definition at line 3197 of file rpmio.c.

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

struct FDIO_s fpio_s [static]
 

Initial value:

 {
  ufdRead, ufdWrite, fdSeek, ufdClose, XfdLink, XfdFree, XfdNew, fdFileno,
  ufdOpen, NULL, fdGetFp, NULL, Mkdir, Chdir, Rmdir, Rename, Unlink
}

Definition at line 3193 of file rpmio.c.

int ftpTimeoutSecs = 60 [static]
 

Definition at line 103 of file rpmio.c.

Referenced by ftpOpen(), and urlConnect().

int httpTimeoutSecs = 60 [static]
 

Definition at line 108 of file rpmio.c.

Referenced by httpOpen().

int noLibio = 1
 

Definition at line 95 of file rpmio.c.

Referenced by Fdopen(), and ufdClose().

FDIO_t ufdio = &ufdio_s
 

Definition at line 2123 of file rpmio.c.

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

struct FDIO_s ufdio_s [static]
 

Initial value:

 {
  ufdRead, ufdWrite, ufdSeek, ufdClose, XfdLink, XfdFree, XfdNew, fdFileno,
  ufdOpen, NULL, fdGetFp, NULL, Mkdir, Chdir, Rmdir, Rename, Unlink
}

Definition at line 2119 of file rpmio.c.

rpmCallbackFunction urlNotify = NULL [static]
 

Definition at line 1269 of file rpmio.c.

Referenced by ufdCopy(), and urlSetCallback().

int urlNotifyCount = -1 [static]
 

Definition at line 1275 of file rpmio.c.

Referenced by ufdCopy(), and urlSetCallback().

void* urlNotifyData = NULL [static]
 

Definition at line 1272 of file rpmio.c.

Referenced by ufdCopy(), and urlSetCallback().


Generated on Sun Oct 26 13:02:08 2003 for rpm by doxygen1.2.18