rpm  5.4.14
Macros | Functions | Variables
rpmrpc.c File Reference
#include "system.h"
#include <rpmio_internal.h>
#include <rpmmacro.h>
#include <rpmdir.h>
#include <rpmdav.h>
#include <rpmhash.h>
#include <ugid.h>
#include "debug.h"
Include dependency graph for rpmrpc.c:

Go to the source code of this file.

Macros

#define _RPMDIR_INTERNAL
 
#define _RPMDAV_INTERNAL
 
#define g_strdup   xstrdup
 
#define g_free   free
 
#define MAXCOLS   30
 
#define alloca_strdup(_s)   strcpy((char *)alloca(strlen(_s)+1), (_s))
 

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. More...
 
int Chdir (const char *path)
 chdir(2) clone. More...
 
int Rmdir (const char *path)
 rmdir(2) clone. More...
 
int Chroot (const char *path)
 chroot(2) clone. More...
 
int Open (const char *path, int flags, mode_t mode)
 open(2) clone. More...
 
int Rename (const char *oldpath, const char *newpath)
 rename(2) clone. More...
 
int Link (const char *oldpath, const char *newpath)
 link(2) clone. More...
 
int Unlink (const char *path)
 unlink(2) clone. More...
 
 for (numcols=0;*p &&numcols< 30;numcols++)
 
 if (str!=NULL &&(pos=strstr(week, str))!=NULL)
 
static int is_year (const char *str, struct tm *tim)
 
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)
 
DIR * ftpOpendir (const char *path)
 Create an argv directory from an ftp:// URI. More...
 
static char * ftpRealpath (const char *path, char *resolved_path)
 
int Stat (const char *path, struct stat *st)
 stat(2) clone. More...
 
int Lstat (const char *path, struct stat *st)
 lstat(2) clone. More...
 
int Fstat (FD_t fd, struct stat *st)
 fstat(2) clone. More...
 
int Fadvise (FD_t fd, off_t offset, off_t len, int advice)
 posix_fadvise(2) clone. More...
 
int Fallocate (FD_t fd, off_t offset, off_t len)
 posix_fallocate(3)/fallocate(2) clone. More...
 
int Chown (const char *path, uid_t owner, gid_t group)
 chown(2) clone. More...
 
int Fchown (FD_t fd, uid_t owner, gid_t group)
 fchown(2) clone. More...
 
int Lchown (const char *path, uid_t owner, gid_t group)
 lchown(2) clone. More...
 
int Chmod (const char *path, mode_t mode)
 chmod(2) clone. More...
 
int Lchmod (const char *path, mode_t mode)
 lchmod(2) clone. More...
 
int Fchmod (FD_t fd, mode_t mode)
 fchmod(2) clone. More...
 
int Chflags (const char *path, unsigned int flags)
 chflags(2) clone. More...
 
int Lchflags (const char *path, unsigned int flags)
 lchflags(2) clone. More...
 
int Fchflags (FD_t fd, unsigned int flags)
 fchflags(2) clone. More...
 
int Mkfifo (const char *path, mode_t mode)
 mkfifo(3) clone. More...
 
int Mknod (const char *path, mode_t mode, dev_t dev)
 mknod(3) clone. More...
 
int Utime (const char *path, const struct utimbuf *buf)
 
int Utimes (const char *path, const struct timeval times[2])
 
int Lutimes (const char *path, const struct timeval times[2])
 
int Symlink (const char *oldpath, const char *newpath)
 symlink(3) clone. More...
 
int Readlink (const char *path, char *buf, size_t bufsiz)
 readlink(2) clone. More...
 
int Access (const char *path, int amode)
 access(2) clone. More...
 
int Glob_pattern_p (const char *pattern, int quote)
 glob_pattern_p(3) clone. More...
 
int Glob_error (const char *epath, int eerrno)
 glob_error(3) clone. More...
 
