EAPOLSIMPrefsManage.c [plain text]
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <string.h>
#include <TargetConditionals.h>
#include <CoreFoundation/CFString.h>
#include <CoreFoundation/CFPreferences.h>
#include <SystemConfiguration/SCValidation.h>
#include "symbol_scope.h"
#include "myCFUtil.h"
#include "EAPLog.h"
#include "EAPOLSIMPrefsManage.h"
#define kEAPOLSIMPrefsManageID CFSTR("com.apple.eapol.sim.generation.plist")
#define kEAPOLSIMPrefsProcName CFSTR("EAPOLSIMPrefsManage")
#define kEAPOLSIMPrefsGenIDKey CFSTR("SIMGenerationID")
void
EAPOLSIMGenerationIncrement(void) {
SCPreferencesRef prefs = NULL;
CFNumberRef num = NULL;
uint32_t value = 1;
prefs = SCPreferencesCreate(NULL, kEAPOLSIMPrefsProcName, kEAPOLSIMPrefsManageID);
if (prefs == NULL) {
EAPLOG(LOG_NOTICE,
"SCPreferencesCreate failed, %s",
SCErrorString(SCError()));
return;
}
num = SCPreferencesGetValue(prefs, kEAPOLSIMPrefsGenIDKey);
num = isA_CFNumber(num);
if (num != NULL) {
CFNumberGetValue(num, kCFNumberSInt32Type, &value);
++value;
}
num = CFNumberCreate(NULL, kCFNumberSInt32Type, &value);
SCPreferencesSetValue(prefs, kEAPOLSIMPrefsGenIDKey, num);
SCPreferencesCommitChanges(prefs);
my_CFRelease(&num);
my_CFRelease(&prefs);
return;
}
UInt32
EAPOLSIMGenerationGet(void) {
uint32_t ret_value = 0;
SCPreferencesRef prefs = NULL;
CFNumberRef num = NULL;
prefs = SCPreferencesCreate(NULL, kEAPOLSIMPrefsProcName, kEAPOLSIMPrefsManageID);
if (prefs == NULL) {
EAPLOG(LOG_NOTICE,
"SCPreferencesCreate failed, %s",
SCErrorString(SCError()));
return 0;
}
num = SCPreferencesGetValue(prefs, kEAPOLSIMPrefsGenIDKey);
num = isA_CFNumber(num);
if (num == NULL) {
goto done;;
}
CFNumberGetValue(num, kCFNumberSInt32Type, &ret_value);
done:
my_CFRelease(&prefs);
return ret_value;
}