////////////////////////////////////////////////////////////////////// Dump a header on stderr, useful together with Dbg().
| 115 | /////////////////////////////////////////////////////////////////////////// |
| 116 | // Dump a header on stderr, useful together with Dbg(). |
| 117 | static void |
| 118 | dump_headers(TSMLoc hdr_loc) |
| 119 | { |
| 120 | TSIOBuffer output_buffer; |
| 121 | TSIOBufferReader reader; |
| 122 | TSIOBufferBlock block; |
| 123 | int64_t block_avail; |
| 124 | |
| 125 | output_buffer = TSIOBufferCreate(); |
| 126 | reader = TSIOBufferReaderAlloc(output_buffer); |
| 127 | |
| 128 | /* This will print just MIMEFields and not the http request line */ |
| 129 | TSMimeHdrPrint(hdr_loc, output_buffer); |
| 130 | |
| 131 | /* We need to loop over all the buffer blocks, there can be more than 1 */ |
| 132 | block = TSIOBufferReaderStart(reader); |
| 133 | do { |
| 134 | const char *block_start = TSIOBufferBlockReadStart(block, reader, &block_avail); |
| 135 | if (block_avail > 0) { |
| 136 | Dbg(dbg_ctl, "Headers are:\n%.*s", static_cast<int>(block_avail), block_start); |
| 137 | } |
| 138 | TSIOBufferReaderConsume(reader, block_avail); |
| 139 | block = TSIOBufferReaderStart(reader); |
| 140 | } while (block && block_avail != 0); |
| 141 | |
| 142 | /* Free up the TSIOBuffer that we used to print out the header */ |
| 143 | TSIOBufferReaderFree(reader); |
| 144 | TSIOBufferDestroy(output_buffer); |
| 145 | } |
| 146 | |
| 147 | bool |
| 148 | BgFetchData::initialize(TSMBuffer request, TSMLoc req_hdr, TSHttpTxn txnp) |
no test coverage detected