int Glob (const char *pattern, int flags, int errfunc(const char *epath, int eerrno), void *_pglob)
 glob(3) clone. More...
 
void Globfree (void *_pglob)
 globfree(3) clone. More...
 
char * Realpath (const char *path, char *resolved_path)
 realpath(3) clone. More...
 
off_t Lseek (int fdno, off_t offset, int whence)
 lseek(2) clone. More...
 

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 int
 
int numcols
 
 return
 
const char * pos
 
static size_t ftpBufAlloced
 
static char * ftpBuf
 

Macro Definition Documentation

#define _RPMDAV_INTERNAL

Definition at line 12 of file rpmrpc.c.

#define _RPMDIR_INTERNAL

Definition at line 10 of file rpmrpc.c.

#define alloca_strdup (   _s)    strcpy((char *)alloca(strlen(_s)+1), (_s))

Definition at line 987 of file rpmrpc.c.

Referenced by ftpNLST().

#define g_free   free

Definition at line 435 of file rpmrpc.c.

#define g_strdup   xstrdup

Definition at line 434 of file rpmrpc.c.

#define MAXCOLS   30

Definition at line 448 of file rpmrpc.c.

Function Documentation

int Access ( const char *  path,
int  amode 
)
int Chdir ( const char *  path)
int Chflags ( const char *  path,
unsigned int  flags 
)

chflags(2) clone.

Todo:
Implement remotely.

Definition at line 1861 of file rpmrpc.c.

