rpmrpc.c   rpmrpc.c 
skipping to change at line 910 skipping to change at line 910
if (((S_ISLNK (st->st_mode) || if (((S_ISLNK (st->st_mode) ||
(num_cols == idx + 3 && st->st_nlink > 1))) /* Maybe a hardlink? (i n extfs) */ (num_cols == idx + 3 && st->st_nlink > 1))) /* Maybe a hardlink? (i n extfs) */
&& idx2) && idx2)
{ {
size_t tlen; size_t tlen;
char *t; char *t;
if (filename){ if (filename){
size_t nb = column_ptr [idx2] - column_ptr [idx] - 1; size_t nb = column_ptr [idx2] - column_ptr [idx] - 1;
t = strncpy(xcalloc(1, nb+1), p_copy + column_ptr [idx], nb); t = strncpy((char *)xcalloc(1, nb+1), p_copy + column_ptr [idx], nb);
*filename = t; *filename = t;
} }
if (linkname){ if (linkname){
t = g_strdup (p_copy + column_ptr [idx2+1]); t = g_strdup (p_copy + column_ptr [idx2+1]);
tlen = strlen (t); tlen = strlen (t);
if (t [tlen-1] == '\r' || t [tlen-1] == '\n') if (t [tlen-1] == '\r' || t [tlen-1] == '\n')
t [tlen-1] = '\0'; t [tlen-1] = '\0';
if (t [tlen-2] == '\r' || t [tlen-2] == '\n') if (t [tlen-2] == '\r' || t [tlen-2] == '\n')
t [tlen-2] = '\0'; t [tlen-2] = '\0';
skipping to change at line 986 skipping to change at line 986
/** /**
*/ */
static size_t ftpBufAlloced; static size_t ftpBufAlloced;
/** /**
*/ */
/*@only@*/ /*@relnull@*/ /*@only@*/ /*@relnull@*/
static char * ftpBuf; static char * ftpBuf;
#define alloca_strdup(_s) strcpy(alloca(strlen(_s)+1), (_s)) #define alloca_strdup(_s) strcpy((char *)alloca(strlen(_s)+1), (_s))
static int ftpNLST(const char * url, ftpSysCall_t ftpSysCall, static int ftpNLST(const char * url, ftpSysCall_t ftpSysCall,
/*@out@*/ /*@null@*/ struct stat * st, /*@out@*/ /*@null@*/ struct stat * st,
/*@out@*/ /*@null@*/ char * rlbuf, size_t rlbufsiz) /*@out@*/ /*@null@*/ char * rlbuf, size_t rlbufsiz)
/*@globals ftpBufAlloced, ftpBuf, /*@globals ftpBufAlloced, ftpBuf,
h_errno, fileSystem, internalState @*/ h_errno, fileSystem, internalState @*/
/*@modifies *st, *rlbuf, ftpBufAlloced, ftpBuf, /*@modifies *st, *rlbuf, ftpBufAlloced, ftpBuf,
fileSystem, internalState @*/ fileSystem, internalState @*/
{ {
FD_t fd; FD_t fd;
skipping to change at line 1023 skipping to change at line 1023
switch (ftpSysCall) { switch (ftpSysCall) {
case DO_FTP_GLOB: case DO_FTP_GLOB:
fd = ftpOpen(url, 0, 0, &u); fd = ftpOpen(url, 0, 0, &u);
if (fd == NULL || u == NULL) if (fd == NULL || u == NULL)
return -1; return -1;
u->openError = ftpReq(fd, "LIST", path); u->openError = ftpReq(fd, "LIST", path);
break; break;
default: default:
urldn = alloca_strdup(url); urldn = alloca_strdup(url);
if ((bn = strrchr(urldn, '/')) == NULL) if ((bn = (char *) strrchr(urldn, '/')) == NULL)
return -2; return -2;
else if (bn == path) else if (bn == path)
bn = "."; bn = (char *) ".";
else else
*bn++ = '\0'; *bn++ = '\0';
nbn = strlen(bn); nbn = strlen(bn);
rc = ftpChdir(urldn); /* XXX don't care about CWD */ rc = ftpChdir(urldn); /* XXX don't care about CWD */
if (rc < 0) if (rc < 0)
return rc; return rc;
fd = ftpOpen(url, 0, 0, &u); fd = ftpOpen(url, 0, 0, &u);
if (fd == NULL || u == NULL) if (fd == NULL || u == NULL)
skipping to change at line 1057 skipping to change at line 1057
} }
if (u->openError < 0) { if (u->openError < 0) {
fd = fdLink(fd, "error data (ftpStat)"); fd = fdLink(fd, "error data (ftpStat)");
rc = -2; rc = -2;
goto exit; goto exit;
} }
if (ftpBufAlloced == 0 || ftpBuf == NULL) { if (ftpBufAlloced == 0 || ftpBuf == NULL) {
ftpBufAlloced = _url_iobuf_size; ftpBufAlloced = _url_iobuf_size;
ftpBuf = xcalloc(ftpBufAlloced, sizeof(ftpBuf[0])); ftpBuf = (char *) xcalloc(ftpBufAlloced, sizeof(ftpBuf[0]));
} }
*ftpBuf = '\0'; *ftpBuf = '\0';
bufLength = 0; bufLength = 0;
moretodo = 1; moretodo = 1;
do { do {
/* XXX FIXME: realloc ftpBuf if < ~128 chars remain */ /* XXX FIXME: realloc ftpBuf if < ~128 chars remain */
if ((ftpBufAlloced - bufLength) < (1024+80)) { if ((ftpBufAlloced - bufLength) < (1024+80)) {
ftpBufAlloced <<= 2; ftpBufAlloced <<= 2;
assert(ftpBufAlloced < (8*1024*1024)); assert(ftpBufAlloced < (8*1024*1024));
ftpBuf = xrealloc(ftpBuf, ftpBufAlloced); ftpBuf = (char *) xrealloc(ftpBuf, ftpBufAlloced);
} }
s = se = ftpBuf + bufLength; s = se = ftpBuf + bufLength;
*se = '\0'; *se = '\0';
rc = fdFgets(fd, se, (ftpBufAlloced - bufLength)); rc = fdFgets(fd, se, (ftpBufAlloced - bufLength));
if (rc <= 0) { if (rc <= 0) {
moretodo = 0; moretodo = 0;
break; break;
} }
if (ftpSysCall == DO_FTP_GLOB) { /* XXX HACK */ if (ftpSysCall == DO_FTP_GLOB) { /* XXX HACK */
skipping to change at line 1269 skipping to change at line 1269
struct stat * st = NULL; struct stat * st = NULL;
const char * s, * sb, * se; const char * s, * sb, * se;
int nac; int nac;
int c; int c;
int rc; int rc;
if (_ftp_debug) if (_ftp_debug)
fprintf(stderr, "*** ftpOpendir(%s)\n", path); fprintf(stderr, "*** ftpOpendir(%s)\n", path);
/* Load FTP collection into argv. */ /* Load FTP collection into argv. */
avx = rpmavxNew(path, st); avx = (rpmavx) rpmavxNew(path, st);
if (avx == NULL) { if (avx == NULL) {
errno = ENOENT; /* Note: avx is NULL iff urlSplit() fails. */ errno = ENOENT; /* Note: avx is NULL iff urlSplit() fails. */
return NULL; return NULL;
} }
rc = ftpNLST(path, DO_FTP_GLOB, NULL, NULL, 0); rc = ftpNLST(path, DO_FTP_GLOB, NULL, NULL, 0);
if (rc) if (rc)
return NULL; return NULL;
nac = 0; nac = 0;
skipping to change at line 1303 skipping to change at line 1303
if (*se == '\n') se++; if (*se == '\n') se++;
sb = NULL; sb = NULL;
s = se; s = se;
/*@switchbreak@*/ break; /*@switchbreak@*/ break;
default: default:
/*@switchbreak@*/ break; /*@switchbreak@*/ break;
} }
} }
avx->av = xcalloc(nac+1, sizeof(*avx->av)); avx->av = (const char **) xcalloc(nac+1, sizeof(*avx->av));
avx->modes = xcalloc(nac, sizeof(*avx->modes)); avx->modes = (rpmuint16_t *) xcalloc(nac, sizeof(*avx->modes));
nac = 0; nac = 0;
sb = NULL; sb = NULL;
s = se = ftpBuf; s = se = ftpBuf;
while ((c = (int) *se) != (int) '\0') { while ((c = (int) *se) != (int) '\0') {
se++; se++;
switch (c) { switch (c) {
case '/': case '/':
sb = se; sb = se;
/*@switchbreak@*/ break; /*@switchbreak@*/ break;
skipping to change at line 1333 skipping to change at line 1333
case 'b': avx->modes[nac] |= S_IFBLK; /*@innerbreak@*/ break ; case 'b': avx->modes[nac] |= S_IFBLK; /*@innerbreak@*/ break ;
case '-': avx->modes[nac] |= S_IFREG; /*@innerbreak@*/ break ; case '-': avx->modes[nac] |= S_IFREG; /*@innerbreak@*/ break ;
case 'l': avx->modes[nac] |= S_IFLNK; /*@innerbreak@*/ break ; case 'l': avx->modes[nac] |= S_IFLNK; /*@innerbreak@*/ break ;
case 's': avx->modes[nac] |= S_IFSOCK; /*@innerbreak@*/ brea k; case 's': avx->modes[nac] |= S_IFSOCK; /*@innerbreak@*/ brea k;
default: avx->modes[nac] |= S_IFREG; /*@innerbreak@*/ break ; default: avx->modes[nac] |= S_IFREG; /*@innerbreak@*/ break ;
} }
/*@=unrecog@*/ /*@=unrecog@*/
for (sb = se; sb > s && sb[-1] != ' '; sb--) for (sb = se; sb > s && sb[-1] != ' '; sb--)
{}; {};
} }
avx->av[nac++] = strncpy(xcalloc(1, (se-sb-1)+1), sb, (se-sb-1)) ; avx->av[nac++] = strncpy((char *)xcalloc(1, (se-sb-1)+1), sb, (s e-sb-1));
if (*se == '\n') se++; if (*se == '\n') se++;
sb = NULL; sb = NULL;
s = se; s = se;
/*@switchbreak@*/ break; /*@switchbreak@*/ break;
default: default:
/*@switchbreak@*/ break; /*@switchbreak@*/ break;
} }
} }
avdir = (AVDIR) avOpendir(path, avx->av, avx->modes); avdir = (AVDIR) avOpendir(path, avx->av, avx->modes);
skipping to change at line 2279 skipping to change at line 2279
int Glob_error(/*@unused@*/ const char * epath, int Glob_error(/*@unused@*/ const char * epath,
/*@unused@*/ int eerrno) /*@unused@*/ int eerrno)
{ {
return 1; return 1;
} }
int Glob(const char *pattern, int flags, int Glob(const char *pattern, int flags,
int errfunc(const char * epath, int eerrno), void *_pglob) int errfunc(const char * epath, int eerrno), void *_pglob)
{ {
glob_t *pglob = _pglob; glob_t *pglob = (glob_t *) _pglob;
const char * lpath; const char * lpath;
int ut = urlPath(pattern, &lpath); int ut = urlPath(pattern, &lpath);
const char *home = getenv("HOME"); const char *home = getenv("HOME");
/*@-castfcnptr@*/ /*@-castfcnptr@*/
if (_rpmio_debug) if (_rpmio_debug)
fprintf(stderr, "*** Glob(%s,0x%x,%p,%p)\n", pattern, (unsigned)flags, (voi d *)errfunc, pglob); fprintf(stderr, "*** Glob(%s,0x%x,%p,%p)\n", pattern, (unsigned)flags, (voi d *)errfunc, pglob);
/*@=castfcnptr@*/ /*@=castfcnptr@*/
switch (ut) { switch (ut) {
case URL_IS_HTTPS: case URL_IS_HTTPS:
case URL_IS_HTTP: case URL_IS_HTTP:
case URL_IS_FTP: case URL_IS_FTP:
/*@-type@*/ /*@-type@*/
pglob->gl_closedir = (void *) Closedir; pglob->gl_closedir = (void (*)(void *)) Closedir;
pglob->gl_readdir = (void *) Readdir; pglob->gl_readdir = (struct dirent * (*)(void *)) Readdir;
pglob->gl_opendir = (void *) Opendir; pglob->gl_opendir = (void * (*)(const char *)) Opendir;
pglob->gl_lstat = Lstat; pglob->gl_lstat = Lstat;
pglob->gl_stat = Stat; pglob->gl_stat = Stat;
/*@=type@*/ /*@=type@*/
flags |= GLOB_ALTDIRFUNC; flags |= GLOB_ALTDIRFUNC;
flags &= ~GLOB_TILDE; flags &= ~GLOB_TILDE;
break; break;
case URL_IS_PATH: case URL_IS_PATH:
pattern = lpath; pattern = lpath;
/*@fallthrough@*/ /*@fallthrough@*/
case URL_IS_UNKNOWN: case URL_IS_UNKNOWN:
skipping to change at line 2323 skipping to change at line 2323
case URL_IS_MONGO: /* XXX FIXME */ case URL_IS_MONGO: /* XXX FIXME */
default: default:
return -2; return -2;
/*@notreached@*/ break; /*@notreached@*/ break;
} }
return glob(pattern, flags, errfunc, pglob); return glob(pattern, flags, errfunc, pglob);
} }
void Globfree(void *_pglob) void Globfree(void *_pglob)
{ {
glob_t *pglob = _pglob; glob_t *pglob = (glob_t *) _pglob;
if (_rpmio_debug) if (_rpmio_debug)
fprintf(stderr, "*** Globfree(%p)\n", pglob); fprintf(stderr, "*** Globfree(%p)\n", pglob);
globfree(pglob); globfree(pglob);
} }
char * Realpath(const char * path, /*@null@*/ char * resolved_path) char * Realpath(const char * path, /*@null@*/ char * resolved_path)
{ {
const char * lpath; const char * lpath;
int ut = urlPath(path, &lpath); int ut = urlPath(path, &lpath);
char * rpath = NULL; char * rpath = NULL;
 End of changes. 12 change blocks. 
15 lines changed or deleted 15 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/