chiark / gitweb /
Closures: Provide closure_type_name
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 24 May 2020 19:45:22 +0000 (20:45 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 24 May 2020 19:47:04 +0000 (20:47 +0100)
This will be used in error reporting.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
secnet.c
secnet.h

index 08505b0d5d81bd7cc94bbf9361f70f170babee21..e15ee8156f7f78e4b9ac25f63c36d7610bf55457 100644 (file)
--- 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 */
index 743d1b37ea70ba558de71ea9ee748de27eeaf0e0..79a3fc448e4a1a3a8ca81333746f0e12ee091e75 100644 (file)
--- 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;