Variablen des SV nosave erben.
Die Variablen des Standard-Supervisors muessen nicht gespeichert
werden.
Change-Id: Ie19b1c83792d209f14baca5296dc143f7dde9fa9
diff --git a/secure/news.c b/secure/news.c
index 83a73f5..f435089 100644
--- a/secure/news.c
+++ b/secure/news.c
@@ -564,3 +564,30 @@
#define gl(x) grouplist[name,x]
return ({name,gl(1),gl(2),gl(3),gl(4),gl(5),gl(6),gl(7),gl(8),gl(9),gl(10),load_group(name)});
}
+
+public varargs void AllGroups(int details) {
+ if (!ARCH_SECURITY || process_call()) return; // Darf nicht
+
+ string* gnames = sort_array(m_indices(grouplist), #'>);
+
+ printf("%-25s %-11s %12s %3s %3s %3s %3s\n",
+ "Name","Owner","Expire","Max","Rea","Wri","Del");
+ printf("-"*78 + "\n");
+ foreach (string g : gnames)
+ {
+ printf("%-25s %-11s %12s %3d %3d %3d %3d\n",
+ g, grouplist[g,1], time2string("%dd %02h:%02m", grouplist[g,3]),
+ grouplist[g,10], grouplist[g,9], grouplist[g,8], grouplist[g,7]);
+ if (details) {
+ if (sizeof(grouplist[g,6])) // readers
+ printf(break_string(implode(grouplist[g,6], " "), 78, " Rea: ",
+ BS_INDENT_ONCE));
+ if (sizeof(grouplist[g,5])) // writers
+ printf(break_string(implode(grouplist[g,5], " "), 78, " Wri: ",
+ BS_INDENT_ONCE));
+ if (sizeof(grouplist[g,4])) // deleters
+ printf(break_string(implode(grouplist[g,5], " "), 78, " Del: ",
+ BS_INDENT_ONCE));
+ }
+ }
+}
diff --git a/secure/udp/channel.c b/secure/udp/channel.c
index d640484..e330fd7 100644
--- a/secure/udp/channel.c
+++ b/secure/udp/channel.c
@@ -16,7 +16,7 @@
#define COMMAND "cmd"
#define CHANNEL "channel"
-inherit "/std/channel_supervisor";
+nosave variables inherit "/std/channel_supervisor";
private nosave mixed _name_;