mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 17:51:53 +00:00
Flock: pausing
This commit is contained in:
parent
7fdd25369a
commit
60a2c4e921
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user