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

Reply via email to