0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00

Flock: pausing

This commit is contained in:
Maria Matejka 2024-09-24 12:51:11 +02:00
parent 7fdd25369a
commit 60a2c4e921

View File

@ -431,14 +431,12 @@ struct hexp_telnet_requestor {
#include "lib/tlists.h" #include "lib/tlists.h"
static void static void
hexp_sock_err(sock *s, int err) hexp_sock_err(sock *s, int err UNUSED)
{ {
struct hexp_telnet_requestor *req = s->data; struct hexp_telnet_requestor *req = s->data;
s->data = req->ctx; s->data = req->ctx;
hexp_telnet_requestor_rem_node(hexp_telnet_requestor_enlisted(req), req); hexp_telnet_requestor_rem_node(hexp_telnet_requestor_enlisted(req), req);
mb_free(req);
hcs_err(s, err);
} }
struct hexp_telnet_port { struct hexp_telnet_port {
@ -519,8 +517,8 @@ hexp_get_telnet(sock *s, const char *name)
rfree(lp); rfree(lp);
} }
s->err_paused = hexp_sock_err;
sk_pause_rx(s->loop, s); sk_pause_rx(s->loop, s);
s->err_hook = hexp_sock_err;
struct hexp_telnet_requestor *req = mb_allocz(hcs_pool, sizeof *req); struct hexp_telnet_requestor *req = mb_allocz(hcs_pool, sizeof *req);
req->s = s; req->s = s;
@ -546,8 +544,7 @@ static void hexp_received_telnet(void *_data)
WALK_TLIST_DELSAFE(hexp_telnet_requestor, r, &hrt->p->requestors) WALK_TLIST_DELSAFE(hexp_telnet_requestor, r, &hrt->p->requestors)
{ {
sk_resume_rx(r->s->loop, r->s, hcs_rx); sk_resume_rx(r->s->loop, r->s);
r->s->err_hook = hcs_err;
memcpy(r->s->tbuf, outbuf, cw->pt); memcpy(r->s->tbuf, outbuf, cw->pt);
sk_send(r->s, cw->pt); sk_send(r->s, cw->pt);
hexp_telnet_requestor_rem_node(&hrt->p->requestors, r); hexp_telnet_requestor_rem_node(&hrt->p->requestors, r);