Exemple #1
0
void GleisbildClear(GleisbildStruct *Data)
{
   if (GleisbildGetGleisbildDb(Data) != (Map *)NULL)
      MapDestroy(GleisbildGetGleisbildDb(Data));
   GleisbildSetNumPages(Data, 0);
   GleisbildSetGleisbildDb(Data, MapCreate());
   if (GleisbildGetGleisbildDb(Data) != (Map *)NULL)
   {
      MapInit(GleisbildGetGleisbildDb(Data), (CmpFkt)GleisbildIdCmp,
              (MapKeyDelCbFkt)NULL, (MapDataDelCbFkt)free);
   }
}
Exemple #2
0
void CanMemberClear(CanMemberStruct *Data)
{
   if (CanMemberGetCanMemberDb(Data) != (Map *)NULL)
      MapDestroy(CanMemberGetCanMemberDb(Data));
   CanMemberSetCanMemberDb(Data, MapCreate());
   CanMemberSetNumMembers(Data, 0);
   if (CanMemberGetCanMemberDb(Data) != (Map *)NULL)
   {
      MapInit(CanMemberGetCanMemberDb(Data), (CmpFkt)CanMemberUidCmp,
              (MapKeyDelCbFkt)NULL, (MapDataDelCbFkt)free);
   }
}
Exemple #3
0
void LokClear(LokStruct *Data)
{
   if (LokGetLokDb(Data) != (Map *)NULL)
      MapDestroy(LokGetLokDb(Data));
   LokSetNumLoks(Data, 0);
   LokSetIsChanged(Data, FALSE);
   LokSetLokDb(Data, MapCreate());
   if (LokGetLokDb(Data) != (Map *)NULL)
   {
      MapInit(LokGetLokDb(Data), (CmpFkt)strcmp,
              (MapKeyDelCbFkt)NULL, (MapDataDelCbFkt)free);
   }
}
Exemple #4
0
Cs2CfgData *Cs2CfgDataCreate(void)
{  Cs2CfgData *NewData;

   NewData = (Cs2CfgData *)malloc(sizeof(Cs2CfgData));
   if (NewData != (Cs2CfgData *)NULL)
   {
      Cs2CfgDataSetCfgDatas(NewData, MapCreate());
      if (Cs2CfgDataGetCfgDatas(NewData) == (Map *)NULL)
      {
         free(NewData);
         NewData = (Cs2CfgData *)NULL;
      }
   }
   return(NewData);
}
Exemple #5
0
CanMemberStruct *CanMemberCreate(void)
{  CanMemberStruct *NewData;

   NewData = (CanMemberStruct *)malloc(sizeof(CanMemberStruct));
   if (NewData != (CanMemberStruct *)NULL)
   {
      CanMemberSetNumMembers(NewData, 0);
      CanMemberSetCanMemberDb(NewData, MapCreate());
      if (CanMemberGetCanMemberDb(NewData) == (Map *)NULL)
      {
         free(NewData);
         NewData = (CanMemberStruct *)NULL;
      }
   }
   return(NewData);
}
Exemple #6
0
LokStruct *LokCreate(void)
{  LokStruct *NewData;

   NewData = (LokStruct *)malloc(sizeof(LokStruct));
   if (NewData != (LokStruct *)NULL)
   {
      LokSetLocFilePath(NewData, "/var/www/config/");
      LokSetNumLoks(NewData, 0);
      LokSetLokDb(NewData, MapCreate());
      if (LokGetLokDb(NewData) == (Map *)NULL)
      {
         free(NewData);
         NewData = (LokStruct *)NULL;
      }
   }
   return(NewData);
}
Exemple #7
0
GleisbildStruct *GleisbildCreate(void)
{  GleisbildStruct *NewData;

   NewData = (GleisbildStruct *)malloc(sizeof(GleisbildStruct));
   if (NewData != (GleisbildStruct *)NULL)
   {
      GleisbildSetGleisbildFilePath(NewData, "/var/www/config/");
      GleisbildSetNumPages(NewData, 0);
      GleisbildSetGleisbildDb(NewData, MapCreate());
      if (GleisbildGetGleisbildDb(NewData) == (Map *)NULL)
      {
         free(NewData);
         NewData = (GleisbildStruct *)NULL;
      }
   }
   return(NewData);
}
Exemple #8
0
NTSTATUS MapTest(PVOID Context)
{
    typedef struct _SID_KV {
        CHAR *Key;
        CHAR *Value;
    } SID_KV, *PSID_KV;

    NTSTATUS Status;
    PVOID Value;
    PMAP Map;
    ULONG Index, ValueSize;
    SID_KV TestKvs[] = {{"S-1-0-0", "SID0"},
                        {"S-1-1-0", "SID1"},
                        {"S-1-0", "SID2"},
                        {"S-1-1", "SID3"},
                        {"S-1-5-21-1180699209-877415012-3182924384-1004", "BIG-SID4"},
                        {"S-1-5-20", "SID5"},
                        {"S-1-5-21-1180699209-111115012-3182924384-1004", "Another-BIG-SID6"}};
    Map = MapCreate();
    if (!Map) {
        KLErr("Can't create map");
        return STATUS_INSUFFICIENT_RESOURCES;
    }

    for (Index = 0; Index < RTL_NUMBER_OF(TestKvs); Index++) {
        Status = MapInsertKey(Map, TestKvs[Index].Key, (ULONG)(strlen(TestKvs[Index].Key) + 1),
                              TestKvs[Index].Value, (ULONG)(strlen(TestKvs[Index].Value) + 1));
        if (!NT_SUCCESS(Status)) {
            KLErr("MapInsertKey failed Status 0x%x", Status);
            goto cleanup;
        }
    }

    /* Try to insert key 4 again */
    Status = MapInsertKey(Map, TestKvs[4].Key, (ULONG)(strlen(TestKvs[4].Key) + 1),
                          TestKvs[4].Value, (ULONG)(strlen(TestKvs[4].Value) + 1));
    if (Status != STATUS_OBJECT_NAME_COLLISION) {
        Status = STATUS_UNSUCCESSFUL;
        KLErr("MapInsertKey duplicate Status 0x%x", Status);
        goto cleanup;
    }

    /* Delete key 5 */
    Status = MapDeleteKey(Map, TestKvs[5].Key, (ULONG)(strlen(TestKvs[5].Key) + 1));
    if (!NT_SUCCESS(Status)) {
        KLErr("MapDeleteKey Status 0x%x", Status);
        goto cleanup;
    }

    for (Index = 0; Index < RTL_NUMBER_OF(TestKvs); Index++) {
        /* Skip key 5 because it's already deleted */
        if (Index == 5)
            continue;
        Status = MapLookupKey(Map, TestKvs[Index].Key, (ULONG)(strlen(TestKvs[Index].Key) + 1), &Value, &ValueSize);
        if (!NT_SUCCESS(Status)) {
            KLErr("MapLookupKey failed Status 0x%x", Status);
            goto cleanup;
        }

        if (ValueSize != (strlen(TestKvs[Index].Value) + 1)) {
            KLErr("MapLookupKey returned invalid ValueSize 0x%x", ValueSize);
            ExFreePoolWithTag(Value, MAP_TAG);
            Status = STATUS_UNSUCCESSFUL;
            goto cleanup;
        }
        if (ValueSize != RtlCompareMemory(Value, TestKvs[Index].Value, ValueSize)) {
            KLErr("MapLookupKey returned invalid Value content");
            ExFreePoolWithTag(Value, MAP_TAG);
            Status = STATUS_UNSUCCESSFUL;
            goto cleanup;            
        }
        ExFreePoolWithTag(Value, MAP_TAG);
    }
    Status = STATUS_SUCCESS;
cleanup:
    MapDelete(Map);
    KLInf("MapTest Status 0x%x", Status);
    return Status;
}