#line 1 "src/ngx_http_redis2_reply.rl" #ifndef DDEBUG #define DDEBUG 0 #endif #include "ddebug.h" #include "ngx_http_redis2_reply.h" #include "ngx_http_redis2_util.h" #include #line 20 "src/ngx_http_redis2_reply.rl" #line 18 "src/ngx_http_redis2_reply.c" static const int reply_start = 1; static const int reply_error = 0; #line 23 "src/ngx_http_redis2_reply.rl" ngx_int_t ngx_http_redis2_process_reply(ngx_http_redis2_ctx_t *ctx, ssize_t bytes) { ngx_buf_t *b; ngx_http_upstream_t *u; ngx_str_t buf; ngx_flag_t done; ngx_chain_t *cl = NULL; ngx_chain_t **ll = NULL; int cs; signed char *p; signed char *orig_p; ssize_t orig_len; signed char *pe; u = ctx->request->upstream; b = &u->buffer; orig_p = (signed char *) b->last; orig_len = bytes; while (ctx->query_count) { done = 0; if (ctx->state == NGX_ERROR) { dd("init the state machine"); #line 57 "src/ngx_http_redis2_reply.c" { cs = reply_start; } #line 53 "src/ngx_http_redis2_reply.rl" ctx->state = cs; } else { cs = ctx->state; dd("resumed the old state %d", cs); } p = (signed char *) b->last; pe = (signed char *) b->last + bytes; dd("response body: %.*s", (int) bytes, p); #line 77 "src/ngx_http_redis2_reply.c" { short _widec; if ( p == pe ) goto _test_eof; switch ( cs ) { case 1: switch( (*p) ) { case 36: goto st2; case 42: goto st14; case 43: goto st50; case 45: goto st50; case 58: goto st50; } goto st0; st0: cs = 0; goto _out; st2: if ( ++p == pe ) goto _test_eof2; case 2: switch( (*p) ) { case 45: goto st3; case 48: goto st6; } if ( 49 <= (*p) && (*p) <= 57 ) goto tr6; goto st0; st3: if ( ++p == pe ) goto _test_eof3; case 3: if ( 48 <= (*p) && (*p) <= 57 ) goto st4; goto st0; st4: if ( ++p == pe ) goto _test_eof4; case 4: if ( (*p) == 13 ) goto st5; if ( 48 <= (*p) && (*p) <= 57 ) goto st4; goto st0; st5: if ( ++p == pe ) goto _test_eof5; case 5: if ( (*p) == 10 ) goto tr9; goto st0; tr9: #line 50 "src/common.rl" { ctx->chunks_read++; dd("have read chunk %d, %.*s", (int) ctx->chunks_read, (int) (p - (signed char *) b->last), (signed char *) b->last); } #line 12 "src/common.rl" { dd("done!"); done = 1; } goto st52; tr23: #line 30 "src/multi_bulk_reply.rl" { dd("finalize multi bulks"); if (ctx->chunks_read == ctx->chunk_count) { dd("done multi bunlk reading!"); done = 1; } } goto st52; tr62: #line 12 "src/common.rl" { dd("done!"); done = 1; } goto st52; st52: if ( ++p == pe ) goto _test_eof52; case 52: #line 165 "src/ngx_http_redis2_reply.c" goto st0; st6: if ( ++p == pe ) goto _test_eof6; case 6: switch( (*p) ) { case 13: goto st7; case 48: goto st6; } goto st0; st7: if ( ++p == pe ) goto _test_eof7; case 7: if ( (*p) == 10 ) goto st8; goto st0; st8: if ( ++p == pe ) goto _test_eof8; case 8: if ( (*p) == 13 ) goto st5; goto st0; tr6: #line 23 "src/common.rl" { dd("start reading chunk size"); ctx->chunk_bytes_read = 0; ctx->chunk_size = 0; } #line 17 "src/common.rl" { ctx->chunk_size *= 10; ctx->chunk_size += *p - '0'; dd("read chunk size: %d", (int) ctx->chunk_size); } goto st9; tr13: #line 17 "src/common.rl" { ctx->chunk_size *= 10; ctx->chunk_size += *p - '0'; dd("read chunk size: %d", (int) ctx->chunk_size); } goto st9; st9: if ( ++p == pe ) goto _test_eof9; case 9: #line 216 "src/ngx_http_redis2_reply.c" if ( (*p) == 13 ) goto st10; if ( 48 <= (*p) && (*p) <= 57 ) goto tr13; goto st0; st10: if ( ++p == pe ) goto _test_eof10; case 10: if ( (*p) == 10 ) goto st11; goto st0; st11: if ( ++p == pe ) goto _test_eof11; case 11: _widec = (*p); _widec = (short)(128 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( 384 <= _widec && _widec <= 639 ) goto st12; goto st0; st12: if ( ++p == pe ) goto _test_eof12; case 12: _widec = (*p); if ( (*p) < 13 ) { if ( (*p) <= 12 ) { _widec = (short)(128 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; } } else if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(128 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; } } else { _widec = (short)(1152 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; } switch( _widec ) { case 1549: goto st12; case 1805: goto st5; case 2061: goto st13; } if ( _widec > 524 ) { if ( 526 <= _widec && _widec <= 639 ) goto st12; } else if ( _widec >= 384 ) goto st12; goto st0; st13: if ( ++p == pe ) goto _test_eof13; case 13: _widec = (*p); if ( (*p) < 13 ) { if ( (*p) <= 12 ) { _widec = (short)(128 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; } } else if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(128 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; } } else { _widec = (short)(1152 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; } switch( _widec ) { case 266: goto tr9; case 522: goto tr17; case 1549: goto st12; case 1805: goto st5; case 2061: goto st13; } if ( _widec > 524 ) { if ( 526 <= _widec && _widec <= 639 ) goto st12; } else if ( _widec >= 384 ) goto st12; goto st0; tr17: #line 50 "src/common.rl" { ctx->chunks_read++; dd("have read chunk %d, %.*s", (int) ctx->chunks_read, (int) (p - (signed char *) b->last), (signed char *) b->last); } #line 12 "src/common.rl" { dd("done!"); done = 1; } goto st53; st53: if ( ++p == pe ) goto _test_eof53; case 53: #line 394 "src/ngx_http_redis2_reply.c" _widec = (*p); if ( (*p) < 13 ) { if ( (*p) <= 12 ) { _widec = (short)(128 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; } } else if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(128 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; } } else { _widec = (short)(1152 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; } switch( _widec ) { case 1549: goto st12; case 1805: goto st5; case 2061: goto st13; } if ( _widec > 524 ) { if ( 526 <= _widec && _widec <= 639 ) goto st12; } else if ( _widec >= 384 ) goto st12; goto st0; st14: if ( ++p == pe ) goto _test_eof14; case 14: switch( (*p) ) { case 45: goto st15; case 48: goto st18; } if ( 49 <= (*p) && (*p) <= 57 ) goto tr20; goto st0; st15: if ( ++p == pe ) goto _test_eof15; case 15: if ( (*p) == 49 ) goto st16; goto st0; st16: if ( ++p == pe ) goto _test_eof16; case 16: if ( (*p) == 13 ) goto st17; goto st0; st17: if ( ++p == pe ) goto _test_eof17; case 17: if ( (*p) == 10 ) goto tr23; goto st0; st18: if ( ++p == pe ) goto _test_eof18; case 18: switch( (*p) ) { case 13: goto st17; case 48: goto st18; } goto st0; tr20: #line 19 "src/multi_bulk_reply.rl" { dd("start reading bulk count"); ctx->chunk_count = 0; } #line 24 "src/multi_bulk_reply.rl" { ctx->chunk_count *= 10; ctx->chunk_count += *p - '0'; dd("chunk count: %d", (int) ctx->chunk_count); } goto st19; tr25: #line 24 "src/multi_bulk_reply.rl" { ctx->chunk_count *= 10; ctx->chunk_count += *p - '0'; dd("chunk count: %d", (int) ctx->chunk_count); } goto st19; st19: if ( ++p == pe ) goto _test_eof19; case 19: #line 521 "src/ngx_http_redis2_reply.c" if ( (*p) == 13 ) goto st20; if ( 48 <= (*p) && (*p) <= 57 ) goto tr25; goto st0; st20: if ( ++p == pe ) goto _test_eof20; case 20: if ( (*p) == 10 ) goto tr26; goto st0; tr26: #line 14 "src/multi_bulk_reply.rl" { dd("start reading bulk"); ctx->chunks_read = 0; } goto st21; st21: if ( ++p == pe ) goto _test_eof21; case 21: #line 545 "src/ngx_http_redis2_reply.c" _widec = (*p); if ( (*p) < 43 ) { if ( 36 <= (*p) && (*p) <= 36 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) > 43 ) { if ( (*p) > 45 ) { if ( 58 <= (*p) && (*p) <= 58 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) >= 45 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } switch( _widec ) { case 5668: goto st22; case 5675: goto st26; case 5677: goto st26; case 5690: goto st26; } goto st0; st22: if ( ++p == pe ) goto _test_eof22; case 22: _widec = (*p); if ( (*p) < 48 ) { if ( 45 <= (*p) && (*p) <= 45 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) > 48 ) { if ( 49 <= (*p) && (*p) <= 57 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } switch( _widec ) { case 5677: goto st23; case 5680: goto st28; } if ( 5681 <= _widec && _widec <= 5689 ) goto tr31; goto st0; st23: if ( ++p == pe ) goto _test_eof23; case 23: _widec = (*p); if ( 48 <= (*p) && (*p) <= 57 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } if ( 5680 <= _widec && _widec <= 5689 ) goto st24; goto st0; st24: if ( ++p == pe ) goto _test_eof24; case 24: _widec = (*p); if ( (*p) > 13 ) { if ( 48 <= (*p) && (*p) <= 57 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) >= 13 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } if ( _widec == 5645 ) goto st25; if ( 5680 <= _widec && _widec <= 5689 ) goto st24; goto st0; st25: if ( ++p == pe ) goto _test_eof25; case 25: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } if ( _widec == 5642 ) goto tr34; goto st0; tr34: #line 50 "src/common.rl" { ctx->chunks_read++; dd("have read chunk %d, %.*s", (int) ctx->chunks_read, (int) (p - (signed char *) b->last), (signed char *) b->last); } #line 30 "src/multi_bulk_reply.rl" { dd("finalize multi bulks"); if (ctx->chunks_read == ctx->chunk_count) { dd("done multi bunlk reading!"); done = 1; } } goto st54; st54: if ( ++p == pe ) goto _test_eof54; case 54: #line 751 "src/ngx_http_redis2_reply.c" _widec = (*p); if ( (*p) < 43 ) { if ( 36 <= (*p) && (*p) <= 36 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) > 43 ) { if ( (*p) > 45 ) { if ( 58 <= (*p) && (*p) <= 58 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) >= 45 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } switch( _widec ) { case 5668: goto st22; case 5675: goto st26; case 5677: goto st26; case 5690: goto st26; } goto st0; st26: if ( ++p == pe ) goto _test_eof26; case 26: _widec = (*p); if ( (*p) < 13 ) { if ( (*p) <= 12 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } if ( _widec == 5645 ) goto st27; if ( 5504 <= _widec && _widec <= 5759 ) goto st26; goto st0; st27: if ( ++p == pe ) goto _test_eof27; case 27: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) > 12 ) { if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) >= 13 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } switch( _widec ) { case 5642: goto tr34; case 5645: goto st27; } if ( 5504 <= _widec && _widec <= 5759 ) goto st26; goto st0; st28: if ( ++p == pe ) goto _test_eof28; case 28: _widec = (*p); if ( (*p) > 13 ) { if ( 48 <= (*p) && (*p) <= 48 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) >= 13 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } switch( _widec ) { case 5645: goto st29; case 5680: goto st28; } goto st0; st29: if ( ++p == pe ) goto _test_eof29; case 29: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } if ( _widec == 5642 ) goto st30; goto st0; st30: if ( ++p == pe ) goto _test_eof30; case 30: _widec = (*p); if ( 13 <= (*p) && (*p) <= 13 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } if ( _widec == 5645 ) goto st25; goto st0; tr31: #line 23 "src/common.rl" { dd("start reading chunk size"); ctx->chunk_bytes_read = 0; ctx->chunk_size = 0; } #line 17 "src/common.rl" { ctx->chunk_size *= 10; ctx->chunk_size += *p - '0'; dd("read chunk size: %d", (int) ctx->chunk_size); } goto st31; tr39: #line 17 "src/common.rl" { ctx->chunk_size *= 10; ctx->chunk_size += *p - '0'; dd("read chunk size: %d", (int) ctx->chunk_size); } goto st31; st31: if ( ++p == pe ) goto _test_eof31; case 31: #line 1036 "src/ngx_http_redis2_reply.c" _widec = (*p); if ( (*p) > 13 ) { if ( 48 <= (*p) && (*p) <= 57 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) >= 13 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } if ( _widec == 5645 ) goto st32; if ( 5680 <= _widec && _widec <= 5689 ) goto tr39; goto st0; st32: if ( ++p == pe ) goto _test_eof32; case 32: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } if ( _widec == 5642 ) goto st33; goto st0; st33: if ( ++p == pe ) goto _test_eof33; case 33: _widec = (*p); _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; if ( 2944 <= _widec && _widec <= 3199 ) goto st34; goto st0; st34: if ( ++p == pe ) goto _test_eof34; case 34: _widec = (*p); if ( (*p) < 13 ) { if ( (*p) <= 12 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } switch( _widec ) { case 4621: goto st34; case 4877: goto st25; case 5133: goto st35; } if ( _widec > 3084 ) { if ( 3086 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 2944 ) goto st34; goto st0; st35: if ( ++p == pe ) goto _test_eof35; case 35: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 12 ) { if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 13 ) { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 2826: goto tr34; case 3082: goto tr43; case 4621: goto st34; case 4877: goto st25; case 5133: goto st35; } if ( _widec > 3084 ) { if ( 3086 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 2944 ) goto st34; goto st0; tr43: #line 50 "src/common.rl" { ctx->chunks_read++; dd("have read chunk %d, %.*s", (int) ctx->chunks_read, (int) (p - (signed char *) b->last), (signed char *) b->last); } #line 30 "src/multi_bulk_reply.rl" { dd("finalize multi bulks"); if (ctx->chunks_read == ctx->chunk_count) { dd("done multi bunlk reading!"); done = 1; } } goto st55; st55: if ( ++p == pe ) goto _test_eof55; case 55: #line 1364 "src/ngx_http_redis2_reply.c" _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 14 ) { if ( (*p) > 12 ) { if ( 13 <= (*p) && (*p) <= 13 ) { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 35 ) { if ( (*p) > 36 ) { if ( 37 <= (*p) && (*p) <= 42 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 36 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 43 ) { if ( (*p) < 46 ) { if ( (*p) > 44 ) { if ( 45 <= (*p) && (*p) <= 45 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 44 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 57 ) { if ( (*p) > 58 ) { if ( 59 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 58 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 2852: goto st22; case 2859: goto st26; case 2861: goto st26; case 2874: goto st26; case 3108: goto st36; case 3115: goto st44; case 3117: goto st44; case 3130: goto st44; case 4621: goto st34; case 4877: goto st25; case 5133: goto st35; } if ( _widec > 3084 ) { if ( 3086 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 2944 ) goto st34; goto st0; st36: if ( ++p == pe ) goto _test_eof36; case 36: _widec = (*p); if ( (*p) < 45 ) { if ( (*p) < 13 ) { if ( (*p) <= 12 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 13 ) { if ( 14 <= (*p) && (*p) <= 44 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else if ( (*p) > 45 ) { if ( (*p) < 48 ) { if ( 46 <= (*p) && (*p) <= 47 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 48 ) { if ( (*p) > 57 ) { if ( 58 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 49 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 2861: goto st23; case 2864: goto st28; case 3117: goto st37; case 3120: goto st39; case 4621: goto st34; case 4877: goto st25; case 5133: goto st35; } if ( _widec < 3086 ) { if ( _widec > 2873 ) { if ( 2944 <= _widec && _widec <= 3084 ) goto st34; } else if ( _widec >= 2865 ) goto tr31; } else if ( _widec > 3119 ) { if ( _widec > 3129 ) { if ( 3130 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 3121 ) goto tr46; } else goto st34; goto st0; st37: if ( ++p == pe ) goto _test_eof37; case 37: _widec = (*p); if ( (*p) < 14 ) { if ( (*p) > 12 ) { if ( 13 <= (*p) && (*p) <= 13 ) { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 47 ) { if ( (*p) > 57 ) { if ( 58 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 48 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 4621: goto st34; case 4877: goto st25; case 5133: goto st35; } if ( _widec < 3086 ) { if ( _widec > 2873 ) { if ( 2944 <= _widec && _widec <= 3084 ) goto st34; } else if ( _widec >= 2864 ) goto st24; } else if ( _widec > 3119 ) { if ( _widec > 3129 ) { if ( 3130 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 3120 ) goto st38; } else goto st34; goto st0; st38: if ( ++p == pe ) goto _test_eof38; case 38: _widec = (*p); if ( (*p) < 14 ) { if ( (*p) > 12 ) { if ( 13 <= (*p) && (*p) <= 13 ) { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 47 ) { if ( (*p) > 57 ) { if ( 58 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 48 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 4365: goto st25; case 4621: goto st35; case 4877: goto st25; case 5133: goto st35; } if ( _widec < 3086 ) { if ( _widec > 2873 ) { if ( 2944 <= _widec && _widec <= 3084 ) goto st34; } else if ( _widec >= 2864 ) goto st24; } else if ( _widec > 3119 ) { if ( _widec > 3129 ) { if ( 3130 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 3120 ) goto st38; } else goto st34; goto st0; st39: if ( ++p == pe ) goto _test_eof39; case 39: _widec = (*p); if ( (*p) < 14 ) { if ( (*p) > 12 ) { if ( 13 <= (*p) && (*p) <= 13 ) { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 47 ) { if ( (*p) > 48 ) { if ( 49 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 48 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 2864: goto st28; case 3120: goto st39; case 4365: goto st29; case 4621: goto st40; case 4877: goto st42; case 5133: goto st43; } if ( _widec > 3084 ) { if ( 3086 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 2944 ) goto st34; goto st0; st40: if ( ++p == pe ) goto _test_eof40; case 40: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 12 ) { if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 13 ) { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 2826: goto st30; case 3082: goto st41; case 4621: goto st34; case 4877: goto st25; case 5133: goto st35; } if ( _widec > 3084 ) { if ( 3086 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 2944 ) goto st34; goto st0; st41: if ( ++p == pe ) goto _test_eof41; case 41: _widec = (*p); if ( (*p) < 13 ) { if ( (*p) <= 12 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } switch( _widec ) { case 4365: goto st25; case 4621: goto st35; case 4877: goto st25; case 5133: goto st35; } if ( _widec > 3084 ) { if ( 3086 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 2944 ) goto st34; goto st0; st42: if ( ++p == pe ) goto _test_eof42; case 42: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } if ( _widec == 5642 ) goto tr52; goto st0; tr52: #line 50 "src/common.rl" { ctx->chunks_read++; dd("have read chunk %d, %.*s", (int) ctx->chunks_read, (int) (p - (signed char *) b->last), (signed char *) b->last); } #line 30 "src/multi_bulk_reply.rl" { dd("finalize multi bulks"); if (ctx->chunks_read == ctx->chunk_count) { dd("done multi bunlk reading!"); done = 1; } } goto st56; st56: if ( ++p == pe ) goto _test_eof56; case 56: #line 2547 "src/ngx_http_redis2_reply.c" _widec = (*p); if ( (*p) < 43 ) { if ( (*p) > 13 ) { if ( 36 <= (*p) && (*p) <= 36 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) >= 13 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) > 43 ) { if ( (*p) > 45 ) { if ( 58 <= (*p) && (*p) <= 58 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else if ( (*p) >= 45 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } } else { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } switch( _widec ) { case 5645: goto st25; case 5668: goto st22; case 5675: goto st26; case 5677: goto st26; case 5690: goto st26; } goto st0; st43: if ( ++p == pe ) goto _test_eof43; case 43: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 12 ) { if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 13 ) { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 2826: goto tr52; case 3082: goto tr53; case 4621: goto st34; case 4877: goto st25; case 5133: goto st35; } if ( _widec > 3084 ) { if ( 3086 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 2944 ) goto st34; goto st0; tr53: #line 50 "src/common.rl" { ctx->chunks_read++; dd("have read chunk %d, %.*s", (int) ctx->chunks_read, (int) (p - (signed char *) b->last), (signed char *) b->last); } #line 30 "src/multi_bulk_reply.rl" { dd("finalize multi bulks"); if (ctx->chunks_read == ctx->chunk_count) { dd("done multi bunlk reading!"); done = 1; } } goto st57; st57: if ( ++p == pe ) goto _test_eof57; case 57: #line 2779 "src/ngx_http_redis2_reply.c" _widec = (*p); if ( (*p) < 43 ) { if ( (*p) < 14 ) { if ( (*p) > 12 ) { if ( 13 <= (*p) && (*p) <= 13 ) { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 35 ) { if ( (*p) > 36 ) { if ( 37 <= (*p) && (*p) <= 42 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 36 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 43 ) { if ( (*p) < 46 ) { if ( (*p) > 44 ) { if ( 45 <= (*p) && (*p) <= 45 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 44 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 57 ) { if ( (*p) > 58 ) { if ( 59 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 58 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 2852: goto st22; case 2859: goto st26; case 2861: goto st26; case 2874: goto st26; case 3108: goto st36; case 3115: goto st44; case 3117: goto st44; case 3130: goto st44; case 4365: goto st25; case 4621: goto st35; case 4877: goto st25; case 5133: goto st35; } if ( _widec > 3084 ) { if ( 3086 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 2944 ) goto st34; goto st0; st44: if ( ++p == pe ) goto _test_eof44; case 44: _widec = (*p); if ( (*p) < 13 ) { if ( (*p) <= 12 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } switch( _widec ) { case 4365: goto st27; case 4621: goto st45; case 4877: goto st27; case 5133: goto st45; } if ( _widec < 2830 ) { if ( 2688 <= _widec && _widec <= 2828 ) goto st26; } else if ( _widec > 2943 ) { if ( _widec > 3084 ) { if ( 3086 <= _widec && _widec <= 3199 ) goto st44; } else if ( _widec >= 2944 ) goto st44; } else goto st26; goto st0; st45: if ( ++p == pe ) goto _test_eof45; case 45: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 12 ) { if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 13 ) { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 2826: goto tr34; case 3082: goto tr43; case 4365: goto st27; case 4621: goto st45; case 4877: goto st27; case 5133: goto st45; } if ( _widec < 2830 ) { if ( 2688 <= _widec && _widec <= 2828 ) goto st26; } else if ( _widec > 2943 ) { if ( _widec > 3084 ) { if ( 3086 <= _widec && _widec <= 3199 ) goto st44; } else if ( _widec >= 2944 ) goto st44; } else goto st26; goto st0; tr46: #line 23 "src/common.rl" { dd("start reading chunk size"); ctx->chunk_bytes_read = 0; ctx->chunk_size = 0; } #line 17 "src/common.rl" { ctx->chunk_size *= 10; ctx->chunk_size += *p - '0'; dd("read chunk size: %d", (int) ctx->chunk_size); } goto st46; tr56: #line 17 "src/common.rl" { ctx->chunk_size *= 10; ctx->chunk_size += *p - '0'; dd("read chunk size: %d", (int) ctx->chunk_size); } goto st46; st46: if ( ++p == pe ) goto _test_eof46; case 46: #line 3320 "src/ngx_http_redis2_reply.c" _widec = (*p); if ( (*p) < 14 ) { if ( (*p) > 12 ) { if ( 13 <= (*p) && (*p) <= 13 ) { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 47 ) { if ( (*p) > 57 ) { if ( 58 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 48 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 4365: goto st32; case 4621: goto st47; case 4877: goto st48; case 5133: goto st49; } if ( _widec < 3086 ) { if ( _widec > 2873 ) { if ( 2944 <= _widec && _widec <= 3084 ) goto st34; } else if ( _widec >= 2864 ) goto tr39; } else if ( _widec > 3119 ) { if ( _widec > 3129 ) { if ( 3130 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 3120 ) goto tr56; } else goto st34; goto st0; st47: if ( ++p == pe ) goto _test_eof47; case 47: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 12 ) { if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 13 ) { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 2826: goto st33; case 4621: goto st34; case 4877: goto st25; case 5133: goto st35; } if ( _widec > 3084 ) { if ( 3086 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 2944 ) goto st34; goto st0; st48: if ( ++p == pe ) goto _test_eof48; case 48: _widec = (*p); if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(5248 + ((*p) - -128)); if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 256; } if ( _widec == 5642 ) goto tr60; goto st0; tr60: #line 50 "src/common.rl" { ctx->chunks_read++; dd("have read chunk %d, %.*s", (int) ctx->chunks_read, (int) (p - (signed char *) b->last), (signed char *) b->last); } #line 30 "src/multi_bulk_reply.rl" { dd("finalize multi bulks"); if (ctx->chunks_read == ctx->chunk_count) { dd("done multi bunlk reading!"); done = 1; } } goto st58; st58: if ( ++p == pe ) goto _test_eof58; case 58: #line 3639 "src/ngx_http_redis2_reply.c" _widec = (*p); if ( (*p) < 44 ) { if ( (*p) < 36 ) { if ( (*p) <= 35 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 36 ) { if ( (*p) > 42 ) { if ( 43 <= (*p) && (*p) <= 43 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 37 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 44 ) { if ( (*p) < 46 ) { if ( 45 <= (*p) && (*p) <= 45 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 57 ) { if ( (*p) > 58 ) { if ( 59 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 58 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 2852: goto st22; case 2859: goto st26; case 2861: goto st26; case 2874: goto st26; case 3108: goto st36; case 3115: goto st44; case 3117: goto st44; case 3130: goto st44; } if ( 2944 <= _widec && _widec <= 3199 ) goto st34; goto st0; st49: if ( ++p == pe ) goto _test_eof49; case 49: _widec = (*p); if ( (*p) < 11 ) { if ( (*p) > 9 ) { if ( 10 <= (*p) && (*p) <= 10 ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) > 12 ) { if ( (*p) > 13 ) { if ( 14 <= (*p) ) { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } } else if ( (*p) >= 13 ) { _widec = (short)(3200 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 56 "src/common.rl" #if 0 fprintf(stderr, "check_data_complete: chunk bytes read: %d, chunk size: %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read == ctx->chunk_size + 1 ) _widec += 512; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 1024; } } else { _widec = (short)(2176 + ((*p) - -128)); if ( #line 34 "src/common.rl" #if 0 fprintf(stderr, "test chunk len: %d < %d\n", (int) ctx->chunk_bytes_read, (int) ctx->chunk_size), #endif ctx->chunk_bytes_read++ < ctx->chunk_size ) _widec += 256; if ( #line 6 "src/multi_bulk_reply.rl" #if 0 fprintf(stderr, "test chunk count: %d < %d\n", (int) ctx->chunks_read, (int) ctx->chunk_count), #endif ctx->chunks_read < ctx->chunk_count ) _widec += 512; } switch( _widec ) { case 2826: goto tr60; case 3082: goto tr43; case 4621: goto st34; case 4877: goto st25; case 5133: goto st35; } if ( _widec > 3084 ) { if ( 3086 <= _widec && _widec <= 3199 ) goto st34; } else if ( _widec >= 2944 ) goto st34; goto st0; st50: if ( ++p == pe ) goto _test_eof50; case 50: if ( (*p) == 13 ) goto st51; goto st50; st51: if ( ++p == pe ) goto _test_eof51; case 51: switch( (*p) ) { case 10: goto tr62; case 13: goto st51; } goto st50; } _test_eof2: cs = 2; goto _test_eof; _test_eof3: cs = 3; goto _test_eof; _test_eof4: cs = 4; goto _test_eof; _test_eof5: cs = 5; goto _test_eof; _test_eof52: cs = 52; goto _test_eof; _test_eof6: cs = 6; goto _test_eof; _test_eof7: cs = 7; goto _test_eof; _test_eof8: cs = 8; goto _test_eof; _test_eof9: cs = 9; goto _test_eof; _test_eof10: cs = 10; goto _test_eof; _test_eof11: cs = 11; goto _test_eof; _test_eof12: cs = 12; goto _test_eof; _test_eof13: cs = 13; goto _test_eof; _test_eof53: cs = 53; goto _test_eof; _test_eof14: cs = 14; goto _test_eof; _test_eof15: cs = 15; goto _test_eof; _test_eof16: cs = 16; goto _test_eof; _test_eof17: cs = 17; goto _test_eof; _test_eof18: cs = 18; goto _test_eof; _test_eof19: cs = 19; goto _test_eof; _test_eof20: cs = 20; goto _test_eof; _test_eof21: cs = 21; goto _test_eof; _test_eof22: cs = 22; goto _test_eof; _test_eof23: cs = 23; goto _test_eof; _test_eof24: cs = 24; goto _test_eof; _test_eof25: cs = 25; goto _test_eof; _test_eof54: cs = 54; goto _test_eof; _test_eof26: cs = 26; goto _test_eof; _test_eof27: cs = 27; goto _test_eof; _test_eof28: cs = 28; goto _test_eof; _test_eof29: cs = 29; goto _test_eof; _test_eof30: cs = 30; goto _test_eof; _test_eof31: cs = 31; goto _test_eof; _test_eof32: cs = 32; goto _test_eof; _test_eof33: cs = 33; goto _test_eof; _test_eof34: cs = 34; goto _test_eof; _test_eof35: cs = 35; goto _test_eof; _test_eof55: cs = 55; goto _test_eof; _test_eof36: cs = 36; goto _test_eof; _test_eof37: cs = 37; goto _test_eof; _test_eof38: cs = 38; goto _test_eof; _test_eof39: cs = 39; goto _test_eof; _test_eof40: cs = 40; goto _test_eof; _test_eof41: cs = 41; goto _test_eof; _test_eof42: cs = 42; goto _test_eof; _test_eof56: cs = 56; goto _test_eof; _test_eof43: cs = 43; goto _test_eof; _test_eof57: cs = 57; goto _test_eof; _test_eof44: cs = 44; goto _test_eof; _test_eof45: cs = 45; goto _test_eof; _test_eof46: cs = 46; goto _test_eof; _test_eof47: cs = 47; goto _test_eof; _test_eof48: cs = 48; goto _test_eof; _test_eof58: cs = 58; goto _test_eof; _test_eof49: cs = 49; goto _test_eof; _test_eof50: cs = 50; goto _test_eof; _test_eof51: cs = 51; goto _test_eof; _test_eof: {} _out: {} } #line 67 "src/ngx_http_redis2_reply.rl" dd("state after exec: %d, done: %d, %.*s", cs, (int) done, (int) (bytes - ((u_char *) p - b->last)), p); ctx->state = cs; if (!done && cs == reply_error) { if (cl) { cl->buf->last = cl->buf->pos; cl = NULL; *ll = NULL; } buf.data = b->pos; buf.len = b->last - b->pos + bytes; ngx_log_error(NGX_LOG_ERR, ctx->request->connection->log, 0, "Redis server returned invalid response near pos %z in " "\"%V\"", (ssize_t) ((u_char *) p - b->pos), &buf); u->length = 0; return NGX_HTTP_INTERNAL_SERVER_ERROR; } if (cl == NULL) { for (cl = u->out_bufs, ll = &u->out_bufs; cl; cl = cl->next) { ll = &cl->next; } cl = ngx_chain_get_free_buf(ctx->request->pool, &u->free_bufs); if (cl == NULL) { u->length = 0; return NGX_ERROR; } cl->buf->flush = 1; cl->buf->memory = 1; *ll = cl; dd("response body: %.*s", (int) bytes, p); cl->buf->pos = b->last; cl->buf->last = (u_char *) p; cl->buf->tag = u->output.tag; } else { cl->buf->last = (u_char *) p; } bytes -= (ssize_t) ((u_char *) p - b->last); b->last = (u_char *) p; if (done) { dd("response parser done"); ctx->query_count--; if (ctx->query_count == 0) { if (cs == reply_error) { buf.data = (u_char *) p; buf.len = orig_p - p + orig_len; ngx_log_error(NGX_LOG_WARN, ctx->request->connection->log, 0, "Redis server returned extra bytes: \"%V\" (len %z)", &buf, buf.len); #if 0 if (cl) { cl->buf->last = cl->buf->pos; cl = NULL; *ll = NULL; } u->length = 0; return NGX_HTTP_INTERNAL_SERVER_ERROR; #endif } else { #if defined(nginx_version) && nginx_version >= 1001004 u->keepalive = 1; #endif } u->length = 0; break; } else { ctx->state = NGX_ERROR; /* continue */ } } else { /* need more data */ break; } } return NGX_OK; }