#include "system.h"
#include <stdarg.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <rpmmacro.h>
#include <rpmlua.h>
#include <rpmio_internal.h>
#include <rpmdav.h>
#include "ugid.h"
#include "rpmcb.h"
#include "debug.h"
#include "LzmaDecode.h"
Go to the source code of this file.
Data Structures | |
struct | _CBuffer |
struct | lzfile |
Defines | |
#define | NI_MAXHOST 1025 |
#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 | 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 | LZDONLY(fd) assert(fdGetIo(fd) == lzdio) |
#define | UFDONLY(fd) |
#define | fdGetFILE(_fd) ((FILE *)fdGetFp(_fd)) |
#define | TIMEOUT_SECS 60 |
#define | IAC ((unsigned char)255) |
#define | IP ((unsigned char)244) |
#define | DM ((unsigned char)242) |
#define | SHUT_RDWR 1+1 |
#define | kInBufferSize (1 << 15) |
#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(alloca(strlen(_s)+1), (_s)) |
Typedefs | |
typedef struct _CBuffer | CBuffer |
typedef struct lzfile | LZFILE |
Functions | |
static int | rpm_inet_aton (const char *cp, struct in_addr *inp) |
static const char * | fdbg (FD_t fd) |
off_t | fdSize (FD_t fd) |
FD_t | fdDup (int fdno) |
static int | fdSeekNot (void *cookie, _libio_pos_t pos, int whence) |
static FD_t | XfdLink (void *cookie, const char *msg, const char *file, unsigned line) |
static FD_t | XfdFree (FD_t fd, const char *msg, const char *file, unsigned line) |
static FD_t | XfdNew (const char *msg, const char *file, unsigned line) |
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 *uu, 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) |
void | urlSetCallback (rpmCallbackFunction notify, void *notifyData, int notifyCount) |
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 size_t | MyReadFile (FILE *file, void *data, size_t size) |
static int | MyReadFileAndCheck (FILE *file, void *data, size_t size) |
static int | LzmaReadCompressed (void *object, const unsigned char **buffer, size_t *size) |
static void * | lzdFileno (FD_t fd) |
static FD_t | lzdWriteOpen (int fdno, int fopen, const char *mode) |
static FD_t | lzdReadOpen (int fdno, int fopen) |
static FD_t | lzdOpen (const char *path, const char *mode) |
static FD_t | lzdFdopen (void *cookie, const char *fmode) |
static int | lzdFlush (FD_t fd) |
static ssize_t | lzdRead (void *cookie, char *buf, size_t count) |
static ssize_t | lzdWrite (void *cookie, const char *buf, size_t count) |
static int | lzdSeek (void *cookie, _libio_pos_t pos, int whence) |
static int | lzdClose (void *cookie) |
static 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. | |
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. | |
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 | rpmioAccess (const char *FN, const char *path, int mode) |
Check FN access, expanding relative paths and twiddles. | |
int | rpmioSlurp (const char *fn, uint8_t **bp, ssize_t *blenp) |
Read an entire file into a buffer. | |
void | rpmioClean (void) |
Free all memory allocated by rpmio usage. | |
Variables | |
int | noLibio = 1 |
static int | ftpTimeoutSecs = 60 |
int | _rpmio_debug = 0 |
int | _av_debug = 0 |
int | _ftp_debug = 0 |
int | _dav_debug = 0 |
static struct FDIO_s | fdio_s |
FDIO_t | fdio = &fdio_s |
static rpmCallbackFunction | urlNotify = NULL |
static void * | urlNotifyData = NULL |
static int | urlNotifyCount = -1 |
static struct FDIO_s | ufdio_s |
FDIO_t | ufdio = &ufdio_s |
static struct FDIO_s | lzdio_s |
FDIO_t | lzdio = &lzdio_s |
static const char * | _path = "/bin:/usr/bin:/sbin:/usr/sbin" |
static struct FDIO_s | fpio_s |
FDIO_t | fpio = &fpio_s |
Definition in file rpmio.c.
#define alloca_strdup | ( | _s | ) | strcpy(alloca(strlen(_s)+1), (_s)) |
#define DM ((unsigned char)242) |
#define fdClose __fdClose |
Definition at line 109 of file rpmio.c.
Referenced by Fclose(), Fopen(), ftpAbort(), ftpLogin(), ftpReq(), httpReq(), and ufdClose().
#define FDCPIOPOS | ( | fd | ) | (fd ? ((FD_t)fd)->fd_cpioPos : -99) |
#define fdGetFILE | ( | _fd | ) | ((FILE *)fdGetFp(_fd)) |
Definition at line 132 of file rpmio.c.
Referenced by argvFgets(), Fclose(), Ferror(), Fflush(), Fread(), Fseek(), Fwrite(), rdcl(), rpmdsCpuinfo(), rpmdsSysinfoFile(), and ufdClose().
#define FDIOVEC | ( | _fd, | |||
_vec | ) | ((fdGetIo(_fd) && fdGetIo(_fd)->_vec) ? fdGetIo(_fd)->_vec : NULL) |
#define FDNREFS | ( | fd | ) | (fd ? ((FD_t)fd)->nrefs : -9) |
#define fdOpen __fdOpen |
#define fdRead __fdRead |
#define fdWrite __fdWrite |
Definition at line 107 of file rpmio.c.
Referenced by ftpAbort(), ftpCommand(), ftpReq(), httpReq(), and ufdWrite().
#define IAC ((unsigned char)255) |
#define inet_aton | ( | cp, | |||
inp | ) | rpm_inet_aton(cp,inp) |
#define IP ((unsigned char)244) |
#define IPPORT_FTP 21 |
#define IPPORT_HTTP 80 |
#define kInBufferSize (1 << 15) |
#define LZDONLY | ( | fd | ) | assert(fdGetIo(fd) == lzdio) |
#define NI_MAXHOST 1025 |
#define SHUT_RDWR 1+1 |
#define UFDONLY | ( | fd | ) |
static int __fdClose | ( | void * | cookie | ) | [static] |
Definition at line 498 of file rpmio.c.
References c2f(), DBGIO, fdbg(), fdFileno, fdFree, fdSetFdno(), FDSTAT_CLOSE, fdstat_enter(), fdstat_exit(), and _FD_s::req.
static FD_t __fdOpen | ( | const char * | path, | |
int | flags, | |||
mode_t | mode | |||
) | [static] |
Definition at line 530 of file rpmio.c.
References DBGIO, fdbg(), fdNew, fdSetFdno(), fdSetOpen(), and _FD_s::flags.
static ssize_t __fdRead | ( | void * | cookie, | |
char * | buf, | |||
size_t | count | |||
) | [static] |
Definition at line 405 of file rpmio.c.
References _FD_s::bytesRemain, c2f(), DBGIO, fdbg(), fdFileno, fdstat_enter(), fdstat_exit(), FDSTAT_READ, fdUpdateDigests(), _FD_s::ndigests, _FD_s::req, and _FD_s::xar.
static ssize_t __fdWrite | ( | void * | cookie, | |
const char * | buf, | |||
size_t | count | |||
) | [static] |
Definition at line 445 of file rpmio.c.
References _FD_s::bytesRemain, c2f(), DBGIO, fdbg(), fdFileno, fdstat_enter(), fdstat_exit(), FDSTAT_WRITE, fdUpdateDigests(), _FD_s::ndigests, and _FD_s::req.
static int checkResponse | ( | void * | uu, | |
FD_t | ctrl, | |||
int * | ecp, | |||
char ** | str | |||
) | [static] |
Definition at line 949 of file rpmio.c.
References _ftp_debug, _url_iobuf_size, urlinfo_s::allow, urlinfo_s::buf, urlinfo_s::bufAlloced, _FD_s::contentLength, fdFgets(), fdWritable(), FTPERR_BAD_SERVER_RESPONSE, urlinfo_s::httpVersion, _FD_s::persist, RPMURL_SERVER_HASRANGE, URLSANE, _FD_s::wr_chunked, and xcalloc().
Referenced by ftpCheckResponse(), and httpResp().
static 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] = NUL on error.
int Fclose | ( | FD_t | fd | ) |
fclose(3) clone.
Definition at line 3199 of file rpmio.c.
References FDIO_s::close, 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(), cpio_doio(), dodigest(), doIcon(), fsmStage(), IDTXglob(), isCompressed(), makeGPGSignature(), makeHDRSignature(), manageFile(), processPackageFiles(), readLineFromOFI(), rpmcliSign(), rpmdbExportInfo(), rpmdsCpuinfo(), rpmdsSysinfoFile(), rpmfd_dealloc(), rpmfd_free(), rpmfd_init(), rpmgiFree(), rpmgiLoadManifest(), rpmgiNext(), rpmgiOpen(), rpmgiReadHeader(), rpmHeaderFromFD(), rpmHeaderFromFile(), rpmInstallSource(), rpmInstallSourcePackage(), rpmioSlurp(), rpmLoadMacroFile(), rpmpsmStage(), rpmShowProgress(), rpmSingleHeaderFromFD(), rpmTempFile(), rpmts_dealloc(), rpmts_free(), rpmts_HdrFromFdno(), rpmtsCallback(), rpmtsRollback(), rpmtsSolve(), runScript(), showVerifyPackage(), ufdGetFile(), unsatisfiedDepend(), urlGetFile(), writeRPM(), and XurlFree().
int Fcntl | ( | FD_t | fd, | |
int | op, | |||
void * | lip | |||
) |
static const char* fdbg | ( | FD_t | fd | ) | [static] |
Definition at line 172 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, and _FD_s::wr_chunked.
Referenced by __fdClose(), __fdOpen(), __fdRead(), __fdWrite(), Fclose(), fdDup(), Fdopen(), fdSeek(), Ferror(), Fileno(), Fread(), Fseek(), Fwrite(), lzdClose(), ufdOpen(), XfdFree(), and XfdLink().
FD_t fdDup | ( | int | fdno | ) |
Definition at line 263 of file rpmio.c.
References DBGIO, fdbg(), fdNew, fdSetFdno(), and fdSetOpen().
Referenced by cpio_doio(), dodigest(), rpmHeaderFromFD(), rpmpsmStage(), rpmSingleHeaderFromFD(), rpmts_HdrFromFdno(), rpmts_setattro(), rpmtsCallback(), runScript(), showVerifyPackage(), and ufdOpen().
Definition at line 3375 of file rpmio.c.
References _rpmio_debug, FDIO_s::close, cvtfmode(), DBGIO, fdbg(), fdGetFp(), fdLink, fdPush(), FDSANE, fdSetFp(), Fileno(), fpio, lzdFdopen(), noLibio, FDIO_s::read, FDIO_s::seek, and FDIO_s::write.
Referenced by cpio_doio(), Fopen(), rpmpsmStage(), and rpmReadPackageManifest().
int fdReadable | ( | FD_t | fd, | |
int | secs | |||
) |
Definition at line 614 of file rpmio.c.
References errno, fdFileno, and _FD_s::req.
Referenced by fdFgets(), ftpAbort(), ufdClose(), and ufdRead().
static int fdSeek | ( | void * | cookie, | |
_libio_pos_t | pos, | |||
int | whence | |||
) | [inline, static] |
Definition at line 476 of file rpmio.c.
References _FD_s::bytesRemain, c2f(), DBGIO, fdbg(), fdFileno, fdstat_enter(), fdstat_exit(), and FDSTAT_SEEK.
Referenced by ufdSeek().
static int fdSeekNot | ( | void * | cookie, | |
_libio_pos_t | pos, | |||
int | whence | |||
) | [inline, static] |
off_t fdSize | ( | FD_t | fd | ) |
Definition at line 236 of file rpmio.c.
References _FD_s::contentLength, DBGIO, FDSANE, Fileno(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and _FD_s::urlType.
Referenced by rpmioSlurp().
int fdWritable | ( | FD_t | fd, | |
int | secs | |||
) |
Definition at line 559 of file rpmio.c.
References _rpmio_debug, errno, fdFileno, and _FD_s::req.
Referenced by checkResponse(), ftpLogin(), httpReq(), and ufdWrite().
int Ferror | ( | FD_t | fd | ) |
ferror(3) clone.
Definition at line 3575 of file rpmio.c.
References DBGIO, _FD_s::errcookie, fdbg(), fdFileno, fdGetFILE, fpio, _FD_s::fps, _FDSTACK_s::io, _FD_s::nfps, _FD_s::req, and _FD_s::syserrno.
Referenced by addFileToTagAux(), cpio_copy(), dodigest(), doIcon(), fsmStage(), IDTXglob(), isCompressed(), makeGPGSignature(), makeHDRSignature(), manageFile(), processPackageFiles(), rdLead(), readFile(), readLineFromOFI(), rpmcliSign(), rpmdsCpuinfo(), rpmdsSysinfoFile(), rpmfd_Fopen(), rpmfd_init(), rpmgiOpen(), rpmInstallSource(), rpmioSlurp(), rpmLoadMacroFile(), rpmpsmStage(), rpmShowProgress(), rpmTempFile(), rpmtsSolve(), rpmWriteHeader(), runScript(), unsatisfiedDepend(), urlGetFile(), and writeRPM().
int Fflush | ( | FD_t | fd | ) |
fflush(3) clone.
Definition at line 3553 of file rpmio.c.
References fdGetFILE, fdGetFp(), fdGetIo(), and fpio.
Referenced by copyFile(), cpio_doio(), extractRegular(), rpmpsmStage(), and writeRPM().
int Fileno | ( | FD_t | fd | ) |
fileno(3) clone.
Definition at line 3617 of file rpmio.c.
References DBGIO, fdbg(), _FDSTACK_s::fdno, _FD_s::fps, _FD_s::nfps, and _FD_s::req.
Referenced by cpio_doio(), extractRegular(), Fcntl(), Fdopen(), fdSize(), printSize(), rpmpsmStage(), rpmReadPackageFile(), rpmTempFile(), rpmtsCallback(), runScript(), ufdOpen(), writeFile(), and writeRPM().
FD_t Fopen | ( | const char * | path, | |
const char * | fmode | |||
) |
fopen(3) clone.
Definition at line 3484 of file rpmio.c.
References _rpmio_debug, cvtfmode(), fdClose, fdFileno, fdGetFdno(), fdGetFp(), Fdopen(), fdOpen, fdPush(), fpio, _FD_s::req, ufdOpen(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlIsURL().
Referenced by addFileToTagAux(), dodigest(), doIcon(), fsmStage(), IDTXglob(), isCompressed(), makeGPGSignature(), makeHDRSignature(), manageFile(), processPackageFiles(), readLineFromOFI(), rpmcliSign(), rpmdbExportInfo(), rpmdsCpuinfo(), rpmdsSysinfoFile(), rpmfd_Fopen(), rpmfd_init(), rpmgiOpen(), rpmHeaderFromFile(), rpmInstallSource(), rpmioSlurp(), rpmLoadMacroFile(), rpmpsmStage(), rpmShowProgress(), rpmTempFile(), rpmtsRollback(), rpmtsSolve(), runScript(), unsatisfiedDepend(), urlGetFile(), and writeRPM().
size_t Fread | ( | void * | buf, | |
size_t | size, | |||
size_t | nmemb, | |||
FD_t | fd | |||
) |
fread(3) clone.
Definition at line 3122 of file rpmio.c.
References DBGIO, fdbg(), fdGetFILE, fdGetIo(), FDIOVEC, FDSANE, fpio, and FDIO_s::read.
Referenced by copyFile(), cpio_copy(), dodigest(), doIcon(), fsmStage(), isCompressed(), makeGPGSignature(), readFile(), rpmioSlurp(), rpmReadPackageFile(), ufdCopy(), unsatisfiedDepend(), and writeRPM().
int Fseek | ( | FD_t | fd, | |
_libio_off_t | offset, | |||
int | whence | |||
) |
const char* Fstrerror | ( | FD_t | fd | ) |
strerror(3) clone.
Definition at line 3111 of file rpmio.c.
References errno, FDSANE, and getFdErrstr().
Referenced by copyFile(), cpio_copy(), doIcon(), IDTXglob(), isCompressed(), manageFile(), processPackageFiles(), rdLead(), readFile(), readLineFromOFI(), rpmcliSign(), rpmfd_Fopen(), rpmfd_init(), rpmgiOpen(), rpmInstallSource(), rpmpsmStage(), rpmReadPackageFile(), rpmReSign(), rpmShowProgress(), rpmtsSolve(), rpmWriteHeader(), urlGetFile(), and writeRPM().
Definition at line 1666 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, FDIO_s::read, SHUT_RDWR, ufdio, and URLSANE.
Referenced by ufdClose().
static int ftpCheckResponse | ( | urlinfo | u, | |
char ** | str | |||
) | [static] |
Definition at line 1112 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().
static int ftpCommand | ( | urlinfo | u, | |
char ** | str, | |||
... | ||||
) | [static] |
Definition at line 1138 of file rpmio.c.
References _ftp_debug, alloca(), urlinfo_s::ctrl, fdWrite, ftpCheckResponse(), FTPERR_SERVER_IO_ERROR, stpcpy(), and URLSANE.
Referenced by ftpCmd(), ftpLogin(), and ftpReq().
Definition at line 1727 of file rpmio.c.
References urlinfo_s::ctrl, fdFree, ftpCheckResponse(), _FD_s::ftpFileDoneNeeded, and URLSANE.
Referenced by ufdClose().
static int ftpLogin | ( | urlinfo | u | ) | [static] |
Definition at line 1176 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* ftpStrerror | ( | int | errorNumber | ) |
Definition at line 732 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_NE_AUTH, FTPERR_NE_CONNECT, FTPERR_NE_ERROR, FTPERR_NE_FAILED, FTPERR_NE_LOOKUP, FTPERR_NE_PROXYAUTH, FTPERR_NE_REDIRECT, FTPERR_NE_RETRY, FTPERR_NE_TIMEOUT, FTPERR_NIC_ABORT_IN_PROGRESS, FTPERR_PASSIVE_ERROR, FTPERR_SERVER_IO_ERROR, FTPERR_SERVER_TIMEOUT, and FTPERR_UNKNOWN.
Referenced by ftpLogin(), ftpReq(), httpReq(), prepFetch(), 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 3144 of file rpmio.c.
References DBGIO, fdbg(), fdGetFILE, fdGetIo(), FDIOVEC, FDSANE, fpio, and FDIO_s::write.
Referenced by copyFile(), cpio_copy(), fsmStage(), rpmWriteHeader(), runScript(), ufdCopy(), writeRPM(), wrLead(), and wrSignature().
static const char* getFdErrstr | ( | FD_t | fd | ) | [static] |
Definition at line 3083 of file rpmio.c.
References _FD_s::errcookie, fdGetIo(), and _FD_s::syserrno.
Referenced by Fstrerror().
static int getHostAddress | ( | const char * | host, | |
struct in_addr * | address | |||
) | [static] |
Definition at line 829 of file rpmio.c.
References errno, FTPERR_BAD_HOST_ADDR, FTPERR_BAD_HOSTNAME, inet_aton, mygethostbyname(), and xisdigit().
Referenced by tcpConnect().
static int httpReq | ( | FD_t | ctrl, | |
const char * | httpCmd, | |||
const char * | httpArg | |||
) | [static] |
Definition at line 1775 of file rpmio.c.
References _ftp_debug, alloca(), errno, fdClose, fdFileno, fdLink, fdSetSyserrno(), fdWritable(), fdWrite, FTPERR_BAD_HOSTNAME, FTPERR_SERVER_IO_ERROR, ftpStrerror(), urlinfo_s::host, httpResp(), urlinfo_s::httpVersion, NI_MAXHOST, 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().
Definition at line 1746 of file rpmio.c.
References _ftp_debug, checkResponse(), FTPERR_FILE_NOT_FOUND, FTPERR_UNKNOWN, _FD_s::syserrno, and URLSANE.
Referenced by httpReq().
static int lzdClose | ( | void * | cookie | ) | [static] |
Definition at line 3030 of file rpmio.c.
References _free(), _rpmio_debug, c2f(), DBGIO, _FD_s::errcookie, fdbg(), fdFree, FDSTAT_CLOSE, fdstat_enter(), fdstat_exit(), fdstat_print(), _CBuffer::File, lzfile::g_InBuffer, lzdFileno(), lzfile::pid, rpmIsDebug, and lzfile::state.
static FD_t lzdFdopen | ( | void * | cookie, | |
const char * | fmode | |||
) | [static] |
Definition at line 2928 of file rpmio.c.
References c2f(), fdFileno, fdSetFdno(), lzdReadOpen(), and lzdWriteOpen().
Referenced by Fdopen().
static void* lzdFileno | ( | FD_t | fd | ) | [inline, static] |
Definition at line 2771 of file rpmio.c.
References FDSANE, _FDSTACK_s::fp, _FD_s::fps, _FDSTACK_s::io, lzdio, and _FD_s::nfps.
Referenced by lzdClose(), lzdFlush(), lzdRead(), and lzdWrite().
static int lzdFlush | ( | FD_t | fd | ) | [static] |
Definition at line 2948 of file rpmio.c.
References _CBuffer::File, lzfile::g_InBuffer, and lzdFileno().
static FD_t lzdOpen | ( | const char * | path, | |
const char * | mode | |||
) | [static] |
static ssize_t lzdRead | ( | void * | cookie, | |
char * | buf, | |||
size_t | count | |||
) | [static] |
Definition at line 2962 of file rpmio.c.
References _FD_s::bytesRemain, c2f(), _FD_s::errcookie, fdstat_enter(), fdstat_exit(), FDSTAT_READ, fdUpdateDigests(), _CBuffer::File, lzfile::g_InBuffer, _CBuffer::InCallback, lzdFileno(), _FD_s::ndigests, and lzfile::state.
static FD_t lzdReadOpen | ( | int | fdno, | |
int | fopen | |||
) | [static] |
Definition at line 2856 of file rpmio.c.
References _free(), error(), fdLink, fdNew, fdPop(), fdPush(), _CBuffer::File, lzfile::g_InBuffer, _CBuffer::InCallback, lzdio, LzmaReadCompressed(), MyReadFileAndCheck(), lzfile::properties, lzfile::state, xcalloc(), and xmalloc().
Referenced by lzdFdopen(), and lzdOpen().
static int lzdSeek | ( | void * | cookie, | |
_libio_pos_t | pos, | |||
int | whence | |||
) | [inline, static] |
static ssize_t lzdWrite | ( | void * | cookie, | |
const char * | buf, | |||
size_t | count | |||
) | [static] |
Definition at line 2996 of file rpmio.c.
References _FD_s::bytesRemain, c2f(), _FD_s::errcookie, fdstat_enter(), fdstat_exit(), FDSTAT_WRITE, fdUpdateDigests(), _CBuffer::File, lzfile::g_InBuffer, lzdFileno(), and _FD_s::ndigests.
static FD_t lzdWriteOpen | ( | int | fdno, | |
int | fopen, | |||
const char * | mode | |||
) | [static] |
Definition at line 2790 of file rpmio.c.
References _free(), fdLink, fdNew, fdPop(), fdPush(), _CBuffer::File, lzfile::g_InBuffer, lzdio, lzfile::pid, rpmGetPath(), and xcalloc().
Referenced by lzdFdopen(), and lzdOpen().
static int LzmaReadCompressed | ( | void * | object, | |
const unsigned char ** | buffer, | |||
size_t * | size | |||
) | [static] |
Definition at line 2761 of file rpmio.c.
References _CBuffer::Buffer, _CBuffer::File, kInBufferSize, and MyReadFile().
Referenced by lzdReadOpen().
static int mygethostbyname | ( | const char * | host, | |
struct in_addr * | address | |||
) | [static] |
static size_t MyReadFile | ( | FILE * | file, | |
void * | data, | |||
size_t | size | |||
) | [static] |
Definition at line 2746 of file rpmio.c.
Referenced by LzmaReadCompressed(), and MyReadFileAndCheck().
static int MyReadFileAndCheck | ( | FILE * | file, | |
void * | data, | |||
size_t | size | |||
) | [static] |
static int rpm_inet_aton | ( | const char * | cp, | |
struct in_addr * | inp | |||
) | [static] |
int rpmioAccess | ( | const char * | FN, | |
const char * | path, | |||
int | mode | |||
) |
Check FN access, expanding relative paths and twiddles.
FN | file path to check | |
path | colon separated search path (NULL uses $PATH) | |
mode | type of access(2) to check (0 uses X_OK) |
Definition at line 3698 of file rpmio.c.
References _rpmio_debug, Access(), alloca_strdup, F_OK, getenv(), R_OK, rpmCleanPath(), stpcpy(), W_OK, and X_OK.
Referenced by rpmtsCreate(), and unsatisfiedDepend().
void rpmioClean | ( | void | ) |
Free all memory allocated by rpmio usage.
Definition at line 3886 of file rpmio.c.
References rpmlogClose(), and urlFreeCache().
Referenced by rpmcliFini().
int rpmioMkpath | ( | const char * | path, | |
mode_t | mode, | |||
uid_t | uid, | |||
gid_t | gid | |||
) |
Insure that directories in path exist, creating as needed.
path | directory path | |
mode | directory mode (if created) | |
uid | directory uid (if created), or -1 to skip | |
gid | directory uid (if created), or -1 to skip |
Definition at line 3643 of file rpmio.c.
References alloca(), Chown(), D_, errno, Mkdir(), rpmlog(), RPMLOG_DEBUG, Stat(), and stpcpy().
Referenced by db3open(), rpmTempFile(), and sql_open().
int rpmioSlurp | ( | const char * | fn, | |
uint8_t ** | bp, | |||
ssize_t * | blenp | |||
) |
Read an entire file into a buffer.
fn | file name to read |
*bp | (malloc'd) buffer address | |
*blenp | (malloc'd) buffer length |
Definition at line 3830 of file rpmio.c.
References Fclose(), fdSize(), Ferror(), Fopen(), Fread(), xmalloc(), and xrealloc().
Referenced by pgpReadPkts(), processMetadataFile(), rpmnsProbeSignature(), and rpmPlatform().
static int tcpConnect | ( | FD_t | ctrl, | |
const char * | host, | |||
int | port | |||
) | [static] |
Definition at line 858 of file rpmio.c.
References _ftp_debug, errno, fdSetFdno(), fdSetSyserrno(), FTPERR_FAILED_CONNECT, ftpStrerror(), getHostAddress(), and NI_MAXHOST.
Referenced by ftpLogin(), and httpReq().
Definition at line 1520 of file rpmio.c.
References DBGIO, Fread(), FTPERR_FILE_IO_ERROR, ftpStrerror(), Fwrite(), RPMCALLBACK_INST_OPEN_FILE, and RPMCALLBACK_INST_PROGRESS.
Referenced by ufdGetFile().
void* ufdGetUrlinfo | ( | FD_t | fd | ) |
static FD_t ufdOpen | ( | const char * | url, | |
int | flags, | |||
mode_t | mode | |||
) | [static] |
Definition at line 2202 of file rpmio.c.
References _rpmio_debug, _FD_s::bytesRemain, _FD_s::contentLength, DBGIO, fdbg(), fdDup(), fdLink, fdOpen, fdSetIo(), fdSetOpen(), Fileno(), ftpOpen(), ftpReq(), httpReq(), urlinfo_s::openError, _FD_s::rd_timeoutsecs, ufdClose(), ufdio, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, urlPath(), _FD_s::urlType, and _FD_s::wr_chunked.
Referenced by Fopen().
static ssize_t ufdRead | ( | void * | cookie, | |
char * | buf, | |||
size_t | count | |||
) | [static] |
Definition at line 1898 of file rpmio.c.
References _rpmio_debug, _FD_s::bytesRemain, c2f(), errno, fdFileno, fdGetIo(), fdRead, fdReadable(), _FD_s::rd_timeoutsecs, and UFDONLY.
static int ufdSeek | ( | void * | cookie, | |
_libio_pos_t | pos, | |||
int | whence | |||
) | [inline, static] |
Definition at line 2027 of file rpmio.c.
References c2f(), fdSeek(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and _FD_s::urlType.
static ssize_t ufdWrite | ( | void * | cookie, | |
const char * | buf, | |||
size_t | count | |||
) | [static] |
Definition at line 1962 of file rpmio.c.
References _rpmio_debug, _FD_s::bytesRemain, c2f(), errno, fdGetFdno(), fdGetIo(), fdWritable(), fdWrite, and UFDONLY.
static int urlConnect | ( | const char * | url, | |
urlinfo * | uret | |||
) | [static] |
Definition at line 1578 of file rpmio.c.
References _FD_s::bytesRemain, _FD_s::contentLength, urlinfo_s::ctrl, D_, fdFileno, fdFree, fdLink, fdNew, fdSetIo(), fdSetOpen(), _FD_s::ftpFileDoneNeeded, ftpLogin(), ftpTimeoutSecs, urlinfo_s::host, urlinfo_s::openError, urlinfo_s::password, _FD_s::rd_timeoutsecs, rpmlog(), RPMLOG_DEBUG, ufdio, _FD_s::url, URL_IS_FTP, urlFree, urlLink, urlSplit(), urlinfo_s::urltype, and urlinfo_s::user.
void urlSetCallback | ( | rpmCallbackFunction | notify, | |
void * | notifyData, | |||
int | notifyCount | |||
) |
const char* urlStrerror | ( | const char * | url | ) |
Definition at line 787 of file rpmio.c.
References _, errno, ftpStrerror(), urlinfo_s::openError, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, urlIsURL(), and urlSplit().
static FD_t XfdFree | ( | FD_t | fd, | |
const char * | msg, | |||
const char * | file, | |||
unsigned | line | |||
) | [inline, static] |
Definition at line 328 of file rpmio.c.
References _free(), DBGREFS, _FD_s::dig, _FD_s::digests, fdbg(), FDNREFS, FDSANE, _FDDIGEST_s::hashctx, _FD_s::ndigests, _FD_s::nrefs, _FD_s::opath, pgpDigFree(), rpmDigestFinal(), _FD_s::stats, and _FD_s::xar.
static FD_t XfdLink | ( | void * | cookie, | |
const char * | msg, | |||
const char * | file, | |||
unsigned | line | |||
) | [inline, static] |
static FD_t XfdNew | ( | const char * | msg, | |
const char * | file, | |||
unsigned | line | |||
) | [inline, static] |
Definition at line 364 of file rpmio.c.
References _FD_s::bytesRemain, _FD_s::contentLength, _FD_s::dig, _FD_s::digests, _FD_s::errcookie, _FD_s::fd_cpioPos, FDMAGIC, _FDSTACK_s::fdno, _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::oflags, _FD_s::omode, _FD_s::opath, _FD_s::rd_timeoutsecs, _FD_s::stats, _FD_s::syserrno, ufdio, _FD_s::url, URL_IS_UNKNOWN, _FD_s::urlType, _FD_s::wr_chunked, _FD_s::xar, xcalloc(), and XfdLink().
int _dav_debug = 0 |
int _ftp_debug = 0 |
Definition at line 163 of file rpmio.c.
Referenced by checkResponse(), ftpCommand(), ftpLstat(), ftpOpendir(), ftpReadlink(), ftpReq(), ftpStat(), httpReq(), httpResp(), and tcpConnect().
const char* _path = "/bin:/usr/bin:/sbin:/usr/sbin" [static] |
int _rpmio_debug = 0 |
Definition at line 153 of file rpmio.c.
Referenced by Access(), Chmod(), Chown(), Chroot(), Closedir(), fdFgets(), Fdopen(), fdWritable(), Fopen(), Glob(), Globfree(), Lchown(), Link(), Lseek(), Lstat(), lzdClose(), Mkfifo(), Mknod(), Open(), Opendir(), Readdir(), Rename(), rpmioAccess(), Stat(), Symlink(), ufdOpen(), ufdRead(), ufdWrite(), Utime(), and Utimes().
int ftpTimeoutSecs = 60 [static] |
Definition at line 3079 of file rpmio.c.
Referenced by fdbg(), lzdFileno(), lzdReadOpen(), and lzdWriteOpen().
int noLibio = 1 |
Definition at line 2305 of file rpmio.c.
Referenced by fdbg(), ftpAbort(), ftpOpen(), ufdOpen(), urlConnect(), and XfdNew().
rpmCallbackFunction urlNotify = NULL [static] |
int urlNotifyCount = -1 [static] |
void* urlNotifyData = NULL [static] |