> 22 okt. 2017 kl. 20:16 skrev Maxim Bourmistrov <[email protected]>: > > Hey, > with rev 1.58 OPTIONS in relay_http.c got broken > or at least logic inside relay_read_http(). > Quick fix it to cre->toread=0 and break, but this is probably not what should > be there. > > In my test case, from the client side I do an OPTIONS request, followed by a > couple of GET. > GET in the middle never gets catched and thus breaks intended usage. > > I’m doing a simple printf() debugging here to catch. > > cre->toread = strtonum(value, 0, LLONG_MAX, &errstr); > printf("------ to read %lld\n", cre->toread); > > > case HTTP_METHOD_GET: > printf("GOT GET to read: %lld\n", cre->toread); > > case HTTP_METHOD_OPTIONS: > printf("GOT OPT to read: %lld\n", cre->toread); > > > The output with those in place from ’relayd -d’: > > host 10.6.128.38, check http code (1ms,http code ok), state up -> up, > availability 100.00% > GOT OPT to read: -2 > ------ to read 0 > ------ to read 214 > relay test_api_tls, session 1 (1 active), 0, 176.10.170.140 -> > 10.6.128.20:80, done, OPTIONS > GOT GET to read: -2 > ------ to read 214 > relay test_api_tls, session 2 (1 active), 0, 176.10.170.140 -> > 10.6.128.36:80, done, GET > ^Chce exiting, pid 96033 > > //mxb >
With cre->toread=0 I catch it all relay test_api_tls, session 1 (1 active), 0, 176.10.170.140 -> 10.6.128.20:80, done, OPTIONS GET relay test_api_tls, session 2 (1 active), 0, 176.10.170.140 -> 10.6.128.36:80, done, GET //mxb
