#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 void * | _free (const void *p) |
Wrapper to free(3), hides const compilation noise, permit NULL, return NULL. | |
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 | 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) |
int | Stat (const char *path, struct stat *st) |
stat(2) clone. | |
int | Lstat (const char *path, struct stat *st) |
lstat(2) 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. | |
direct * | Readdir (DIR *dir) |
readdir(3) clone. | |
int | Closedir (DIR *dir) |
closedir(3) clone. | |
Variables | |
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 |
static void* _free | ( | const void * | p | ) | [inline, static] |
int Access | ( | const char * | path, | |
int | amode | |||
) |
access(2) clone.
Definition at line 1375 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, and urlPath().
Referenced by rpmMkdirPath().
int Chdir | ( | const char * | path | ) |
chdir(2) clone.
Definition at line 114 of file rpmrpc.c.
References ftpChdir(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().
int Closedir | ( | DIR * | dir | ) |
closedir(3) clone.
Definition at line 1539 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 1108 of file rpmrpc.c.
References _ftp_debug, DO_FTP_LSTAT, 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 878 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, 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] |
Definition at line 1136 of file rpmrpc.c.
References _ftp_debug, dirent, DO_FTP_GLOB, ftpNLST(), stpcpy(), stpncpy(), and xcalloc().
Referenced by Opendir().
static int ftpReadlink | ( | const char * | path, | |
char * | buf, | |||
size_t | bufsiz | |||
) | [static] |
Definition at line 1123 of file rpmrpc.c.
References _ftp_debug, DO_FTP_READLINK, and ftpNLST().
Referenced by Readlink().
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 1092 of file rpmrpc.c.
References _ftp_debug, DO_FTP_STAT, ftpNLST(), and statstr().
Referenced by Stat().
static int ftpUnlink | ( | const char * | path | ) | [static] |
int Glob | ( | const char * | pattern, | |
int | flags, | |||
int | errfunc(const char *epath, int eerrno), | |||
glob_t * | pglob | |||
) |
glob(3) clone.
Definition at line 1446 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 1405 of file rpmrpc.c.
References urlPath().
Referenced by initGlobs(), processBinaryFile(), and rpmGlob().
void Globfree | ( | glob_t * | pglob | ) |
globfree(3) clone.
Definition at line 1484 of file rpmrpc.c.
References _rpmio_debug.
Referenced by rpmGlob().
static int is_dos_date | ( | const char * | str | ) | [static] |
Definition at line 367 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 395 of file rpmrpc.c.
Referenced by vfs_parse_filedate(), and vfs_parse_ls_lga().
static int is_num | ( | int | idx | ) | [static] |
Definition at line 356 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 378 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 Link | ( | const char * | oldpath, | |
const char * | newpath | |||
) |
link(2) clone.
Definition at line 231 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().
int Lstat | ( | const char * | path, | |
struct stat * | st | |||
) |
lstat(2) clone.
Definition at line 1311 of file rpmrpc.c.
References _rpmio_debug, ftpLstat(), 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 addFile(), checkOwners(), doUntar(), Fts_open(), Glob(), and rpmVerifyFile().
int Mkdir | ( | const char * | path, | |
mode_t | mode | |||
) |
mkdir(2) clone.
Definition at line 85 of file rpmrpc.c.
References ftpMkdir(), 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 packageBinaries(), rpmdbRebuild(), rpmioMkpath(), and rpmMkdirPath().
DIR* Opendir | ( | const char * | path | ) |
opendir(3) clone.
Definition at line 1491 of file rpmrpc.c.
References _rpmio_debug, ftpOpendir(), 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 Fts_open(), and Glob().
struct direct* Readdir | ( | DIR * | dir | ) | [read] |
readdir(3) clone.
Definition at line 1524 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 1342 of file rpmrpc.c.
References ftpReadlink(), 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 genCpioListAndHeader(), and rpmVerifyFile().
int Rename | ( | const char * | oldpath, | |
const char * | newpath | |||
) |
rename(2) clone.
Definition at line 176 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().
int Rmdir | ( | const char * | path | ) |
rmdir(2) clone.
Definition at line 145 of file rpmrpc.c.
References ftpRmdir(), 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().
int Stat | ( | const char * | path, | |
struct stat * | st | |||
) |
stat(2) clone.
Definition at line 1280 of file rpmrpc.c.
References _rpmio_debug, ftpStat(), 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 buildForTarget(), Fts_open(), ftsStashLatest(), Glob(), packageBinaries(), processSourceFiles(), rpmioFileExists(), rpmioMkpath(), and rpmMkdirPath().
static const char* statstr | ( | const struct stat * | st, | |
char * | buf | |||
) | [static] |
int Unlink | ( | const char * | path | ) |
unlink(2) clone.
Definition at line 279 of file rpmrpc.c.
References ftpUnlink(), 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 buildForTarget(), doRmSource(), doScript(), urlGetFile(), and writeRPM().
static int vfs_parse_filedate | ( | int | idx, | |
time_t * | t | |||
) | [static] |
Definition at line 542 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().
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 653 of file rpmrpc.c.
References columns, g_free, g_strdup, gnameToGid(), is_dos_date(), is_month(), is_num(), is_week(), unameToUid(), vfs_parse_filemode(), vfs_parse_filetype(), and vfs_split_text().
Referenced by ftpNLST().
static int vfs_split_text | ( | char * | p | ) | [static] |
Definition at line 332 of file rpmrpc.c.
References column_ptr, columns, and MAXCOLS.
Referenced by vfs_parse_ls_lga().
int column_ptr[30] [static] |
char* columns[30] [static] |
Definition at line 326 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] |
size_t ftpBufAlloced = 0 [static] |