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