I would like to describe a scenario that illustrates when the bug occurs.

Consider two sets of awstats configuration files, where several sites share some common directives, and several other sites share some other common directives:

awstats.site1.domainA.com.conf contains:
  Include "awstats.conf.domainA"
  SiteDomain="site1.domainA.com"

awstats.site2.domainA.com.conf contains:
  Include "awstats.conf.domainA"
  SiteDomain="site2.domainA.com"

awstats.site3.domainB.com.conf contains:
  Include "awstats.conf.domainB"
  SiteDomain="site3.domainB.com.conf"

awstats.site4.domainB.com.conf contains:
  Include "awstats.conf.domainB"
  SiteDomain="site4.domainB.com.conf"

The config files that contain directives common to the two sets of sites are like this:

awstats.conf.domainA contains:
  Include "awstats.conf"
  [directives common to sites in domainA go here]

awstats.conf.domainB contains:
  Include "awstats.conf"
  [directives common to sites in domainB go here]

Now, the problem is that the directives in these two files are completely ignored because all the nested configuration files are closed as soon as "awstats.conf" and "awstats.conf.local" have been read. This is due to awstats.pl sharing the same filehandle for all the config files (CONFIG_INCLUDE), so as soon as it finishes reading a nested config file, it inadvertently closes ALL nested config files, even if it hasn't finished reading them. This filehandle needs to be localized as described above so that each config file has a separate filehandle.

I hope this explanation sufficiently describes the problem I am having without incorporating too much detail. However, if you need more information or a better test case to illustrate the bug, please let me know.

The crux of the problem is that any directives in a nested include file that occur BELOW an Include line are ignored.



--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to