struct connection *cli_conn;
struct proxy *p = l->bind_conf->frontend;
struct session *sess;
- struct stream *strm;
struct task *t;
int ret;
goto out_free_sess;
session_count_new(sess);
- strm = stream_new(sess, t, &cli_conn->obj_type);
- if (!strm)
+ if (!stream_new(sess, t, &cli_conn->obj_type))
goto out_free_task;
- strm->target = sess->listener->default_target;
- strm->req.analysers |= sess->listener->analysers;
-
task_wakeup(t, TASK_WOKEN_INIT);
return 1;
{
struct task *task = conn->owner;
struct session *sess = task->context;
- struct stream *strm;
if (conn->flags & CO_FL_ERROR)
goto fail;
session_count_new(sess);
task->process = sess->listener->handler;
- strm = stream_new(sess, task, &conn->obj_type);
- if (!strm)
+ if (!stream_new(sess, task, &conn->obj_type))
goto fail;
- strm->target = sess->listener->default_target;
- strm->req.analysers |= sess->listener->analysers;
conn->flags &= ~CO_FL_INIT_DATA;
task_wakeup(task, TASK_WOKEN_INIT);
s->si[1].flags |= SI_FL_INDEP_STR;
stream_init_srv_conn(s);
- s->target = NULL;
+ s->target = sess->listener ? sess->listener->default_target : NULL;
+
s->pend_pos = NULL;
/* init store persistence */
channel_init(&s->req);
s->req.flags |= CF_READ_ATTACHED; /* the producer is already connected */
- s->req.analysers = 0;
+ s->req.analysers = sess->listener ? sess->listener->analysers : 0;
channel_auto_connect(&s->req); /* don't wait to establish connection */
channel_auto_close(&s->req); /* let the producer forward close requests */