chiark / gitweb /
prefork-interp: add copyright licences
[chiark-utils.git] / cprogs / prefork.h
index 66ed5fc8f223043e43b9f0fed6564df0e0c8e803..eaaf172ec51532383726f8112eb86a6beef0f992 100644 (file)
@@ -1,4 +1,9 @@
 /* common stuff for cgi-fcgi-interp and prefork-interp */
+/*
+ * Copyright 2016-2022 Ian Jackson and contributors to chiark-utils
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ * There is NO WARRANTY.
+ */
 
 #ifndef PREFORK_H
 #define PREFORK_H
@@ -51,7 +56,7 @@ extern const struct cmdinfo cmdinfos[];
 #define PREFORK_CMDINFOS \
   { "help",   0, .call=of_help                                         }, \
   { 0, 'g',   1,                    .sassignto= &ident                 }, \
-  { 0, 'G',   1, .call= ident_addstring                                }, \
+  { 0, 'G',   1, .call= off_ident_addstring                            }, \
   { 0, 'E',   1, .call= off_ident_addenv                               },
 
 void process_opts(const char *const **argv_io);
@@ -83,9 +88,18 @@ void fusagemessage(FILE *f);
 void usagemessage(void);
 void of_help(const struct cmdinfo *ci, const char *val);
 void of_iassign(const struct cmdinfo *ci, const char *val);
-void ident_addstring(const struct cmdinfo *ci, const char *string);
-void off_ident_addenv(const struct cmdinfo *ci, const char *name);
 void ident_addinit(void);
 bool stabs_same_inode(struct stat *a, struct stat *b);
+void ident_addstring(char key, const char *string);
+
+void off_ident_addstring(const struct cmdinfo *ci, const char *name);
+void off_ident_addenv(const struct cmdinfo *ci, const char *name);
+
+void ident_add_key_byte(char key);
+
+#define IDENT_ADD_OBJ(key, obj) do{                            \
+    ident_add_key_byte(key);                                   \
+    sha256_update(&identsc, sizeof((obj)), (void*)&obj);       \
+  }while(0)
 
 #endif /*PREFORK_H*/