12 my $types = PMG
::Config
::Base-
>lookup_types;
14 my $single_section = shift;
27 rejectunknownsender
=> 1,
39 conn_count_limit
=> 1,
41 message_rate_limit
=> 1,
43 before_queue_filtering
=> 1,
46 'filter-timeout' => 1,
72 dkim_sign_all_mail
=> 1,
77 # verify if we document all mail settings
78 my $plugin = PMG
::Config
::Base-
>lookup('mail');
79 my $schema = $plugin->updateSchema(1);
80 my $properties = $schema->{properties
};
82 my $found_mail_keys = {};
83 foreach my $group (keys %$key_groups) {
84 my ($sec, $hash) = @{$key_groups->{$group}};
85 next if $sec ne 'mail';
86 foreach my $k (keys %$hash) {
87 if (!defined($properties->{$k})) {
88 warn "\n WARNING: unknown key '$k'";
91 $found_mail_keys->{$k} = 1;
94 foreach my $k (keys %$properties) {
95 next if $skiped_keys->{$k};
96 next if $k =~ m/^max_(filters|policy|smtpd_in|smtpd_out)$/;
98 if (!defined($found_mail_keys->{$k})) {
99 die "undocumented key '$k'" if !$ENV{PMG_DOCS_IGNORE_MISSING_KEY
};
100 warn "WARNING: undocumented key '$k'\n";
108 if ($single_section) {
109 if (my $a = $key_groups->{$single_section}) {
110 my ($sec, $hash) = @$a;
111 $single_section = $sec;
112 $select_keys = $hash;
117 foreach my $section (@$types) {
118 my $plugin = PMG
::Config
::Base-
>lookup($section);
119 my $schema = $plugin->updateSchema(1);
120 my $properties = $schema->{properties
};
122 if (defined($single_section)) {
123 next if $section ne $single_section;
125 print ".Section '$section'\n\n";
131 my ($key, $phash) = @_;
132 return 1 if $skiped_keys->{$key};
133 return 1 if $select_keys && !$select_keys->{$key};
137 print PVE
::RESTHandler
::dump_properties
(
138 $properties, 'asciidoc', 'config', $filter);
141 if (defined($single_section)) {
142 die "no such section '$single_section'" if !$found;