/usr/share/perl5/Munin/Common/Config.pm is in munin-common 2.0.19-3ubuntu0.3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241  | package Munin::Common::Config;
# $Id$
use warnings;
use strict;
use Carp;
use English qw(-no_match_vars);
# Functions here are unable to log as they don't know if they're used
# by the node or the master which use divergent logging facilities.
# In fact, the list in %legal is only used by the master.
my %legal = map { $_ => 1 } qw(
	address
	always_send
	category_order
	cdef
	cdef_name
	cgitmpdir
	cgiurl
	cgiurl_graph
	colour
	command
	compare
	contact
	contacts
	create_args
	critical
	dbdir
	domain_order
	draw
	dropdownlimit
	extinfo
	fetch_data
	filename
	fork
	graph
	graph
	graphable
	graph_args
	graph_args_after
	graph_category
	graph_data_size
	graph_future
	graph_height
	graph_info
	graph_noscale
	graph_order
	graph_period
	graph_printf
	graph_scale
	graph_sources
	graph_strategy
	graph_sums
	graph_title
	graph_total
	graph_vlabel
	graph_vtitle
	graph_width
	group_order
	host_name
	htaccess
	htmldir
	html_rename
	html_strategy
	includedir
	info
	label
	line
	local_address
	logdir
	max
	max_cgi_graph_jobs
	max_graph_jobs
	max_html_jobs
	max_messages
	max_processes
	max_size_x
	max_size_y
	min
	munin_cgi_graph_jobs
	nagios
	ncsa
	ncsa_config
	ncsa_server
	negative
	node_order
	notify_alias
	nsca
	nsca_config
	nsca_server
	num_messages
	num_unknowns
	ok
	onlynullcdef
	palette
	pipe
	pipe_command
	port
	predict
	process
	realname
	realservname
	rrdcached_socket
	rundir
	service_order
	skipdraw
	stack
	state
	staticdir
	sum
	text
	timeout
	tls
	tls_ca_certificate
	tls_certificate
	tls_match
	tls_pem
	tls_private_key
	tls_verify_certificate
	tls_verify_depth
	tmpldir
	trend
	type
	unknown
	unknown_limit
	update
	update_rate
	use_default_name
	use_node_name
	version
	warn
	warning
	worker_start_delay
);
my %bools = map { $_ => 1} qw(yes no true false on off 1 0);
sub cl_is_keyword {
    # Class-less version of is_keyword for legacy code.
    my ($word) = @_;
    return defined $legal{$word};
}
sub is_keyword {
    my ($self, $word) = @_;
    return defined $legal{$word};
}
sub parse_config_from_file {
    my ($self, $config_file) = @_;
    $config_file ||= $self->{config_file};
    open my $file, '<', $config_file
        or croak "ERROR: Cannot open '$config_file': $OS_ERROR";
    # Note, parse_config is provided by node or master specific config class
    eval {
        $self->parse_config($file);
    };
    if ($EVAL_ERROR) {
        croak "ERROR: Failed to parse config file '$config_file': $EVAL_ERROR";
    }
    close $file
        or croak "Cannot close '$config_file': $OS_ERROR";
}
sub _trim {
    # Trim leading and trailing whitespace.
    my $class = shift;
    chomp $_[0];
    $_[0] =~ s/^\s+//;
    $_[0] =~ s/\s+$//;
    return;
}
# allows # characters to get through as long as they're escaped
# with a backslash
sub _strip_comment {
    my $class = shift;
    $_[0] =~ s/(?<!\\)#.*//;
    $_[0] =~ s/\\#/#/g;
    return;
}
sub _looks_like_a_bool {
    my ($class, $str) = @_;
    return $bools{lc $str};
}
sub _parse_bool {
    my ($class, $str) = @_;
    croak "Parse exception: '$str' is not a boolean."
        unless $class->_looks_like_a_bool($str);
    return $str =~ m{\A no|false|off|0 \z}xi ? 0 : 1;
}
1;
__END__
=head1 NAME
Munin::Common::Config - Abstract base class for common config code.
=head1 SYNOPSIS
Don't use it directly. See L<Munin::Master::Config> and L<Munin::Node::Config>.
=head1 METHODS
=over
=item B<parse_config_from_file>
 $config->parse_config_from_file($file_name);
Parses the configuration in $file_name.
=back
 |