References _rpmio_debug, errno, fprintf(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

int Chmod ( const char *  path,
mode_t  mode 
)

chmod(2) clone.

Todo:
Implement remotely.

Definition at line 1765 of file rpmrpc.c.

References _rpmio_debug, errno, exit, fprintf(), rc, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by iosmStage().

int Chown ( const char *  path,
uid_t  owner,
gid_t  group 
)

chown(2) clone.

Todo:
Implement remotely.

Definition at line 1674 of file rpmrpc.c.

References _rpmio_debug, errno, exit, fprintf(), rc, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by createDir(), iosmStage(), and rpmioMkpath().

int Chroot ( const char *  path)
int Fadvise ( FD_t  fd,
off_t  offset,
off_t  len,
int  advice 
)

posix_fadvise(2) clone.

Definition at line 1495 of file rpmrpc.c.

References _, _rpmio_debug, fdGetOPath(), fdno, Fileno(), fprintf(), NULL, path, rc, rpmlog(), RPMLOG_DEBUG, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by iosmStage(), rpmgiOpen(), and rpmShowProgress().

int Fallocate ( FD_t  fd,
off_t  offset,
off_t  len 
)

posix_fallocate(3)/fallocate(2) clone.

Definition at line 1548 of file rpmrpc.c.

References _, _rpmio_debug, fdGetOPath(), fdno, Fileno(), fprintf(), int, NULL, offset, path, rc, rpmlog(), RPMLOG_DEBUG, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

int Fchflags ( FD_t  fd,
unsigned int  flags 
)

fchflags(2) clone.

Todo:
Implement remotely.

Definition at line 1927 of file rpmrpc.c.

References _rpmio_debug, errno, fdGetOPath(), Fileno(), fprintf(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

int Fchmod ( FD_t  fd,
mode_t  mode 
)

fchmod(2) clone.

Todo:
Implement remotely.

Definition at line 1830 of file rpmrpc.c.

References _rpmio_debug, errno, exit, fdGetOPath(), Fileno(), fprintf(), rc, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

int Fchown ( FD_t  fd,
uid_t  owner,
gid_t  group 
)

fchown(2) clone.

Todo:
Implement remotely.

Definition at line 1704 of file rpmrpc.c.

References _rpmio_debug, errno, exit, fdGetOPath(), Fileno(), fprintf(), rc, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

for ( )

Definition at line 464 of file rpmrpc.c.

References column_ptr, columns, numcols, and p.

int Fstat ( FD_t  fd,
struct stat *  st 
)
static int ftpChdir ( const char *  path)
static

Definition at line 41 of file rpmrpc.c.

References ftpCmd(), and NULL.

Referenced by Chdir(), and ftpNLST().

static int ftpLstat ( const char *  path,
struct stat *  st 
)
static

Definition at line 1225 of file rpmrpc.c.

References _ftp_debug, buf, fprintf(), ftpNLST(), hashFunctionString(), NULL, rc, and statstr().

Referenced by Lstat().

static int ftpMkdir ( const char *  path,
mode_t  mode 
)
static

Definition at line 25 of file rpmrpc.c.

References buf, ftpCmd(), NULL, rc, sprintf(), and void.

Referenced by Mkdir().

static int ftpNLST ( const char *  url,
ftpSysCall_t  ftpSysCall,
struct stat *  st,
char *  rlbuf,
size_t  rlbufsiz 
)
static
DIR* ftpOpendir ( const char *  path)

Create an argv directory from an ftp:// URI.

Parameters
pathftp:// directory path
Returns
argv DIR

Definition at line 1254 of file rpmrpc.c.

References _ftp_debug, c, errno, fprintf(), ftpBuf, ftpNLST(), NULL, rc, s, S_IFSOCK, se, strncpy(), and xcalloc().

static int ftpReadlink ( const char *  path,
char *  buf,
size_t  bufsiz 
)
static

Definition at line 1243 of file rpmrpc.c.

References _ftp_debug, fprintf(), ftpNLST(), NULL, and rc.

Referenced by Readlink().

static char* ftpRealpath ( const char *  path,
char *  resolved_path 
)
static

Definition at line 1353 of file rpmrpc.c.

References assert(), NULL, and xstrdup().

Referenced by Realpath().

static int ftpRename ( const char *  oldpath,
const char *  newpath 
)
static

Definition at line 55 of file rpmrpc.c.

References ftpCmd(), NULL, and rc.

Referenced by Rename().

static int ftpRmdir ( const char *  path)
static

Definition at line 48 of file rpmrpc.c.

References ftpCmd(), and NULL.

Referenced by Rmdir().

static int ftpStat ( const char *  path,
struct stat *  st 
)
static

Definition at line 1206 of file rpmrpc.c.

References _ftp_debug, buf, fprintf(), ftpNLST(), hashFunctionString(), NULL, rc, and statstr().

Referenced by Stat().

static int ftpUnlink ( const char *  path)
static

Definition at line 65 of file rpmrpc.c.

References ftpCmd(), and NULL.

Referenced by Unlink().

int Glob ( const char *  pattern,
int  flags,
int   errfuncconst char *epath, int eerrno,
void _pglob 
)
int Glob_error ( const char *  epath,
int  eerrno 
)

glob_error(3) clone.

Definition at line 2271 of file rpmrpc.c.

Referenced by rpmGlob().

int Glob_pattern_p ( const char *  pattern,
int  quote 
)
void Globfree ( void _pglob)

globfree(3) clone.

Definition at line 2322 of file rpmrpc.c.

References _rpmio_debug, fprintf(), and globfree().

Referenced by rpmGlob().

if ( str!  = NULL && (pos=strstr(week, str)) != NULL)

Definition at line 504 of file rpmrpc.c.

References NULL.

static int is_year ( const char *  str,
struct tm *  tim 
)
static

Definition at line 550 of file rpmrpc.c.

References int, and NULL.

int Lchflags ( const char *  path,
unsigned int  flags 
)

lchflags(2) clone.

Todo:
Implement remotely.

Definition at line 1893 of file rpmrpc.c.

References _rpmio_debug, errno, fprintf(), rc, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

int Lchmod ( const char *  path,
mode_t  mode 
)

lchmod(2) clone.

Todo:
Implement remotely.

Definition at line 1795 of file rpmrpc.c.

References _rpmio_debug, errno, exit, fprintf(), rc, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

int Lchown ( const char *  path,
uid_t  owner,
gid_t  group 
)

lchown(2) clone.

Todo:
Implement remotely.

Definition at line 1735 of file rpmrpc.c.

References _rpmio_debug, errno, exit, fprintf(), lchown, rc, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by iosmStage().

int Link ( const char *  oldpath,
const char *  newpath 
)
off_t Lseek ( int  fdno,
off_t  offset,
int  whence 
)

lseek(2) clone.

Todo:
Implement SEEK_HOLE/SEEK_DATA.

Definition at line 2417 of file rpmrpc.c.

References _rpmio_debug, and fprintf().

int Lstat ( const char *  path,
struct stat *  st 
)
int Lutimes ( const char *  path,
const struct timeval  times[2] 
)
int Mkdir ( const char *  path,
mode_t  mode 
)
int Mkfifo ( const char *  path,
mode_t  mode 
)

mkfifo(3) clone.

Todo:
Implement remotely.

Definition at line 1959 of file rpmrpc.c.

References _rpmio_debug, errno, exit, fprintf(), rc, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by iosmStage().

int Mknod ( const char *  path,
mode_t  mode,
dev_t  dev 
)

mknod(3) clone.

Todo:
Implement remotely.

Definition at line 1989 of file rpmrpc.c.

References _rpmio_debug, errno, exit, fprintf(), rc, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by iosmStage().

int Open ( const char *  path,
int  flags,
mode_t  mode 
)

open(2) clone.

Todo:
Implement remotely.

Definition at line 219 of file rpmrpc.c.

References _chroot_prefix, _free(), _rpmio_debug, errno, fdno, fn, fprintf(), nb, NULL, rpmExpand(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, urlPath(), and void.

Referenced by db_init().

int Readlink ( const char *  path,
char *  buf,
size_t  bufsiz 
)
char* Realpath ( const char *  path,
char *  resolved_path 
)
int Rename ( const char *  oldpath,
const char *  newpath 
)
int Rmdir ( const char *  path)
int Stat ( const char *  path,
struct stat *  st 
)
static const char* statstr ( const struct stat *  st,
char *  buf 
)
static

Definition at line 1180 of file rpmrpc.c.

References buf, and sprintf().

Referenced by ftpLstat(), and ftpStat().

int Symlink ( const char *  oldpath,
const char *  newpath 
)

symlink(3) clone.

Todo:
Implement remotely.

Definition at line 2120 of file rpmrpc.c.

References _rpmio_debug, errno, exit, fprintf(), out, rc, URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_MONGO, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by iosmStage().

int Unlink ( const char *  path)
int Utime ( const char *  path,
const struct utimbuf *  buf 
)
int Utimes ( const char *  path,
const struct timeval  times[2] 
)

Variable Documentation

const char* _chroot_prefix = NULL

Definition at line 174 of file rpmrpc.c.

Referenced by Chroot(), and Open().

int column_ptr[30]
static

Definition at line 453 of file rpmrpc.c.

Referenced by for().

char* columns[30]
static

Definition at line 451 of file rpmrpc.c.

Referenced by for().

int current_mday
static

Definition at line 441 of file rpmrpc.c.

int current_mon
static

Definition at line 443 of file rpmrpc.c.

int current_year
static

Definition at line 445 of file rpmrpc.c.

char* ftpBuf
static

Definition at line 985 of file rpmrpc.c.

Referenced by ftpOpendir().

size_t ftpBufAlloced
static

Definition at line 980 of file rpmrpc.c.

int
static
Initial value:
{
char *original = p
char * p
Definition: macro.c:413

Definition at line 459 of file rpmrpc.c.

return numcols

Definition at line 461 of file rpmrpc.c.

Referenced by for().

const char * pos

Definition at line 501 of file rpmrpc.c.

Referenced by fdSeek(), Fseek(), fsmSetup(), iosmSetup(), and rpmtsAddInstallElement().

return

Definition at line 483 of file rpmrpc.c.