Parerea mea : ai o greseala in fisierul de configurare, una dintre optiuni
nu este corect scrisa. Spun asta pentu ca :
664 | sub setup_default_code_cb {
665 | my ($self, $cmd) = @_;
666 | my $type = $cmd->{type}; <- $type este declarat aici si ia
valoarea din $cmd
^ variabila este declarata la linia 666, pai e si normal sa iti dea eroare,
e ceva necurat la mijloc.
Incearca atunci cand il pornesti sa iti faci trei cruci inainte - neaparat
sa apesi enter cu mana cu care ti-ai facut cruce !
Revenind : setup_default_code_cb este chemat la :
432 | if (!$cmd->{code}) {
433 | if (! $self->setup_default_code_cb($cmd)) {
434 | goto failed_line;
mai sus, $cmd este declarat ca :
413 | my $cmd = $lut_frequent->{$key}; # check the frequent command set
414 | if (!$cmd) {
415 | $cmd = $lut_remaining->{$key}; # no? try the rest
si mai sus, $lut_frequent este declarat ca :
247 | my $lut_frequent = $self->{command_luts}->{frequent};
248 | my $lut_remaining = $self->{command_luts}->{remaining};
cine naiba este hashul command_luts ?
165 | $self->{command_luts} = { };
166 | $self->{command_luts}->{frequent} = { };
167 | $self->{command_luts}->{remaining} = { };
Hmm, deci se initializeaza aici ... deci cine il populeaza ?
196 | sub build_command_luts {
197 | my ($self, $arrref) = @_;
198 |
199 | my $conf = $self->{conf};
200 |
201 | my $set;
202 | foreach my $cmd (@{$arrref}) {
...
207 | # next, its priority (used to ensure frequently-used params
208 | # are parsed first)
209 | my $cmdname = $cmd->{command} || $cmd->{setting};
210 | $self->{command_luts}->{$set}->{$cmdname} = $cmd;
ok, deci @arrref contine toate optiunile ... cine cheama build_command_luts
?
175 | sub register_commands {
176 | my($self, $arrref) = @_;
177 | my $conf = $self->{conf};
178 |
179 | $self->set_defaults_from_command_list($arrref);
180 | $self->build_command_luts($arrref);
ok, acum cine cheama register_commands ?
In
https://metacpan.org/source/KMCGRAIL/Mail-SpamAssassin-3.4.0/lib/Mail/SpamAssassin/Conf.pm
avem :
4118 | $self->{parser} = Mail::SpamAssassin::Conf::Parser->new($self);
4119 | $self->{parser}->register_commands($self->set_default_commands());
bai, astia fac misto de mine ? cheama register_commands cu outputul lui
set_default_commands ?
160 | sub set_default_commands {
161 | my($self) = @_;
162 |
163 | # see "perldoc Mail::SpamAssassin::Conf::Parser" for details on this
fmt.
164 | # push each config item like this, to avoid a POD bug; it can't just
accept
165 | # ( { ... }, { ... }, { ...} ) otherwise POD parsing dies.
166 | my @cmds;
167 |
186 |
187 | push (@cmds, {
188 | setting => 'required_score',
189 | aliases => ['required_hits'], # backward compatible
190 | default => 5,
191 | type => $CONF_TYPE_NUMERIC,
192 | });
So on and so forth, continua cu declaratea tuturor comenzilor, fiecare
avand un type ...
Deci, aici ar trebui sa fie raspunsul la problema ta, verifica daca toate
optiunile declarate de tine in conf file isi gasesc typeul aici.
Daca nu, verifica daca respecti formatul pe care il mentioneaza la liniile
163 - 165 de mai sus !
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug