|  line  | 
 true  | 
 false  | 
 branch  | 
 
| 
149
 | 
 822  | 
 48  | 
   while (likely(buf_end - buf >= 8)) {  | 
 
| 
151
 | 
 816  | 
 6  | 
     DOIT(); DOIT(); DOIT(); DOIT();  | 
 
| 
 | 
 790  | 
 26  | 
     DOIT(); DOIT(); DOIT(); DOIT();  | 
 
| 
 | 
 667  | 
 123  | 
     DOIT(); DOIT(); DOIT(); DOIT();  | 
 
| 
 | 
 630  | 
 37  | 
     DOIT(); DOIT(); DOIT(); DOIT();  | 
 
| 
152
 | 
 629  | 
 1  | 
     DOIT(); DOIT(); DOIT(); DOIT();  | 
 
| 
 | 
 624  | 
 5  | 
     DOIT(); DOIT(); DOIT(); DOIT();  | 
 
| 
 | 
 624  | 
 0  | 
     DOIT(); DOIT(); DOIT(); DOIT();  | 
 
| 
 | 
 345  | 
 279  | 
     DOIT(); DOIT(); DOIT(); DOIT();  | 
 
| 
156
 | 
 477  | 
 0  | 
     if ((likely((unsigned char)*buf < '\040') && likely(*buf != '\011')) || unlikely(*buf == '\177')) {  | 
 
| 
 | 
 0  | 
 477  | 
     if ((likely((unsigned char)*buf < '\040') && likely(*buf != '\011')) || unlikely(*buf == '\177')) {  | 
 
| 
 | 
 0  | 
 0  | 
     if ((likely((unsigned char)*buf < '\040') && likely(*buf != '\011')) || unlikely(*buf == '\177')) {  | 
 
| 
163
 | 
 0  | 
 128  | 
     CHECK_EOF();  | 
 
| 
164
 | 
 48  | 
 80  | 
     if (unlikely(! IS_PRINTABLE_ASCII(*buf))) {  | 
 
| 
165
 | 
 48  | 
 0  | 
       if ((likely((unsigned char)*buf < '\040') && likely(*buf != '\011')) || unlikely(*buf == '\177')) {  | 
 
| 
 | 
 0  | 
 48  | 
       if ((likely((unsigned char)*buf < '\040') && likely(*buf != '\011')) || unlikely(*buf == '\177')) {  | 
 
| 
 | 
 0  | 
 0  | 
       if ((likely((unsigned char)*buf < '\040') && likely(*buf != '\011')) || unlikely(*buf == '\177')) {  | 
 
| 
171
 | 
 525  | 
 0  | 
   if (likely(*buf == '\015')) {  | 
 
| 
173
 | 
 0  | 
 525  | 
     EXPECT_CHAR('\012');  | 
 
| 
 | 
 0  | 
 525  | 
     EXPECT_CHAR('\012');  | 
 
| 
175
 | 
 0  | 
 0  | 
   } else if (*buf == '\012') {  | 
 
| 
191
 | 
 0  | 
 0  | 
   buf = last_len < 3 ? buf : buf + last_len - 3;  | 
 
| 
194
 | 
 0  | 
 0  | 
     CHECK_EOF();  | 
 
| 
195
 | 
 0  | 
 0  | 
     if (*buf == '\015') {  | 
 
| 
197
 | 
 0  | 
 0  | 
       CHECK_EOF();  | 
 
| 
198
 | 
 0  | 
 0  | 
       EXPECT_CHAR('\012');  | 
 
| 
 | 
 0  | 
 0  | 
       EXPECT_CHAR('\012');  | 
 
| 
200
 | 
 0  | 
 0  | 
     } else if (*buf == '\012') {  | 
 
| 
207
 | 
 0  | 
 0  | 
     if (ret_cnt == 2) {  | 
 
| 
221
 | 
 0  | 
 0  | 
   CHECK_EOF();  | 
 
| 
 | 
 0  | 
 151  | 
   CHECK_EOF();  | 
 
| 
222
 | 
 0  | 
 0  | 
   if (! ('0' <= *buf && *buf <= '9')) {  | 
 
| 
 | 
 151  | 
 0  | 
   if (! ('0' <= *buf && *buf <= '9')) {  | 
 
| 
228
 | 
 0  | 
 0  | 
     CHECK_EOF();  | 
 
| 
 | 
 0  | 
 302  | 
     CHECK_EOF();  | 
 
| 
229
 | 
 0  | 
 0  | 
     if ('0' <= *buf && *buf <= '9') {  | 
 
| 
 | 
 151  | 
 151  | 
     if ('0' <= *buf && *buf <= '9') {  | 
 
| 
244
 | 
 0  | 
 151  | 
   EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');  | 
 
| 
 | 
 0  | 
 151  | 
   EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');  | 
 
| 
 | 
 0  | 
 151  | 
   EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');  | 
 
| 
 | 
 0  | 
 151  | 
   EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');  | 
 
| 
 | 
 0  | 
 151  | 
   EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');  | 
 
| 
 | 
 0  | 
 151  | 
   EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');  | 
 
| 
 | 
 0  | 
 151  | 
   EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');  | 
 
| 
 | 
 0  | 
 151  | 
   EXPECT_CHAR('H'); EXPECT_CHAR('T'); EXPECT_CHAR('T'); EXPECT_CHAR('P');  | 
 
| 
245
 | 
 0  | 
 151  | 
   EXPECT_CHAR('/'); EXPECT_CHAR('1'); EXPECT_CHAR('.');  | 
 
| 
 | 
 0  | 
 151  | 
   EXPECT_CHAR('/'); EXPECT_CHAR('1'); EXPECT_CHAR('.');  | 
 
| 
 | 
 0  | 
 151  | 
   EXPECT_CHAR('/'); EXPECT_CHAR('1'); EXPECT_CHAR('.');  | 
 
| 
 | 
 0  | 
 151  | 
   EXPECT_CHAR('/'); EXPECT_CHAR('1'); EXPECT_CHAR('.');  | 
 
| 
 | 
 0  | 
 151  | 
   EXPECT_CHAR('/'); EXPECT_CHAR('1'); EXPECT_CHAR('.');  | 
 
| 
 | 
 0  | 
 151  | 
   EXPECT_CHAR('/'); EXPECT_CHAR('1'); EXPECT_CHAR('.');  | 
 
| 
255
 | 
 0  | 
 676  | 
     CHECK_EOF();  | 
 
| 
256
 | 
 150  | 
 526  | 
     if (*buf == '\015') {  | 
 
| 
258
 | 
 0  | 
 150  | 
       EXPECT_CHAR('\012');  | 
 
| 
 | 
 0  | 
 150  | 
       EXPECT_CHAR('\012');  | 
 
| 
260
 | 
 0  | 
 526  | 
     } else if (*buf == '\012') {  | 
 
| 
264
 | 
 1  | 
 525  | 
     if (*num_headers == max_headers) {  | 
 
| 
268
 | 
 382  | 
 143  | 
     if (! (*num_headers != 0 && (*buf == ' ' || *buf == '\t'))) {  | 
 
| 
 | 
 380  | 
 2  | 
     if (! (*num_headers != 0 && (*buf == ' ' || *buf == '\t'))) {  | 
 
| 
269
 | 
 0  | 
 523  | 
       if (! token_char_map[(unsigned char)*buf]) {  | 
 
| 
280
 | 
 0  | 
 523  | 
         CHECK_EOF();  | 
 
| 
283
 | 
 5687  | 
 523  | 
         if (*buf == ':') {  | 
 
| 
285
 | 
 0  | 
 5687  | 
         } else if (*buf < ' ') {  | 
 
| 
290
 | 
 5687  | 
 0  | 
         CHECK_EOF();  | 
 
| 
295
 | 
 0  | 
 1046  | 
         CHECK_EOF();  | 
 
| 
296
 | 
 523  | 
 523  | 
         if (! (*buf == ' ' || *buf == '\t')) {  | 
 
| 
304
 | 
 525  | 
 0  | 
     if ((buf = get_token_to_eol(buf, buf_end, &headers[*num_headers].value,  | 
 
| 
321
 | 
 0  | 
 151  | 
   CHECK_EOF();  | 
 
| 
322
 | 
 0  | 
 151  | 
   if (*buf == '\015') {  | 
 
| 
324
 | 
 0  | 
 0  | 
     EXPECT_CHAR('\012');  | 
 
| 
 | 
 0  | 
 0  | 
     EXPECT_CHAR('\012');  | 
 
| 
325
 | 
 0  | 
 151  | 
   } else if (*buf == '\012') {  | 
 
| 
330
 | 
 0  | 
 151  | 
   ADVANCE_TOKEN(*method, *method_len);  | 
 
| 
 | 
 465  | 
 151  | 
   ADVANCE_TOKEN(*method, *method_len);  | 
 
| 
 | 
 0  | 
 465  | 
   ADVANCE_TOKEN(*method, *method_len);  | 
 
| 
 | 
 0  | 
 0  | 
   ADVANCE_TOKEN(*method, *method_len);  | 
 
| 
 | 
 465  | 
 0  | 
   ADVANCE_TOKEN(*method, *method_len);  | 
 
| 
332
 | 
 0  | 
 151  | 
   ADVANCE_TOKEN(*path, *path_len);  | 
 
| 
 | 
 800  | 
 151  | 
   ADVANCE_TOKEN(*path, *path_len);  | 
 
| 
 | 
 0  | 
 800  | 
   ADVANCE_TOKEN(*path, *path_len);  | 
 
| 
 | 
 0  | 
 0  | 
   ADVANCE_TOKEN(*path, *path_len);  | 
 
| 
 | 
 800  | 
 0  | 
   ADVANCE_TOKEN(*path, *path_len);  | 
 
| 
334
 | 
 151  | 
 0  | 
   if ((buf = parse_http_version(buf, buf_end, minor_version, ret)) == NULL) {  | 
 
| 
337
 | 
 151  | 
 0  | 
   if (*buf == '\015') {  | 
 
| 
339
 | 
 0  | 
 151  | 
     EXPECT_CHAR('\012');  | 
 
| 
 | 
 0  | 
 151  | 
     EXPECT_CHAR('\012');  | 
 
| 
340
 | 
 0  | 
 0  | 
   } else if (*buf == '\012') {  | 
 
| 
368
 | 
 0  | 
 151  | 
   if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) {  | 
 
| 
 | 
 0  | 
 0  | 
   if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) {  | 
 
| 
372
 | 
 1  | 
 150  | 
   if ((buf = parse_request(buf, buf_end, method, method_len, path, path_len,  | 
 
| 
390
 | 
 0  | 
 0  | 
   if ((buf = parse_http_version(buf, buf_end, minor_version, ret)) == NULL) {  | 
 
| 
394
 | 
 0  | 
 0  | 
   if (*buf++ != ' ') {  | 
 
| 
399
 | 
 0  | 
 0  | 
   if ((buf = parse_int(buf, buf_end, status, ret)) == NULL) {  | 
 
| 
403
 | 
 0  | 
 0  | 
   if (*buf++ != ' ') {  | 
 
| 
408
 | 
 0  | 
 0  | 
   if ((buf = get_token_to_eol(buf, buf_end, msg, msg_len, ret)) == NULL) {  | 
 
| 
432
 | 
 0  | 
 0  | 
   if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) {  | 
 
| 
 | 
 0  | 
 0  | 
   if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) {  | 
 
| 
436
 | 
 0  | 
 0  | 
   if ((buf = parse_response(buf, buf_end, minor_version, status, msg, msg_len,  | 
 
| 
457
 | 
 0  | 
 0  | 
   if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) {  | 
 
| 
 | 
 0  | 
 0  | 
   if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) {  | 
 
| 
461
 | 
 0  | 
 0  | 
   if ((buf = parse_headers(buf, buf_end, headers, num_headers, max_headers, &r))  | 
 
| 
480
 | 
 0  | 
 0  | 
   if ('0' <= ch && ch <= '9') {  | 
 
| 
482
 | 
 0  | 
 0  | 
   } else if ('A' <= ch && ch <= 'F') {  | 
 
| 
484
 | 
 0  | 
 0  | 
   } else if ('a' <= ch && ch <= 'f') {  | 
 
| 
502
 | 
 0  | 
 0  | 
         if (src == bufsz)  | 
 
| 
504
 | 
 0  | 
 0  | 
         if ((v = decode_hex(buf[src])) == -1) {  | 
 
| 
505
 | 
 0  | 
 0  | 
           if (decoder->_hex_count == 0) {  | 
 
| 
511
 | 
 0  | 
 0  | 
         if (decoder->_hex_count == sizeof(size_t) * 2) {  | 
 
| 
524
 | 
 0  | 
 0  | 
         if (src == bufsz)  | 
 
| 
526
 | 
 0  | 
 0  | 
         if (buf[src] == '\012')  | 
 
| 
530
 | 
 0  | 
 0  | 
       if (decoder->bytes_left_in_chunk == 0) {  | 
 
| 
531
 | 
 0  | 
 0  | 
         if (decoder->consume_trailer) {  | 
 
| 
543
 | 
 0  | 
 0  | 
         if (avail < decoder->bytes_left_in_chunk) {  | 
 
| 
544
 | 
 0  | 
 0  | 
           if (dst != src)  | 
 
| 
551
 | 
 0  | 
 0  | 
         if (dst != src)  | 
 
| 
561
 | 
 0  | 
 0  | 
         if (src == bufsz)  | 
 
| 
563
 | 
 0  | 
 0  | 
         if (buf[src] != '\015')  | 
 
| 
566
 | 
 0  | 
 0  | 
       if (buf[src] != '\012') {  | 
 
| 
575
 | 
 0  | 
 0  | 
         if (src == bufsz)  | 
 
| 
577
 | 
 0  | 
 0  | 
         if (buf[src] != '\015')  | 
 
| 
580
 | 
 0  | 
 0  | 
       if (buf[src++] == '\012')  | 
 
| 
586
 | 
 0  | 
 0  | 
         if (src == bufsz)  | 
 
| 
588
 | 
 0  | 
 0  | 
         if (buf[src] == '\012')  | 
 
| 
602
 | 
 0  | 
 0  | 
   if (dst != src)  |