char *hd;
struct charbuf inbuf, outbuf;
struct hthead *req, *resp;
- off_t sent;
+ off_t dlen, sent;
size_t headoff;
char nmbuf[256];
goto out;
inbuf.b[headoff] = old;
bufeat(inbuf, headoff);
+ /* We strip off the leading slash from the rest string, so
+ * that multiplexers can parse coherently. */
+ if(req->rest[0] == '/')
+ replrest(req, req->rest + 1);
/*
* Add metainformation and then send the request to the root
headappheader(req, "X-Ash-Port", sprintf3("%i", ntohs(((struct sockaddr_in6 *)&name)->sin6_port)));
}
cfd = sendreq(plex, req);
+
+ /*
+ * If there is message data, pass it:
+ */
+ if((hd = getheader(req, "content-length")) != NULL) {
+ dlen = atoo(hd);
+ if(dlen > 0)
+ passdata(fd, cfd, &inbuf, dlen);
+ }
/*
* Find and decode the response header: