#include "system.h"#include <rpmio_internal.h>#include <rpmdav.h>#include "ugid.h"#include "debug.h"

Go to the source code of this file.
Defines | |
| #define | _RPMDAV_INTERNAL |
| #define | g_strdup xstrdup |
| #define | g_free free |
| #define | MAXCOLS 30 |
| #define | alloca_strdup(_s) strcpy(alloca(strlen(_s)+1), (_s)) |
Enumerations | |
| enum | ftpSysCall_t { DO_FTP_STAT = 1, DO_FTP_LSTAT = 2, DO_FTP_READLINK = 3, DO_FTP_ACCESS = 4, DO_FTP_GLOB = 5 } |
Functions | |
| static int | ftpMkdir (const char *path, mode_t mode) |
| static int | ftpChdir (const char *path) |
| static int | ftpRmdir (const char *path) |
| static int | ftpRename (const char *oldpath, const char *newpath) |
| static int | ftpUnlink (const char *path) |
| int | Mkdir (const char *path, mode_t mode) |
| mkdir(2) clone. | |
| int | Chdir (const char *path) |
| chdir(2) clone. | |
| int | Rmdir (const char *path) |
| rmdir(2) clone. | |
| int | Chroot (const char *path) |
| chroot(2) clone. | |
| int | Open (const char *path, int flags, mode_t mode) |
| open(2) clone. | |
| int | Rename (const char *oldpath, const char *newpath) |
| rename(2) clone. | |
| int | Link (const char *oldpath, const char *newpath) |
| link(2) clone. | |
| int | Unlink (const char *path) |
| unlink(2) clone. | |
| static int | vfs_split_text (char *p) |
| static int | is_num (int idx) |
| static int | is_dos_date (const char *str) |
| static int | is_week (const char *str, struct tm *tim) |
| static int | is_month (const char *str, struct tm *tim) |
| static int | is_time (const char *str, struct tm *tim) |
| static int | is_year (const char *str, struct tm *tim) |
| static int | vfs_parse_filetype (char c) |
| static int | vfs_parse_filemode (const char *p) |
| static int | vfs_parse_filedate (int idx, time_t *t) |
| static int | vfs_parse_ls_lga (char *p, struct stat *st, const char **filename, const char **linkname) |
| static int | ftpNLST (const char *url, ftpSysCall_t ftpSysCall, struct stat *st, char *rlbuf, size_t rlbufsiz) |
| static const char * | statstr (const struct stat *st, char *buf) |
| static int | ftpStat (const char *path, struct stat *st) |
| static int | ftpLstat (const char *path, struct stat *st) |
| static int | ftpReadlink (const char *path, char *buf, size_t bufsiz) |
| static DIR * | ftpOpendir (const char *path) |
| static char * | ftpRealpath (const char *path, char *resolved_path) |
| int | Stat (const char *path, struct stat *st) |
| stat(2) clone. | |
| int | Lstat (const char *path, struct stat *st) |
| lstat(2) clone. | |
| int | Chown (const char *path, uid_t owner, gid_t group) |
| chown(2) clone. | |
| int | Lchown (const char *path, uid_t owner, gid_t group) |
| lchown(2) clone. | |
| int | Chmod (const char *path, mode_t mode) |
| chmod(2) clone. | |
| int | Mkfifo (const char *path, mode_t mode) |
| mkfifo(3) clone. | |
| int | Mknod (const char *path, mode_t mode, dev_t dev) |
| mknod(3) clone. | |
| int | Utime (const char *path, const struct utimbuf *buf) |
| utime(2) clone. | |
| int | Utimes (const char *path, const struct timeval times[2]) |
| int | Symlink (const char *oldpath, const char *newpath) |
| symlink(3) clone. | |
| int | Readlink (const char *path, char *buf, size_t bufsiz) |
| readlink(2) clone. | |
| int | Access (const char *path, int amode) |
| access(2) clone. | |
| int | Glob_pattern_p (const char *pattern, int quote) |
| glob_pattern_p(3) clone. | |
| int | Glob_error (const char *epath, int eerrno) |
| glob_error(3) clone. | |
| int | Glob (const char *pattern, int flags, int errfunc(const char *epath, int eerrno), glob_t *pglob) |
| glob(3) clone. | |
| void | Globfree (glob_t *pglob) |
| globfree(3) clone. | |
| DIR * | Opendir (const char *path) |
| opendir(3) clone. | |
| struct direct * | Readdir (DIR *dir) |
| readdir(3) clone. | |
| int | Closedir (DIR *dir) |
| closedir(3) clone. | |
| char * | Realpath (const char *path, char *resolved_path) |
| realpath(3) clone. | |
| off_t | Lseek (int fdno, off_t offset, int whence) |
| lseek(2) clone. | |
Variables | |
| const char * | _chroot_prefix = NULL |
| static int | current_mday |
| static int | current_mon |
| static int | current_year |
| static char * | columns [30] |
| static int | column_ptr [30] |
| static size_t | ftpBufAlloced = 0 |
| static char * | ftpBuf = NULL |
| static int | ftp_st_ino = 0xdead0000 |
Definition in file rpmrpc.c.
| #define alloca_strdup | ( | _s | ) | strcpy(alloca(strlen(_s)+1), (_s)) |
| #define g_free free |
| #define g_strdup xstrdup |
| #define MAXCOLS 30 |
| enum ftpSysCall_t |
| int Access | ( | const char * | path, | |
| int | amode | |||
| ) |
access(2) clone.
Definition at line 1617 of file rpmrpc.c.
References _rpmio_debug, errno, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by rpmdbRebuild(), rpmInstallSourcePackage(), and rpmioAccess().
| int Chdir | ( | const char * | path | ) |
chdir(2) clone.
Definition at line 95 of file rpmrpc.c.
References errno, ftpChdir(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by getOutputFrom(), rpmpsmStage(), rpmtsRun(), and runScript().
| int Chmod | ( | const char * | path, | |
| mode_t | mode | |||
| ) |
chmod(2) clone.
Definition at line 1425 of file rpmrpc.c.
References _rpmio_debug, errno, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by fsmStage().
| int Chown | ( | const char * | path, | |
| uid_t | owner, | |||
| gid_t | group | |||
| ) |
chown(2) clone.
Definition at line 1373 of file rpmrpc.c.
References _rpmio_debug, errno, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by fsmStage().
| int Chroot | ( | const char * | path | ) |
chroot(2) clone.
Definition at line 145 of file rpmrpc.c.
References _chroot_prefix, _free(), _rpmio_debug, errno, rpmGetPath(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by rpmpsmStage(), rpmtsRun(), and runScript().
| int Closedir | ( | DIR * | dir | ) |
closedir(3) clone.
Definition at line 1776 of file rpmrpc.c.
References _rpmio_debug.
Referenced by Fts_open(), and Glob().
| static int ftpChdir | ( | const char * | path | ) | [static] |
| static int ftpLstat | ( | const char * | path, | |
| struct stat * | st | |||
| ) | [static] |
Definition at line 1140 of file rpmrpc.c.
References _ftp_debug, DO_FTP_LSTAT, ftp_st_ino, ftpNLST(), and statstr().
Referenced by Lstat().
| static int ftpMkdir | ( | const char * | path, | |
| mode_t | mode | |||
| ) | [static] |
| static int ftpNLST | ( | const char * | url, | |
| ftpSysCall_t | ftpSysCall, | |||
| struct stat * | st, | |||
| char * | rlbuf, | |||
| size_t | rlbufsiz | |||
| ) | [static] |
Definition at line 910 of file rpmrpc.c.
References _url_iobuf_size, alloca_strdup, DO_FTP_ACCESS, DO_FTP_GLOB, DO_FTP_LSTAT, DO_FTP_READLINK, DO_FTP_STAT, fdFgets(), fdLink, ftpBuf, ftpBufAlloced, ftpChdir(), ftpOpen(), ftpReq(), urlinfo_s::openError, ufdClose(), urlPath(), vfs_parse_ls_lga(), xcalloc(), and xrealloc().
Referenced by ftpLstat(), ftpOpendir(), ftpReadlink(), and ftpStat().
| static DIR* ftpOpendir | ( | const char * | path | ) | [static] |
| static int ftpReadlink | ( | const char * | path, | |
| char * | buf, | |||
| size_t | bufsiz | |||
| ) | [static] |
Definition at line 1155 of file rpmrpc.c.
References _ftp_debug, DO_FTP_READLINK, and ftpNLST().
Referenced by Readlink().
| static char* ftpRealpath | ( | const char * | path, | |
| char * | resolved_path | |||
| ) | [static] |
| static int ftpRename | ( | const char * | oldpath, | |
| const char * | newpath | |||
| ) | [static] |
| static int ftpRmdir | ( | const char * | path | ) | [static] |
| static int ftpStat | ( | const char * | path, | |
| struct stat * | st | |||
| ) | [static] |
Definition at line 1124 of file rpmrpc.c.
References _ftp_debug, DO_FTP_STAT, ftp_st_ino, ftpNLST(), and statstr().
Referenced by Stat().
| static int ftpUnlink | ( | const char * | path | ) | [static] |
| int Glob | ( | const char * | pattern, | |
| int | flags, | |||
| int | errfuncconst char *epath, int eerrno, | |||
| glob_t * | pglob | |||
| ) |
glob(3) clone.
Definition at line 1693 of file rpmrpc.c.
References _rpmio_debug, Closedir(), Lstat(), Opendir(), Readdir(), Stat(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by rpmGlob().
| int Glob_error | ( | const char * | epath, | |
| int | eerrno | |||
| ) |
| int Glob_pattern_p | ( | const char * | pattern, | |
| int | quote | |||
| ) |
glob_pattern_p(3) clone.
Definition at line 1648 of file rpmrpc.c.
References URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, and urlPath().
Referenced by processBinaryFile(), and rpmGlob().
| void Globfree | ( | glob_t * | pglob | ) |
globfree(3) clone.
Definition at line 1731 of file rpmrpc.c.
References _rpmio_debug.
Referenced by rpmGlob().
| static int is_dos_date | ( | const char * | str | ) | [static] |
Definition at line 399 of file rpmrpc.c.
Referenced by vfs_parse_filedate(), and vfs_parse_ls_lga().
| static int is_month | ( | const char * | str, | |
| struct tm * | tim | |||
| ) | [static] |
Definition at line 427 of file rpmrpc.c.
Referenced by vfs_parse_filedate(), and vfs_parse_ls_lga().
| static int is_num | ( | int | idx | ) | [static] |
Definition at line 388 of file rpmrpc.c.
References columns.
Referenced by vfs_parse_filedate(), and vfs_parse_ls_lga().
| static int is_time | ( | const char * | str, | |
| struct tm * | tim | |||
| ) | [static] |
| static int is_week | ( | const char * | str, | |
| struct tm * | tim | |||
| ) | [static] |
Definition at line 410 of file rpmrpc.c.
Referenced by vfs_parse_filedate(), and vfs_parse_ls_lga().
| static int is_year | ( | const char * | str, | |
| struct tm * | tim | |||
| ) | [static] |
| int Lchown | ( | const char * | path, | |
| uid_t | owner, | |||
| gid_t | group | |||
| ) |
lchown(2) clone.
Definition at line 1399 of file rpmrpc.c.
References _rpmio_debug, errno, lchown, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by fsmStage().
| int Link | ( | const char * | oldpath, | |
| const char * | newpath | |||
| ) |
link(2) clone.
Definition at line 269 of file rpmrpc.c.
References _rpmio_debug, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, urlPath(), and xstrncasecmp().
Referenced by fsmStage().
| off_t Lseek | ( | int | fdno, | |
| off_t | offset, | |||
| int | whence | |||
| ) |
lseek(2) clone.
Definition at line 1861 of file rpmrpc.c.
References _rpmio_debug.
| int Lstat | ( | const char * | path, | |
| struct stat * | st | |||
| ) |
lstat(2) clone.
Definition at line 1347 of file rpmrpc.c.
References _rpmio_debug, errno, ftpLstat(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by addFile(), checkOwners(), fsmStage(), Fts_open(), Glob(), prepFetch(), rpmQueryVerify(), rpmtsRun(), rpmVerifyFile(), and statFormat().
| int Mkdir | ( | const char * | path, | |
| mode_t | mode | |||
| ) |
mkdir(2) clone.
Definition at line 72 of file rpmrpc.c.
References ftpMkdir(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by fsmStage(), packageBinaries(), rpmdbRebuild(), rpmioMkpath(), and rpmMkdirPath().
| int Mkfifo | ( | const char * | path, | |
| mode_t | mode | |||
| ) |
mkfifo(3) clone.
Definition at line 1451 of file rpmrpc.c.
References _rpmio_debug, errno, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by fsmStage().
| int Mknod | ( | const char * | path, | |
| mode_t | mode, | |||
| dev_t | dev | |||
| ) |
mknod(3) clone.
Definition at line 1477 of file rpmrpc.c.
References _rpmio_debug, errno, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by fsmStage().
| int Open | ( | const char * | path, | |
| int | flags, | |||
| mode_t | mode | |||
| ) |
open(2) clone.
Definition at line 178 of file rpmrpc.c.
References _chroot_prefix, _rpmio_debug, errno, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by db_init().
| DIR* Opendir | ( | const char * | path | ) |
opendir(3) clone.
Definition at line 1738 of file rpmrpc.c.
References _rpmio_debug, ftpOpendir(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by Fts_open(), and Glob().
| struct direct* Readdir | ( | DIR * | dir | ) | [read] |
readdir(3) clone.
Definition at line 1765 of file rpmrpc.c.
References _rpmio_debug.
Referenced by Fts_open(), and Glob().
| int Readlink | ( | const char * | path, | |
| char * | buf, | |||
| size_t | bufsiz | |||
| ) |
readlink(2) clone.
Definition at line 1589 of file rpmrpc.c.
References _rpmio_debug, errno, ftpReadlink(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by fsmStage(), genCpioListAndHeader(), rpmVerifyFile(), and statFormat().
| char* Realpath | ( | const char * | path, | |
| char * | resolved_path | |||
| ) |
realpath(3) clone.
Definition at line 1787 of file rpmrpc.c.
References _free(), _rpmio_debug, ftpRealpath(), PATH_MAX, realpath(), rpmExpand(), rpmGetPath(), URL_IS_DASH, URL_IS_FTP, URL_IS_PATH, URL_IS_UNKNOWN, urlPath(), and xstrdup().
Referenced by rpmReadHeader().
| int Rename | ( | const char * | oldpath, | |
| const char * | newpath | |||
| ) |
rename(2) clone.
Definition at line 220 of file rpmrpc.c.
References _rpmio_debug, ftpRename(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, urlPath(), and xstrncasecmp().
Referenced by fsmStage().
| int Rmdir | ( | const char * | path | ) |
rmdir(2) clone.
Definition at line 119 of file rpmrpc.c.
References ftpRmdir(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by fsmStage(), and rpmdbRebuild().
| int Stat | ( | const char * | path, | |
| struct stat * | st | |||
| ) |
stat(2) clone.
Definition at line 1321 of file rpmrpc.c.
References _rpmio_debug, errno, ftpStat(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by db3open(), fsmStage(), Fts_open(), Glob(), packageBinaries(), processSourceFiles(), rpmdsSysinfo(), rpmioFileExists(), rpmioMkpath(), and rpmMkdirPath().
| static const char* statstr | ( | const struct stat * | st, | |
| char * | buf | |||
| ) | [static] |
| int Symlink | ( | const char * | oldpath, | |
| const char * | newpath | |||
| ) |
symlink(3) clone.
Definition at line 1559 of file rpmrpc.c.
References _rpmio_debug, errno, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by fsmStage().
| int Unlink | ( | const char * | path | ) |
unlink(2) clone.
Definition at line 317 of file rpmrpc.c.
References ftpUnlink(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by build(), checkSpec(), db3open(), fsmStage(), rpmdbExportInfo(), rpmdbRemoveDatabase(), rpmInstall(), rpmtsRollback(), urlGetFile(), and writeRPM().
| int Utime | ( | const char * | path, | |
| const struct utimbuf * | buf | |||
| ) |
utime(2) clone.
Definition at line 1505 of file rpmrpc.c.
References _rpmio_debug, errno, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
Referenced by fsmStage(), and rpmdbExportInfo().
| int Utimes | ( | const char * | path, | |
| const struct timeval | times[2] | |||
| ) |
Definition at line 1532 of file rpmrpc.c.
References _rpmio_debug, errno, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
| static int vfs_parse_filedate | ( | int | idx, | |
| time_t * | t | |||
| ) | [static] |
Definition at line 574 of file rpmrpc.c.
References columns, current_mday, current_mon, current_year, is_dos_date(), is_month(), is_num(), is_time(), is_week(), and is_year().
Referenced by vfs_parse_ls_lga().
| static int vfs_parse_filemode | ( | const char * | p | ) | [static] |
| static int vfs_parse_filetype | ( | char | c | ) | [static] |
| static int vfs_parse_ls_lga | ( | char * | p, | |
| struct stat * | st, | |||
| const char ** | filename, | |||
| const char ** | linkname | |||
| ) | [static] |
Definition at line 685 of file rpmrpc.c.
References column_ptr, columns, g_free, g_strdup, gnameToGid(), is_dos_date(), is_month(), is_num(), is_week(), S_ISLNK, unameToUid(), vfs_parse_filedate(), vfs_parse_filemode(), vfs_parse_filetype(), vfs_split_text(), and xmalloc().
Referenced by ftpNLST().
| static int vfs_split_text | ( | char * | p | ) | [static] |
Definition at line 364 of file rpmrpc.c.
References column_ptr, columns, and MAXCOLS.
Referenced by vfs_parse_ls_lga().
| const char* _chroot_prefix = NULL |
int column_ptr[30] [static] |
char* columns[30] [static] |
Definition at line 358 of file rpmrpc.c.
Referenced by is_num(), vfs_parse_filedate(), vfs_parse_ls_lga(), and vfs_split_text().
int current_mday [static] |
int current_mon [static] |
int current_year [static] |
int ftp_st_ino = 0xdead0000 [static] |
char* ftpBuf = NULL [static] |
size_t ftpBufAlloced = 0 [static] |
1.5.7.1