Hi Willy,
Since http_silent_debug()(src/proto_http.c) uses some members which only
exist in the snapshot before struct channel is introduced, compile
errors occur once DEBUG_FSM is enabled.
The codes of http_silent_debug() are as below ans only req related codes
are token as an example:
#if defined(DEBUG_FSM)
static void http_silent_debug(int line, struct session *s)
{
chunk_printf(&trash,
"[%04d] req: p=%d(%d) s=%d bf=%08x an=%08x data=%p size=%d
l=%d w=%p r=%p o=%p sm=%d fw=%ld tf=%08x\n",
line,
s->si[0].state, s->si[0].fd, s->txn.req.msg_state,
s->req->flags, s->req->analysers,
s->req->buf->data, s->req->buf->size, s->req->l,
s->req->w, s->req->r, s->req->buf->p, s->req->buf->o,
s->req->to_forward, s->txn.flags);
write(-1, trash.str, trash.len);
...
}
The following members are obsolete:
* s->si[0].fd
* s->req->l
* s->req->w
* s->req->r
According to the latest implementation, the above members should be
replaced as below in my opinion:
* s->si[0].fd => s->si[0].conn->t.sock.fd
* s->req->l => buffer_len(s->req->buf)
* s->req->w => bo_ptr(s->req->buf)
* s->req->r => bi_ptr(s->req->buf)
In addition ,I was confused by "o=%p", what should it be. If it should
be s->req->buf->p, it is the same as bi_ptr(s->req->buf) actually.
If the replacements are correct and the use of "o=%p" can be confirmed,
I will send a patch later.
--
Best Regards,
Godbach