mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
MINOR: stream-int/conn-stream: Move si_cs_io_cb() in the conn-stream scope
si_cs_io_cb() is renamed cs_conn_io_cb(). In addition, the context of the tasklet used to wake-up the conn-stream is now a conn-stream.
This commit is contained in:
parent
9029a72899
commit
4a7764ae9d
@ -38,7 +38,7 @@ void si_free(struct stream_interface *si);
|
||||
|
||||
/* main event functions used to move data between sockets and buffers */
|
||||
int cs_applet_process(struct conn_stream *cs);
|
||||
struct task *si_cs_io_cb(struct task *t, void *ctx, unsigned int state);
|
||||
struct task *cs_conn_io_cb(struct task *t, void *ctx, unsigned int state);
|
||||
int si_sync_recv(struct stream_interface *si);
|
||||
void si_sync_send(struct stream_interface *si);
|
||||
|
||||
|
@ -227,8 +227,8 @@ int cs_attach_mux(struct conn_stream *cs, void *target, void *ctx)
|
||||
cs->wait_event.tasklet = tasklet_new();
|
||||
if (!cs->wait_event.tasklet)
|
||||
return -1;
|
||||
cs->wait_event.tasklet->process = si_cs_io_cb;
|
||||
cs->wait_event.tasklet->context = cs->si;
|
||||
cs->wait_event.tasklet->process = cs_conn_io_cb;
|
||||
cs->wait_event.tasklet->context = cs;
|
||||
cs->wait_event.events = 0;
|
||||
}
|
||||
|
||||
@ -273,8 +273,8 @@ int cs_attach_strm(struct conn_stream *cs, struct stream *strm)
|
||||
cs->si = NULL;
|
||||
return -1;
|
||||
}
|
||||
cs->wait_event.tasklet->process = si_cs_io_cb;
|
||||
cs->wait_event.tasklet->context = cs->si;
|
||||
cs->wait_event.tasklet->process = cs_conn_io_cb;
|
||||
cs->wait_event.tasklet->context = cs;
|
||||
cs->wait_event.events = 0;
|
||||
|
||||
cs->ops = &cs_app_conn_ops;
|
||||
|
@ -252,8 +252,8 @@ void ha_task_dump(struct buffer *buf, const struct task *task, const char *pfx)
|
||||
s = (struct stream *)task->context;
|
||||
else if (task->process == task_run_applet && task->context)
|
||||
s = cs_strm(((struct appctx *)task->context)->owner);
|
||||
else if (task->process == si_cs_io_cb && task->context)
|
||||
s = cs_strm(((struct stream_interface *)task->context)->cs);
|
||||
else if (task->process == cs_conn_io_cb && task->context)
|
||||
s = cs_strm(((struct conn_stream *)task->context));
|
||||
|
||||
if (s)
|
||||
stream_dump(buf, s, pfx, '\n');
|
||||
|
@ -459,23 +459,22 @@ int si_cs_send(struct conn_stream *cs)
|
||||
* stream interface. Thus it is always safe to perform a tasklet_wakeup() on a
|
||||
* stream interface, as the presence of the CS is checked there.
|
||||
*/
|
||||
struct task *si_cs_io_cb(struct task *t, void *ctx, unsigned int state)
|
||||
struct task *cs_conn_io_cb(struct task *t, void *ctx, unsigned int state)
|
||||
{
|
||||
struct stream_interface *si = ctx;
|
||||
struct conn_stream *cs = si->cs;
|
||||
struct conn_stream *cs = ctx;
|
||||
int ret = 0;
|
||||
|
||||
if (!cs_conn(cs))
|
||||
return t;
|
||||
|
||||
if (!(cs->wait_event.events & SUB_RETRY_SEND) && !channel_is_empty(si_oc(si)))
|
||||
if (!(cs->wait_event.events & SUB_RETRY_SEND) && !channel_is_empty(cs_oc(cs)))
|
||||
ret = si_cs_send(cs);
|
||||
if (!(cs->wait_event.events & SUB_RETRY_RECV))
|
||||
ret |= si_cs_recv(cs);
|
||||
if (ret != 0)
|
||||
si_cs_process(cs);
|
||||
|
||||
stream_release_buffers(si_strm(si));
|
||||
stream_release_buffers(__cs_strm(cs));
|
||||
return t;
|
||||
}
|
||||
|
||||
|
@ -4917,7 +4917,7 @@ const void *resolve_sym_name(struct buffer *buf, const char *pfx, const void *ad
|
||||
} fcts[] = {
|
||||
{ .func = process_stream, .name = "process_stream" },
|
||||
{ .func = task_run_applet, .name = "task_run_applet" },
|
||||
{ .func = si_cs_io_cb, .name = "si_cs_io_cb" },
|
||||
{ .func = cs_conn_io_cb, .name = "cs_conn_io_cb" },
|
||||
{ .func = sock_conn_iocb, .name = "sock_conn_iocb" },
|
||||
{ .func = dgram_fd_handler, .name = "dgram_fd_handler" },
|
||||
{ .func = listener_accept, .name = "listener_accept" },
|
||||
|
Loading…
x
Reference in New Issue
Block a user