#include "system.h"
#include <stdarg.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <rpmio_internal.h>
#include <rpmdav.h>
#include "ugid.h"
#include "rpmmessages.h"
#include "debug.h"
#include "LzmaDecode.h"
Go to the source code of this file.
Data Structures | |
struct | _CBuffer |
struct | lzfile |
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 | LZDONLY(fd) assert(fdGetIo(fd) == lzdio) |
#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 | kInBufferSize (1 << 15) |
#define | FDIOVEC(_fd, _vec) ((fdGetIo(_fd) && fdGetIo(_fd)->_vec) ? fdGetIo(_fd)->_vec : NULL) |
Typedefs | |
typedef _CBuffer | CBuffer |
typedef lzfile | LZFILE |
Functions | |
static int | inet_aton (const char *cp, struct in_addr *inp) |
static void * | _free (const void *p) |
Wrapper to free(3), hides const compilation noise, permit NULL, return NULL. | |
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 *const | 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) |
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, unsigned int *size) |
static void * | lzdFileno (FD_t fd) |
static FD_t | lzdWriteOpen (int fdno, int fopen) |
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 | rpmioSlurp (const char *fn, const byte **bp, ssize_t *blenp) |
Read an entire file into a buffer. | |
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 struct FDIO_s | fpio_s |
FDIO_t | fpio = &fpio_s |
Definition in file rpmio.c.
#define DM 242 |
#define fdClose __fdClose |
Definition at line 64 of file rpmio.c.
Referenced by Fopen(), ftpAbort(), ftpLogin(), ftpReq(), and ufdClose().
#define fdGetFILE | ( | _fd | ) | ((FILE *)fdGetFp(_fd)) |
#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 62 of file rpmio.c.
Referenced by ftpAbort(), ftpCommand(), ftpReq(), and ufdWrite().
#define IAC 255 |
#define IP 244 |
#define IPPORT_FTP 21 |
#define IPPORT_HTTP 80 |
#define kInBufferSize (1 << 15) |
#define LZDONLY | ( | fd | ) | assert(fdGetIo(fd) == lzdio) |
#define SHUT_RDWR 1+1 |
#define UFDONLY | ( | fd | ) |
static int __fdClose | ( | void * | cookie | ) | [static] |
Definition at line 428 of file rpmio.c.
References c2f(), DBGIO, fdbg(), fdFileno, fdFree, fdSetFdno(), FDSTAT_CLOSE, fdstat_enter(), and fdstat_exit().
static FD_t __fdOpen | ( | const char * | path, | |
int | flags, | |||
mode_t | mode | |||
) | [static] |
Definition at line 453 of file rpmio.c.
References DBGIO, fdbg(), fdNew, fdSetFdno(), and _FD_s::flags.
static ssize_t __fdRead | ( | void * | cookie, | |
char * | buf, | |||
size_t | count | |||
) | [static] |
Definition at line 357 of file rpmio.c.
References _FD_s::bytesRemain, c2f(), DBGIO, fdbg(), fdFileno, fdstat_enter(), fdstat_exit(), FDSTAT_READ, fdUpdateDigests(), and _FD_s::ndigests.
static ssize_t __fdWrite | ( | void * | cookie, | |
const char * | buf, | |||
size_t | count | |||
) | [static] |
Definition at line 381 of file rpmio.c.
References _FD_s::bytesRemain, c2f(), DBGIO, fdbg(), fdFileno, fdstat_enter(), fdstat_exit(), FDSTAT_WRITE, fdUpdateDigests(), and _FD_s::ndigests.
static void* _free | ( | const void * | p | ) | [inline, static] |
static int checkResponse | ( | void * | uu, | |
FD_t | ctrl, | |||
int * | ecp, | |||
char ** | str | |||
) | [static] |
Definition at line 833 of file rpmio.c.
References _ftp_debug, _url_iobuf_size, 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().
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.
Definition at line 2891 of file rpmio.c.
References flags.
int Fclose | ( | FD_t | fd | ) |
fclose(3) clone.
Definition at line 2808 of file rpmio.c.
References FDIO_s::close, DBGIO, fdbg(), 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, ufdClose(), and ufdio.
Referenced by addFileToTagAux(), closeCallback(), closeSpec(), cpio_doio(), defaultMachine(), do_tsort(), domd5(), doReadRC(), doScript(), fadOpen(), ftsStashLatest(), IDTXglob(), isCompressed(), isSpecFile(), main(), makeGPGSignature(), makeHDRSignature(), makePGPSignature(), makeTempFile(), manageFile(), processPackageFiles(), readFile(), readIcon(), readLine(), readRPM(), rewriteRPM(), rpmcliSign(), rpmfd_dealloc(), rpmfd_free(), rpmfd_init(), rpmgiFree(), rpmgiLoadManifest(), rpmgiNext(), rpmgiOpen(), rpmgiReadHeader(), rpmGraph(), rpmHeaderFromFD(), rpmHeaderFromFile(), rpmInstall(), rpmInstallSource(), rpmioSlurp(), rpmLoadMacroFile(), rpmMergeHeadersFromFD(), rpmpsmStage(), rpmShowProgress(), rpmSingleHeaderFromFD(), rpmts_dealloc(), rpmts_free(), rpmts_HdrFromFdno(), rpmtsCallback(), rpmtsSolve(), rpmxpProcess(), runScript(), showVerifyPackage(), ufdGetFile(), urlGetFile(), writeFile(), writeRPM(), and XurlFree().
int Fcntl | ( | FD_t | fd, | |
int | op, | |||
void * | lip | |||
) |
fcntl(2) clone.
Definition at line 3201 of file rpmio.c.
References Fileno().
Referenced by rpmShowProgress().
static const char* fdbg | ( | FD_t | fd | ) | [static] |
Definition at line 141 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 231 of file rpmio.c.
References DBGIO, fdbg(), fdNew, and fdSetFdno().
Referenced by cpio_doio(), domd5(), main(), readRPM(), rpmHeaderFromFD(), rpmMergeHeadersFromFD(), rpmpsmStage(), rpmSingleHeaderFromFD(), rpmts_HdrFromFdno(), rpmts_setattro(), rpmtsCallback(), runScript(), showVerifyPackage(), and ufdOpen().
Definition at line 2963 of file rpmio.c.
References _rpmio_debug, FDIO_s::close, cvtfmode(), DBGIO, fdbg(), fdGetFp(), fdio, fdLink, fdPush(), FDSANE, fdSetFp(), Fileno(), fpio, lzdFdopen(), lzdio, noLibio, FDIO_s::read, FDIO_s::seek, ufdio, and FDIO_s::write.
Referenced by cpio_doio(), doScript(), Fopen(), main(), and rpmpsmStage().
int fdReadable | ( | FD_t | fd, | |
int | secs | |||
) |
Definition at line 532 of file rpmio.c.
References errno, and fdFileno.
Referenced by fdFgets(), ftpAbort(), ufdClose(), and ufdRead().
static int fdSeek | ( | void * | cookie, | |
_libio_pos_t | pos, | |||
int | whence | |||
) | [inline, static] |
Definition at line 406 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 204 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 doReadRC(), readIcon(), and rpmioSlurp().
int fdWritable | ( | FD_t | fd, | |
int | secs | |||
) |
Definition at line 481 of file rpmio.c.
References _rpmio_debug, errno, fdFileno, and strerror.
Referenced by checkResponse(), ftpLogin(), and ufdWrite().
int Ferror | ( | FD_t | fd | ) |
ferror(3) clone.
Definition at line 3148 of file rpmio.c.
References DBGIO, _FD_s::errcookie, fdbg(), fdFileno, fdGetFILE, fpio, _FD_s::fps, _FDSTACK_s::io, lzdio, _FD_s::nfps, and _FD_s::syserrno.
Referenced by addFileToTagAux(), cpio_copy(), defaultMachine(), do_tsort(), domd5(), doReadRC(), doScript(), fadOpen(), ftsStashLatest(), IDTXglob(), isCompressed(), isSpecFile(), main(), makeGPGSignature(), makeHDRSignature(), makePGPSignature(), makeTempFile(), manageFile(), processPackageFiles(), readIcon(), readLead(), readLine(), readRPM(), rpmcliSign(), rpmfd_Fopen(), rpmfd_init(), rpmgiOpen(), rpmGraph(), rpmInstall(), rpmInstallSource(), rpmioSlurp(), rpmLoadMacroFile(), rpmpsmStage(), rpmReadRC(), rpmShowProgress(), rpmtsSolve(), runScript(), urlGetFile(), and writeRPM().
int Fflush | ( | FD_t | fd | ) |
fflush(3) clone.
Definition at line 3128 of file rpmio.c.
References fdGetFILE, fdGetFp(), fdGetIo(), and fpio.
Referenced by cpio_doio(), expandRegular(), main(), rpmpsmStage(), and writeRPM().
int Fileno | ( | FD_t | fd | ) |
fileno(3) clone.
Definition at line 3186 of file rpmio.c.
References DBGIO, fdbg(), _FDSTACK_s::fdno, _FD_s::fps, and _FD_s::nfps.
Referenced by cpio_doio(), doScript(), fadOpen(), Fcntl(), Fdopen(), fdSize(), main(), makeTempFile(), printSize(), rpmpsmStage(), rpmReadPackageFile(), rpmtsCallback(), runScript(), ufdOpen(), writeFile(), and writeRPM().
FD_t Fopen | ( | const char * | path, | |
const char * | fmode | |||
) |
fopen(3) clone.
Definition at line 3073 of file rpmio.c.
References _rpmio_debug, cvtfmode(), fdClose, fdFileno, fdOpen, Fdopen(), flags, ufdOpen(), URL_IS_DASH, URL_IS_FTP, URL_IS_PATH, URL_IS_UNKNOWN, and urlIsURL().
Referenced by addFileToTagAux(), defaultMachine(), do_tsort(), domd5(), doReadRC(), fadOpen(), ftsStashLatest(), IDTXglob(), isCompressed(), isSpecFile(), main(), makeGPGSignature(), makeHDRSignature(), makePGPSignature(), makeTempFile(), manageFile(), processPackageFiles(), readFile(), readIcon(), readLine(), readRPM(), rpmcliSign(), rpmfd_Fopen(), rpmfd_init(), rpmgiOpen(), rpmGraph(), rpmHeaderFromFile(), rpmInstall(), rpmInstallSource(), rpmioSlurp(), rpmLoadMacroFile(), rpmpsmStage(), rpmReadRC(), rpmShowProgress(), rpmtsSolve(), rpmxpProcess(), runScript(), urlGetFile(), writeFile(), and writeRPM().
size_t Fread | ( | void * | buf, | |
size_t | size, | |||
size_t | nmemb, | |||
FD_t | fd | |||
) |
fread(3) clone.
Definition at line 2729 of file rpmio.c.
References DBGIO, fdbg(), fdGetFILE, fdGetIo(), FDIOVEC, FDSANE, fpio, and FDIO_s::read.
Referenced by copyFile(), cpio_copy(), defaultMachine(), domd5(), doReadRC(), isCompressed(), isSpecFile(), main(), Pread(), readFile(), readIcon(), readRPM(), rpmioSlurp(), rpmReadPackageFile(), ufdCopy(), 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 2718 of file rpmio.c.
References errno, FDSANE, getFdErrstr(), and strerror.
Referenced by copyFile(), cpio_copy(), do_tsort(), doReadRC(), IDTXglob(), isCompressed(), isSpecFile(), main(), manageFile(), processPackageFiles(), readFile(), readIcon(), readLead(), readLine(), readRPM(), rpmfd_Fopen(), rpmfd_init(), rpmgiOpen(), rpmGraph(), rpmInstall(), rpmInstallSource(), rpmpsmStage(), rpmReadPackageFile(), rpmReadRC(), rpmReSign(), rpmShowProgress(), rpmtsSolve(), urlGetFile(), and writeRPM().
Definition at line 1458 of file rpmio.c.
References urlinfo_s::buf, urlinfo_s::bufAlloced, urlinfo_s::ctrl, data, DBGIO, DM, fdClose, fdFileno, fdFree, fdReadable(), fdWrite, ftpCheckResponse(), FTPERR_NIC_ABORT_IN_PROGRESS, FTPERR_SERVER_IO_ERROR, IAC, IP, _FD_s::rd_timeoutsecs, SHUT_RDWR, timedRead, and URLSANE.
Referenced by ufdClose().
static int ftpCheckResponse | ( | urlinfo | u, | |
char ** | str | |||
) | [static] |
Definition at line 997 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 1023 of file rpmio.c.
References alloca(), urlinfo_s::ctrl, fdWrite, ftpCheckResponse(), FTPERR_SERVER_IO_ERROR, stpcpy(), and URLSANE.
Referenced by ftpCmd(), ftpLogin(), and ftpReq().
Definition at line 1521 of file rpmio.c.
References urlinfo_s::ctrl, data, fdFree, ftpCheckResponse(), and URLSANE.
Referenced by ufdClose().
static int ftpLogin | ( | urlinfo | u | ) | [static] |
Definition at line 1063 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 648 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 doUntar(), ftpLogin(), ftpReq(), 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 2751 of file rpmio.c.
References DBGIO, fdbg(), fdGetFILE, fdGetIo(), FDIOVEC, FDSANE, fpio, and FDIO_s::write.
Referenced by copyFile(), cpio_copy(), main(), rpmWriteSignature(), runScript(), spewHeader(), ufdCopy(), writeFile(), writeLead(), and writeRPM().
static const char* getFdErrstr | ( | FD_t | fd | ) | [static] |
Definition at line 2690 of file rpmio.c.
References _FD_s::errcookie, fdGetIo(), lzdio, strerror, and _FD_s::syserrno.
Referenced by Fstrerror().
static int getHostAddress | ( | const char * | host, | |
struct in_addr * | address | |||
) | [static] |
Definition at line 749 of file rpmio.c.
References errno, FTPERR_BAD_HOST_ADDR, FTPERR_BAD_HOSTNAME, inet_aton(), mygethostbyname(), and xisdigit().
Referenced by tcpConnect().
static int inet_aton | ( | const char * | cp, | |
struct in_addr * | inp | |||
) | [static] |
static int lzdClose | ( | void * | cookie | ) | [static] |
Definition at line 2637 of file rpmio.c.
References _rpmio_debug, c2f(), DBGIO, _CLzmaDecoderState::Dictionary, _FD_s::errcookie, fdbg(), fdFree, FDSTAT_CLOSE, fdstat_enter(), fdstat_exit(), fdstat_print(), _CBuffer::File, lzfile::g_InBuffer, lzdFileno(), lzfile::pid, _CLzmaDecoderState::Probs, rpmIsDebug, lzfile::state, and strerror.
static FD_t lzdFdopen | ( | void * | cookie, | |
const char * | fmode | |||
) | [static] |
Definition at line 2538 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 2405 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 2558 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 2572 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(), LzmaDecode(), _FD_s::ndigests, and lzfile::state.
static FD_t lzdReadOpen | ( | int | fdno, | |
int | fopen | |||
) | [static] |
Definition at line 2473 of file rpmio.c.
References CProb, fdLink, fdNew, fdPop(), fdPush(), lzdio, LZMA_PROPERTIES_SIZE, LZMA_RESULT_OK, LzmaDecodeProperties(), LzmaDecoderInit, LzmaGetNumProbs, LzmaReadCompressed(), and MyReadFileAndCheck().
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 2603 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(), _FD_s::ndigests, and strerror.
static FD_t lzdWriteOpen | ( | int | fdno, | |
int | fopen | |||
) | [static] |
static int LzmaReadCompressed | ( | void * | object, | |
const unsigned char ** | buffer, | |||
unsigned int * | size | |||
) | [static] |
Definition at line 2397 of file rpmio.c.
References _CBuffer::Buffer, _CBuffer::File, kInBufferSize, LZMA_RESULT_OK, MyReadFile(), and SizeT.
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 2386 of file rpmio.c.
Referenced by LzmaReadCompressed(), and MyReadFileAndCheck().
static int MyReadFileAndCheck | ( | FILE * | file, | |
void * | data, | |||
size_t | size | |||
) | [static] |
int rpmioMkpath | ( | const char * | path, | |
mode_t | mode, | |||
uid_t | uid, | |||
gid_t | gid | |||
) |
Insure that directories in path exist, creating as needed.
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 |
Definition at line 3210 of file rpmio.c.
References alloca(), errno, Mkdir(), RPMMESS_DEBUG, rpmMessage, Stat(), and stpcpy().
Referenced by db3open(), makeTempFile(), and sql_open().
int rpmioSlurp | ( | const char * | fn, | |
const unsigned char ** | 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 3261 of file rpmio.c.
References Fclose(), fdSize(), Ferror(), Fopen(), Fread(), size, xmalloc(), and xrealloc().
Referenced by pgpReadPkts(), processMetadataFile(), and rpmPlatform().
static int tcpConnect | ( | FD_t | ctrl, | |
const char * | host, | |||
int | port | |||
) | [static] |
Definition at line 778 of file rpmio.c.
References _ftp_debug, errno, fdSetFdno(), fdSetSyserrno(), FTPERR_FAILED_CONNECT, ftpStrerror(), and getHostAddress().
Referenced by ftpLogin().
Definition at line 1305 of file rpmio.c.
References DBGIO, Fread(), FTPERR_FILE_IO_ERROR, ftpStrerror(), Fwrite(), RPMCALLBACK_INST_OPEN_FILE, and RPMCALLBACK_INST_PROGRESS.
Referenced by main(), and ufdGetFile().
void* ufdGetUrlinfo | ( | FD_t | fd | ) |
static FD_t ufdOpen | ( | const char * | url, | |
int | flags, | |||
mode_t | mode | |||
) | [static] |
Definition at line 1860 of file rpmio.c.
References _rpmio_debug, _FD_s::bytesRemain, _FD_s::contentLength, DBGIO, fdbg(), fdDup(), fdLink, fdOpen, fdSetIo(), Fileno(), ftpOpen(), ftpReq(), urlinfo_s::openError, ufdClose(), ufdio, URL_IS_DASH, URL_IS_FTP, 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 1549 of file rpmio.c.
References _rpmio_debug, _FD_s::bytesRemain, c2f(), errno, fdFileno, fdGetIo(), fdio, fdRead, fdReadable(), _FD_s::rd_timeoutsecs, strerror, and UFDONLY.
static int ufdSeek | ( | void * | cookie, | |
_libio_pos_t | pos, | |||
int | whence | |||
) | [inline, static] |
Definition at line 1681 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 1616 of file rpmio.c.
References _rpmio_debug, _FD_s::bytesRemain, c2f(), errno, fdGetFdno(), fdGetIo(), fdio, fdWritable(), fdWrite, strerror, and UFDONLY.
static int urlConnect | ( | const char * | url, | |
urlinfo * | uret | |||
) | [static] |
Definition at line 1369 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.
void urlSetCallback | ( | rpmCallbackFunction | notify, | |
void * | notifyData, | |||
int | notifyCount | |||
) |
const char* urlStrerror | ( | const char * | url | ) |
Definition at line 703 of file rpmio.c.
References errno, ftpStrerror(), urlinfo_s::openError, strerror, 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 291 of file rpmio.c.
References _free(), DBGREFS, fdbg(), FDNREFS, FDSANE, _FDDIGEST_s::hashctx, and rpmDigestFinal().
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] |
int _dav_debug = 0 |
int _ftp_debug = 0 |
int _rpmio_debug = 0 |
Definition at line 479 of file rpmio.c.
Referenced by fdbg(), Fdopen(), ufdRead(), ufdWrite(), XfdNew(), and XurlFree().
int ftpTimeoutSecs = 60 [static] |
Definition at line 2686 of file rpmio.c.
Referenced by fdbg(), Fdopen(), Ferror(), getFdErrstr(), lzdFileno(), lzdReadOpen(), and lzdWriteOpen().
rpmCallbackFunction urlNotify = NULL [static] |
int urlNotifyCount = -1 [static] |
void* urlNotifyData = NULL [static] |