[ROOT] [Carrot] Bug in RootApacheModule::CreateServerConfig

From: Ashley Cambrell (ash@freaky-namuh.com)
Date: Fri May 03 2002 - 01:03:24 MEST


Hello Carroters,

I was trying to put together what I have written and I came across a bug
in RootApacheModule::CreateServerConfig.  I couldn't get Carrot to use
another CarrotGlobalInit.C etc. when set from system.rootrc


   fServerConfig->fGlobalInitScript =
gEnv->GetValue("Carrot.GlobalInit",kEnvGlobal); //<--- BUG, returns
Int_t and not char*
   if(fServerConfig->fGlobalInitScript.IsNull()) // hardcode it
      fServerConfig->fGlobalInitScript =
gSystem->ConcatFileName(confdir.Data(),"CarrotGlobalInit.C");
   fServerConfig->fGlobalInitScript =
gSystem->ExpandPathName(fServerConfig->fGlobalInitScript.Data());


According to the TEnv docs, calling Int_t GetValue(const char *name,
Int_t dflt) will return it's Int_t value or whatever dflt is set.
 Carrot.GlobalInit is a string env var so
gEnv->GetValue("Carrot.GlobalInit",kEnvGlobal); will always return 0 as
kEnvGlobal is an enum (0).  (enums evaluate to Int_t?)

This should read:

   fServerConfig->fGlobalInitScript =
gEnv->GetValue("Carrot.GlobalInit",gSystem->ConcatFileName(confdir.Data(),"CarrotGlobalInit.C"));
   fServerConfig->fGlobalInitScript =
gSystem->ExpandPathName(fServerConfig->fGlobalInitScript.Data());

Setting a different value for in system.rootrc CarrotGlobalInit.C now
works :-)

Thanks All

Ashley Cambrell



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:52 MET