void test_custom_configuration_directory (void) { const gchar custom_configuration_directory[] = "/tmp/milter-manager/"; cut_assert_equal_string( NULL, milter_manager_configuration_get_custom_configuration_directory(config)); milter_manager_configuration_set_custom_configuration_directory( config, custom_configuration_directory); cut_assert_equal_string( custom_configuration_directory, milter_manager_configuration_get_custom_configuration_directory(config)); }
static void append_custom_configuration_directory (MilterManagerConfiguration *config) { struct passwd *password; const gchar *effective_user; gchar *custom_config_directory; effective_user = milter_manager_configuration_get_effective_user(config); if (!effective_user) return; password = find_password(effective_user); if (!password) return; custom_config_directory = g_strdup(milter_manager_configuration_get_custom_configuration_directory(config)); if (!custom_config_directory) custom_config_directory = g_build_filename(password->pw_dir, ".milter-manager", NULL); if (!g_file_test(custom_config_directory, G_FILE_TEST_EXISTS)) { if (g_mkdir(custom_config_directory, 0700) == -1) { milter_manager_error("failed to create custom " "configuration directory: <%s>: %s", custom_config_directory, g_strerror(errno)); return; } if (chown(custom_config_directory, password->pw_uid, password->pw_gid) == -1) { milter_manager_error("failed to change owner and group of " "configuration directory: <%s>: <%u:%u>: %s", custom_config_directory, password->pw_uid, password->pw_gid, g_strerror(errno)); return; } } milter_manager_configuration_append_load_path(config, custom_config_directory); g_free(custom_config_directory); }
static void milter_assert_default_configuration_helper (MilterManagerConfiguration *config) { cut_assert_false(milter_manager_configuration_is_privilege_mode(config)); cut_assert_equal_string( MILTER_MANAGER_DEFAULT_CONNECTION_SPEC, milter_manager_configuration_get_manager_connection_spec(config)); cut_assert_equal_string( NULL, milter_manager_configuration_get_controller_connection_spec(config)); cut_assert_equal_string( MILTER_MANAGER_DEFAULT_EFFECTIVE_USER, milter_manager_configuration_get_effective_user(config)); cut_assert_equal_string( MILTER_MANAGER_DEFAULT_EFFECTIVE_GROUP, milter_manager_configuration_get_effective_group(config)); cut_assert_equal_string( MILTER_MANAGER_DEFAULT_PID_FILE, milter_manager_configuration_get_pid_file(config)); cut_assert_equal_string( NULL, milter_manager_configuration_get_custom_configuration_directory(config)); cut_assert_equal_uint( 0660, milter_manager_configuration_get_manager_unix_socket_mode(config)); cut_assert_equal_string( MILTER_MANAGER_DEFAULT_SOCKET_GROUP, milter_manager_configuration_get_manager_unix_socket_group(config)); cut_assert_equal_uint( 0660, milter_manager_configuration_get_controller_unix_socket_mode(config)); cut_assert_equal_string( NULL, milter_manager_configuration_get_controller_unix_socket_group(config)); cut_assert_true(milter_manager_configuration_is_remove_manager_unix_socket_on_close(config)); cut_assert_true(milter_manager_configuration_is_remove_controller_unix_socket_on_close(config)); cut_assert_true(milter_manager_configuration_is_remove_manager_unix_socket_on_create(config)); cut_assert_true(milter_manager_configuration_is_remove_controller_unix_socket_on_create(config)); cut_assert_false(milter_manager_configuration_is_daemon(config)); cut_assert_equal_uint( 10, milter_manager_configuration_get_maintenance_interval(config)); cut_assert_equal_uint( MILTER_CLIENT_DEFAULT_SUSPEND_TIME_ON_UNACCEPTABLE, milter_manager_configuration_get_suspend_time_on_unacceptable(config)); cut_assert_equal_uint( MILTER_CLIENT_DEFAULT_MAX_CONNECTIONS, milter_manager_configuration_get_max_connections(config)); cut_assert_equal_uint( 0, milter_manager_configuration_get_max_file_descriptors(config)); gcut_assert_equal_enum( MILTER_TYPE_STATUS, MILTER_STATUS_ACCEPT, milter_manager_configuration_get_fallback_status(config)); cut_assert_equal_string( MILTER_MANAGER_PACKAGE_PLATFORM, milter_manager_configuration_get_package_platform(config)); cut_assert_equal_string( MILTER_MANAGER_PACKAGE_OPTIONS, milter_manager_configuration_get_package_options(config)); cut_assert_equal_uint( 0, milter_manager_configuration_get_connection_check_interval(config)); gcut_assert_equal_enum( MILTER_TYPE_CLIENT_EVENT_LOOP_BACKEND, MILTER_CLIENT_EVENT_LOOP_BACKEND_GLIB, milter_manager_configuration_get_event_loop_backend(config)); cut_assert_equal_uint( 0, milter_manager_configuration_get_n_workers(config)); cut_assert_equal_uint( 0, milter_manager_configuration_get_default_packet_buffer_size(config)); cut_assert_equal_boolean( TRUE, milter_manager_configuration_get_use_syslog(config)); cut_assert_equal_string( NULL, milter_manager_configuration_get_syslog_facility(config)); cut_assert_equal_uint( MILTER_CHUNK_SIZE, milter_manager_configuration_get_chunk_size(config)); cut_assert_equal_uint( 0, milter_manager_configuration_get_max_pending_finished_sessions(config)); if (expected_children) g_object_unref(expected_children); expected_children = milter_manager_children_new(config, loop); if (actual_children) g_object_unref(actual_children); actual_children = milter_manager_children_new(config, loop); milter_manager_configuration_setup_children(config, actual_children, NULL); milter_assert_equal_children(expected_children, actual_children); g_object_unref(actual_children); actual_children = NULL; }