From: <mik...@us...> - 2008-08-20 22:24:20
|
Revision: 874 http://omc.svn.sourceforge.net/omc/?rev=874&view=rev Author: mike-brasher Date: 2008-08-20 22:24:28 +0000 (Wed, 20 Aug 2008) Log Message: ----------- Fixed bug causing CMPI string trash. Modified Paths: -------------- cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/BootServiceProvider.c cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/ConfigSettingProvider.c cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/ElementSettingDataProvider.c cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/HostedServiceProvider.c cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/OrderedComponentProvider.c cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/Resource.c cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/Resource.h cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/ServiceAffectsElementProvider.c cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/SourceSettingProvider.c Modified: cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/BootServiceProvider.c =================================================================== --- cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/BootServiceProvider.c 2008-08-20 21:10:23 UTC (rev 873) +++ cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/BootServiceProvider.c 2008-08-20 22:24:28 UTC (rev 874) @@ -34,12 +34,13 @@ const char** properties) { const char* ns = KNameSpace(cop); + Str256 s; BootService x; BootService_Init(&x, _cb, ns); BootService_Set_Name(&x, "SBLIM:Boot_Service"); - BootService_Set_SystemCreationClassName(&x, SysCreationClassName().str); - BootService_Set_SystemName(&x, SysName().str); + BootService_Set_SystemCreationClassName(&x, SysCreationClassName(&s)); + BootService_Set_SystemName(&x, SysName(&s)); BootService_Set_CreationClassName(&x, "Linux_BootService"); BootService_Set_ElementName(&x, "SBLIM:Boot_Service"); KReturnInstance(cr, x); Modified: cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/ConfigSettingProvider.c =================================================================== --- cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/ConfigSettingProvider.c 2008-08-20 21:10:23 UTC (rev 873) +++ cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/ConfigSettingProvider.c 2008-08-20 22:24:28 UTC (rev 874) @@ -34,7 +34,7 @@ { ConfigSetting x; ConfigSetting_Init(&x, _cb, KNameSpace(cop)); - ConfigSetting_Set_InstanceID(&x, "SBLIM:BootConfigSetting:Grub"); + ConfigSetting_Set_InstanceID(&x, "SBLIM:Linux_BootConfigSetting:Grub"); ConfigSetting_Set_ElementName(&x, "Default Grub Boot Configuration"); KReturnInstance(cr, x); CMReturn(CMPI_RC_OK); Modified: cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/ElementSettingDataProvider.c =================================================================== --- cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/ElementSettingDataProvider.c 2008-08-20 21:10:23 UTC (rev 873) +++ cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/ElementSettingDataProvider.c 2008-08-20 22:24:28 UTC (rev 874) @@ -37,15 +37,16 @@ ComputerSystemRef me; /* ManagedElement */ ConfigSettingRef sd; /* SettingData */ ElementSettingData x; + Str256 s; /* Linux_BootElementSettingData.ManagedElement */ ComputerSystemRef_Init(&me, _cb, ns); ComputerSystemRef_Set_CreationClassName(&me, "Linux_ComputerSystem"); - ComputerSystemRef_Set_Name(&me, SysName().str); + ComputerSystemRef_Set_Name(&me, SysName(&s)); /* Linux_BootElementSettingData.SettingData */ ConfigSettingRef_Init(&sd, _cb, ns); - ConfigSettingRef_Set_InstanceID(&sd, "SBLIM:BootConfigSetting:Grub"); + ConfigSettingRef_Set_InstanceID(&sd, "SBLIM:Linux_BootConfigSetting:Grub"); /* Linux_BootElementSettingData */ ElementSettingData_Init(&x, _cb, ns); Modified: cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/HostedServiceProvider.c =================================================================== --- cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/HostedServiceProvider.c 2008-08-20 21:10:23 UTC (rev 873) +++ cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/HostedServiceProvider.c 2008-08-20 22:24:28 UTC (rev 874) @@ -37,17 +37,18 @@ ComputerSystemRef a; /* Antecedent */ BootServiceRef d; /* Dependent */ HostedService x; + Str256 s; /* Linux_BootHostedService.Antecedent */ ComputerSystemRef_Init(&a, _cb, KNameSpace(cop)); ComputerSystemRef_Set_CreationClassName(&a, "Linux_ComputerSystem"); - ComputerSystemRef_Set_Name(&a, SysName().str); + ComputerSystemRef_Set_Name(&a, SysName(&s)); /* Linux_BootHostedService.Dependent */ BootServiceRef_Init(&d, _cb, ns); BootServiceRef_Set_Name(&d, "SBLIM:Boot_Service"); - BootServiceRef_Set_SystemCreationClassName(&d, SysCreationClassName().str); - BootServiceRef_Set_SystemName(&d, SysName().str); + BootServiceRef_Set_SystemCreationClassName(&d, SysCreationClassName(&s)); + BootServiceRef_Set_SystemName(&d, SysName(&s)); BootServiceRef_Set_CreationClassName(&d, "Linux_BootService"); /* Linux_BootHostedService */ Modified: cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/OrderedComponentProvider.c =================================================================== --- cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/OrderedComponentProvider.c 2008-08-20 21:10:23 UTC (rev 873) +++ cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/OrderedComponentProvider.c 2008-08-20 22:24:28 UTC (rev 874) @@ -39,6 +39,7 @@ OrderedComponent x; struct GrubMenu menu; size_t i; + Str256 s; /* Load Grub configuration */ if (LoadGrubMenu(GRUB_MENU_LST, &menu) != 0) @@ -46,7 +47,7 @@ /* Linux_BootOrderedComponent.GroupComponent */ ConfigSettingRef_Init(&g, _cb, ns); - ConfigSettingRef_Set_InstanceID(&g, "SBLIM:ConfigSetting:Grub"); + ConfigSettingRef_Set_InstanceID(&g, "SBLIM:Linux_BootConfigSetting:Grub"); /* Generate association instances */ @@ -55,7 +56,7 @@ /* Linux_BootOrderedComponent.PartComponent */ SourceSettingRef_Init(&p, _cb, ns); SourceSettingRef_Set_InstanceID(&p, - Sprintf("SBLIM:GrubBootSourceSetting:%d", i).str); + Sprintf(&s, "SBLIM:Linux_GrubBootSourceSetting:%d", (int)i)); /* Linux_BootOrderedComponent */ OrderedComponent_Init(&x, _cb, ns); Modified: cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/Resource.c =================================================================== --- cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/Resource.c 2008-08-20 21:10:23 UTC (rev 873) +++ cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/Resource.c 2008-08-20 22:24:28 UTC (rev 874) @@ -204,12 +204,18 @@ printf("}\n"); } -int main() +int main(int argc, char** argv) { struct GrubMenu menu; - if (LoadGrubMenu("./menu.lst", &menu) != 0) + if (argc != 2) { + fprintf(stderr, "Usage: %s path\n", argv[0]); + exit(1); + } + + if (LoadGrubMenu(argv[1], &menu) != 0) + { fprintf(stderr, "failed to load menu.lst\n"); exit(1); } Modified: cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/Resource.h =================================================================== --- cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/Resource.h 2008-08-20 21:10:23 UTC (rev 873) +++ cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/Resource.h 2008-08-20 22:24:28 UTC (rev 874) @@ -16,48 +16,39 @@ typedef struct _Str256 { char buf[256]; - const char* str; } Str256; -KINLINE Str256 SysName() +KINLINE char* SysName(Str256* s) { - Str256 s; - s.str = s.buf; - s.buf[0] = '\0'; - cmpiutilGetComputerSystemName(s.buf, 256); - return s; + s->buf[0] = '\0'; + cmpiutilGetComputerSystemName(s->buf, sizeof(s->buf)-1); + return s->buf; } -KINLINE Str256 SysClassName() +KINLINE char* SysClassName(Str256* s) { - Str256 s; - s.str = s.buf; - s.buf[0] = '\0'; - strncat(s.buf, cmpiutilGetComputerSystemClassName(), sizeof(s.buf)-1); - return s; + s->buf[0] = '\0'; + strncat(s->buf, cmpiutilGetComputerSystemClassName(), sizeof(s->buf)-1); + return s->buf; } -KINLINE Str256 SysCreationClassName() +KINLINE char* SysCreationClassName(Str256* s) { - Str256 s; - s.str = s.buf; - s.buf[0] = '\0'; - strncat(s.buf, "Linux_ComputerSystem", sizeof(s.buf)-1); - return s; + s->buf[0] = '\0'; + strncat(s->buf, "Linux_ComputerSystem", sizeof(s->buf)-1); + return s->buf; } -KINLINE Str256 Sprintf(const char* format, ...) +KINLINE char* Sprintf(Str256* s, const char* format, ...) { va_list ap; - Str256 s; - s.str = s.buf; va_start(ap, format); - vsprintf(s.buf, format, ap); + vsprintf(s->buf, format, ap); va_end(ap); - return s; + return s->buf; } #define MAX_GRUB_MENU_ITEMS 32 @@ -83,7 +74,8 @@ /* Returns 0 if Grub is enabled */ KHIDE int TestGrubEnabled(); -#define GRUB_MENU_LST "/boot/grub/menu.lst" +/* #define GRUB_MENU_LST "/boot/grub/menu.lst" */ +#define GRUB_MENU_LST "/home/mbrasher/tmp/menu.lst" /* Load Grub menu.lst file. Returns 0 on success */ KHIDE int LoadGrubMenu(const char* path, struct GrubMenu* menu); Modified: cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/ServiceAffectsElementProvider.c =================================================================== --- cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/ServiceAffectsElementProvider.c 2008-08-20 21:10:23 UTC (rev 873) +++ cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/ServiceAffectsElementProvider.c 2008-08-20 22:24:28 UTC (rev 874) @@ -37,18 +37,19 @@ ComputerSystemRef cs; BootServiceRef bs; ServiceAffectsElement x; + Str256 s; /* Linux_BootServiceAffectsElement.AffectingElement */ BootServiceRef_Init(&bs, _cb, ns); BootServiceRef_Set_Name(&bs, "SBLIM:Boot_Service"); - BootServiceRef_Set_SystemCreationClassName(&bs, SysCreationClassName().str); - BootServiceRef_Set_SystemName(&bs, SysName().str); + BootServiceRef_Set_SystemCreationClassName(&bs, SysCreationClassName(&s)); + BootServiceRef_Set_SystemName(&bs, SysName(&s)); BootServiceRef_Set_CreationClassName(&bs, "Linux_BootService"); /* Linux_BootServiceAffectsElement.AffectedElement */ ComputerSystemRef_Init(&cs, _cb, KNameSpace(cop)); ComputerSystemRef_Set_CreationClassName(&cs, "Linux_ComputerSystem"); - ComputerSystemRef_Set_Name(&cs, SysName().str); + ComputerSystemRef_Set_Name(&cs, SysName(&s)); /* Linux_BootServiceAffectsElement */ ServiceAffectsElement_Init(&x, _cb, ns); Modified: cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/SourceSettingProvider.c =================================================================== --- cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/SourceSettingProvider.c 2008-08-20 21:10:23 UTC (rev 873) +++ cmpiprofiles/sblim-cmpi-boot_control_profile/trunk/src/SourceSettingProvider.c 2008-08-20 22:24:28 UTC (rev 874) @@ -35,6 +35,7 @@ { struct GrubMenu menu; size_t i; + Str256 s; /* Load Grub configuration */ if (LoadGrubMenu(GRUB_MENU_LST, &menu) != 0) @@ -51,7 +52,7 @@ /* Linux_GrubBootSourceSetting.InstanceID */ SourceSetting_Set_InstanceID(&x, - Sprintf("SBLIM:GrubBootSourceSetting:%d", i).str); + Sprintf(&s, "SBLIM:Linux_GrubBootSourceSetting:%d", (int)i)); /* Linux_GrubBootSourceSetting.FailThroughSupported */ SourceSetting_Set_FailThroughSupported_Unknown(&x); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |