From b65e5c1d45c8bfc38b3745cb28ac9074b1c1bdc1 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Fri, 23 Feb 2024 13:27:38 +0100 Subject: irmd: Always use reg_destroy_proc Destroying a process will now always be done with reg_destroy_proc, regardless of whether it was an IPCP or spawned. This makes it easier to keep the registry consistent and avoid races. Also improves some logs and updates some default settings. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/irmd/ipcp.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'src/irmd/ipcp.c') diff --git a/src/irmd/ipcp.c b/src/irmd/ipcp.c index c8055aa1..d7abe15d 100644 --- a/src/irmd/ipcp.c +++ b/src/irmd/ipcp.c @@ -47,6 +47,37 @@ #include #include +static char * str_ipcp_cmd(int code) +{ + switch (code) { + case IPCP_MSG_CODE__IPCP_BOOTSTRAP: + return "bootstrap"; + case IPCP_MSG_CODE__IPCP_ENROLL: + return "enroll"; + case IPCP_MSG_CODE__IPCP_CONNECT: + return "connect"; + case IPCP_MSG_CODE__IPCP_DISCONNECT: + return "disconnect"; + case IPCP_MSG_CODE__IPCP_REG: + return "reg"; + case IPCP_MSG_CODE__IPCP_UNREG: + return "unreg"; + case IPCP_MSG_CODE__IPCP_QUERY: + return "query"; + case IPCP_MSG_CODE__IPCP_FLOW_JOIN: + return "join"; + case IPCP_MSG_CODE__IPCP_FLOW_ALLOC: + return "alloc"; + case IPCP_MSG_CODE__IPCP_FLOW_ALLOC_RESP: + return "alloc_resp"; + case IPCP_MSG_CODE__IPCP_FLOW_DEALLOC: + return "dealloc"; + default: + assert(false); + return "unknown"; + } +} + ipcp_msg_t * send_recv_ipcp_msg(pid_t pid, ipcp_msg_t * msg) { @@ -139,7 +170,8 @@ ipcp_msg_t * send_recv_ipcp_msg(pid_t pid, else { if (errno == EAGAIN && !dealloc) { int diff = ts_diff_ms(&tic, &toc); - log_warn("IPCP command timed out after %d ms.", diff); + log_warn("IPCP %s timed out after %d ms.", + str_ipcp_cmd(msg->code), diff); } return NULL; } -- cgit v1.2.3