/* packs all the entries using supplied packer */ void httpHeaderPackInto(const HttpHeader * hdr, Packer * p) { HttpHeaderPos pos = HttpHeaderInitPos; const HttpHeaderEntry *e; assert(hdr && p); debug(55, 7) ("packing hdr: (%p)\n", hdr); /* pack all entries one by one */ while ((e = httpHeaderGetEntry(hdr, &pos))) httpHeaderEntryPackInto(e, p); }
MemBuf httpPacked304Reply(const HttpReply * rep) { static const http_hdr_type ImsEntries[] = {HDR_DATE, HDR_CONTENT_TYPE, HDR_EXPIRES, HDR_LAST_MODIFIED, /* eof */ HDR_OTHER}; int t; MemBuf mb; Packer p; HttpHeaderEntry *e; assert(rep); memBufDefInit(&mb); packerToMemInit(&p, &mb); memBufPrintf(&mb, "%s", "HTTP/1.0 304 Not Modified\r\n"); for (t = 0; ImsEntries[t] != HDR_OTHER; ++t) if ((e = httpHeaderFindEntry(&rep->header, ImsEntries[t]))) httpHeaderEntryPackInto(e, &p); memBufAppend(&mb, "\r\n", 2); packerClean(&p); return mb; }