RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: [EMAIL PROTECTED]
Module: rpm Date: 02-Mar-2008 02:14:28
Branch: HEAD Handle: 2008030201142700
Modified files:
rpm/rpmio rpmdav.c rpmdav.h
Log:
- jbj: use avContext everywhere.
Summary:
Revision Changes Path
2.65 +17 -77 rpm/rpmio/rpmdav.c
2.26 +2 -0 rpm/rpmio/rpmdav.h
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/rpmio/rpmdav.c
============================================================================
$ cvs diff -u -r2.64 -r2.65 rpmdav.c
--- rpm/rpmio/rpmdav.c 2 Mar 2008 00:48:30 -0000 2.64
+++ rpm/rpmio/rpmdav.c 2 Mar 2008 01:14:27 -0000 2.65
@@ -97,7 +97,7 @@
ctx->mtimes = _free(ctx->mtimes);
ctx->u = urlFree(ctx->u, "avContextDestroy");
ctx->uri = _free(ctx->uri);
- memset(ctx, 0, sizeof(*ctx));
+ memset(ctx, 0, sizeof(*ctx)); /* trash & burn */
ctx = _free(ctx);
return NULL;
}
@@ -722,64 +722,6 @@
}
/* =============================================================== */
-struct fetch_context_s {
-/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/
- struct fetch_resource_s **resrock;
- const char *uri;
- unsigned int include_target; /* Include resource at href */
-/[EMAIL PROTECTED]@*/
- urlinfo u;
- int ac;
- int nalloced;
- ARGV_t av;
-/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/
- struct stat *st;
- mode_t * modes;
- size_t * sizes;
- time_t * mtimes;
-};
-
-/[EMAIL PROTECTED]@*/
-static void *fetch_destroy_context(/[EMAIL PROTECTED]@*/ /[EMAIL
PROTECTED]@*/ struct fetch_context_s *ctx)
- /[EMAIL PROTECTED] internalState @*/
- /[EMAIL PROTECTED] ctx, internalState @*/
-{
- if (ctx == NULL)
- return NULL;
- if (ctx->av != NULL)
- ctx->av = argvFree(ctx->av);
- ctx->modes = _free(ctx->modes);
- ctx->sizes = _free(ctx->sizes);
- ctx->mtimes = _free(ctx->mtimes);
- ctx->u = urlFree(ctx->u, "fetch_destroy_context");
- ctx->uri = _free(ctx->uri);
- memset(ctx, 0, sizeof(*ctx));
- ctx = _free(ctx);
- return NULL;
-}
-
-/[EMAIL PROTECTED]@*/
-static void *fetch_create_context(const char *uri, /[EMAIL PROTECTED]@*/
struct stat *st)
- /[EMAIL PROTECTED] internalState @*/
- /[EMAIL PROTECTED] *st, internalState @*/
-{
- struct fetch_context_s * ctx;
- urlinfo u;
-
-/[EMAIL PROTECTED]@*/ /* FIX: h_errno annoyance. */
- if (urlSplit(uri, &u))
- return NULL;
-/[EMAIL PROTECTED]@*/
-
- ctx = ne_calloc(sizeof(*ctx));
- ctx->uri = xstrdup(uri);
- ctx->u = urlLink(u, "fetch_create_context");
-/[EMAIL PROTECTED]@*/ /* XXX note the assignment */
- if ((ctx->st = st) != NULL)
- memset(ctx->st, 0, sizeof(*ctx->st));
-/[EMAIL PROTECTED]@*/
- return ctx;
-}
/[EMAIL PROTECTED]@*/
/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/
@@ -862,7 +804,7 @@
#endif
/[EMAIL PROTECTED]/
{
- struct fetch_context_s *ctx = userdata;
+ avContext ctx = userdata;
struct fetch_resource_s *current, *previous, *newres;
const char *clength, *modtime, *isexec;
const char *checkin, *checkout;
@@ -884,7 +826,7 @@
if (_dav_debug < 0)
fprintf(stderr, "==> %s in uri %s\n", path, ctx->uri);
- if (ne_path_compare(ctx->uri, path) == 0 && !ctx->include_target) {
+ if (ne_path_compare(ctx->uri, path) == 0) {
/* This is the target URI */
if (_dav_debug < 0)
fprintf(stderr, "==> %s skipping target resource.\n", path);
@@ -952,6 +894,7 @@
newres->is_vcr = 0;
}
+ current = *(struct fetch_resource_s **)ctx->resrock;
for (current = *ctx->resrock, previous = NULL; current != NULL;
previous = current, current = current->next)
{
@@ -963,21 +906,19 @@
previous->next = newres;
} else {
/[EMAIL PROTECTED] @*/
- *ctx->resrock = newres;
+ *(struct fetch_resource_s **)ctx->resrock = newres;
/[EMAIL PROTECTED] @*/
}
newres->next = current;
}
-static int davFetch(const urlinfo u, struct fetch_context_s * ctx)
+static int davFetch(const urlinfo u, avContext ctx)
/[EMAIL PROTECTED] internalState @*/
/[EMAIL PROTECTED] ctx, internalState @*/
{
const char * path = NULL;
int depth = 1; /* XXX passed arg? */
- unsigned int include_target = 0; /* XXX passed arg? */
struct fetch_resource_s * resitem = NULL;
- struct fetch_resource_s ** resrock = &resitem; /* XXX passed arg? */
ne_propfind_handler *pfh;
struct fetch_resource_s *current, *next;
mode_t st_mode;
@@ -989,8 +930,7 @@
/* HACK: need to set RPMURL_SERVER_HASRANGE in u->allow here. */
- ctx->resrock = resrock;
- ctx->include_target = include_target;
+ ctx->resrock = (void **) &resitem;
ne_xml_push_handler(ne_propfind_get_parser(pfh),
fetch_startelm, NULL, NULL, pfh);
@@ -1137,7 +1077,7 @@
return rc;
}
-static int davNLST(struct fetch_context_s * ctx)
+static int davNLST(avContext ctx)
/[EMAIL PROTECTED] internalState @*/
/[EMAIL PROTECTED] ctx, internalState @*/
{
@@ -1662,7 +1602,7 @@
/[EMAIL PROTECTED] fileSystem, internalState @*/
/[EMAIL PROTECTED] *st, fileSystem, internalState @*/
{
- struct fetch_context_s * ctx = NULL;
+ avContext ctx = NULL;
char buf[1024];
int rc = -1;
@@ -1670,7 +1610,7 @@
errno = ENOENT;
goto exit;
}
- ctx = fetch_create_context(path, st);
+ ctx = avContextCreate(path, st);
if (ctx == NULL) {
errno = ENOENT; /* Note: ctx is NULL iff urlSplit() fails. */
goto exit;
@@ -1703,7 +1643,7 @@
exit:
if (_dav_debug < 0)
fprintf(stderr, "*** davStat(%s) rc %d\n%s", path, rc, statstr(st, buf));
- ctx = fetch_destroy_context(ctx);
+ ctx = avContextDestroy(ctx);
return rc;
}
@@ -1711,7 +1651,7 @@
/[EMAIL PROTECTED] fileSystem, internalState @*/
/[EMAIL PROTECTED] *st, fileSystem, internalState @*/
{
- struct fetch_context_s * ctx = NULL;
+ avContext ctx = NULL;
char buf[1024];
int rc = -1;
@@ -1719,7 +1659,7 @@
errno = ENOENT;
goto exit;
}
- ctx = fetch_create_context(path, st);
+ ctx = avContextCreate(path, st);
if (ctx == NULL) {
errno = ENOENT; /* Note: ctx is NULL iff urlSplit() fails. */
goto exit;
@@ -1752,7 +1692,7 @@
if (_dav_debug < 0)
fprintf(stderr, "*** davLstat(%s) rc %d\n%s\n", path, rc, statstr(st, buf));
exit:
- ctx = fetch_destroy_context(ctx);
+ ctx = avContextDestroy(ctx);
return rc;
}
@@ -1838,7 +1778,7 @@
DIR * davOpendir(const char * path)
{
AVDIR avdir;
- struct fetch_context_s * ctx;
+ avContext ctx;
struct stat sb, *st = &sb; /* XXX HACK: davHEAD needs ctx->st. */
int rc;
@@ -1853,7 +1793,7 @@
/* Load DAV collection into argv. */
/* XXX HACK: davHEAD needs ctx->st. */
- ctx = fetch_create_context(path, st);
+ ctx = avContextCreate(path, st);
if (ctx == NULL) {
errno = ENOENT; /* Note: ctx is NULL iff urlSplit() fails. */
return NULL;
@@ -1866,7 +1806,7 @@
avdir = (AVDIR) avOpendir(path, ctx->av, ctx->modes);
- ctx = fetch_destroy_context(ctx);
+ ctx = avContextDestroy(ctx);
/[EMAIL PROTECTED]@*/
return (DIR *) avdir;
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/rpmdav.h
============================================================================
$ cvs diff -u -r2.25 -r2.26 rpmdav.h
--- rpm/rpmio/rpmdav.h 2 Mar 2008 00:22:02 -0000 2.25
+++ rpm/rpmio/rpmdav.h 2 Mar 2008 01:14:27 -0000 2.26
@@ -62,6 +62,8 @@
/**
*/
struct avContext_s {
+/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/
+ void ** resrock;
const char *uri;
/[EMAIL PROTECTED]@*/
urlinfo u;
@@ .
______________________________________________________________________
RPM Package Manager http://rpm5.org
CVS Sources Repository [email protected]