> Hello, > > A umask port from Squid2 discovered that Squid3 parses squid.conf > file integers as decimal numbers while Squid2 honors 0 and 0x prefixes > (indicating octal and hex numbers). The later functionality is needed > for things like unmask that are traditionally specified using octal > format. > > The change to honor other integer bases was introduced in Squid2 before > 2005/05/17. I failed to track the commit that did it, unfortunately. The > cache_cf.c file was changed in Squid2 HEAD as the result of this: > >> revision 1.422 >> date: 2005/05/17 16:56:37; author: hno; state: Exp; lines: +285 -209 >> Reset Squid-2 HEAD to the current state of Squid-2.5 to reduce >> confustion >> >> the old Squid-2 HEAD is available as the branch OLD_SQUID_2_6 if needed. > > > My patch changes Squid3 behavior to match that of Squid2.
bb: approve > > The alternative is to add a new "base_integer" type to squid.conf. That > type would honor prefixes while the current "int" type will not. > However, if Squid2 did not significant problem with flexible integer > parsing, Squid3 should be OK as well. Also, such a subtle difference > between the two configurations would make upgrading more difficult for > those rare cases where an admin used a non-decimal integer in squid.conf > for things other than umask (on purpose or by accident). I agree with you on such a difference causing problems. I don;t think we need it. > > I doubt bzr managed to generate a proper bundle, even though I did > follow instructions and did _not_ commit before running the two commands > below. I have no idea why bzr send did not work and --verbose does not > produce more info. > > bzr diff -r submit: | less > bzr send [EMAIL PROTECTED] Hmm, what is the output of: bzr info > > To compensate, I am quoting the one-line patch below. > > Thank you, > > Alex. > > === modified file 'src/Parsing.cc' > --- src/Parsing.cc 2007-08-13 23:20:50 +0000 > +++ src/Parsing.cc 2008-04-02 15:51:03 +0000 > @@ -89,7 +89,8 @@ > if (token == NULL) > self_destruct(); > > - if (sscanf(token, "%d", &i) != 1) > + // %i honors 0 and 0x prefixes, which are important for things like > umask > + if (sscanf(token, "%i", &i) != 1) > self_destruct(); > > return i; > >