RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Anders F. Björklund Root: /v/rpm/cvs Email: a...@rpm5.org Module: rpm Date: 09-Jan-2010 23:03:34 Branch: HEAD Handle: 2010010922033300 Modified files: rpm configure.ac rpm/rpmio librpmio.vers rpmio-stub.c rpmio-stub.h rpmio.h rpmrpc.c Log: add lutimes to rpmio Summary: Revision Changes Path 2.425 +1 -1 rpm/configure.ac 2.149 +2 -0 rpm/rpmio/librpmio.vers 2.11 +1 -0 rpm/rpmio/rpmio-stub.c 2.8 +1 -0 rpm/rpmio/rpmio-stub.h 1.95 +8 -0 rpm/rpmio/rpmio.h 2.97 +36 -0 rpm/rpmio/rpmrpc.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/configure.ac ============================================================================ $ cvs diff -u -r2.424 -r2.425 configure.ac --- rpm/configure.ac 6 Jan 2010 07:27:49 -0000 2.424 +++ rpm/configure.ac 9 Jan 2010 22:03:33 -0000 2.425 @@ -784,7 +784,7 @@ asprintf basename chflags clearenv confstr fallocate fchflags fchmod dnl ftok getaddrinfo getattrlist getcwd getdelim getline getmode getnameinfo dnl getpassphrase getxattr getwd iconv inet_aton lchflags lchmod lchown dnl - lgetxattr lsetxattr madvise mempcpy mkdtemp mkstemp mtrace dnl + lgetxattr lsetxattr lutimes madvise mempcpy mkdtemp mkstemp mtrace dnl posix_fallocate putenv realpath regcomp __secure_getenv setattrlist dnl setenv setlocale setmode setproctitle setxattr sigaddset sigdelset dnl sigemptyset sighold sigrelse sigpause sigprocmask sigsuspend sigaction dnl @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/librpmio.vers ============================================================================ $ cvs diff -u -r2.148 -r2.149 librpmio.vers --- rpm/rpmio/librpmio.vers 24 Dec 2009 16:23:50 -0000 2.148 +++ rpm/rpmio/librpmio.vers 9 Jan 2010 22:03:33 -0000 2.149 @@ -175,6 +175,8 @@ _Lseek; Lstat; _Lstat; + Lutimes; + _Lutimes; lzdio; max_macro_depth; _max_load_depth; @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmio-stub.c ============================================================================ $ cvs diff -u -r2.10 -r2.11 rpmio-stub.c --- rpm/rpmio/rpmio-stub.c 6 Sep 2009 17:36:03 -0000 2.10 +++ rpm/rpmio/rpmio-stub.c 9 Jan 2010 22:03:33 -0000 2.11 @@ -62,6 +62,7 @@ int (*_Mknod) (const char * path, mode_t mode, dev_t dev) = Mknod; int (*_Utime) (const char * path, const struct utimbuf * buf) = Utime; int (*_Utimes) (const char * path, const struct timeval * times) = Utimes; +int (*_Lutimes) (const char * path, const struct timeval * times) = Lutimes; int (*_Symlink) (const char * oldpath, const char * newpath) = Symlink; /*...@-type@*/ int (*_Readlink) (const char * path, char * buf, size_t bufsiz) = Readlink; @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmio-stub.h ============================================================================ $ cvs diff -u -r2.7 -r2.8 rpmio-stub.h --- rpm/rpmio/rpmio-stub.h 6 Sep 2009 17:36:03 -0000 2.7 +++ rpm/rpmio/rpmio-stub.h 9 Jan 2010 22:03:33 -0000 2.8 @@ -45,6 +45,7 @@ extern int (*_Mknod) (const char * path, mode_t mode, dev_t dev); extern int (*_Utime) (const char * path, const struct utimbuf * buf); extern int (*_Utimes) (const char * path, const struct timeval * times); +extern int (*_Lutimes) (const char * path, const struct timeval * times); extern int (*_Symlink) (const char * oldpath, const char * newpath); extern int (*_Readlink) (const char * path, char * buf, size_t bufsiz); extern int (*_Access) (const char * path, int amode); @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmio.h ============================================================================ $ cvs diff -u -r1.94 -r1.95 rpmio.h --- rpm/rpmio/rpmio.h 6 Sep 2009 17:36:03 -0000 1.94 +++ rpm/rpmio/rpmio.h 9 Jan 2010 22:03:33 -0000 1.95 @@ -416,6 +416,14 @@ /*...@modifies errno, fileSystem, internalState @*/; /** + * lutimes(2) clone. + * @todo Implement remotely. + */ +int Lutimes(const char * path, const struct timeval * times) + /*...@globals errno, fileSystem, internalState @*/ + /*...@modifies errno, fileSystem, internalState @*/; + +/** * symlink(3) clone. * @todo Implement remotely. */ @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmrpc.c ============================================================================ $ cvs diff -u -r2.96 -r2.97 rpmrpc.c --- rpm/rpmio/rpmrpc.c 6 Jan 2010 23:28:07 -0000 2.96 +++ rpm/rpmio/rpmrpc.c 9 Jan 2010 22:03:33 -0000 2.97 @@ -1996,6 +1996,42 @@ } /*...@=fixedformalarray@*/ +/*...@-fixedformalarray@*/ +int Lutimes(const char * path, const struct timeval times[2]) +{ +#ifdef HAVE_LUTIMES + const char * lpath; + int ut = urlPath(path, &lpath); + int rc = -2; + + switch (ut) { + case URL_IS_PATH: + path = lpath; + /*...@fallthrough@*/ + case URL_IS_UNKNOWN: + break; + case URL_IS_DASH: + case URL_IS_HKP: + case URL_IS_FTP: /* XXX TODO: implement. */ + case URL_IS_HTTPS: /* XXX TODO: implement. */ + case URL_IS_HTTP: /* XXX TODO: implement. */ + default: + errno = EINVAL; /* XXX W2DO? */ + goto exit; + /*...@notreached@*/ break; + } + rc = lutimes(path, times); +exit: +if (_rpmio_debug) +fprintf(stderr, "<-- %s(%s,%p) rc %d\n", __FUNCTION__, path, times, rc); + return rc; +#else + errno = ENOSYS; + return -2; +#endif +} +/*...@=fixedformalarray@*/ + int Symlink(const char * oldpath, const char * newpath) { const char * opath; @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org