1 --- rpm-5.4.10/rpmio/rpmdav.c.dl_error~ 2012-07-06 17:39:19.000000000 +0200
2 +++ rpm-5.4.10/rpmio/rpmdav.c 2012-07-11 19:49:00.504968365 +0200
3 @@ -1722,6 +1722,7 @@ int davReq(FD_t ctrl, const char * httpC
7 + const ne_status *status;
10 u = (urlinfo) ctrl->u;
11 @@ -1789,10 +1790,24 @@ assert(ctrl->req != NULL);
14 /* XXX somewhere else instead? */
16 - const ne_status *status = ne_get_status((ne_request *)ctrl->req);
17 -fprintf(stderr, "HTTP request sent, awaiting response... %d %s\n", status->code, status->reason_phrase);
19 + status = ne_get_status((ne_request *)ctrl->req);
21 + fprintf(stderr, "HTTP request sent, awaiting response... %d %s\n", status->code, status->reason_phrase);
23 + switch (status->code) {
25 + case 201: /* 201 Created. */
27 + case 204: /* HACK: if overwriting, 204 No Content. */
28 + case 403: /* 403 Forbidden. */
29 + rc = FTPERR_UNKNOWN;
32 + rc = FTPERR_FILE_NOT_FOUND;
35 + if (rc || _dav_debug)
36 + fprintf(stderr, "HTTP request sent, awaiting response... %d %s\n", status->code, status->reason_phrase);
40 --- rpm-5.4.10/rpmio/rpmio.c.dl_error~ 2012-07-06 17:39:19.000000000 +0200
41 +++ rpm-5.4.10/rpmio/rpmio.c 2012-07-11 19:47:59.396732322 +0200
42 @@ -2306,9 +2306,12 @@ fprintf(stderr, "*** ufdOpen(%s,0x%x,0%o
43 u->openError = httpReq(fd, cmd, path);
45 if (u->openError < 0) {
46 + /* XXX rpmdav doesn't behave consistently with the rest...*/
48 /* XXX make sure that we can exit through ufdClose */
49 - fd = fdLink(fd, "error ctrl (ufdOpen HTTP)");
50 - fd = fdLink(fd, "error data (ufdOpen HTTP)");
51 + fd = u->ctrl = fdLink(fd, "error ctrl (ufdOpen HTTP)");
52 + fd = u->data fdLink(fd, "error data (ufdOpen HTTP)");
55 fd->bytesRemain = ((!strcmp(cmd, "GET"))
56 ? fd->contentLength : -1);