h1m_init() used to handle response only since it was used by the H1
client code. Let's have one init per direction.
return -stop;
}
-/* initializes an H1 message */
-static inline struct h1m *h1m_init(struct h1m *h1m)
+/* initializes an H1 message for a request */
+static inline struct h1m *h1m_init_req(struct h1m *h1m)
{
h1m->state = H1_MSG_RQBEFORE;
h1m->next = 0;
return h1m;
}
+/* initializes an H1 message for a response */
+static inline struct h1m *h1m_init_res(struct h1m *h1m)
+{
+ h1m->state = H1_MSG_RPBEFORE;
+ h1m->next = 0;
+ h1m->status = 0;
+ h1m->flags = 0;
+ h1m->curr_len = 0;
+ h1m->body_len = 0;
+ h1m->err_pos = 0;
+ h1m->err_state = 0;
+ return h1m;
+}
+
#endif /* _PROTO_H1_H */
h2s->errcode = H2_ERR_NO_ERROR;
h2s->st = H2_SS_IDLE;
h2s->rxbuf = BUF_NULL;
- h1m_init(&h2s->req);
- h1m_init(&h2s->res);
+ h1m_init_req(&h2s->req);
+ h1m_init_res(&h2s->res);
h2s->by_id.key = h2s->id = id;
h2c->max_id = id;
}
else if (h1m->status >= 100 && h1m->status < 200) {
/* we'll let the caller check if it has more headers to send */
- h1m->state = H1_MSG_RPBEFORE;
- h1m->status = 0;
- h1m->flags = 0;
+ h1m_init_res(h1m);
goto end;
}
else