示例#1
0
UByte PancakeAuthenticationInitialize() {
	PancakeConfigurationGroup *group;
	PancakeConfigurationSetting *setting;

	setting = PancakeConfigurationAddSetting(NULL, (String) {"Authentication", sizeof("Authentication") - 1}, CONFIG_TYPE_LIST, NULL, 0, (config_value_t) 0, NULL);
	group = PancakeConfigurationListGroup(setting, PancakeAuthenticationGroupConfiguration);

	PancakeConfigurationAddSetting(group, (String) {"Backend", sizeof("Backend") - 1}, CONFIG_TYPE_STRING, NULL, 0, (config_value_t) 0, PancakeAuthenticationBackendConfiguration);
	PancakeConfigurationAddSetting(group, (String) {"Name", sizeof("Name") - 1}, CONFIG_TYPE_STRING, NULL, 0, (config_value_t) 0, PancakeAuthenticationNameConfiguration);

	PancakeConfigurationAddSetting(NULL, (String) {"AuthenticationConfiguration", sizeof("AuthenticationConfiguration") - 1}, CONFIG_TYPE_STRING, &PancakeAuthenticationActiveConfiguration, sizeof(void*), (config_value_t) 0, PancakeAuthenticationConfigurationConfiguration);

	return 1;
}
UByte PancakeHTTPBasicAuthenticationInitialize() {
	PancakeConfigurationSetting *setting, *vhost;
	PancakeConfigurationGroup *group;

	// Defer if HTTP or Authentication are not yet intialized
	if(!PancakeHTTP.initialized || !PancakeAuthenticationModule.initialized) {
		return 2;
	}

	group = PancakeConfigurationLookupGroup(NULL, (String) {"HTTP", sizeof("HTTP") - 1});
	setting = PancakeConfigurationAddSetting(group, (String) {"HTTPAuthenticationRealm", sizeof("HTTPAuthenticationRealm") - 1}, CONFIG_TYPE_STRING, &activeRealm, sizeof(void*), (config_value_t) 0, PancakeConfigurationString);
	vhost = PancakeConfigurationLookupSetting(group, (String) {"VirtualHosts", sizeof("VirtualHosts") - 1});
	PancakeConfigurationAddSettingToGroup(vhost->listGroup, setting);

	setting = PancakeConfigurationLookupSetting(NULL, (String) {"AuthenticationConfiguration", sizeof("AuthenticationConfiguration") - 1});
	PancakeConfigurationAddSettingToGroup(vhost->listGroup, setting);

	PancakeHTTPRegisterParserHook(&PancakeHTTPBasicAuthentication);

	return 1;
}