From adf2771c66938704ffa36834a0bd03132fd83fe8 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 24 May 2020 20:45:22 +0100 Subject: [PATCH] Closures: Provide closure_type_name This will be used in error reporting. Signed-off-by: Ian Jackson --- secnet.c | 26 ++++++++++++++++++++++++++ secnet.h | 5 +++++ 2 files changed, 31 insertions(+) diff --git a/secnet.c b/secnet.c index 08505b0..e15ee81 100644 --- a/secnet.c +++ b/secnet.c @@ -51,6 +51,32 @@ static char *pidfile=NULL; bool_t require_root_privileges=False; cstring_t require_root_privileges_explanation=NULL; +const char *const closure_type_names[] = { + [ CL_PURE ] = "PURE" , + [ CL_RESOLVER ] = "RESOLVER" , + [ CL_RANDOMSRC ] = "RANDOMSRC" , + [ CL_SIGPUBKEY ] = "SIGPUBKEY" , + [ CL_SIGPRIVKEY ] = "SIGPRIVKEY" , + [ CL_COMM ] = "COMM" , + [ CL_IPIF ] = "IPIF" , + [ CL_LOG ] = "LOG" , + [ CL_SITE ] = "SITE" , + [ CL_TRANSFORM ] = "TRANSFORM" , + [ CL_DH ] = "DH" , + [ CL_HASH ] = "HASH" , + [ CL_BUFFER ] = "BUFFER" , + [ CL_NETLINK ] = "NETLINK" , + [ CL_PRIVCACHE ] = "PRIVCACHE" , +}; + +const char *closure_type_name(uint32_t ty, char buf[]) { + if (ty < ARRAY_SIZE(closure_type_names)) + return closure_type_names[ty]; + sprintf(buf, "CL#%.6u", (unsigned)ty); + buf[9] = 0; + return buf; +} + static pid_t secnet_pid; /* Structures dealing with poll() call */ diff --git a/secnet.h b/secnet.h index 743d1b3..79a3fc4 100644 --- a/secnet.h +++ b/secnet.h @@ -462,6 +462,11 @@ extern sigscheme_loadpub rsa1_loadpub; #define CL_BUFFER 13 #define CL_NETLINK 14 #define CL_PRIVCACHE 15 +/* When editing this list, edit closure_type_names[] too */ + +extern const char *const closure_type_names[]; + +const char *closure_type_name(uint32_t ty, char buf[]); struct buffer_if; -- 2.30.2