annotate src/config/settings-get.pl @ 11007:2178c4569f38 HEAD

config: Fixed all-settings building script.
author Timo Sirainen <tss@iki.fi>
date Sat, 27 Mar 2010 04:55:40 +0200
parents b218d4ec6996
children 7f19062f58fd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
1 #!/usr/bin/env perl
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2 use strict;
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
4 print '#include "lib.h"'."\n";
9011
c37f7113b1ee doveconf now checks that all settings are ok by calling check functions.
Timo Sirainen <tss@iki.fi>
parents: 9002
diff changeset
5 print '#include "array.h"'."\n";
9177
e4cc93190ec3 Moved pop3_uidl_format checking to mail-storage-settings.
Timo Sirainen <tss@iki.fi>
parents: 9159
diff changeset
6 print '#include "var-expand.h"'."\n";
9434
e374a365521d Initial commit for making mail_storage:mailbox_list to be from 1:1 to n:n.
Timo Sirainen <tss@iki.fi>
parents: 9179
diff changeset
7 print '#include "file-lock.h"'."\n";
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
8 print '#include "settings-parser.h"'."\n";
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9 print '#include "all-settings.h"'."\n";
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
10 print '#include <stddef.h>'."\n";
9011
c37f7113b1ee doveconf now checks that all settings are ok by calling check functions.
Timo Sirainen <tss@iki.fi>
parents: 9002
diff changeset
11 print '#include <unistd.h>'."\n";
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12 print '#define CONFIG_BINARY'."\n";
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
13 print 'extern buffer_t config_all_services_buf;';
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
15 my @services = ();
10986
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
16 my @service_ifdefs = ();
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
17 my %parsers = {};
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
18
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
19 foreach my $file (@ARGV) {
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
20 my $f;
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
21 open($f, $file) || die "Can't open $file: $@";
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
22
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
23 my $state = 0;
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24 my $file_contents = "";
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
25 my $externs = "";
9011
c37f7113b1ee doveconf now checks that all settings are ok by calling check functions.
Timo Sirainen <tss@iki.fi>
parents: 9002
diff changeset
26 my $code = "";
c37f7113b1ee doveconf now checks that all settings are ok by calling check functions.
Timo Sirainen <tss@iki.fi>
parents: 9002
diff changeset
27 my %funcs;
10107
dcda7c495eb6 struct setting_parser_info now specifies the module name.
Timo Sirainen <tss@iki.fi>
parents: 9793
diff changeset
28 my $cur_name = "";
10986
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
29 my $ifdef = "";
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
30 my $state_ifdef = 0;
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
31
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
32 while (<$f>) {
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
33 my $write = 0;
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
34 if ($state == 0) {
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
35 if (/struct .*_settings {/ ||
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
36 /struct setting_define.*{/ ||
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
37 /struct .*_default_settings = {/) {
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
38 $state++;
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
39 } elsif (/^struct service_settings (.*) = {/) {
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
40 $state++;
10986
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
41 if ($ifdef eq "") {
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
42 $state_ifdef = 0;
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
43 } else {
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
44 $_ = $ifdef."\n".$_;
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
45 $state_ifdef = 1;
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
46 }
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
47 push @services, $1;
10986
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
48 push @service_ifdefs, $ifdef;
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
49 } elsif (/^(static )?const struct setting_parser_info (.*) = {/) {
10107
dcda7c495eb6 struct setting_parser_info now specifies the module name.
Timo Sirainen <tss@iki.fi>
parents: 9793
diff changeset
50 $cur_name = $2;
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
51 $state++ if ($cur_name !~ /^\*default_/);
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
52 } elsif (/^extern const struct setting_parser_info (.*);/) {
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
53 $externs .= "extern const struct setting_parser_info $1;\n";
9011
c37f7113b1ee doveconf now checks that all settings are ok by calling check functions.
Timo Sirainen <tss@iki.fi>
parents: 9002
diff changeset
54 } elsif (/\/\* <settings checks> \*\//) {
c37f7113b1ee doveconf now checks that all settings are ok by calling check functions.
Timo Sirainen <tss@iki.fi>
parents: 9002
diff changeset
55 $state = 4;
c37f7113b1ee doveconf now checks that all settings are ok by calling check functions.
Timo Sirainen <tss@iki.fi>
parents: 9002
diff changeset
56 $code .= $_;
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
57 }
10986
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
58
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
59 if (/(^#ifdef .*)$/ || /^(#if .*)$/) {
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
60 $ifdef = $1;
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
61 } else {
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
62 $ifdef = "";
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
63 }
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
64
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9011
diff changeset
65 if (/#define.*DEF/ || /^#undef.*DEF/ || /ARRAY_DEFINE_TYPE.*_settings/) {
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
66 $write = 1;
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
67 $state = 2 if (/\\$/);
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
68 }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
69 } elsif ($state == 2) {
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
70 $write = 1;
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
71 $state = 0 if (!/\\$/);
9011
c37f7113b1ee doveconf now checks that all settings are ok by calling check functions.
Timo Sirainen <tss@iki.fi>
parents: 9002
diff changeset
72 } elsif ($state == 4) {
c37f7113b1ee doveconf now checks that all settings are ok by calling check functions.
Timo Sirainen <tss@iki.fi>
parents: 9002
diff changeset
73 $code .= $_;
c37f7113b1ee doveconf now checks that all settings are ok by calling check functions.
Timo Sirainen <tss@iki.fi>
parents: 9002
diff changeset
74 $state = 0 if (/\/\* <\/settings checks> \*\//);
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
75 }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
76
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
77 if ($state == 1 || $state == 3) {
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
78 if ($state == 1) {
10411
3448f1bc6966 Changed settings-get.pl to understand the MEMBER() macro removal.
Timo Sirainen <tss@iki.fi>
parents: 10336
diff changeset
79 if (/\.module_name = "(.*)"/) {
10107
dcda7c495eb6 struct setting_parser_info now specifies the module name.
Timo Sirainen <tss@iki.fi>
parents: 9793
diff changeset
80 $parsers{$cur_name} = $1;
dcda7c495eb6 struct setting_parser_info now specifies the module name.
Timo Sirainen <tss@iki.fi>
parents: 9793
diff changeset
81 }
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
82 if (/DEFLIST.*".*",(.*)$/) {
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
83 my $value = $1;
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
84 if ($value =~ /.*&(.*)\)/) {
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
85 $parsers{$1} = 0;
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
86 $externs .= "extern const struct setting_parser_info $1;\n";
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
87 } else {
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
88 $state = 3;
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
89 }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
90 }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
91 } elsif ($state == 3) {
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
92 if (/.*&(.*)\)/) {
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
93 $parsers{$1} = 0;
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
94 }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
95 }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
96
10336
e18645b47984 config: Allow settings plugins to specify also new default services.
Timo Sirainen <tss@iki.fi>
parents: 10181
diff changeset
97 s/^static const (struct master_settings master_default_settings)/$1/;
e18645b47984 config: Allow settings plugins to specify also new default services.
Timo Sirainen <tss@iki.fi>
parents: 10181
diff changeset
98
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
99 $write = 1;
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
100 if (/};/) {
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
101 $state = 0;
10986
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
102 if ($state_ifdef) {
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
103 $_ .= "#endif\n";
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
104 $state_ifdef = 0;
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
105 }
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
106 }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
107 }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
108
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
109 $file_contents .= $_ if ($write);
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
110 }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
111
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
112 print "/* $file */\n";
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
113 print $externs;
9011
c37f7113b1ee doveconf now checks that all settings are ok by calling check functions.
Timo Sirainen <tss@iki.fi>
parents: 9002
diff changeset
114 print $code;
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
115 print $file_contents;
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
116
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
117 close $f;
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
118 }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
119
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
120 print "static struct service_settings *config_all_services[] = {\n";
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
121
10986
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
122 for (my $i = 0; $i < scalar(@services); $i++) {
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
123 my $ifdef = $service_ifdefs[$i];
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
124 print "$ifdef\n" if ($ifdef ne "");
11007
2178c4569f38 config: Fixed all-settings building script.
Timo Sirainen <tss@iki.fi>
parents: 10986
diff changeset
125 print "\t&".$services[$i].",\n";
10986
b218d4ec6996 config: Parser script now supports preserving #ifdefs around service_settings.
Timo Sirainen <tss@iki.fi>
parents: 10411
diff changeset
126 print "#endif\n" if ($ifdef ne "");
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
127 }
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
128 print "};\n";
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
129 print "buffer_t config_all_services_buf = {\n";
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
130 print "\tconfig_all_services, sizeof(config_all_services), { 0, }\n";
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
131 print "};\n";
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
132
10181
4dc080520769 config: Added support for dynamically loaded settings.
Timo Sirainen <tss@iki.fi>
parents: 10179
diff changeset
133 print "const struct setting_parser_info *all_default_roots[] = {\n";
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
134 foreach my $name (keys %parsers) {
10107
dcda7c495eb6 struct setting_parser_info now specifies the module name.
Timo Sirainen <tss@iki.fi>
parents: 9793
diff changeset
135 my $module = $parsers{$name};
dcda7c495eb6 struct setting_parser_info now specifies the module name.
Timo Sirainen <tss@iki.fi>
parents: 9793
diff changeset
136 next if (!$module);
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
137
10107
dcda7c495eb6 struct setting_parser_info now specifies the module name.
Timo Sirainen <tss@iki.fi>
parents: 9793
diff changeset
138 print "\t&".$name.", \n";
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
139 }
10107
dcda7c495eb6 struct setting_parser_info now specifies the module name.
Timo Sirainen <tss@iki.fi>
parents: 9793
diff changeset
140 print "\tNULL\n";
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
141 print "};\n";
10181
4dc080520769 config: Added support for dynamically loaded settings.
Timo Sirainen <tss@iki.fi>
parents: 10179
diff changeset
142 print "const struct setting_parser_info *const *all_roots = all_default_roots;\n";
10336
e18645b47984 config: Allow settings plugins to specify also new default services.
Timo Sirainen <tss@iki.fi>
parents: 10181
diff changeset
143 print "ARRAY_TYPE(service_settings) *default_services = &master_default_settings.services;\n";