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]

Reply via email to