From 9634c9be31b1486ae6f2cd0a06fdd76479fda562 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Mon, 1 Jun 2020 05:59:43 +0000 Subject: [PATCH] Deploy code docs to GitHub Pages for Travis build 3424 Commit: 12813f4fcc97c51818fc3aa42858fd75c546f500 --- ...3___m_s_initial_create_8_designer_8cs.html | 2 +- ..._initial_create_8_designer_8cs_source.html | 2 +- 20180906135553___m_s_initial_create_8cs.html | 2 +- ...35553___m_s_initial_create_8cs_source.html | 2 +- ...9___m_y_initial_create_8_designer_8cs.html | 2 +- ..._initial_create_8_designer_8cs_source.html | 2 +- 20180906143029___m_y_initial_create_8cs.html | 2 +- ...43029___m_y_initial_create_8cs_source.html | 2 +- ...y_add_minimum_security_8_designer_8cs.html | 2 +- ...inimum_security_8_designer_8cs_source.html | 2 +- ...020726___m_y_add_minimum_security_8cs.html | 2 +- ...__m_y_add_minimum_security_8cs_source.html | 2 +- ...s_add_minimum_security_8_designer_8cs.html | 2 +- ...inimum_security_8_designer_8cs_source.html | 2 +- ...021228___m_s_add_minimum_security_8cs.html | 2 +- ...__m_s_add_minimum_security_8cs_source.html | 2 +- ...nd_foreign_key_cleanup_8_designer_8cs.html | 2 +- ...ign_key_cleanup_8_designer_8cs_source.html | 2 +- ..._nullable_and_foreign_key_cleanup_8cs.html | 2 +- ...le_and_foreign_key_cleanup_8cs_source.html | 2 +- ...nd_foreign_key_cleanup_8_designer_8cs.html | 2 +- ...ign_key_cleanup_8_designer_8cs_source.html | 2 +- ..._nullable_and_foreign_key_cleanup_8cs.html | 2 +- ...le_and_foreign_key_cleanup_8cs_source.html | 2 +- ...h_compile_job_required_8_designer_8cs.html | 2 +- ...le_job_required_8_designer_8cs_source.html | 2 +- ...m_s_reattach_compile_job_required_8cs.html | 2 +- ...ttach_compile_job_required_8cs_source.html | 2 +- ...h_compile_job_required_8_designer_8cs.html | 2 +- ...le_job_required_8_designer_8cs_source.html | 2 +- ...m_y_reattach_compile_job_required_8cs.html | 2 +- ...ttach_compile_job_required_8cs_source.html | 2 +- ...gle_testmerge_comments_8_designer_8cs.html | 2 +- ...tmerge_comments_8_designer_8cs_source.html | 2 +- ...4___m_s_toggle_testmerge_comments_8cs.html | 2 +- ..._toggle_testmerge_comments_8cs_source.html | 2 +- ...gle_testmerge_comments_8_designer_8cs.html | 2 +- ...tmerge_comments_8_designer_8cs_source.html | 2 +- ...9___m_y_toggle_testmerge_comments_8cs.html | 2 +- ..._toggle_testmerge_comments_8cs_source.html | 2 +- ...m_s_fix_rev_info_index_8_designer_8cs.html | 2 +- ..._rev_info_index_8_designer_8cs_source.html | 2 +- ...19041825___m_s_fix_rev_info_index_8cs.html | 2 +- ...5___m_s_fix_rev_info_index_8cs_source.html | 2 +- ...m_y_fix_rev_info_index_8_designer_8cs.html | 2 +- ..._rev_info_index_8_designer_8cs_source.html | 2 +- ...19042440___m_y_fix_rev_info_index_8cs.html | 2 +- ...0___m_y_fix_rev_info_index_8cs_source.html | 2 +- ..._reconnection_interval_8_designer_8cs.html | 2 +- ...ection_interval_8_designer_8cs_source.html | 2 +- ...dd_chat_bot_reconnection_interval_8cs.html | 2 +- ..._bot_reconnection_interval_8cs_source.html | 2 +- ..._reconnection_interval_8_designer_8cs.html | 2 +- ...ection_interval_8_designer_8cs_source.html | 2 +- ...dd_chat_bot_reconnection_interval_8cs.html | 2 +- ..._bot_reconnection_interval_8cs_source.html | 2 +- ...m_s_tons_of_validation_8_designer_8cs.html | 2 +- ...s_of_validation_8_designer_8cs_source.html | 2 +- ...11164808___m_s_tons_of_validation_8cs.html | 2 +- ...8___m_s_tons_of_validation_8cs_source.html | 2 +- ...m_y_tons_of_validation_8_designer_8cs.html | 2 +- ...s_of_validation_8_designer_8cs_source.html | 2 +- ...11170010___m_y_tons_of_validation_8cs.html | 2 +- ...0___m_y_tons_of_validation_8cs_source.html | 2 +- ...9___m_s_limits_on_chat_8_designer_8cs.html | 2 +- ..._limits_on_chat_8_designer_8cs_source.html | 2 +- 20200420175359___m_s_limits_on_chat_8cs.html | 2 +- ...75359___m_s_limits_on_chat_8cs_source.html | 2 +- ...5___m_y_limits_on_chat_8_designer_8cs.html | 2 +- ..._limits_on_chat_8_designer_8cs_source.html | 2 +- 20200420181015___m_y_limits_on_chat_8cs.html | 2 +- ...81015___m_y_limits_on_chat_8cs_source.html | 2 +- ...le_job_d_m_api_version_8_designer_8cs.html | 2 +- ...d_m_api_version_8_designer_8cs_source.html | 2 +- ...s_add_compile_job_d_m_api_version_8cs.html | 2 +- ...ompile_job_d_m_api_version_8cs_source.html | 2 +- ...le_job_d_m_api_version_8_designer_8cs.html | 2 +- ...d_m_api_version_8_designer_8cs_source.html | 2 +- ...y_add_compile_job_d_m_api_version_8cs.html | 2 +- ...ompile_job_d_m_api_version_8cs_source.html | 2 +- ...m_y_checkpoint_rebuild_8_designer_8cs.html | 2 +- ...ckpoint_rebuild_8_designer_8cs_source.html | 2 +- ...23003841___m_y_checkpoint_rebuild_8cs.html | 2 +- ...1___m_y_checkpoint_rebuild_8cs_source.html | 2 +- ...m_s_checkpoint_rebuild_8_designer_8cs.html | 2 +- ...ckpoint_rebuild_8_designer_8cs_source.html | 2 +- ...23004015___m_s_checkpoint_rebuild_8cs.html | 2 +- ...5___m_s_checkpoint_rebuild_8cs_source.html | 2 +- ...ns_add_d_m_api_version_8_designer_8cs.html | 2 +- ...d_m_api_version_8_designer_8cs_source.html | 2 +- ..._s_kill_jsons_add_d_m_api_version_8cs.html | 2 +- ..._jsons_add_d_m_api_version_8cs_source.html | 2 +- ...ns_add_d_m_api_version_8_designer_8cs.html | 2 +- ...d_m_api_version_8_designer_8cs_source.html | 2 +- ..._y_kill_jsons_add_d_m_api_version_8cs.html | 2 +- ..._jsons_add_d_m_api_version_8cs_source.html | 2 +- ..._s_add_job_error_codes_8_designer_8cs.html | 2 +- ...job_error_codes_8_designer_8cs_source.html | 2 +- ...5024433___m_s_add_job_error_codes_8cs.html | 2 +- ...___m_s_add_job_error_codes_8cs_source.html | 2 +- ..._y_add_job_error_codes_8_designer_8cs.html | 2 +- ...job_error_codes_8_designer_8cs_source.html | 2 +- ...5024953___m_y_add_job_error_codes_8cs.html | 2 +- ...___m_y_add_job_error_codes_8cs_source.html | 2 +- ...s_fix_cascading_delete_8_designer_8cs.html | 2 +- ...ascading_delete_8_designer_8cs_source.html | 2 +- ...173852___m_s_fix_cascading_delete_8cs.html | 2 +- ...__m_s_fix_cascading_delete_8cs_source.html | 2 +- ...y_fix_cascading_delete_8_designer_8cs.html | 2 +- ...ascading_delete_8_designer_8cs_source.html | 2 +- ...180159___m_y_fix_cascading_delete_8cs.html | 2 +- ...__m_y_fix_cascading_delete_8cs_source.html | 2 +- ...27180904___s_l_rebuild_8_designer_8cs.html | 2 +- ...4___s_l_rebuild_8_designer_8cs_source.html | 2 +- 20200427180904___s_l_rebuild_8cs.html | 2 +- 20200427180904___s_l_rebuild_8cs_source.html | 2 +- ...57___m_s_add_heartbeat_8_designer_8cs.html | 2 +- ...s_add_heartbeat_8_designer_8cs_source.html | 2 +- 20200511005957___m_s_add_heartbeat_8cs.html | 2 +- ...005957___m_s_add_heartbeat_8cs_source.html | 2 +- ...48___m_y_add_heartbeat_8_designer_8cs.html | 2 +- ...y_add_heartbeat_8_designer_8cs_source.html | 2 +- 20200511011048___m_y_add_heartbeat_8cs.html | 2 +- ...011048___m_y_add_heartbeat_8cs_source.html | 2 +- ...17___s_l_add_heartbeat_8_designer_8cs.html | 2 +- ...l_add_heartbeat_8_designer_8cs_source.html | 2 +- 20200511012117___s_l_add_heartbeat_8cs.html | 2 +- ...012117___s_l_add_heartbeat_8cs_source.html | 2 +- ..._l_remove_soft_columns_8_designer_8cs.html | 2 +- ...ve_soft_columns_8_designer_8cs_source.html | 2 +- ...1162912___s_l_remove_soft_columns_8cs.html | 2 +- ...___s_l_remove_soft_columns_8cs_source.html | 2 +- ..._s_remove_soft_columns_8_designer_8cs.html | 2 +- ...ve_soft_columns_8_designer_8cs_source.html | 2 +- ...2181801___m_s_remove_soft_columns_8cs.html | 2 +- ...___m_s_remove_soft_columns_8cs_source.html | 2 +- ..._y_remove_soft_columns_8_designer_8cs.html | 2 +- ...ve_soft_columns_8_designer_8cs_source.html | 2 +- ...2182535___m_y_remove_soft_columns_8cs.html | 2 +- ...___m_y_remove_soft_columns_8cs_source.html | 2 +- ...516111712___p_g_create_8_designer_8cs.html | 2 +- ...12___p_g_create_8_designer_8cs_source.html | 2 +- 20200516111712___p_g_create_8cs.html | 2 +- 20200516111712___p_g_create_8cs_source.html | 2 +- _a_p_i_8dox.html | 2 +- _administration_8cs.html | 2 +- _administration_8cs_source.html | 2 +- _administration_client_8cs.html | 2 +- _administration_client_8cs_source.html | 2 +- _administration_controller_8cs.html | 2 +- _administration_controller_8cs_source.html | 2 +- _administration_rights_8cs.html | 2 +- _administration_rights_8cs_source.html | 2 +- _api_client_8cs.html | 2 +- _api_client_8cs_source.html | 2 +- _api_client_factory_8cs.html | 2 +- _api_client_factory_8cs_source.html | 2 +- _api_conflict_exception_8cs.html | 2 +- _api_conflict_exception_8cs_source.html | 2 +- _api_controller_8cs.html | 2 +- _api_controller_8cs_source.html | 2 +- _api_exception_8cs.html | 2 +- _api_exception_8cs_source.html | 2 +- _api_headers_8cs.html | 2 +- _api_headers_8cs_source.html | 2 +- _api_validation_status_8cs.html | 2 +- _api_validation_status_8cs_source.html | 2 +- _application_8cs.html | 2 +- _application_8cs_source.html | 4 +- _application_builder_extensions_8cs.html | 2 +- ...ication_builder_extensions_8cs_source.html | 5 +- _architecture_8dox.html | 2 +- _assembly_information_provider_8cs.html | 2 +- ...embly_information_provider_8cs_source.html | 2 +- _async_delayer_8cs.html | 2 +- _async_delayer_8cs_source.html | 2 +- _authentication_context_8cs.html | 2 +- _authentication_context_8cs_source.html | 2 +- _authentication_context_factory_8cs.html | 2 +- ...entication_context_factory_8cs_source.html | 2 +- _basic_watchdog_8cs.html | 2 +- _basic_watchdog_8cs_source.html | 4 +- _bool_converter_8cs.html | 2 +- _bool_converter_8cs_source.html | 2 +- _bridge_command_type_8cs.html | 2 +- _bridge_command_type_8cs_source.html | 2 +- _bridge_controller_8cs.html | 2 +- _bridge_controller_8cs_source.html | 2 +- _bridge_parameters_8cs.html | 2 +- _bridge_parameters_8cs_source.html | 2 +- _bridge_registration_8cs.html | 2 +- _bridge_registration_8cs_source.html | 2 +- _bridge_response_8cs.html | 2 +- _bridge_response_8cs_source.html | 2 +- _byond_8cs.html | 2 +- _byond_8cs_source.html | 2 +- _byond_client_8cs.html | 2 +- _byond_client_8cs_source.html | 2 +- _byond_command_8cs.html | 2 +- _byond_command_8cs_source.html | 2 +- _byond_controller_8cs.html | 2 +- _byond_controller_8cs_source.html | 2 +- _byond_executable_lock_8cs.html | 2 +- _byond_executable_lock_8cs_source.html | 2 +- _byond_installer_base_8cs.html | 2 +- _byond_installer_base_8cs_source.html | 2 +- _byond_manager_8cs.html | 2 +- _byond_manager_8cs_source.html | 2 +- _byond_rights_8cs.html | 2 +- _byond_rights_8cs_source.html | 2 +- _channel_mapping_8cs.html | 2 +- _channel_mapping_8cs_source.html | 2 +- _channel_representation_8cs.html | 2 +- _channel_representation_8cs_source.html | 2 +- _chat_bot_rights_8cs.html | 2 +- _chat_bot_rights_8cs_source.html | 2 +- _chat_bots_client_8cs.html | 2 +- _chat_bots_client_8cs_source.html | 2 +- _chat_channel_extensions_8cs.html | 2 +- _chat_channel_extensions_8cs_source.html | 2 +- _chat_command_8cs.html | 2 +- _chat_command_8cs_source.html | 2 +- _chat_connection_string_builder_8cs.html | 2 +- ..._connection_string_builder_8cs_source.html | 2 +- _chat_controller_8cs.html | 2 +- _chat_controller_8cs_source.html | 2 +- _chat_manager_8cs.html | 2 +- _chat_manager_8cs_source.html | 2 +- _chat_manager_factory_8cs.html | 2 +- _chat_manager_factory_8cs_source.html | 2 +- _chat_message_8cs.html | 2 +- _chat_message_8cs_source.html | 2 +- _chat_provider_8cs.html | 2 +- _chat_provider_8cs_source.html | 2 +- _chat_tracking_context_8cs.html | 2 +- _chat_tracking_context_8cs_source.html | 2 +- _chat_update_8cs.html | 2 +- _chat_update_8cs_source.html | 2 +- _chat_user_8cs.html | 2 +- _chat_user_8cs_source.html | 2 +- _claims_injector_8cs.html | 2 +- _claims_injector_8cs_source.html | 2 +- _client_exception_8cs.html | 2 +- _client_exception_8cs_source.html | 2 +- _combined_topic_response_8cs.html | 2 +- _combined_topic_response_8cs_source.html | 2 +- _command_factory_8cs.html | 2 +- _command_factory_8cs_source.html | 2 +- ...ssion_2_dual_reattach_information_8cs.html | 2 +- ..._dual_reattach_information_8cs_source.html | 2 +- ..._2_session_2_reattach_information_8cs.html | 2 +- ...ion_2_reattach_information_8cs_source.html | 2 +- _components_2_watchdog_2_i_watchdog_8cs.html | 2 +- ...ts_2_watchdog_2_i_watchdog_8cs_source.html | 2 +- ...s_2_watchdog_2_i_watchdog_factory_8cs.html | 2 +- ...chdog_2_i_watchdog_factory_8cs_source.html | 2 +- ...nts_2_watchdog_2_watchdog_factory_8cs.html | 2 +- ...atchdog_2_watchdog_factory_8cs_source.html | 2 +- _configuration_8cs.html | 2 +- _configuration_8cs_source.html | 2 +- _configuration_client_8cs.html | 2 +- _configuration_client_8cs_source.html | 2 +- _configuration_controller_8cs.html | 2 +- _configuration_controller_8cs_source.html | 2 +- _configuration_file_8cs.html | 2 +- _configuration_file_8cs_source.html | 2 +- _configuration_rights_8cs.html | 2 +- _configuration_rights_8cs_source.html | 2 +- _configuration_type_8cs.html | 2 +- _configuration_type_8cs_source.html | 2 +- _conflict_exception_8cs.html | 2 +- _conflict_exception_8cs_source.html | 2 +- _console_2_program_8cs.html | 2 +- _console_2_program_8cs_source.html | 2 +- _console_8cs.html | 2 +- _console_8cs_source.html | 2 +- _control_panel_configuration_8cs.html | 2 +- _control_panel_configuration_8cs_source.html | 2 +- _cryptography_suite_8cs.html | 2 +- _cryptography_suite_8cs_source.html | 2 +- _custom_command_8cs.html | 2 +- _custom_command_8cs_source.html | 2 +- _d_m_api_constants_8cs.html | 2 +- _d_m_api_constants_8cs_source.html | 2 +- _d_m_api_parameters_8cs.html | 2 +- _d_m_api_parameters_8cs_source.html | 2 +- _d_m_api_response_8cs.html | 2 +- _d_m_api_response_8cs_source.html | 2 +- _database_collection_8cs.html | 2 +- _database_collection_8cs_source.html | 2 +- _database_configuration_8cs.html | 2 +- _database_configuration_8cs_source.html | 2 +- _database_connection_factory_8cs.html | 2 +- _database_connection_factory_8cs_source.html | 2 +- _database_context_8cs.html | 2 +- _database_context_8cs_source.html | 2 +- _database_context_extensions_8cs.html | 2 +- _database_context_extensions_8cs_source.html | 2 +- _database_context_factory_8cs.html | 2 +- _database_context_factory_8cs_source.html | 2 +- _database_seeder_8cs.html | 2 +- _database_seeder_8cs_source.html | 2 +- _database_type_8cs.html | 2 +- _database_type_8cs_source.html | 2 +- _dead_session_controller_8cs.html | 2 +- _dead_session_controller_8cs_source.html | 2 +- _default_i_o_manager_8cs.html | 2 +- _default_i_o_manager_8cs_source.html | 2 +- ...n_time_db_context_factory_helpers_8cs.html | 2 +- ...db_context_factory_helpers_8cs_source.html | 2 +- _discord_connection_string_builder_8cs.html | 2 +- ..._connection_string_builder_8cs_source.html | 2 +- _discord_provider_8cs.html | 2 +- _discord_provider_8cs_source.html | 2 +- _dmb_factory_8cs.html | 2 +- _dmb_factory_8cs_source.html | 16 ++--- _dmb_provider_8cs.html | 2 +- _dmb_provider_8cs_source.html | 2 +- _dream_daemon_8cs.html | 2 +- _dream_daemon_8cs_source.html | 2 +- _dream_daemon_client_8cs.html | 2 +- _dream_daemon_client_8cs_source.html | 2 +- _dream_daemon_controller_8cs.html | 2 +- _dream_daemon_controller_8cs_source.html | 2 +- _dream_daemon_launch_parameters_8cs.html | 2 +- ...m_daemon_launch_parameters_8cs_source.html | 6 +- _dream_daemon_rights_8cs.html | 2 +- _dream_daemon_rights_8cs_source.html | 2 +- _dream_daemon_security_8cs.html | 2 +- _dream_daemon_security_8cs_source.html | 2 +- _dream_maker_client_8cs.html | 2 +- _dream_maker_client_8cs_source.html | 2 +- _dream_maker_controller_8cs.html | 2 +- _dream_maker_controller_8cs_source.html | 2 +- _dream_maker_rights_8cs.html | 2 +- _dream_maker_rights_8cs_source.html | 2 +- _dream_maker_settings_8cs.html | 2 +- _dream_maker_settings_8cs_source.html | 2 +- _dual_reattach_information_base_8cs.html | 2 +- ..._reattach_information_base_8cs_source.html | 2 +- _entity_id_8cs.html | 2 +- _entity_id_8cs_source.html | 2 +- _error_code_8cs.html | 2 +- _error_code_8cs_source.html | 2 +- _error_code_extensions_8cs.html | 2 +- _error_code_extensions_8cs_source.html | 2 +- _error_message_8cs.html | 2 +- _error_message_8cs_source.html | 2 +- _event_consumer_8cs.html | 2 +- _event_consumer_8cs_source.html | 2 +- _event_notification_8cs.html | 2 +- _event_notification_8cs_source.html | 2 +- _event_type_8cs.html | 2 +- _event_type_8cs_source.html | 2 +- _experimental_watchdog_8cs.html | 2 +- _experimental_watchdog_8cs_source.html | 6 +- _features_8dox.html | 2 +- _file_logging_configuration_8cs.html | 2 +- _file_logging_configuration_8cs_source.html | 2 +- _general_configuration_8cs.html | 2 +- _general_configuration_8cs_source.html | 2 +- _git_hub_client_factory_8cs.html | 2 +- _git_hub_client_factory_8cs_source.html | 2 +- _global_suppressions_8cs.html | 2 +- _global_suppressions_8cs_source.html | 2 +- _home_controller_8cs.html | 2 +- _home_controller_8cs_source.html | 2 +- _host_builder_extensions_8cs.html | 2 +- _host_builder_extensions_8cs_source.html | 2 +- _http_client_8cs.html | 2 +- _http_client_8cs_source.html | 2 +- _i_administration_client_8cs.html | 2 +- _i_administration_client_8cs_source.html | 2 +- _i_api_client_8cs.html | 2 +- _i_api_client_8cs_source.html | 2 +- _i_api_client_factory_8cs.html | 2 +- _i_api_client_factory_8cs_source.html | 2 +- _i_assembly_information_provider_8cs.html | 2 +- ...embly_information_provider_8cs_source.html | 2 +- _i_async_delayer_8cs.html | 2 +- _i_async_delayer_8cs_source.html | 2 +- _i_authentication_context_8cs.html | 2 +- _i_authentication_context_8cs_source.html | 2 +- _i_authentication_context_factory_8cs.html | 2 +- ...entication_context_factory_8cs_source.html | 2 +- _i_bridge_dispatcher_8cs.html | 2 +- _i_bridge_dispatcher_8cs_source.html | 2 +- _i_bridge_handler_8cs.html | 2 +- _i_bridge_handler_8cs_source.html | 2 +- _i_bridge_registrar_8cs.html | 2 +- _i_bridge_registrar_8cs_source.html | 2 +- _i_bridge_registration_8cs.html | 2 +- _i_bridge_registration_8cs_source.html | 2 +- _i_byond_client_8cs.html | 2 +- _i_byond_client_8cs_source.html | 2 +- _i_byond_executable_lock_8cs.html | 2 +- _i_byond_executable_lock_8cs_source.html | 2 +- _i_byond_installer_8cs.html | 2 +- _i_byond_installer_8cs_source.html | 2 +- _i_byond_manager_8cs.html | 2 +- _i_byond_manager_8cs_source.html | 2 +- _i_channel_sink_8cs.html | 2 +- _i_channel_sink_8cs_source.html | 2 +- _i_chat_bots_client_8cs.html | 2 +- _i_chat_bots_client_8cs_source.html | 2 +- _i_chat_manager_8cs.html | 2 +- _i_chat_manager_8cs_source.html | 2 +- _i_chat_manager_factory_8cs.html | 2 +- _i_chat_manager_factory_8cs_source.html | 2 +- _i_chat_tracking_context_8cs.html | 2 +- _i_chat_tracking_context_8cs_source.html | 2 +- _i_claims_injector_8cs.html | 2 +- _i_claims_injector_8cs_source.html | 2 +- _i_command_8cs.html | 2 +- _i_command_8cs_source.html | 2 +- _i_command_factory_8cs.html | 2 +- _i_command_factory_8cs_source.html | 2 +- _i_compile_job_sink_8cs.html | 2 +- _i_compile_job_sink_8cs_source.html | 2 +- _i_configuration_8cs.html | 2 +- _i_configuration_8cs_source.html | 2 +- _i_configuration_client_8cs.html | 2 +- _i_configuration_client_8cs_source.html | 2 +- _i_console_8cs.html | 2 +- _i_console_8cs_source.html | 2 +- _i_credentials_provider_8cs.html | 2 +- _i_credentials_provider_8cs_source.html | 2 +- _i_cryptography_suite_8cs.html | 2 +- _i_cryptography_suite_8cs_source.html | 2 +- _i_custom_command_handler_8cs.html | 2 +- _i_custom_command_handler_8cs_source.html | 2 +- _i_database_collection_8cs.html | 2 +- _i_database_collection_8cs_source.html | 2 +- _i_database_connection_factory_8cs.html | 2 +- ...atabase_connection_factory_8cs_source.html | 2 +- _i_database_context_8cs.html | 2 +- _i_database_context_8cs_source.html | 2 +- _i_database_context_factory_8cs.html | 2 +- _i_database_context_factory_8cs_source.html | 2 +- _i_database_seeder_8cs.html | 2 +- _i_database_seeder_8cs_source.html | 2 +- _i_dmb_factory_8cs.html | 2 +- _i_dmb_factory_8cs_source.html | 2 +- _i_dmb_provider_8cs.html | 2 +- _i_dmb_provider_8cs_source.html | 2 +- _i_dream_daemon_client_8cs.html | 2 +- _i_dream_daemon_client_8cs_source.html | 2 +- _i_dream_maker_8cs.html | 2 +- _i_dream_maker_8cs_source.html | 2 +- _i_dream_maker_client_8cs.html | 2 +- _i_dream_maker_client_8cs_source.html | 2 +- _i_event_consumer_8cs.html | 2 +- _i_event_consumer_8cs_source.html | 2 +- _i_git_hub_client_factory_8cs.html | 2 +- _i_git_hub_client_factory_8cs_source.html | 2 +- _i_http_client_8cs.html | 2 +- _i_http_client_8cs_source.html | 2 +- _i_i_o_manager_8cs.html | 2 +- _i_i_o_manager_8cs_source.html | 2 +- _i_identity_cache_8cs.html | 2 +- _i_identity_cache_8cs_source.html | 2 +- _i_instance_8cs.html | 2 +- _i_instance_8cs_source.html | 2 +- _i_instance_client_8cs.html | 2 +- _i_instance_client_8cs_source.html | 2 +- _i_instance_factory_8cs.html | 2 +- _i_instance_factory_8cs_source.html | 2 +- _i_instance_manager_8cs.html | 2 +- _i_instance_manager_8cs_source.html | 2 +- _i_instance_manager_client_8cs.html | 2 +- _i_instance_manager_client_8cs_source.html | 2 +- _i_instance_user_client_8cs.html | 2 +- _i_instance_user_client_8cs_source.html | 2 +- _i_job_manager_8cs.html | 2 +- _i_job_manager_8cs_source.html | 2 +- _i_jobs_client_8cs.html | 2 +- _i_jobs_client_8cs_source.html | 2 +- _i_latest_compile_job_provider_8cs.html | 2 +- ...atest_compile_job_provider_8cs_source.html | 2 +- _i_lib_git2_commands_8cs.html | 2 +- _i_lib_git2_commands_8cs_source.html | 2 +- _i_lib_git2_repository_factory_8cs.html | 2 +- ...ib_git2_repository_factory_8cs_source.html | 2 +- _i_network_prompt_reaper_8cs.html | 2 +- _i_network_prompt_reaper_8cs_source.html | 2 +- _i_platform_identifier_8cs.html | 2 +- _i_platform_identifier_8cs_source.html | 2 +- _i_post_setup_services_8cs.html | 2 +- _i_post_setup_services_8cs_source.html | 2 +- _i_post_write_handler_8cs.html | 2 +- _i_post_write_handler_8cs_source.html | 2 +- _i_process_8cs.html | 2 +- _i_process_8cs_source.html | 2 +- _i_process_base_8cs.html | 2 +- _i_process_base_8cs_source.html | 2 +- _i_process_executor_8cs.html | 2 +- _i_process_executor_8cs_source.html | 2 +- _i_process_features_8cs.html | 2 +- _i_process_features_8cs_source.html | 2 +- _i_provider_8cs.html | 2 +- _i_provider_8cs_source.html | 2 +- _i_provider_factory_8cs.html | 2 +- _i_provider_factory_8cs_source.html | 2 +- _i_reattach_info_handler_8cs.html | 2 +- _i_reattach_info_handler_8cs_source.html | 2 +- _i_repository_8cs.html | 2 +- _i_repository_8cs_source.html | 2 +- _i_repository_client_8cs.html | 2 +- _i_repository_client_8cs_source.html | 2 +- _i_repository_manager_8cs.html | 2 +- _i_repository_manager_8cs_source.html | 2 +- _i_request_logger_8cs.html | 2 +- _i_request_logger_8cs_source.html | 2 +- _i_restart_handler_8cs.html | 2 +- _i_restart_handler_8cs_source.html | 2 +- _i_restart_registration_8cs.html | 2 +- _i_restart_registration_8cs_source.html | 2 +- _i_server_8cs.html | 2 +- _i_server_8cs_source.html | 2 +- _i_server_client_8cs.html | 2 +- _i_server_client_8cs_source.html | 2 +- _i_server_client_factory_8cs.html | 2 +- _i_server_client_factory_8cs_source.html | 2 +- _i_server_control_8cs.html | 2 +- _i_server_control_8cs_source.html | 2 +- _i_server_factory_8cs.html | 2 +- _i_server_factory_8cs_source.html | 2 +- _i_server_port_provider_8cs.html | 2 +- _i_server_port_provider_8cs_source.html | 2 +- _i_session_controller_8cs.html | 2 +- _i_session_controller_8cs_source.html | 2 +- _i_session_controller_factory_8cs.html | 2 +- _i_session_controller_factory_8cs_source.html | 2 +- _i_symlink_factory_8cs.html | 2 +- _i_symlink_factory_8cs_source.html | 2 +- _i_synchronous_i_o_manager_8cs.html | 2 +- _i_synchronous_i_o_manager_8cs_source.html | 2 +- _i_system_identity_8cs.html | 2 +- _i_system_identity_8cs_source.html | 2 +- _i_system_identity_factory_8cs.html | 2 +- _i_system_identity_factory_8cs_source.html | 2 +- _i_token_factory_8cs.html | 2 +- _i_token_factory_8cs_source.html | 2 +- _i_users_client_8cs.html | 2 +- _i_users_client_8cs_source.html | 2 +- _identity_cache_8cs.html | 2 +- _identity_cache_8cs_source.html | 2 +- _identity_cache_object_8cs.html | 2 +- _identity_cache_object_8cs_source.html | 2 +- _instance_client_8cs.html | 2 +- _instance_client_8cs_source.html | 2 +- _instance_controller_8cs.html | 2 +- _instance_controller_8cs_source.html | 2 +- _instance_factory_8cs.html | 2 +- _instance_factory_8cs_source.html | 2 +- _instance_manager_8cs.html | 2 +- _instance_manager_8cs_source.html | 2 +- _instance_manager_client_8cs.html | 2 +- _instance_manager_client_8cs_source.html | 2 +- _instance_manager_rights_8cs.html | 2 +- _instance_manager_rights_8cs_source.html | 2 +- _instance_user_client_8cs.html | 2 +- _instance_user_client_8cs_source.html | 2 +- _instance_user_controller_8cs.html | 2 +- _instance_user_controller_8cs_source.html | 2 +- _instance_user_rights_8cs.html | 2 +- _instance_user_rights_8cs_source.html | 2 +- _insufficient_permissions_exception_8cs.html | 2 +- ...ient_permissions_exception_8cs_source.html | 2 +- _internal_2_server_information_8cs.html | 2 +- ...ernal_2_server_information_8cs_source.html | 2 +- _irc_connection_string_builder_8cs.html | 2 +- ..._connection_string_builder_8cs_source.html | 2 +- _irc_password_type_8cs.html | 2 +- _irc_password_type_8cs_source.html | 2 +- _irc_provider_8cs.html | 2 +- _irc_provider_8cs_source.html | 2 +- _job_controller_8cs.html | 2 +- _job_controller_8cs_source.html | 2 +- _job_exception_8cs.html | 2 +- _job_exception_8cs_source.html | 2 +- _job_handler_8cs.html | 2 +- _job_handler_8cs_source.html | 2 +- _job_manager_8cs.html | 2 +- _job_manager_8cs_source.html | 2 +- _jobs_client_8cs.html | 2 +- _jobs_client_8cs_source.html | 2 +- _kek_command_8cs.html | 2 +- _kek_command_8cs_source.html | 2 +- _launch_result_8cs.html | 2 +- _launch_result_8cs_source.html | 2 +- _lib_git2_commands_8cs.html | 2 +- _lib_git2_commands_8cs_source.html | 2 +- _lib_git2_repository_factory_8cs.html | 2 +- _lib_git2_repository_factory_8cs_source.html | 2 +- _limits_8cs.html | 2 +- _limits_8cs_source.html | 2 +- _message_8cs.html | 2 +- _message_8cs_source.html | 2 +- _method_not_supported_exception_8cs.html | 2 +- ...od_not_supported_exception_8cs_source.html | 2 +- _models_2_dual_reattach_information_8cs.html | 2 +- ..._dual_reattach_information_8cs_source.html | 2 +- _models_2_reattach_information_8cs.html | 2 +- ...els_2_reattach_information_8cs_source.html | 2 +- _monitor_action_8cs.html | 2 +- _monitor_action_8cs_source.html | 2 +- _monitor_activation_reason_8cs.html | 2 +- _monitor_activation_reason_8cs_source.html | 2 +- _monitor_state_8cs.html | 2 +- _monitor_state_8cs_source.html | 2 +- _my_sql_database_context_8cs.html | 2 +- _my_sql_database_context_8cs_source.html | 2 +- ...l_database_context_model_snapshot_8cs.html | 2 +- ...ase_context_model_snapshot_8cs_source.html | 2 +- ...ql_design_time_db_context_factory_8cs.html | 2 +- ...gn_time_db_context_factory_8cs_source.html | 2 +- _native_methods_8cs.html | 2 +- _native_methods_8cs_source.html | 2 +- _open_api_enum_var_names_extension_8cs.html | 2 +- ...i_enum_var_names_extension_8cs_source.html | 2 +- _platform_identifier_8cs.html | 2 +- _platform_identifier_8cs_source.html | 2 +- _posix_byond_installer_8cs.html | 2 +- _posix_byond_installer_8cs_source.html | 2 +- _posix_network_prompt_reaper_8cs.html | 2 +- _posix_network_prompt_reaper_8cs_source.html | 2 +- _posix_post_write_handler_8cs.html | 2 +- _posix_post_write_handler_8cs_source.html | 2 +- _posix_process_features_8cs.html | 2 +- _posix_process_features_8cs_source.html | 2 +- _posix_symlink_factory_8cs.html | 2 +- _posix_symlink_factory_8cs_source.html | 2 +- _posix_system_identity_8cs.html | 2 +- _posix_system_identity_8cs_source.html | 2 +- _posix_system_identity_factory_8cs.html | 2 +- ...ix_system_identity_factory_8cs_source.html | 2 +- _post_setup_services_8cs.html | 2 +- _post_setup_services_8cs_source.html | 2 +- _postgres_sql_database_context_8cs.html | 2 +- ...tgres_sql_database_context_8cs_source.html | 2 +- ...l_database_context_model_snapshot_8cs.html | 2 +- ...ase_context_model_snapshot_8cs_source.html | 2 +- ...ql_design_time_db_context_factory_8cs.html | 2 +- ...gn_time_db_context_factory_8cs_source.html | 2 +- _process_8cs.html | 2 +- _process_8cs_source.html | 2 +- _process_executor_8cs.html | 2 +- _process_executor_8cs_source.html | 2 +- _program_8cs.html | 2 +- _program_8cs_source.html | 2 +- _program_shutdown_token_source_8cs.html | 2 +- ...gram_shutdown_token_source_8cs_source.html | 2 +- _provider_8cs.html | 2 +- _provider_8cs_source.html | 2 +- _provider_factory_8cs.html | 2 +- _provider_factory_8cs_source.html | 2 +- _pull_requests_command_8cs.html | 2 +- _pull_requests_command_8cs_source.html | 2 +- _r_e_a_d_m_e_8md.html | 2 +- _r_e_a_d_m_e_8md_source.html | 2 +- _rate_limit_exception_8cs.html | 2 +- _rate_limit_exception_8cs_source.html | 2 +- _reattach_info_handler_8cs.html | 2 +- _reattach_info_handler_8cs_source.html | 2 +- _reattach_information_base_8cs.html | 2 +- _reattach_information_base_8cs_source.html | 2 +- _reboot_state_8cs.html | 2 +- _reboot_state_8cs_source.html | 2 +- _repository_client_8cs.html | 2 +- _repository_client_8cs_source.html | 2 +- _repository_controller_8cs.html | 2 +- _repository_controller_8cs_source.html | 2 +- _repository_manager_8cs.html | 2 +- _repository_manager_8cs_source.html | 2 +- _repository_rights_8cs.html | 2 +- _repository_rights_8cs_source.html | 2 +- _request_timeout_exception_8cs.html | 2 +- _request_timeout_exception_8cs_source.html | 2 +- _resolving_i_o_manager_8cs.html | 2 +- _resolving_i_o_manager_8cs_source.html | 2 +- _restart_registration_8cs.html | 2 +- _restart_registration_8cs_source.html | 2 +- _rev_info_test_merge_8cs.html | 2 +- _rev_info_test_merge_8cs_source.html | 2 +- _revision_command_8cs.html | 2 +- _revision_command_8cs_source.html | 2 +- _rights_helper_8cs.html | 2 +- _rights_helper_8cs_source.html | 2 +- _rights_type_8cs.html | 2 +- _rights_type_8cs_source.html | 2 +- _routes_8cs.html | 2 +- _routes_8cs_source.html | 2 +- _runtime_information_8cs.html | 2 +- _runtime_information_8cs_source.html | 2 +- _semaphore_slim_context_8cs.html | 2 +- _semaphore_slim_context_8cs_source.html | 2 +- _server_8cs.html | 2 +- _server_8cs_source.html | 2 +- _server_client_8cs.html | 2 +- _server_client_8cs_source.html | 2 +- _server_client_factory_8cs.html | 2 +- _server_client_factory_8cs_source.html | 2 +- _server_error_exception_8cs.html | 2 +- _server_error_exception_8cs_source.html | 2 +- _server_factory_8cs.html | 2 +- _server_factory_8cs_source.html | 2 +- _server_information_8cs.html | 2 +- _server_information_8cs_source.html | 2 +- _server_port_proivder_8cs.html | 2 +- _server_port_proivder_8cs_source.html | 2 +- _server_service_8cs.html | 2 +- _server_service_8cs_source.html | 2 +- _server_side_modifications_8cs.html | 2 +- _server_side_modifications_8cs_source.html | 2 +- _service_2_program_8cs.html | 2 +- _service_2_program_8cs_source.html | 2 +- _service_collection_extensions_8cs.html | 2 +- ...vice_collection_extensions_8cs_source.html | 2 +- _service_unavailable_exception_8cs.html | 2 +- ...vice_unavailable_exception_8cs_source.html | 2 +- _session_controller_8cs.html | 2 +- _session_controller_8cs_source.html | 26 +++---- _session_controller_factory_8cs.html | 2 +- _session_controller_factory_8cs_source.html | 2 +- _setup_application_8cs.html | 2 +- _setup_application_8cs_source.html | 2 +- _setup_wizard_8cs.html | 2 +- _setup_wizard_8cs_source.html | 2 +- _setup_wizard_mode_8cs.html | 2 +- _setup_wizard_mode_8cs_source.html | 2 +- _sql_server_database_context_8cs.html | 2 +- _sql_server_database_context_8cs_source.html | 2 +- ...r_database_context_model_snapshot_8cs.html | 2 +- ...ase_context_model_snapshot_8cs_source.html | 2 +- ...er_design_time_db_context_factory_8cs.html | 2 +- ...gn_time_db_context_factory_8cs_source.html | 2 +- _sqlite_database_context_8cs.html | 2 +- _sqlite_database_context_8cs_source.html | 2 +- ...e_database_context_model_snapshot_8cs.html | 2 +- ...ase_context_model_snapshot_8cs_source.html | 2 +- ...te_design_time_db_context_factory_8cs.html | 2 +- ...gn_time_db_context_factory_8cs_source.html | 2 +- _swagger_configuration_8cs.html | 2 +- _swagger_configuration_8cs_source.html | 2 +- _synchronous_i_o_manager_8cs.html | 2 +- _synchronous_i_o_manager_8cs_source.html | 2 +- _task_extensions_8cs.html | 2 +- _task_extensions_8cs_source.html | 2 +- _temporary_dmb_provider_8cs.html | 2 +- _temporary_dmb_provider_8cs_source.html | 2 +- _test_merge_base_8cs.html | 2 +- _test_merge_base_8cs_source.html | 2 +- _test_merge_information_8cs.html | 2 +- _test_merge_information_8cs_source.html | 2 +- _test_merge_parameters_8cs.html | 2 +- _test_merge_parameters_8cs_source.html | 2 +- _tgs_authorize_attribute_8cs.html | 2 +- _tgs_authorize_attribute_8cs_source.html | 2 +- ..._server_8_api_2_models_2_chat_bot_8cs.html | 2 +- ..._8_api_2_models_2_chat_bot_8cs_source.html | 2 +- ...ver_8_api_2_models_2_chat_channel_8cs.html | 2 +- ...pi_2_models_2_chat_channel_8cs_source.html | 2 +- ...rver_8_api_2_models_2_compile_job_8cs.html | 2 +- ...api_2_models_2_compile_job_8cs_source.html | 2 +- ...rver_8_api_2_models_2_dream_maker_8cs.html | 2 +- ...api_2_models_2_dream_maker_8cs_source.html | 2 +- ..._server_8_api_2_models_2_instance_8cs.html | 2 +- ..._8_api_2_models_2_instance_8cs_source.html | 2 +- ...er_8_api_2_models_2_instance_user_8cs.html | 2 +- ...i_2_models_2_instance_user_8cs_source.html | 2 +- ...pi_2_models_2_internal_2_chat_bot_8cs.html | 2 +- ...dels_2_internal_2_chat_bot_8cs_source.html | 2 +- ...2_models_2_internal_2_compile_job_8cs.html | 2 +- ...s_2_internal_2_compile_job_8cs_source.html | 2 +- ..._internal_2_dream_daemon_settings_8cs.html | 2 +- ...al_2_dream_daemon_settings_8cs_source.html | 2 +- ...r_8_api_2_models_2_internal_2_job_8cs.html | 2 +- ..._2_models_2_internal_2_job_8cs_source.html | 2 +- ..._2_internal_2_repository_settings_8cs.html | 2 +- ...rnal_2_repository_settings_8cs_source.html | 2 +- ...2_internal_2_revision_information_8cs.html | 2 +- ...nal_2_revision_information_8cs_source.html | 2 +- ..._2_models_2_internal_2_test_merge_8cs.html | 2 +- ...ls_2_internal_2_test_merge_8cs_source.html | 2 +- ..._8_api_2_models_2_internal_2_user_8cs.html | 2 +- ...2_models_2_internal_2_user_8cs_source.html | 2 +- ...ion_8_server_8_api_2_models_2_job_8cs.html | 2 +- ...erver_8_api_2_models_2_job_8cs_source.html | 2 +- ...erver_8_api_2_models_2_repository_8cs.html | 2 +- ..._api_2_models_2_repository_8cs_source.html | 2 +- ...i_2_models_2_revision_information_8cs.html | 2 +- ...els_2_revision_information_8cs_source.html | 2 +- ...erver_8_api_2_models_2_test_merge_8cs.html | 2 +- ..._api_2_models_2_test_merge_8cs_source.html | 2 +- ...on_8_server_8_api_2_models_2_user_8cs.html | 2 +- ...rver_8_api_2_models_2_user_8cs_source.html | 2 +- ...8_server_8_client_2_assembly_info_8cs.html | 2 +- ...r_8_client_2_assembly_info_8cs_source.html | 2 +- ...onents_2_deployment_2_dream_maker_8cs.html | 2 +- ...2_deployment_2_dream_maker_8cs_source.html | 2 +- ...er_8_host_2_components_2_instance_8cs.html | 2 +- ...st_2_components_2_instance_8cs_source.html | 12 ++-- ...ponents_2_repository_2_repository_8cs.html | 2 +- ..._2_repository_2_repository_8cs_source.html | 2 +- ...server_8_host_2_models_2_chat_bot_8cs.html | 2 +- ...8_host_2_models_2_chat_bot_8cs_source.html | 2 +- ...er_8_host_2_models_2_chat_channel_8cs.html | 2 +- ...st_2_models_2_chat_channel_8cs_source.html | 2 +- ...ver_8_host_2_models_2_compile_job_8cs.html | 2 +- ...ost_2_models_2_compile_job_8cs_source.html | 2 +- ..._2_models_2_dream_daemon_settings_8cs.html | 2 +- ...ls_2_dream_daemon_settings_8cs_source.html | 2 +- ...server_8_host_2_models_2_instance_8cs.html | 2 +- ...8_host_2_models_2_instance_8cs_source.html | 2 +- ...r_8_host_2_models_2_instance_user_8cs.html | 2 +- ...t_2_models_2_instance_user_8cs_source.html | 2 +- ...on_8_server_8_host_2_models_2_job_8cs.html | 2 +- ...rver_8_host_2_models_2_job_8cs_source.html | 2 +- ...st_2_models_2_repository_settings_8cs.html | 2 +- ...dels_2_repository_settings_8cs_source.html | 2 +- ...t_2_models_2_revision_information_8cs.html | 2 +- ...els_2_revision_information_8cs_source.html | 2 +- ...rver_8_host_2_models_2_test_merge_8cs.html | 2 +- ...host_2_models_2_test_merge_8cs_source.html | 2 +- ...n_8_server_8_host_2_models_2_user_8cs.html | 2 +- ...ver_8_host_2_models_2_user_8cs_source.html | 2 +- ...host_2_properties_2_assembly_info_8cs.html | 2 +- ...properties_2_assembly_info_8cs_source.html | 2 +- ..._8_host_8_console_2_assembly_info_8cs.html | 2 +- ..._8_console_2_assembly_info_8cs_source.html | 2 +- ...vice_2_properties_2_assembly_info_8cs.html | 2 +- ...properties_2_assembly_info_8cs_source.html | 2 +- ...8_host_8_watchdog_2_assembly_info_8cs.html | 2 +- ...8_watchdog_2_assembly_info_8cs_source.html | 2 +- _token_8cs.html | 2 +- _token_8cs_source.html | 2 +- _token_factory_8cs.html | 2 +- _token_factory_8cs_source.html | 2 +- _topic_command_type_8cs.html | 2 +- _topic_command_type_8cs_source.html | 2 +- _topic_parameters_8cs.html | 2 +- _topic_parameters_8cs_source.html | 2 +- _topic_response_8cs.html | 2 +- _topic_response_8cs_source.html | 2 +- _unauthorized_exception_8cs.html | 2 +- _unauthorized_exception_8cs_source.html | 2 +- _unrecognized_response_exception_8cs.html | 2 +- ...ognized_response_exception_8cs_source.html | 2 +- _updates_configuration_8cs.html | 2 +- _updates_configuration_8cs_source.html | 2 +- _user_controller_8cs.html | 2 +- _user_controller_8cs_source.html | 2 +- _user_update_8cs.html | 2 +- _user_update_8cs_source.html | 2 +- _users_client_8cs.html | 2 +- _users_client_8cs_source.html | 2 +- _version_command_8cs.html | 2 +- _version_command_8cs_source.html | 2 +- _version_converter_8cs.html | 2 +- _version_converter_8cs_source.html | 2 +- _version_extensions_8cs.html | 2 +- _version_extensions_8cs_source.html | 2 +- _version_mismatch_exception_8cs.html | 2 +- _version_mismatch_exception_8cs_source.html | 2 +- _watchdog_2_i_watchdog_8cs.html | 2 +- _watchdog_2_i_watchdog_8cs_source.html | 2 +- _watchdog_2_i_watchdog_factory_8cs.html | 2 +- ...chdog_2_i_watchdog_factory_8cs_source.html | 2 +- _watchdog_2_watchdog_factory_8cs.html | 2 +- _watchdog_2_watchdog_factory_8cs_source.html | 2 +- _watchdog_8cs.html | 2 +- _watchdog_8cs_source.html | 2 +- _watchdog_base_8cs.html | 2 +- _watchdog_base_8cs_source.html | 24 +++---- _web_host_builder_extensions_8cs.html | 2 +- _web_host_builder_extensions_8cs_source.html | 2 +- _windows_byond_installer_8cs.html | 2 +- _windows_byond_installer_8cs_source.html | 2 +- _windows_network_prompt_reaper_8cs.html | 2 +- ...dows_network_prompt_reaper_8cs_source.html | 2 +- _windows_post_write_handler_8cs.html | 2 +- _windows_post_write_handler_8cs_source.html | 2 +- _windows_process_features_8cs.html | 2 +- _windows_process_features_8cs_source.html | 2 +- _windows_swappable_dmb_provider_8cs.html | 2 +- ...ows_swappable_dmb_provider_8cs_source.html | 2 +- _windows_symlink_factory_8cs.html | 2 +- _windows_symlink_factory_8cs_source.html | 2 +- _windows_system_identity_8cs.html | 2 +- _windows_system_identity_8cs_source.html | 2 +- _windows_system_identity_factory_8cs.html | 2 +- ...ws_system_identity_factory_8cs_source.html | 2 +- _windows_watchdog_8cs.html | 2 +- _windows_watchdog_8cs_source.html | 12 ++-- _windows_watchdog_factory_8cs.html | 2 +- _windows_watchdog_factory_8cs_source.html | 2 +- annotated.html | 2 +- api.html | 2 +- architecture.html | 2 +- class_authorize_attribute.html | 2 +- class_controller.html | 2 +- class_db_context.html | 2 +- class_i_async_enumerable.html | 2 +- class_i_design_time_db_context_factory.html | 2 +- class_i_disposable.html | 2 +- class_i_document_filter.html | 2 +- class_i_hosted_service.html | 2 +- class_i_open_api_extension.html | 2 +- class_i_operation_filter.html | 2 +- class_i_queryable.html | 2 +- class_i_schema_filter.html | 2 +- class_json_converter.html | 2 +- class_migration.html | 2 +- class_model_snapshot.html | 2 +- class_service_base.html | 2 +- ...erver_1_1_api_1_1_api_headers-members.html | 2 +- ...on_1_1_server_1_1_api_1_1_api_headers.html | 2 +- ...1_1_models_1_1_administration-members.html | 2 +- ...1_1_api_1_1_models_1_1_administration.html | 2 +- ..._1_1_api_1_1_models_1_1_byond-members.html | 2 +- ...1_server_1_1_api_1_1_models_1_1_byond.html | 2 +- ...1_api_1_1_models_1_1_chat_bot-members.html | 2 +- ...erver_1_1_api_1_1_models_1_1_chat_bot.html | 2 +- ...i_1_1_models_1_1_chat_channel-members.html | 2 +- ...r_1_1_api_1_1_models_1_1_chat_channel.html | 2 +- ...pi_1_1_models_1_1_compile_job-members.html | 2 +- ...er_1_1_api_1_1_models_1_1_compile_job.html | 2 +- ...models_1_1_configuration_file-members.html | 2 +- ...api_1_1_models_1_1_configuration_file.html | 2 +- ...ord_connection_string_builder-members.html | 2 +- ...1_1_discord_connection_string_builder.html | 2 +- ...i_1_1_models_1_1_dream_daemon-members.html | 12 ++-- ...r_1_1_api_1_1_models_1_1_dream_daemon.html | 8 +-- ...pi_1_1_models_1_1_dream_maker-members.html | 2 +- ...er_1_1_api_1_1_models_1_1_dream_maker.html | 2 +- ..._api_1_1_models_1_1_entity_id-members.html | 2 +- ...rver_1_1_api_1_1_models_1_1_entity_id.html | 4 +- ...els_1_1_error_code_extensions-members.html | 2 +- ..._1_1_models_1_1_error_code_extensions.html | 2 +- ..._1_1_models_1_1_error_message-members.html | 2 +- ..._1_1_api_1_1_models_1_1_error_message.html | 2 +- ...1_api_1_1_models_1_1_instance-members.html | 2 +- ...erver_1_1_api_1_1_models_1_1_instance.html | 2 +- ..._1_1_models_1_1_instance_user-members.html | 2 +- ..._1_1_api_1_1_models_1_1_instance_user.html | 2 +- ...els_1_1_internal_1_1_chat_bot-members.html | 2 +- ..._1_1_models_1_1_internal_1_1_chat_bot.html | 2 +- ...hat_connection_string_builder-members.html | 2 +- ...al_1_1_chat_connection_string_builder.html | 2 +- ..._1_1_internal_1_1_compile_job-members.html | 2 +- ...1_models_1_1_internal_1_1_compile_job.html | 2 +- ...ream_daemon_launch_parameters-members.html | 6 +- ...al_1_1_dream_daemon_launch_parameters.html | 20 +++--- ...c56d38c1a48c110765c99a72619e13_icgraph.map | 3 + ...c56d38c1a48c110765c99a72619e13_icgraph.md5 | 1 + ...c56d38c1a48c110765c99a72619e13_icgraph.png | Bin 0 -> 10493 bytes ...nal_1_1_dream_daemon_settings-members.html | 6 +- ..._1_internal_1_1_dream_daemon_settings.html | 8 +-- ...1_models_1_1_internal_1_1_job-members.html | 2 +- ...1_api_1_1_models_1_1_internal_1_1_job.html | 4 +- ...ernal_1_1_repository_settings-members.html | 2 +- ..._1_1_internal_1_1_repository_settings.html | 2 +- ...rnal_1_1_revision_information-members.html | 2 +- ...1_1_internal_1_1_revision_information.html | 2 +- ...ternal_1_1_server_information-members.html | 2 +- ...s_1_1_internal_1_1_server_information.html | 2 +- ...s_1_1_internal_1_1_test_merge-members.html | 2 +- ..._1_models_1_1_internal_1_1_test_merge.html | 2 +- ..._internal_1_1_test_merge_base-members.html | 2 +- ...dels_1_1_internal_1_1_test_merge_base.html | 2 +- ..._models_1_1_internal_1_1_user-members.html | 2 +- ..._api_1_1_models_1_1_internal_1_1_user.html | 2 +- ...irc_connection_string_builder-members.html | 2 +- ...els_1_1_irc_connection_string_builder.html | 2 +- ...er_1_1_api_1_1_models_1_1_job-members.html | 2 +- ...1_1_server_1_1_api_1_1_models_1_1_job.html | 2 +- ...1_1_api_1_1_models_1_1_limits-members.html | 2 +- ..._server_1_1_api_1_1_models_1_1_limits.html | 2 +- ...api_1_1_models_1_1_repository-members.html | 2 +- ...ver_1_1_api_1_1_models_1_1_repository.html | 2 +- ...dels_1_1_revision_information-members.html | 2 +- ...i_1_1_models_1_1_revision_information.html | 2 +- ...models_1_1_server_information-members.html | 2 +- ...api_1_1_models_1_1_server_information.html | 2 +- ...api_1_1_models_1_1_test_merge-members.html | 2 +- ...ver_1_1_api_1_1_models_1_1_test_merge.html | 2 +- ...els_1_1_test_merge_parameters-members.html | 2 +- ..._1_1_models_1_1_test_merge_parameters.html | 2 +- ..._1_1_api_1_1_models_1_1_token-members.html | 2 +- ...1_server_1_1_api_1_1_models_1_1_token.html | 2 +- ...r_1_1_api_1_1_models_1_1_user-members.html | 2 +- ..._1_server_1_1_api_1_1_models_1_1_user.html | 2 +- ...pi_1_1_models_1_1_user_update-members.html | 2 +- ...er_1_1_api_1_1_models_1_1_user_update.html | 2 +- ..._1_1_rights_1_1_rights_helper-members.html | 2 +- ..._1_1_api_1_1_rights_1_1_rights_helper.html | 2 +- ...1_1_server_1_1_api_1_1_routes-members.html | 2 +- ...station_1_1_server_1_1_api_1_1_routes.html | 2 +- ..._1_api_1_1_version_extensions-members.html | 2 +- ...server_1_1_api_1_1_version_extensions.html | 2 +- ...ent_1_1_administration_client-members.html | 2 +- ..._1_1_client_1_1_administration_client.html | 2 +- ...ver_1_1_client_1_1_api_client-members.html | 2 +- ..._1_1_server_1_1_client_1_1_api_client.html | 2 +- ...client_1_1_api_client_factory-members.html | 2 +- ...ver_1_1_client_1_1_api_client_factory.html | 2 +- ...nt_1_1_api_conflict_exception-members.html | 2 +- ...1_1_client_1_1_api_conflict_exception.html | 2 +- ..._1_1_client_1_1_api_exception-members.html | 2 +- ...1_server_1_1_client_1_1_api_exception.html | 2 +- ...1_client_1_1_client_exception-members.html | 2 +- ...erver_1_1_client_1_1_client_exception.html | 2 +- ...1_components_1_1_byond_client-members.html | 2 +- ...lient_1_1_components_1_1_byond_client.html | 2 +- ...mponents_1_1_chat_bots_client-members.html | 2 +- ...t_1_1_components_1_1_chat_bots_client.html | 2 +- ...ents_1_1_configuration_client-members.html | 2 +- ...1_components_1_1_configuration_client.html | 2 +- ...nents_1_1_dream_daemon_client-members.html | 2 +- ..._1_components_1_1_dream_daemon_client.html | 2 +- ...onents_1_1_dream_maker_client-members.html | 2 +- ...1_1_components_1_1_dream_maker_client.html | 2 +- ...omponents_1_1_instance_client-members.html | 2 +- ...nt_1_1_components_1_1_instance_client.html | 2 +- ...ents_1_1_instance_user_client-members.html | 2 +- ...1_components_1_1_instance_user_client.html | 2 +- ..._1_components_1_1_jobs_client-members.html | 2 +- ...client_1_1_components_1_1_jobs_client.html | 2 +- ...ponents_1_1_repository_client-members.html | 2 +- ..._1_1_components_1_1_repository_client.html | 2 +- ...client_1_1_conflict_exception-members.html | 2 +- ...ver_1_1_client_1_1_conflict_exception.html | 2 +- ...er_1_1_client_1_1_http_client-members.html | 2 +- ...1_1_server_1_1_client_1_1_http_client.html | 2 +- ...t_1_1_instance_manager_client-members.html | 2 +- ..._1_client_1_1_instance_manager_client.html | 2 +- ...ficient_permissions_exception-members.html | 2 +- ..._1_insufficient_permissions_exception.html | 2 +- ...ethod_not_supported_exception-members.html | 2 +- ...nt_1_1_method_not_supported_exception.html | 2 +- ...ient_1_1_rate_limit_exception-members.html | 2 +- ...r_1_1_client_1_1_rate_limit_exception.html | 2 +- ...1_1_request_timeout_exception-members.html | 2 +- ..._client_1_1_request_timeout_exception.html | 2 +- ..._1_1_client_1_1_server_client-members.html | 2 +- ...1_server_1_1_client_1_1_server_client.html | 2 +- ...ent_1_1_server_client_factory-members.html | 2 +- ..._1_1_client_1_1_server_client_factory.html | 2 +- ...nt_1_1_server_error_exception-members.html | 2 +- ...1_1_client_1_1_server_error_exception.html | 2 +- ...service_unavailable_exception-members.html | 2 +- ...ent_1_1_service_unavailable_exception.html | 2 +- ...nt_1_1_unauthorized_exception-members.html | 2 +- ...1_1_client_1_1_unauthorized_exception.html | 2 +- ...recognized_response_exception-members.html | 2 +- ...t_1_1_unrecognized_response_exception.html | 2 +- ...r_1_1_client_1_1_users_client-members.html | 2 +- ..._1_server_1_1_client_1_1_users_client.html | 2 +- ..._1_version_mismatch_exception-members.html | 2 +- ...client_1_1_version_mismatch_exception.html | 2 +- ...ond_1_1_byond_executable_lock-members.html | 2 +- ...s_1_1_byond_1_1_byond_executable_lock.html | 2 +- ...yond_1_1_byond_installer_base-members.html | 2 +- ...ts_1_1_byond_1_1_byond_installer_base.html | 2 +- ...s_1_1_byond_1_1_byond_manager-members.html | 2 +- ...omponents_1_1_byond_1_1_byond_manager.html | 6 +- ...ond_1_1_posix_byond_installer-members.html | 2 +- ...s_1_1_byond_1_1_posix_byond_installer.html | 2 +- ...d_1_1_windows_byond_installer-members.html | 2 +- ...1_1_byond_1_1_windows_byond_installer.html | 2 +- ..._1_1_chat_1_1_channel_mapping-members.html | 2 +- ...mponents_1_1_chat_1_1_channel_mapping.html | 2 +- ...at_1_1_channel_representation-members.html | 2 +- ...s_1_1_chat_1_1_channel_representation.html | 2 +- ...nts_1_1_chat_1_1_chat_manager-members.html | 2 +- ..._components_1_1_chat_1_1_chat_manager.html | 2 +- ...chat_1_1_chat_manager_factory-members.html | 2 +- ...nts_1_1_chat_1_1_chat_manager_factory.html | 2 +- ...hat_1_1_chat_tracking_context-members.html | 2 +- ...ts_1_1_chat_1_1_chat_tracking_context.html | 2 +- ...onents_1_1_chat_1_1_chat_user-members.html | 2 +- ...1_1_components_1_1_chat_1_1_chat_user.html | 2 +- ..._1_commands_1_1_byond_command-members.html | 2 +- ...1_chat_1_1_commands_1_1_byond_command.html | 2 +- ..._commands_1_1_command_factory-members.html | 2 +- ...chat_1_1_commands_1_1_command_factory.html | 2 +- ...1_commands_1_1_custom_command-members.html | 2 +- ..._chat_1_1_commands_1_1_custom_command.html | 2 +- ..._1_1_commands_1_1_kek_command-members.html | 2 +- ...1_1_chat_1_1_commands_1_1_kek_command.html | 2 +- ...nds_1_1_pull_requests_command-members.html | 2 +- ..._1_commands_1_1_pull_requests_command.html | 2 +- ...commands_1_1_revision_command-members.html | 2 +- ...hat_1_1_commands_1_1_revision_command.html | 2 +- ..._commands_1_1_version_command-members.html | 2 +- ...chat_1_1_commands_1_1_version_command.html | 2 +- ...roviders_1_1_discord_provider-members.html | 2 +- ...at_1_1_providers_1_1_discord_provider.html | 2 +- ..._1_providers_1_1_irc_provider-members.html | 2 +- ...1_chat_1_1_providers_1_1_irc_provider.html | 2 +- ...hat_1_1_providers_1_1_message-members.html | 2 +- ...ts_1_1_chat_1_1_providers_1_1_message.html | 2 +- ...at_1_1_providers_1_1_provider-members.html | 2 +- ...s_1_1_chat_1_1_providers_1_1_provider.html | 2 +- ...roviders_1_1_provider_factory-members.html | 2 +- ...at_1_1_providers_1_1_provider_factory.html | 2 +- ..._1_deployment_1_1_dmb_factory-members.html | 2 +- ...onents_1_1_deployment_1_1_dmb_factory.html | 36 +++++----- ...1_deployment_1_1_dmb_provider-members.html | 2 +- ...nents_1_1_deployment_1_1_dmb_provider.html | 4 +- ..._1_deployment_1_1_dream_maker-members.html | 2 +- ...onents_1_1_deployment_1_1_dream_maker.html | 2 +- ...nt_1_1_temporary_dmb_provider-members.html | 2 +- ...deployment_1_1_temporary_dmb_provider.html | 2 +- ...indows_swappable_dmb_provider-members.html | 2 +- ...nt_1_1_windows_swappable_dmb_provider.html | 10 +-- ...components_1_1_event_consumer-members.html | 2 +- ...ost_1_1_components_1_1_event_consumer.html | 2 +- ...t_1_1_components_1_1_instance-members.html | 2 +- ..._1_1_host_1_1_components_1_1_instance.html | 22 +++--- ...mponents_1_1_instance_factory-members.html | 2 +- ...t_1_1_components_1_1_instance_factory.html | 2 +- ...mponents_1_1_instance_manager-members.html | 2 +- ...t_1_1_components_1_1_instance_manager.html | 2 +- ..._bridge_1_1_bridge_parameters-members.html | 2 +- ...erop_1_1_bridge_1_1_bridge_parameters.html | 14 ++-- ...ridge_1_1_bridge_registration-members.html | 2 +- ...op_1_1_bridge_1_1_bridge_registration.html | 2 +- ..._1_bridge_1_1_bridge_response-members.html | 2 +- ...nterop_1_1_bridge_1_1_bridge_response.html | 2 +- ...ridge_1_1_runtime_information-members.html | 2 +- ...op_1_1_bridge_1_1_runtime_information.html | 2 +- ...ge_1_1_test_merge_information-members.html | 2 +- ...1_1_bridge_1_1_test_merge_information.html | 2 +- ..._1_1_interop_1_1_chat_message-members.html | 2 +- ...mponents_1_1_interop_1_1_chat_message.html | 6 +- ...s_1_1_interop_1_1_chat_update-members.html | 2 +- ...omponents_1_1_interop_1_1_chat_update.html | 2 +- ...converters_1_1_bool_converter-members.html | 2 +- ...rop_1_1_converters_1_1_bool_converter.html | 2 +- ...verters_1_1_version_converter-members.html | 2 +- ..._1_1_converters_1_1_version_converter.html | 2 +- ...interop_1_1_d_m_api_constants-members.html | 2 +- ...nts_1_1_interop_1_1_d_m_api_constants.html | 6 +- ...nterop_1_1_d_m_api_parameters-members.html | 2 +- ...ts_1_1_interop_1_1_d_m_api_parameters.html | 4 +- ..._interop_1_1_d_m_api_response-members.html | 2 +- ...ents_1_1_interop_1_1_d_m_api_response.html | 2 +- ...op_1_1_topic_1_1_chat_command-members.html | 2 +- ..._1_interop_1_1_topic_1_1_chat_command.html | 2 +- ..._topic_1_1_event_notification-members.html | 2 +- ...erop_1_1_topic_1_1_event_notification.html | 2 +- ..._1_topic_1_1_topic_parameters-members.html | 2 +- ...nterop_1_1_topic_1_1_topic_parameters.html | 4 +- ..._1_1_topic_1_1_topic_response-members.html | 2 +- ..._interop_1_1_topic_1_1_topic_response.html | 2 +- ...ository_1_1_lib_git2_commands-members.html | 2 +- ..._1_1_repository_1_1_lib_git2_commands.html | 2 +- ...1_lib_git2_repository_factory-members.html | 2 +- ...itory_1_1_lib_git2_repository_factory.html | 2 +- ...1_1_repository_1_1_repository-members.html | 2 +- ...ponents_1_1_repository_1_1_repository.html | 2 +- ...sitory_1_1_repository_manager-members.html | 2 +- ...1_1_repository_1_1_repository_manager.html | 2 +- ...n_1_1_combined_topic_response-members.html | 2 +- ...1_session_1_1_combined_topic_response.html | 2 +- ...n_1_1_dead_session_controller-members.html | 2 +- ...1_session_1_1_dead_session_controller.html | 2 +- ...1_1_dual_reattach_information-members.html | 2 +- ...session_1_1_dual_reattach_information.html | 2 +- ...1_1_session_1_1_launch_result-members.html | 2 +- ...ponents_1_1_session_1_1_launch_result.html | 2 +- ...ion_1_1_reattach_info_handler-members.html | 2 +- ...1_1_session_1_1_reattach_info_handler.html | 2 +- ...sion_1_1_reattach_information-members.html | 2 +- ..._1_1_session_1_1_reattach_information.html | 2 +- ...ession_1_1_session_controller-members.html | 2 +- ...ts_1_1_session_1_1_session_controller.html | 66 +++++++++--------- ..._1_session_controller_factory-members.html | 2 +- ...ession_1_1_session_controller_factory.html | 2 +- ...tatic_files_1_1_configuration-members.html | 2 +- ...ts_1_1_static_files_1_1_configuration.html | 2 +- ...1_1_server_side_modifications-members.html | 2 +- ...c_files_1_1_server_side_modifications.html | 2 +- ...1_watchdog_1_1_basic_watchdog-members.html | 2 +- ...nents_1_1_watchdog_1_1_basic_watchdog.html | 8 +-- ...dog_1_1_experimental_watchdog-members.html | 2 +- ..._1_watchdog_1_1_experimental_watchdog.html | 12 ++-- ..._1_watchdog_1_1_monitor_state-members.html | 2 +- ...onents_1_1_watchdog_1_1_monitor_state.html | 2 +- ..._1_watchdog_1_1_watchdog_base-members.html | 2 +- ...onents_1_1_watchdog_1_1_watchdog_base.html | 53 +++++++------- ...90fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.map | 4 +- ...90fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.md5 | 2 +- ...90fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.png | Bin 14020 -> 12164 bytes ...watchdog_1_1_watchdog_factory-members.html | 2 +- ...nts_1_1_watchdog_1_1_watchdog_factory.html | 2 +- ...watchdog_1_1_windows_watchdog-members.html | 2 +- ...nts_1_1_watchdog_1_1_windows_watchdog.html | 20 +++--- ..._1_1_windows_watchdog_factory-members.html | 2 +- ...watchdog_1_1_windows_watchdog_factory.html | 2 +- ...1_control_panel_configuration-members.html | 2 +- ...ation_1_1_control_panel_configuration.html | 2 +- ...on_1_1_database_configuration-members.html | 2 +- ...figuration_1_1_database_configuration.html | 2 +- ..._1_file_logging_configuration-members.html | 2 +- ...ration_1_1_file_logging_configuration.html | 2 +- ...ion_1_1_general_configuration-members.html | 2 +- ...nfiguration_1_1_general_configuration.html | 2 +- ...ion_1_1_updates_configuration-members.html | 2 +- ...nfiguration_1_1_updates_configuration.html | 2 +- ..._host_1_1_console_1_1_program-members.html | 2 +- ...rver_1_1_host_1_1_console_1_1_program.html | 2 +- ...1_1_administration_controller-members.html | 2 +- ...rollers_1_1_administration_controller.html | 2 +- ...ontrollers_1_1_api_controller-members.html | 2 +- ...st_1_1_controllers_1_1_api_controller.html | 2 +- ...rollers_1_1_bridge_controller-members.html | 2 +- ...1_1_controllers_1_1_bridge_controller.html | 2 +- ...trollers_1_1_byond_controller-members.html | 2 +- ..._1_1_controllers_1_1_byond_controller.html | 2 +- ...ntrollers_1_1_chat_controller-members.html | 2 +- ...t_1_1_controllers_1_1_chat_controller.html | 2 +- ..._1_1_configuration_controller-members.html | 2 +- ...trollers_1_1_configuration_controller.html | 2 +- ...s_1_1_dream_daemon_controller-members.html | 2 +- ...ntrollers_1_1_dream_daemon_controller.html | 2 +- ...rs_1_1_dream_maker_controller-members.html | 2 +- ...ontrollers_1_1_dream_maker_controller.html | 2 +- ...ntrollers_1_1_home_controller-members.html | 2 +- ...t_1_1_controllers_1_1_home_controller.html | 2 +- ...llers_1_1_instance_controller-members.html | 2 +- ...1_controllers_1_1_instance_controller.html | 2 +- ..._1_1_instance_user_controller-members.html | 2 +- ...trollers_1_1_instance_user_controller.html | 2 +- ...ontrollers_1_1_job_controller-members.html | 2 +- ...st_1_1_controllers_1_1_job_controller.html | 2 +- ...ers_1_1_repository_controller-members.html | 2 +- ...controllers_1_1_repository_controller.html | 2 +- ...s_1_1_tgs_authorize_attribute-members.html | 2 +- ...ntrollers_1_1_tgs_authorize_attribute.html | 2 +- ...ntrollers_1_1_user_controller-members.html | 2 +- ...t_1_1_controllers_1_1_user_controller.html | 2 +- ...host_1_1_core_1_1_application-members.html | 2 +- ...ver_1_1_host_1_1_core_1_1_application.html | 4 +- ...st_1_1_core_1_1_async_delayer-members.html | 2 +- ...r_1_1_host_1_1_core_1_1_async_delayer.html | 2 +- ...re_1_1_git_hub_client_factory-members.html | 2 +- ...t_1_1_core_1_1_git_hub_client_factory.html | 2 +- ..._api_enum_var_names_extension-members.html | 2 +- ...1_1_open_api_enum_var_names_extension.html | 2 +- ...core_1_1_restart_registration-members.html | 2 +- ...ost_1_1_core_1_1_restart_registration.html | 2 +- ...re_1_1_semaphore_slim_context-members.html | 2 +- ...t_1_1_core_1_1_semaphore_slim_context.html | 4 +- ...core_1_1_server_port_proivder-members.html | 2 +- ...ost_1_1_core_1_1_server_port_proivder.html | 2 +- ...ore_1_1_swagger_configuration-members.html | 2 +- ...st_1_1_core_1_1_swagger_configuration.html | 2 +- ...abase_1_1_database_collection-members.html | 2 +- ..._1_1_database_1_1_database_collection.html | 2 +- ...1_database_connection_factory-members.html | 2 +- ...abase_1_1_database_connection_factory.html | 2 +- ...database_1_1_database_context-members.html | 2 +- ...ost_1_1_database_1_1_database_context.html | 2 +- ..._1_1_database_context_factory-members.html | 2 +- ...database_1_1_database_context_factory.html | 2 +- ..._database_1_1_database_seeder-members.html | 2 +- ...host_1_1_database_1_1_database_seeder.html | 2 +- ...me_db_context_factory_helpers-members.html | 2 +- ...esign_time_db_context_factory_helpers.html | 2 +- ...esign_time_db_context_factory-members.html | 2 +- ...my_sql_design_time_db_context_factory.html | 2 +- ...esign_time_db_context_factory-members.html | 2 +- ...es_sql_design_time_db_context_factory.html | 2 +- ...esign_time_db_context_factory-members.html | 2 +- ...server_design_time_db_context_factory.html | 2 +- ...esign_time_db_context_factory-members.html | 2 +- ...sqlite_design_time_db_context_factory.html | 2 +- ...hat_bot_reconnection_interval-members.html | 2 +- ..._s_add_chat_bot_reconnection_interval.html | 2 +- ...d_compile_job_d_m_api_version-members.html | 2 +- ...1_m_s_add_compile_job_d_m_api_version.html | 2 +- ...rations_1_1_m_s_add_heartbeat-members.html | 2 +- ..._1_1_migrations_1_1_m_s_add_heartbeat.html | 2 +- ...s_1_1_m_s_add_job_error_codes-members.html | 2 +- ...igrations_1_1_m_s_add_job_error_codes.html | 2 +- ..._1_1_m_s_add_minimum_security-members.html | 2 +- ...grations_1_1_m_s_add_minimum_security.html | 2 +- ...ns_1_1_m_s_checkpoint_rebuild-members.html | 2 +- ...migrations_1_1_m_s_checkpoint_rebuild.html | 2 +- ..._1_1_m_s_fix_cascading_delete-members.html | 2 +- ...grations_1_1_m_s_fix_cascading_delete.html | 2 +- ...ns_1_1_m_s_fix_rev_info_index-members.html | 2 +- ...migrations_1_1_m_s_fix_rev_info_index.html | 2 +- ...ations_1_1_m_s_initial_create-members.html | 2 +- ...1_1_migrations_1_1_m_s_initial_create.html | 2 +- ...ill_jsons_add_d_m_api_version-members.html | 2 +- ..._1_m_s_kill_jsons_add_d_m_api_version.html | 2 +- ...ations_1_1_m_s_limits_on_chat-members.html | 2 +- ...1_1_migrations_1_1_m_s_limits_on_chat.html | 2 +- ...lable_and_foreign_key_cleanup-members.html | 2 +- ..._m_s_nullable_and_foreign_key_cleanup.html | 2 +- ...reattach_compile_job_required-members.html | 2 +- ...1_1_m_s_reattach_compile_job_required.html | 2 +- ...s_1_1_m_s_remove_soft_columns-members.html | 2 +- ...igrations_1_1_m_s_remove_soft_columns.html | 2 +- ...m_s_toggle_testmerge_comments-members.html | 2 +- ...ons_1_1_m_s_toggle_testmerge_comments.html | 2 +- ...ns_1_1_m_s_tons_of_validation-members.html | 2 +- ...migrations_1_1_m_s_tons_of_validation.html | 2 +- ...hat_bot_reconnection_interval-members.html | 2 +- ..._y_add_chat_bot_reconnection_interval.html | 2 +- ...d_compile_job_d_m_api_version-members.html | 2 +- ...1_m_y_add_compile_job_d_m_api_version.html | 2 +- ...rations_1_1_m_y_add_heartbeat-members.html | 2 +- ..._1_1_migrations_1_1_m_y_add_heartbeat.html | 2 +- ...s_1_1_m_y_add_job_error_codes-members.html | 2 +- ...igrations_1_1_m_y_add_job_error_codes.html | 2 +- ..._1_1_m_y_add_minimum_security-members.html | 2 +- ...grations_1_1_m_y_add_minimum_security.html | 2 +- ...ns_1_1_m_y_checkpoint_rebuild-members.html | 2 +- ...migrations_1_1_m_y_checkpoint_rebuild.html | 2 +- ..._1_1_m_y_fix_cascading_delete-members.html | 2 +- ...grations_1_1_m_y_fix_cascading_delete.html | 2 +- ...ns_1_1_m_y_fix_rev_info_index-members.html | 2 +- ...migrations_1_1_m_y_fix_rev_info_index.html | 2 +- ...ations_1_1_m_y_initial_create-members.html | 2 +- ...1_1_migrations_1_1_m_y_initial_create.html | 2 +- ...ill_jsons_add_d_m_api_version-members.html | 2 +- ..._1_m_y_kill_jsons_add_d_m_api_version.html | 2 +- ...ations_1_1_m_y_limits_on_chat-members.html | 2 +- ...1_1_migrations_1_1_m_y_limits_on_chat.html | 2 +- ...lable_and_foreign_key_cleanup-members.html | 2 +- ..._m_y_nullable_and_foreign_key_cleanup.html | 2 +- ...reattach_compile_job_required-members.html | 2 +- ...1_1_m_y_reattach_compile_job_required.html | 2 +- ...s_1_1_m_y_remove_soft_columns-members.html | 2 +- ...igrations_1_1_m_y_remove_soft_columns.html | 2 +- ...m_y_toggle_testmerge_comments-members.html | 2 +- ...ons_1_1_m_y_toggle_testmerge_comments.html | 2 +- ...ns_1_1_m_y_tons_of_validation-members.html | 2 +- ...migrations_1_1_m_y_tons_of_validation.html | 2 +- ...tabase_context_model_snapshot-members.html | 2 +- ...y_sql_database_context_model_snapshot.html | 2 +- ...1_1_migrations_1_1_p_g_create-members.html | 2 +- ...atabase_1_1_migrations_1_1_p_g_create.html | 2 +- ...rations_1_1_s_l_add_heartbeat-members.html | 2 +- ..._1_1_migrations_1_1_s_l_add_heartbeat.html | 2 +- ..._1_migrations_1_1_s_l_rebuild-members.html | 2 +- ...tabase_1_1_migrations_1_1_s_l_rebuild.html | 2 +- ...s_1_1_s_l_remove_soft_columns-members.html | 2 +- ...igrations_1_1_s_l_remove_soft_columns.html | 2 +- ...tabase_context_model_snapshot-members.html | 2 +- ...erver_database_context_model_snapshot.html | 2 +- ...tabase_context_model_snapshot-members.html | 2 +- ...qlite_database_context_model_snapshot.html | 2 +- ...e_1_1_my_sql_database_context-members.html | 2 +- ..._database_1_1_my_sql_database_context.html | 2 +- ...postgres_sql_database_context-members.html | 2 +- ...ase_1_1_postgres_sql_database_context.html | 2 +- ...1_sql_server_database_context-members.html | 2 +- ...abase_1_1_sql_server_database_context.html | 2 +- ...e_1_1_sqlite_database_context-members.html | 2 +- ..._database_1_1_sqlite_database_context.html | 2 +- ...pplication_builder_extensions-members.html | 5 +- ...ns_1_1_application_builder_extensions.html | 40 +---------- ...s_1_1_chat_channel_extensions-members.html | 2 +- ...xtensions_1_1_chat_channel_extensions.html | 2 +- ...1_database_context_extensions-members.html | 2 +- ...sions_1_1_database_context_extensions.html | 2 +- ...s_1_1_host_builder_extensions-members.html | 2 +- ...xtensions_1_1_host_builder_extensions.html | 2 +- ...service_collection_extensions-members.html | 2 +- ...ons_1_1_service_collection_extensions.html | 2 +- ...xtensions_1_1_task_extensions-members.html | 2 +- ...st_1_1_extensions_1_1_task_extensions.html | 2 +- ...1_web_host_builder_extensions-members.html | 2 +- ...sions_1_1_web_host_builder_extensions.html | 2 +- ..._1_1_host_1_1_i_o_1_1_console-members.html | 2 +- ...1_server_1_1_host_1_1_i_o_1_1_console.html | 2 +- ...1_i_o_1_1_default_i_o_manager-members.html | 2 +- ..._host_1_1_i_o_1_1_default_i_o_manager.html | 2 +- ..._1_1_posix_post_write_handler-members.html | 2 +- ..._1_1_i_o_1_1_posix_post_write_handler.html | 2 +- ...i_o_1_1_posix_symlink_factory-members.html | 2 +- ...ost_1_1_i_o_1_1_posix_symlink_factory.html | 2 +- ...i_o_1_1_resolving_i_o_manager-members.html | 2 +- ...ost_1_1_i_o_1_1_resolving_i_o_manager.html | 2 +- ...o_1_1_synchronous_i_o_manager-members.html | 2 +- ...t_1_1_i_o_1_1_synchronous_i_o_manager.html | 2 +- ..._1_windows_post_write_handler-members.html | 2 +- ..._1_i_o_1_1_windows_post_write_handler.html | 2 +- ...o_1_1_windows_symlink_factory-members.html | 2 +- ...t_1_1_i_o_1_1_windows_symlink_factory.html | 2 +- ...st_1_1_jobs_1_1_job_exception-members.html | 2 +- ...r_1_1_host_1_1_jobs_1_1_job_exception.html | 2 +- ...host_1_1_jobs_1_1_job_handler-members.html | 2 +- ...ver_1_1_host_1_1_jobs_1_1_job_handler.html | 2 +- ...host_1_1_jobs_1_1_job_manager-members.html | 2 +- ...ver_1_1_host_1_1_jobs_1_1_job_manager.html | 2 +- ...tabase_context_model_snapshot-members.html | 2 +- ...s_sql_database_context_model_snapshot.html | 2 +- ..._host_1_1_models_1_1_chat_bot-members.html | 2 +- ...rver_1_1_host_1_1_models_1_1_chat_bot.html | 2 +- ...t_1_1_models_1_1_chat_channel-members.html | 2 +- ..._1_1_host_1_1_models_1_1_chat_channel.html | 2 +- ...st_1_1_models_1_1_compile_job-members.html | 2 +- ...r_1_1_host_1_1_models_1_1_compile_job.html | 4 +- ...els_1_1_dream_daemon_settings-members.html | 12 ++-- ..._1_1_models_1_1_dream_daemon_settings.html | 8 +-- ...dels_1_1_dream_maker_settings-members.html | 2 +- ...t_1_1_models_1_1_dream_maker_settings.html | 2 +- ...1_1_dual_reattach_information-members.html | 2 +- ..._models_1_1_dual_reattach_information.html | 2 +- ...ual_reattach_information_base-members.html | 2 +- ...ls_1_1_dual_reattach_information_base.html | 2 +- ..._host_1_1_models_1_1_instance-members.html | 2 +- ...rver_1_1_host_1_1_models_1_1_instance.html | 2 +- ..._1_1_models_1_1_instance_user-members.html | 2 +- ...1_1_host_1_1_models_1_1_instance_user.html | 2 +- ...r_1_1_host_1_1_models_1_1_job-members.html | 2 +- ..._1_server_1_1_host_1_1_models_1_1_job.html | 2 +- ...dels_1_1_reattach_information-members.html | 2 +- ...t_1_1_models_1_1_reattach_information.html | 2 +- ...1_1_reattach_information_base-members.html | 2 +- ..._models_1_1_reattach_information_base.html | 2 +- ...odels_1_1_repository_settings-members.html | 2 +- ...st_1_1_models_1_1_repository_settings.html | 2 +- ...odels_1_1_rev_info_test_merge-members.html | 2 +- ...st_1_1_models_1_1_rev_info_test_merge.html | 2 +- ...dels_1_1_revision_information-members.html | 2 +- ...t_1_1_models_1_1_revision_information.html | 2 +- ...ost_1_1_models_1_1_test_merge-members.html | 2 +- ...er_1_1_host_1_1_models_1_1_test_merge.html | 2 +- ..._1_1_host_1_1_models_1_1_user-members.html | 2 +- ...1_server_1_1_host_1_1_models_1_1_user.html | 2 +- ...r_1_1_host_1_1_native_methods-members.html | 2 +- ..._1_server_1_1_host_1_1_native_methods.html | 2 +- ...1_server_1_1_host_1_1_program-members.html | 2 +- ...ation_1_1_server_1_1_host_1_1_program.html | 2 +- ...ty_1_1_authentication_context-members.html | 2 +- ...1_security_1_1_authentication_context.html | 2 +- ...uthentication_context_factory-members.html | 2 +- ...ty_1_1_authentication_context_factory.html | 2 +- ..._security_1_1_claims_injector-members.html | 2 +- ...host_1_1_security_1_1_claims_injector.html | 2 +- ...curity_1_1_cryptography_suite-members.html | 2 +- ...t_1_1_security_1_1_cryptography_suite.html | 2 +- ...1_security_1_1_identity_cache-members.html | 2 +- ..._host_1_1_security_1_1_identity_cache.html | 2 +- ...ity_1_1_identity_cache_object-members.html | 2 +- ..._1_security_1_1_identity_cache_object.html | 2 +- ...ity_1_1_posix_system_identity-members.html | 2 +- ..._1_security_1_1_posix_system_identity.html | 2 +- ...posix_system_identity_factory-members.html | 2 +- ...ity_1_1_posix_system_identity_factory.html | 2 +- ..._1_security_1_1_token_factory-members.html | 2 +- ...1_host_1_1_security_1_1_token_factory.html | 2 +- ...y_1_1_windows_system_identity-members.html | 2 +- ..._security_1_1_windows_system_identity.html | 2 +- ...ndows_system_identity_factory-members.html | 2 +- ...y_1_1_windows_system_identity_factory.html | 2 +- ..._1_server_1_1_host_1_1_server-members.html | 2 +- ...tation_1_1_server_1_1_host_1_1_server.html | 2 +- ...r_1_1_host_1_1_server_factory-members.html | 2 +- ..._1_server_1_1_host_1_1_server_factory.html | 2 +- ..._host_1_1_service_1_1_program-members.html | 2 +- ...rver_1_1_host_1_1_service_1_1_program.html | 2 +- ..._1_service_1_1_server_service-members.html | 2 +- ...1_host_1_1_service_1_1_server_service.html | 2 +- ...setup_1_1_post_setup_services-members.html | 2 +- ...ost_1_1_setup_1_1_post_setup_services.html | 2 +- ...1_setup_1_1_setup_application-members.html | 2 +- ..._host_1_1_setup_1_1_setup_application.html | 2 +- ...st_1_1_setup_1_1_setup_wizard-members.html | 2 +- ...r_1_1_host_1_1_setup_1_1_setup_wizard.html | 2 +- ...assembly_information_provider-members.html | 2 +- ...tem_1_1_assembly_information_provider.html | 2 +- ...ystem_1_1_platform_identifier-members.html | 2 +- ...st_1_1_system_1_1_platform_identifier.html | 2 +- ...1_posix_network_prompt_reaper-members.html | 2 +- ...ystem_1_1_posix_network_prompt_reaper.html | 2 +- ...em_1_1_posix_process_features-members.html | 2 +- ...1_1_system_1_1_posix_process_features.html | 2 +- ...1_host_1_1_system_1_1_process-members.html | 2 +- ...erver_1_1_host_1_1_system_1_1_process.html | 2 +- ...1_system_1_1_process_executor-members.html | 2 +- ..._host_1_1_system_1_1_process_executor.html | 2 +- ...program_shutdown_token_source-members.html | 2 +- ...tem_1_1_program_shutdown_token_source.html | 2 +- ...windows_network_prompt_reaper-members.html | 2 +- ...tem_1_1_windows_network_prompt_reaper.html | 2 +- ..._1_1_windows_process_features-members.html | 2 +- ...1_system_1_1_windows_process_features.html | 2 +- ...ost_1_1_watchdog_1_1_watchdog-members.html | 2 +- ...er_1_1_host_1_1_watchdog_1_1_watchdog.html | 2 +- ...watchdog_1_1_watchdog_factory-members.html | 2 +- ...ost_1_1_watchdog_1_1_watchdog_factory.html | 2 +- classes.html | 2 +- dir_02f69155ced6ccca99a24744a5273903.html | 2 +- dir_08963d262fa9e27215dce7b7c6e97f1b.html | 2 +- dir_0de875c2ee7edd4009e892c5045f7b3a.html | 2 +- dir_0f5073360b9ba6d1522457c65eebe36a.html | 2 +- dir_1cebbc1bce26b60bfb2ee26c80f86b02.html | 2 +- dir_222f69c34ae6290dff005cdc719e0a43.html | 2 +- dir_27a421f75b087b80bd0b7a1dbec733b4.html | 2 +- dir_2ea2465064f3ff030c6dd6700a328d91.html | 2 +- dir_34761767c1c3cd212f9d2f80ea0828a8.html | 2 +- dir_38cec1532eaed7aa1de0b599a76e3e80.html | 2 +- dir_3a3ab2f663730d5bed7026cf41734e8a.html | 2 +- dir_3d220027e29e19c608b6d51ce3029c32.html | 2 +- dir_4ddbd20a555bd1f3bf9569744c8989cc.html | 2 +- dir_5ae0a4770cfe9bc511dad7df7deabb23.html | 2 +- dir_5d46d0c3fd1cac5ce1ea23751ad25792.html | 2 +- dir_5e0b464d3b4be546c63c5188ffeb96e4.html | 2 +- dir_61d7974a657c30011f457b376d274ee7.html | 2 +- dir_68267d1309a1af8e8297ef4c3efbcdba.html | 2 +- dir_6a8d19239e99965ecc1391ebd049009a.html | 2 +- dir_6c60df807dd2523776d391746c262b4d.html | 2 +- dir_6d5d151b7baf54e07e6b0a3941fbad55.html | 2 +- dir_7a3fd032a1362a6005a1fc9227a8dd86.html | 2 +- dir_7cd79c49f3850abc2141fa4adfdd1950.html | 2 +- dir_860acef72838dce8d3d54c8f98bc464b.html | 2 +- dir_935188fa6520fafdbdb4920911a885bd.html | 2 +- dir_9826fb2d31585a830723e6d7089b5d0e.html | 2 +- dir_a01d946a2e1b048dc542232ffcdcf572.html | 2 +- dir_a44a562b5a12ef1c8495ac1a63e915ea.html | 2 +- dir_a536e49cdf631f66733cf2c9791144ce.html | 2 +- dir_af336dd70489e812a924e1a8fba73854.html | 2 +- dir_b6324197f7ac56e30d6189c3a45eec56.html | 2 +- dir_be6161819238d55fa660c07ade960e53.html | 2 +- dir_c2c4d4ee47e55233c6ea5db8b96422c6.html | 2 +- dir_c5451d9d233744a5b09a29938f0cda9a.html | 2 +- dir_d822dd0b4e53d3dc95c9c470fa54d3d2.html | 2 +- dir_e2f0549e5ba528b36fd9348e214a8e4f.html | 2 +- dir_f0d41009ce252337feb2b68822c4cfba.html | 2 +- dir_f2a82faa4c4beef364292694cefca86d.html | 2 +- dir_f5938f3ae6ef69fa99e4683082cea79c.html | 2 +- dir_f90d62caf45952f011371f45080cf0bd.html | 2 +- features.html | 2 +- files.html | 2 +- functions.html | 2 +- functions_0x7e.html | 2 +- functions_b.html | 2 +- functions_c.html | 29 +++++--- functions_d.html | 2 +- functions_e.html | 2 +- functions_enum.html | 2 +- functions_f.html | 2 +- functions_func.html | 2 +- functions_func_0x7e.html | 2 +- functions_func_b.html | 2 +- functions_func_c.html | 13 ++-- functions_func_d.html | 2 +- functions_func_e.html | 2 +- functions_func_f.html | 2 +- functions_func_g.html | 2 +- functions_func_h.html | 2 +- functions_func_i.html | 2 +- functions_func_j.html | 2 +- functions_func_k.html | 2 +- functions_func_l.html | 2 +- functions_func_m.html | 5 +- functions_func_n.html | 2 +- functions_func_o.html | 2 +- functions_func_p.html | 2 +- functions_func_r.html | 2 +- functions_func_s.html | 2 +- functions_func_t.html | 2 +- functions_func_u.html | 9 +-- functions_func_v.html | 2 +- functions_func_w.html | 2 +- functions_func_z.html | 2 +- functions_g.html | 2 +- functions_h.html | 2 +- functions_i.html | 2 +- functions_j.html | 2 +- functions_k.html | 2 +- functions_l.html | 2 +- functions_m.html | 5 +- functions_n.html | 2 +- functions_o.html | 2 +- functions_p.html | 2 +- functions_prop.html | 2 +- functions_prop_b.html | 2 +- functions_prop_c.html | 2 +- functions_prop_d.html | 2 +- functions_prop_e.html | 2 +- functions_prop_f.html | 2 +- functions_prop_g.html | 2 +- functions_prop_h.html | 2 +- functions_prop_i.html | 2 +- functions_prop_j.html | 2 +- functions_prop_l.html | 2 +- functions_prop_m.html | 2 +- functions_prop_n.html | 2 +- functions_prop_o.html | 2 +- functions_prop_p.html | 2 +- functions_prop_r.html | 2 +- functions_prop_s.html | 2 +- functions_prop_t.html | 2 +- functions_prop_u.html | 2 +- functions_prop_v.html | 2 +- functions_prop_w.html | 2 +- functions_q.html | 2 +- functions_r.html | 6 +- functions_s.html | 2 +- functions_t.html | 2 +- functions_u.html | 7 +- functions_v.html | 2 +- functions_vars.html | 2 +- functions_vars_b.html | 2 +- functions_vars_c.html | 2 +- functions_vars_d.html | 2 +- functions_vars_e.html | 2 +- functions_vars_f.html | 2 +- functions_vars_g.html | 2 +- functions_vars_h.html | 2 +- functions_vars_i.html | 2 +- functions_vars_j.html | 2 +- functions_vars_k.html | 2 +- functions_vars_l.html | 2 +- functions_vars_m.html | 2 +- functions_vars_n.html | 2 +- functions_vars_o.html | 2 +- functions_vars_p.html | 2 +- functions_vars_q.html | 2 +- functions_vars_r.html | 2 +- functions_vars_s.html | 2 +- functions_vars_t.html | 2 +- functions_vars_u.html | 2 +- functions_vars_v.html | 2 +- functions_vars_w.html | 2 +- functions_w.html | 2 +- functions_z.html | 2 +- graph_legend.html | 2 +- hierarchy.html | 2 +- index.html | 2 +- inherits.html | 2 +- ...components_1_1_i_byond_client-members.html | 2 +- ...ent_1_1_components_1_1_i_byond_client.html | 2 +- ...onents_1_1_i_chat_bots_client-members.html | 2 +- ...1_1_components_1_1_i_chat_bots_client.html | 2 +- ...ts_1_1_i_configuration_client-members.html | 2 +- ...components_1_1_i_configuration_client.html | 2 +- ...nts_1_1_i_dream_daemon_client-members.html | 2 +- ..._components_1_1_i_dream_daemon_client.html | 2 +- ...ents_1_1_i_dream_maker_client-members.html | 2 +- ...1_components_1_1_i_dream_maker_client.html | 2 +- ...ponents_1_1_i_instance_client-members.html | 2 +- ..._1_1_components_1_1_i_instance_client.html | 2 +- ...ts_1_1_i_instance_user_client-members.html | 2 +- ...components_1_1_i_instance_user_client.html | 2 +- ..._components_1_1_i_jobs_client-members.html | 2 +- ...ient_1_1_components_1_1_i_jobs_client.html | 2 +- ...nents_1_1_i_repository_client-members.html | 2 +- ..._1_components_1_1_i_repository_client.html | 2 +- ...t_1_1_i_administration_client-members.html | 2 +- ..._1_client_1_1_i_administration_client.html | 2 +- ...r_1_1_client_1_1_i_api_client-members.html | 2 +- ..._1_server_1_1_client_1_1_i_api_client.html | 2 +- ...ient_1_1_i_api_client_factory-members.html | 2 +- ...r_1_1_client_1_1_i_api_client_factory.html | 2 +- ..._1_1_client_1_1_i_http_client-members.html | 2 +- ...1_server_1_1_client_1_1_i_http_client.html | 2 +- ...1_1_i_instance_manager_client-members.html | 2 +- ..._client_1_1_i_instance_manager_client.html | 2 +- ...1_client_1_1_i_request_logger-members.html | 2 +- ...erver_1_1_client_1_1_i_request_logger.html | 2 +- ..._1_client_1_1_i_server_client-members.html | 2 +- ...server_1_1_client_1_1_i_server_client.html | 2 +- ...t_1_1_i_server_client_factory-members.html | 2 +- ..._1_client_1_1_i_server_client_factory.html | 2 +- ...1_1_client_1_1_i_users_client-members.html | 2 +- ..._server_1_1_client_1_1_i_users_client.html | 2 +- ...d_1_1_i_byond_executable_lock-members.html | 2 +- ...1_1_byond_1_1_i_byond_executable_lock.html | 2 +- ...1_byond_1_1_i_byond_installer-members.html | 2 +- ...nents_1_1_byond_1_1_i_byond_installer.html | 2 +- ...1_1_byond_1_1_i_byond_manager-members.html | 2 +- ...ponents_1_1_byond_1_1_i_byond_manager.html | 2 +- ...at_1_1_commands_1_1_i_command-members.html | 2 +- ...s_1_1_chat_1_1_commands_1_1_i_command.html | 2 +- ...ommands_1_1_i_command_factory-members.html | 2 +- ...at_1_1_commands_1_1_i_command_factory.html | 2 +- ...s_1_1_chat_1_1_i_channel_sink-members.html | 2 +- ...omponents_1_1_chat_1_1_i_channel_sink.html | 2 +- ...s_1_1_chat_1_1_i_chat_manager-members.html | 2 +- ...omponents_1_1_chat_1_1_i_chat_manager.html | 2 +- ...at_1_1_i_chat_manager_factory-members.html | 2 +- ...s_1_1_chat_1_1_i_chat_manager_factory.html | 2 +- ...t_1_1_i_chat_tracking_context-members.html | 2 +- ..._1_1_chat_1_1_i_chat_tracking_context.html | 2 +- ..._1_1_i_custom_command_handler-members.html | 2 +- ...1_1_chat_1_1_i_custom_command_handler.html | 2 +- ..._1_1_providers_1_1_i_provider-members.html | 2 +- ...1_1_chat_1_1_providers_1_1_i_provider.html | 2 +- ...viders_1_1_i_provider_factory-members.html | 2 +- ..._1_1_providers_1_1_i_provider_factory.html | 2 +- ...oyment_1_1_i_compile_job_sink-members.html | 2 +- ...1_1_deployment_1_1_i_compile_job_sink.html | 2 +- ..._deployment_1_1_i_dmb_factory-members.html | 2 +- ...ents_1_1_deployment_1_1_i_dmb_factory.html | 2 +- ...deployment_1_1_i_dmb_provider-members.html | 2 +- ...nts_1_1_deployment_1_1_i_dmb_provider.html | 4 +- ..._deployment_1_1_i_dream_maker-members.html | 2 +- ...ents_1_1_deployment_1_1_i_dream_maker.html | 2 +- ...i_latest_compile_job_provider-members.html | 2 +- ...ent_1_1_i_latest_compile_job_provider.html | 2 +- ...mponents_1_1_i_event_consumer-members.html | 2 +- ...t_1_1_components_1_1_i_event_consumer.html | 2 +- ...1_1_components_1_1_i_instance-members.html | 2 +- ..._1_host_1_1_components_1_1_i_instance.html | 2 +- ...onents_1_1_i_instance_factory-members.html | 2 +- ...1_1_components_1_1_i_instance_factory.html | 2 +- ...onents_1_1_i_instance_manager-members.html | 2 +- ...1_1_components_1_1_i_instance_manager.html | 2 +- ...ridge_1_1_i_bridge_dispatcher-members.html | 2 +- ...op_1_1_bridge_1_1_i_bridge_dispatcher.html | 2 +- ...1_bridge_1_1_i_bridge_handler-members.html | 2 +- ...terop_1_1_bridge_1_1_i_bridge_handler.html | 2 +- ...bridge_1_1_i_bridge_registrar-members.html | 2 +- ...rop_1_1_bridge_1_1_i_bridge_registrar.html | 2 +- ..._1_1_bridge_1_1_i_bridge_registration.html | 2 +- ...ry_1_1_i_credentials_provider-members.html | 2 +- ...repository_1_1_i_credentials_provider.html | 2 +- ...itory_1_1_i_lib_git2_commands-members.html | 2 +- ..._1_repository_1_1_i_lib_git2_commands.html | 2 +- ...i_lib_git2_repository_factory-members.html | 2 +- ...ory_1_1_i_lib_git2_repository_factory.html | 2 +- ...1_repository_1_1_i_repository-members.html | 2 +- ...nents_1_1_repository_1_1_i_repository.html | 2 +- ...tory_1_1_i_repository_manager-members.html | 2 +- ...1_repository_1_1_i_repository_manager.html | 2 +- ...n_1_1_i_reattach_info_handler-members.html | 2 +- ...1_session_1_1_i_reattach_info_handler.html | 2 +- ...sion_1_1_i_session_controller-members.html | 2 +- ..._1_1_session_1_1_i_session_controller.html | 2 +- ..._i_session_controller_factory-members.html | 2 +- ...sion_1_1_i_session_controller_factory.html | 2 +- ...tic_files_1_1_i_configuration-members.html | 2 +- ..._1_1_static_files_1_1_i_configuration.html | 2 +- ...s_1_1_watchdog_1_1_i_watchdog-members.html | 2 +- ...omponents_1_1_watchdog_1_1_i_watchdog.html | 2 +- ...tchdog_1_1_i_watchdog_factory-members.html | 2 +- ...s_1_1_watchdog_1_1_i_watchdog_factory.html | 2 +- ..._1_1_core_1_1_i_async_delayer-members.html | 2 +- ...1_1_host_1_1_core_1_1_i_async_delayer.html | 2 +- ..._1_1_i_git_hub_client_factory-members.html | 2 +- ...1_1_core_1_1_i_git_hub_client_factory.html | 2 +- ..._1_core_1_1_i_restart_handler-members.html | 2 +- ...1_host_1_1_core_1_1_i_restart_handler.html | 2 +- ...t_1_1_core_1_1_i_restart_registration.html | 2 +- ...1_1_core_1_1_i_server_control-members.html | 2 +- ..._1_host_1_1_core_1_1_i_server_control.html | 2 +- ...re_1_1_i_server_port_provider-members.html | 2 +- ...t_1_1_core_1_1_i_server_port_provider.html | 2 +- ...ase_1_1_i_database_collection-members.html | 2 +- ..._1_database_1_1_i_database_collection.html | 2 +- ...i_database_connection_factory-members.html | 2 +- ...ase_1_1_i_database_connection_factory.html | 2 +- ...tabase_1_1_i_database_context-members.html | 2 +- ...t_1_1_database_1_1_i_database_context.html | 2 +- ..._1_i_database_context_factory-members.html | 2 +- ...tabase_1_1_i_database_context_factory.html | 2 +- ...atabase_1_1_i_database_seeder-members.html | 2 +- ...st_1_1_database_1_1_i_database_seeder.html | 2 +- ..._1_host_1_1_i_o_1_1_i_console-members.html | 2 +- ...server_1_1_host_1_1_i_o_1_1_i_console.html | 2 +- ...ost_1_1_i_o_1_1_i_i_o_manager-members.html | 2 +- ...er_1_1_host_1_1_i_o_1_1_i_i_o_manager.html | 2 +- ..._i_o_1_1_i_post_write_handler-members.html | 2 +- ...host_1_1_i_o_1_1_i_post_write_handler.html | 2 +- ...1_1_i_o_1_1_i_symlink_factory-members.html | 2 +- ..._1_host_1_1_i_o_1_1_i_symlink_factory.html | 2 +- ...1_1_i_synchronous_i_o_manager-members.html | 2 +- ...1_1_i_o_1_1_i_synchronous_i_o_manager.html | 2 +- ..._server_1_1_host_1_1_i_server-members.html | 2 +- ...tion_1_1_server_1_1_host_1_1_i_server.html | 2 +- ...1_1_host_1_1_i_server_factory-members.html | 2 +- ..._server_1_1_host_1_1_i_server_factory.html | 2 +- ...st_1_1_jobs_1_1_i_job_manager-members.html | 2 +- ...r_1_1_host_1_1_jobs_1_1_i_job_manager.html | 2 +- ..._1_1_i_authentication_context-members.html | 2 +- ...security_1_1_i_authentication_context.html | 2 +- ...uthentication_context_factory-members.html | 2 +- ..._1_1_i_authentication_context_factory.html | 2 +- ...ecurity_1_1_i_claims_injector-members.html | 2 +- ...st_1_1_security_1_1_i_claims_injector.html | 2 +- ...rity_1_1_i_cryptography_suite-members.html | 2 +- ...1_1_security_1_1_i_cryptography_suite.html | 2 +- ...security_1_1_i_identity_cache-members.html | 2 +- ...ost_1_1_security_1_1_i_identity_cache.html | 2 +- ...ecurity_1_1_i_system_identity-members.html | 2 +- ...st_1_1_security_1_1_i_system_identity.html | 2 +- ...1_1_i_system_identity_factory-members.html | 2 +- ...ecurity_1_1_i_system_identity_factory.html | 2 +- ..._security_1_1_i_token_factory-members.html | 2 +- ...host_1_1_security_1_1_i_token_factory.html | 2 +- ...tup_1_1_i_post_setup_services-members.html | 2 +- ...t_1_1_setup_1_1_i_post_setup_services.html | 2 +- ...assembly_information_provider-members.html | 2 +- ...m_1_1_i_assembly_information_provider.html | 4 +- ...m_1_1_i_network_prompt_reaper-members.html | 2 +- ..._1_system_1_1_i_network_prompt_reaper.html | 2 +- ...tem_1_1_i_platform_identifier-members.html | 2 +- ..._1_1_system_1_1_i_platform_identifier.html | 2 +- ...host_1_1_system_1_1_i_process-members.html | 2 +- ...ver_1_1_host_1_1_system_1_1_i_process.html | 2 +- ...1_1_system_1_1_i_process_base-members.html | 2 +- ..._1_host_1_1_system_1_1_i_process_base.html | 2 +- ...system_1_1_i_process_executor-members.html | 2 +- ...ost_1_1_system_1_1_i_process_executor.html | 2 +- ...system_1_1_i_process_features-members.html | 2 +- ...ost_1_1_system_1_1_i_process_features.html | 2 +- ...t_1_1_watchdog_1_1_i_watchdog-members.html | 2 +- ..._1_1_host_1_1_watchdog_1_1_i_watchdog.html | 2 +- ...tchdog_1_1_i_watchdog_factory-members.html | 2 +- ...t_1_1_watchdog_1_1_i_watchdog_factory.html | 2 +- namespace_tgstation.html | 2 +- namespace_tgstation_1_1_server.html | 2 +- namespace_tgstation_1_1_server_1_1_api.html | 2 +- ...station_1_1_server_1_1_api_1_1_models.html | 2 +- ...erver_1_1_api_1_1_models_1_1_internal.html | 2 +- ...station_1_1_server_1_1_api_1_1_rights.html | 2 +- ...space_tgstation_1_1_server_1_1_client.html | 2 +- ..._1_1_server_1_1_client_1_1_components.html | 2 +- namespace_tgstation_1_1_server_1_1_host.html | 2 +- ...on_1_1_server_1_1_host_1_1_components.html | 2 +- ...ver_1_1_host_1_1_components_1_1_byond.html | 2 +- ...rver_1_1_host_1_1_components_1_1_chat.html | 2 +- ..._1_1_components_1_1_chat_1_1_commands.html | 2 +- ...1_1_components_1_1_chat_1_1_providers.html | 2 +- ..._1_host_1_1_components_1_1_deployment.html | 2 +- ...r_1_1_host_1_1_components_1_1_interop.html | 2 +- ...1_1_components_1_1_interop_1_1_bridge.html | 2 +- ...components_1_1_interop_1_1_converters.html | 2 +- ..._1_1_components_1_1_interop_1_1_topic.html | 2 +- ..._1_host_1_1_components_1_1_repository.html | 2 +- ...r_1_1_host_1_1_components_1_1_session.html | 2 +- ..._host_1_1_components_1_1_static_files.html | 2 +- ..._1_1_host_1_1_components_1_1_watchdog.html | 2 +- ...1_1_server_1_1_host_1_1_configuration.html | 2 +- ...ation_1_1_server_1_1_host_1_1_console.html | 2 +- ...n_1_1_server_1_1_host_1_1_controllers.html | 2 +- ...gstation_1_1_server_1_1_host_1_1_core.html | 2 +- ...tion_1_1_server_1_1_host_1_1_database.html | 2 +- ...rver_1_1_host_1_1_database_1_1_design.html | 2 +- ..._1_1_host_1_1_database_1_1_migrations.html | 2 +- ...on_1_1_server_1_1_host_1_1_extensions.html | 2 +- ...tgstation_1_1_server_1_1_host_1_1_i_o.html | 2 +- ...gstation_1_1_server_1_1_host_1_1_jobs.html | 2 +- ...on_1_1_server_1_1_host_1_1_migrations.html | 2 +- ...tation_1_1_server_1_1_host_1_1_models.html | 2 +- ...tion_1_1_server_1_1_host_1_1_security.html | 2 +- ...ation_1_1_server_1_1_host_1_1_service.html | 2 +- ...station_1_1_server_1_1_host_1_1_setup.html | 2 +- ...tation_1_1_server_1_1_host_1_1_system.html | 2 +- ...tion_1_1_server_1_1_host_1_1_watchdog.html | 2 +- namespacemembers.html | 2 +- namespacemembers_enum.html | 2 +- namespaces.html | 2 +- search/all_10.js | 6 +- search/all_12.js | 6 +- search/all_14.js | 2 +- search/all_15.js | 5 +- search/all_17.js | 4 +- search/all_3.js | 5 +- search/all_d.js | 1 - search/all_e.js | 2 +- search/functions_13.js | 1 - search/functions_2.js | 1 + search/functions_c.js | 1 - src_2_d_m_a_p_i_2tgs_2_r_e_a_d_m_e_8md.html | 2 +- ...m_a_p_i_2tgs_2_r_e_a_d_m_e_8md_source.html | 2 +- ..._m_a_p_i_2tgs_2core_2_r_e_a_d_m_e_8md.html | 2 +- ...i_2tgs_2core_2_r_e_a_d_m_e_8md_source.html | 2 +- ...m_a_p_i_2tgs_2v3210_2_r_e_a_d_m_e_8md.html | 2 +- ..._2tgs_2v3210_2_r_e_a_d_m_e_8md_source.html | 2 +- ..._d_m_a_p_i_2tgs_2v4_2_r_e_a_d_m_e_8md.html | 2 +- ...p_i_2tgs_2v4_2_r_e_a_d_m_e_8md_source.html | 2 +- src_2_r_e_a_d_m_e_8md.html | 2 +- src_2_r_e_a_d_m_e_8md_source.html | 2 +- ...tion_8_server_8_api_2_r_e_a_d_m_e_8md.html | 2 +- ...server_8_api_2_r_e_a_d_m_e_8md_source.html | 2 +- ...8_host_2_client_app_2_r_e_a_d_m_e_8md.html | 2 +- ...2_client_app_2_r_e_a_d_m_e_8md_source.html | 2 +- ...8_host_2_components_2_r_e_a_d_m_e_8md.html | 2 +- ...2_components_2_r_e_a_d_m_e_8md_source.html | 2 +- ..._host_2_controllers_2_r_e_a_d_m_e_8md.html | 2 +- ..._controllers_2_r_e_a_d_m_e_8md_source.html | 2 +- ...erver_8_host_2_core_2_r_e_a_d_m_e_8md.html | 2 +- ..._host_2_core_2_r_e_a_d_m_e_8md_source.html | 2 +- ...r_8_host_2_database_2_r_e_a_d_m_e_8md.html | 2 +- ...t_2_database_2_r_e_a_d_m_e_8md_source.html | 2 +- ...server_8_host_2_i_o_2_r_e_a_d_m_e_8md.html | 2 +- ...8_host_2_i_o_2_r_e_a_d_m_e_8md_source.html | 2 +- ...erver_8_host_2_jobs_2_r_e_a_d_m_e_8md.html | 2 +- ..._host_2_jobs_2_r_e_a_d_m_e_8md_source.html | 2 +- ...ion_8_server_8_host_2_r_e_a_d_m_e_8md.html | 2 +- ...erver_8_host_2_r_e_a_d_m_e_8md_source.html | 2 +- ...r_8_host_2_security_2_r_e_a_d_m_e_8md.html | 2 +- ...t_2_security_2_r_e_a_d_m_e_8md_source.html | 2 +- ...rver_8_host_2_setup_2_r_e_a_d_m_e_8md.html | 2 +- ...host_2_setup_2_r_e_a_d_m_e_8md_source.html | 2 +- ...ver_8_host_2_system_2_r_e_a_d_m_e_8md.html | 2 +- ...ost_2_system_2_r_e_a_d_m_e_8md_source.html | 2 +- 1909 files changed, 2148 insertions(+), 2195 deletions(-) create mode 100644 class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_ad1c56d38c1a48c110765c99a72619e13_icgraph.map create mode 100644 class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_ad1c56d38c1a48c110765c99a72619e13_icgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_ad1c56d38c1a48c110765c99a72619e13_icgraph.png diff --git a/20180906135553___m_s_initial_create_8_designer_8cs.html b/20180906135553___m_s_initial_create_8_designer_8cs.html index f07670f5fb..4123a379d0 100644 --- a/20180906135553___m_s_initial_create_8_designer_8cs.html +++ b/20180906135553___m_s_initial_create_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180906135553___m_s_initial_create_8_designer_8cs_source.html b/20180906135553___m_s_initial_create_8_designer_8cs_source.html index 35ae68d28b..e50069293e 100644 --- a/20180906135553___m_s_initial_create_8_designer_8cs_source.html +++ b/20180906135553___m_s_initial_create_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180906135553___m_s_initial_create_8cs.html b/20180906135553___m_s_initial_create_8cs.html index 884ac4a190..00d4571dc9 100644 --- a/20180906135553___m_s_initial_create_8cs.html +++ b/20180906135553___m_s_initial_create_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180906135553___m_s_initial_create_8cs_source.html b/20180906135553___m_s_initial_create_8cs_source.html index 127b8443d9..74445939bf 100644 --- a/20180906135553___m_s_initial_create_8cs_source.html +++ b/20180906135553___m_s_initial_create_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180906143029___m_y_initial_create_8_designer_8cs.html b/20180906143029___m_y_initial_create_8_designer_8cs.html index d5b7df7d56..7b0587f22e 100644 --- a/20180906143029___m_y_initial_create_8_designer_8cs.html +++ b/20180906143029___m_y_initial_create_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180906143029___m_y_initial_create_8_designer_8cs_source.html b/20180906143029___m_y_initial_create_8_designer_8cs_source.html index a967e20c4e..0ca53573b8 100644 --- a/20180906143029___m_y_initial_create_8_designer_8cs_source.html +++ b/20180906143029___m_y_initial_create_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180906143029___m_y_initial_create_8cs.html b/20180906143029___m_y_initial_create_8cs.html index 65cafcc7e9..4fa18632c2 100644 --- a/20180906143029___m_y_initial_create_8cs.html +++ b/20180906143029___m_y_initial_create_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180906143029___m_y_initial_create_8cs_source.html b/20180906143029___m_y_initial_create_8cs_source.html index 50b7a6ff33..2ea42c22c1 100644 --- a/20180906143029___m_y_initial_create_8cs_source.html +++ b/20180906143029___m_y_initial_create_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918020726___m_y_add_minimum_security_8_designer_8cs.html b/20180918020726___m_y_add_minimum_security_8_designer_8cs.html index c293fbfb3e..5b9454c3a9 100644 --- a/20180918020726___m_y_add_minimum_security_8_designer_8cs.html +++ b/20180918020726___m_y_add_minimum_security_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918020726___m_y_add_minimum_security_8_designer_8cs_source.html b/20180918020726___m_y_add_minimum_security_8_designer_8cs_source.html index 3968417ea5..e85da68839 100644 --- a/20180918020726___m_y_add_minimum_security_8_designer_8cs_source.html +++ b/20180918020726___m_y_add_minimum_security_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918020726___m_y_add_minimum_security_8cs.html b/20180918020726___m_y_add_minimum_security_8cs.html index c156cdb85c..db82f3f5ec 100644 --- a/20180918020726___m_y_add_minimum_security_8cs.html +++ b/20180918020726___m_y_add_minimum_security_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918020726___m_y_add_minimum_security_8cs_source.html b/20180918020726___m_y_add_minimum_security_8cs_source.html index 00d2a4947b..3f37b28e2c 100644 --- a/20180918020726___m_y_add_minimum_security_8cs_source.html +++ b/20180918020726___m_y_add_minimum_security_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918021228___m_s_add_minimum_security_8_designer_8cs.html b/20180918021228___m_s_add_minimum_security_8_designer_8cs.html index 788a7f1eaf..436a196dbc 100644 --- a/20180918021228___m_s_add_minimum_security_8_designer_8cs.html +++ b/20180918021228___m_s_add_minimum_security_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918021228___m_s_add_minimum_security_8_designer_8cs_source.html b/20180918021228___m_s_add_minimum_security_8_designer_8cs_source.html index 6325d7089c..17235b02a6 100644 --- a/20180918021228___m_s_add_minimum_security_8_designer_8cs_source.html +++ b/20180918021228___m_s_add_minimum_security_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918021228___m_s_add_minimum_security_8cs.html b/20180918021228___m_s_add_minimum_security_8cs.html index 1ee9393632..bf9c434cd6 100644 --- a/20180918021228___m_s_add_minimum_security_8cs.html +++ b/20180918021228___m_s_add_minimum_security_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918021228___m_s_add_minimum_security_8cs_source.html b/20180918021228___m_s_add_minimum_security_8cs_source.html index dbbcd1cc9a..3bb2259c4f 100644 --- a/20180918021228___m_s_add_minimum_security_8cs_source.html +++ b/20180918021228___m_s_add_minimum_security_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs.html b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs.html index dd8d40694c..dc34cfd2e5 100644 --- a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs.html +++ b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html index 9fc58f62b4..c86a3813cd 100644 --- a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html +++ b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs.html b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs.html index 6d0ff5f0b0..02bc21e335 100644 --- a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs.html +++ b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs_source.html b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs_source.html index 4032d5b079..144e77a130 100644 --- a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs_source.html +++ b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs.html b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs.html index 60b154dde8..3c820708c8 100644 --- a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs.html +++ b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html index ff92939025..12cf389d83 100644 --- a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html +++ b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs.html b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs.html index 5320512e19..41bda56a92 100644 --- a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs.html +++ b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs_source.html b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs_source.html index 6752dd1f76..5e56806b53 100644 --- a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs_source.html +++ b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs.html b/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs.html index 8938864382..ff3b10818b 100644 --- a/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs.html +++ b/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs_source.html b/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs_source.html index 4b9b7f783e..49ff825e12 100644 --- a/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs_source.html +++ b/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180926033145___m_s_reattach_compile_job_required_8cs.html b/20180926033145___m_s_reattach_compile_job_required_8cs.html index 1d3f04350d..9b5b507cc4 100644 --- a/20180926033145___m_s_reattach_compile_job_required_8cs.html +++ b/20180926033145___m_s_reattach_compile_job_required_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180926033145___m_s_reattach_compile_job_required_8cs_source.html b/20180926033145___m_s_reattach_compile_job_required_8cs_source.html index 68924b24a1..da495774e1 100644 --- a/20180926033145___m_s_reattach_compile_job_required_8cs_source.html +++ b/20180926033145___m_s_reattach_compile_job_required_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs.html b/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs.html index f84a5fc973..dc462aa4ee 100644 --- a/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs.html +++ b/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs_source.html b/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs_source.html index 993116e29a..c791d2c7a2 100644 --- a/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs_source.html +++ b/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180926034014___m_y_reattach_compile_job_required_8cs.html b/20180926034014___m_y_reattach_compile_job_required_8cs.html index 5a71f52d11..3bac7f6843 100644 --- a/20180926034014___m_y_reattach_compile_job_required_8cs.html +++ b/20180926034014___m_y_reattach_compile_job_required_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20180926034014___m_y_reattach_compile_job_required_8cs_source.html b/20180926034014___m_y_reattach_compile_job_required_8cs_source.html index 9934399196..559c001acb 100644 --- a/20180926034014___m_y_reattach_compile_job_required_8cs_source.html +++ b/20180926034014___m_y_reattach_compile_job_required_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs.html b/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs.html index 8be1ab94ec..af580a5a54 100644 --- a/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs.html +++ b/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs_source.html b/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs_source.html index c8a9b4107b..521c4774fd 100644 --- a/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs_source.html +++ b/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20181124231534___m_s_toggle_testmerge_comments_8cs.html b/20181124231534___m_s_toggle_testmerge_comments_8cs.html index ccf825e96e..ff21fee504 100644 --- a/20181124231534___m_s_toggle_testmerge_comments_8cs.html +++ b/20181124231534___m_s_toggle_testmerge_comments_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20181124231534___m_s_toggle_testmerge_comments_8cs_source.html b/20181124231534___m_s_toggle_testmerge_comments_8cs_source.html index 3174dab896..e9b804f39a 100644 --- a/20181124231534___m_s_toggle_testmerge_comments_8cs_source.html +++ b/20181124231534___m_s_toggle_testmerge_comments_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs.html b/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs.html index e3e6bbb15c..238ab0955a 100644 --- a/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs.html +++ b/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs_source.html b/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs_source.html index c98d011223..35c5a3d02e 100644 --- a/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs_source.html +++ b/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20181124231549___m_y_toggle_testmerge_comments_8cs.html b/20181124231549___m_y_toggle_testmerge_comments_8cs.html index ca730783c5..d71a2cde3c 100644 --- a/20181124231549___m_y_toggle_testmerge_comments_8cs.html +++ b/20181124231549___m_y_toggle_testmerge_comments_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20181124231549___m_y_toggle_testmerge_comments_8cs_source.html b/20181124231549___m_y_toggle_testmerge_comments_8cs_source.html index c9c89e9074..5fe89a94f2 100644 --- a/20181124231549___m_y_toggle_testmerge_comments_8cs_source.html +++ b/20181124231549___m_y_toggle_testmerge_comments_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20190219041825___m_s_fix_rev_info_index_8_designer_8cs.html b/20190219041825___m_s_fix_rev_info_index_8_designer_8cs.html index e8f60081a2..d25dc6e245 100644 --- a/20190219041825___m_s_fix_rev_info_index_8_designer_8cs.html +++ b/20190219041825___m_s_fix_rev_info_index_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20190219041825___m_s_fix_rev_info_index_8_designer_8cs_source.html b/20190219041825___m_s_fix_rev_info_index_8_designer_8cs_source.html index d82bcf4825..3cfdbfd3f2 100644 --- a/20190219041825___m_s_fix_rev_info_index_8_designer_8cs_source.html +++ b/20190219041825___m_s_fix_rev_info_index_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20190219041825___m_s_fix_rev_info_index_8cs.html b/20190219041825___m_s_fix_rev_info_index_8cs.html index 122ecaec88..0df50e58f2 100644 --- a/20190219041825___m_s_fix_rev_info_index_8cs.html +++ b/20190219041825___m_s_fix_rev_info_index_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20190219041825___m_s_fix_rev_info_index_8cs_source.html b/20190219041825___m_s_fix_rev_info_index_8cs_source.html index b8462b67f5..4776b5bab1 100644 --- a/20190219041825___m_s_fix_rev_info_index_8cs_source.html +++ b/20190219041825___m_s_fix_rev_info_index_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20190219042440___m_y_fix_rev_info_index_8_designer_8cs.html b/20190219042440___m_y_fix_rev_info_index_8_designer_8cs.html index 4a3eee8c4d..38baed591b 100644 --- a/20190219042440___m_y_fix_rev_info_index_8_designer_8cs.html +++ b/20190219042440___m_y_fix_rev_info_index_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20190219042440___m_y_fix_rev_info_index_8_designer_8cs_source.html b/20190219042440___m_y_fix_rev_info_index_8_designer_8cs_source.html index f7aef6de3f..d427894abb 100644 --- a/20190219042440___m_y_fix_rev_info_index_8_designer_8cs_source.html +++ b/20190219042440___m_y_fix_rev_info_index_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20190219042440___m_y_fix_rev_info_index_8cs.html b/20190219042440___m_y_fix_rev_info_index_8cs.html index 7f728e4ddd..bf095267a4 100644 --- a/20190219042440___m_y_fix_rev_info_index_8cs.html +++ b/20190219042440___m_y_fix_rev_info_index_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20190219042440___m_y_fix_rev_info_index_8cs_source.html b/20190219042440___m_y_fix_rev_info_index_8cs_source.html index c8fd2f5db6..c547b5154a 100644 --- a/20190219042440___m_y_fix_rev_info_index_8cs_source.html +++ b/20190219042440___m_y_fix_rev_info_index_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs.html b/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs.html index d4a7813ff5..0803ce6393 100644 --- a/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs.html +++ b/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs_source.html b/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs_source.html index 6fc451b542..e36ea61c6b 100644 --- a/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs_source.html +++ b/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs.html b/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs.html index 35bb4e1112..6c6cdae06a 100644 --- a/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs.html +++ b/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs_source.html b/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs_source.html index 412de89864..da3dba2db6 100644 --- a/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs_source.html +++ b/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs.html b/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs.html index 611b584e58..111bf3dc4a 100644 --- a/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs.html +++ b/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs_source.html b/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs_source.html index af26715989..d98d388b47 100644 --- a/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs_source.html +++ b/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs.html b/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs.html index 87a1b5ae0a..7b79cbd091 100644 --- a/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs.html +++ b/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs_source.html b/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs_source.html index b27541b074..f37ff29948 100644 --- a/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs_source.html +++ b/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200411164808___m_s_tons_of_validation_8_designer_8cs.html b/20200411164808___m_s_tons_of_validation_8_designer_8cs.html index 211eaa1dee..35475197f6 100644 --- a/20200411164808___m_s_tons_of_validation_8_designer_8cs.html +++ b/20200411164808___m_s_tons_of_validation_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200411164808___m_s_tons_of_validation_8_designer_8cs_source.html b/20200411164808___m_s_tons_of_validation_8_designer_8cs_source.html index 449c7ad807..8ffff9643c 100644 --- a/20200411164808___m_s_tons_of_validation_8_designer_8cs_source.html +++ b/20200411164808___m_s_tons_of_validation_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200411164808___m_s_tons_of_validation_8cs.html b/20200411164808___m_s_tons_of_validation_8cs.html index 0281a27798..a11a16807e 100644 --- a/20200411164808___m_s_tons_of_validation_8cs.html +++ b/20200411164808___m_s_tons_of_validation_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200411164808___m_s_tons_of_validation_8cs_source.html b/20200411164808___m_s_tons_of_validation_8cs_source.html index 5701ca610e..8845ab1926 100644 --- a/20200411164808___m_s_tons_of_validation_8cs_source.html +++ b/20200411164808___m_s_tons_of_validation_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200411170010___m_y_tons_of_validation_8_designer_8cs.html b/20200411170010___m_y_tons_of_validation_8_designer_8cs.html index 9479ad5cea..eef4e70967 100644 --- a/20200411170010___m_y_tons_of_validation_8_designer_8cs.html +++ b/20200411170010___m_y_tons_of_validation_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200411170010___m_y_tons_of_validation_8_designer_8cs_source.html b/20200411170010___m_y_tons_of_validation_8_designer_8cs_source.html index 99c617d3ac..8c026d317b 100644 --- a/20200411170010___m_y_tons_of_validation_8_designer_8cs_source.html +++ b/20200411170010___m_y_tons_of_validation_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200411170010___m_y_tons_of_validation_8cs.html b/20200411170010___m_y_tons_of_validation_8cs.html index 363a33b20a..3598747946 100644 --- a/20200411170010___m_y_tons_of_validation_8cs.html +++ b/20200411170010___m_y_tons_of_validation_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200411170010___m_y_tons_of_validation_8cs_source.html b/20200411170010___m_y_tons_of_validation_8cs_source.html index f4659d4f78..ad0205e374 100644 --- a/20200411170010___m_y_tons_of_validation_8cs_source.html +++ b/20200411170010___m_y_tons_of_validation_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200420175359___m_s_limits_on_chat_8_designer_8cs.html b/20200420175359___m_s_limits_on_chat_8_designer_8cs.html index 3a209ebeca..213e457683 100644 --- a/20200420175359___m_s_limits_on_chat_8_designer_8cs.html +++ b/20200420175359___m_s_limits_on_chat_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200420175359___m_s_limits_on_chat_8_designer_8cs_source.html b/20200420175359___m_s_limits_on_chat_8_designer_8cs_source.html index 5486a28d46..233b6f493c 100644 --- a/20200420175359___m_s_limits_on_chat_8_designer_8cs_source.html +++ b/20200420175359___m_s_limits_on_chat_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200420175359___m_s_limits_on_chat_8cs.html b/20200420175359___m_s_limits_on_chat_8cs.html index 9ef8df6838..ce5de15dbc 100644 --- a/20200420175359___m_s_limits_on_chat_8cs.html +++ b/20200420175359___m_s_limits_on_chat_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200420175359___m_s_limits_on_chat_8cs_source.html b/20200420175359___m_s_limits_on_chat_8cs_source.html index 526c299de3..31e2a2c441 100644 --- a/20200420175359___m_s_limits_on_chat_8cs_source.html +++ b/20200420175359___m_s_limits_on_chat_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200420181015___m_y_limits_on_chat_8_designer_8cs.html b/20200420181015___m_y_limits_on_chat_8_designer_8cs.html index b5c0bbbf1b..54f532a316 100644 --- a/20200420181015___m_y_limits_on_chat_8_designer_8cs.html +++ b/20200420181015___m_y_limits_on_chat_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200420181015___m_y_limits_on_chat_8_designer_8cs_source.html b/20200420181015___m_y_limits_on_chat_8_designer_8cs_source.html index 14138ea629..5c076b2918 100644 --- a/20200420181015___m_y_limits_on_chat_8_designer_8cs_source.html +++ b/20200420181015___m_y_limits_on_chat_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200420181015___m_y_limits_on_chat_8cs.html b/20200420181015___m_y_limits_on_chat_8cs.html index 975c9df094..4367591b2b 100644 --- a/20200420181015___m_y_limits_on_chat_8cs.html +++ b/20200420181015___m_y_limits_on_chat_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200420181015___m_y_limits_on_chat_8cs_source.html b/20200420181015___m_y_limits_on_chat_8cs_source.html index 4ac70dea65..708a8e5a8a 100644 --- a/20200420181015___m_y_limits_on_chat_8cs_source.html +++ b/20200420181015___m_y_limits_on_chat_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs.html b/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs.html index c2e4737104..bccb7ba679 100644 --- a/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs.html +++ b/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs_source.html b/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs_source.html index a258cce9df..8bbf72a162 100644 --- a/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs_source.html +++ b/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200422001202___m_s_add_compile_job_d_m_api_version_8cs.html b/20200422001202___m_s_add_compile_job_d_m_api_version_8cs.html index 8a65e16dff..324458f4c3 100644 --- a/20200422001202___m_s_add_compile_job_d_m_api_version_8cs.html +++ b/20200422001202___m_s_add_compile_job_d_m_api_version_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200422001202___m_s_add_compile_job_d_m_api_version_8cs_source.html b/20200422001202___m_s_add_compile_job_d_m_api_version_8cs_source.html index ab0b30b73e..0661cbd81c 100644 --- a/20200422001202___m_s_add_compile_job_d_m_api_version_8cs_source.html +++ b/20200422001202___m_s_add_compile_job_d_m_api_version_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs.html b/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs.html index e7faf43764..506680d48c 100644 --- a/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs.html +++ b/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs_source.html b/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs_source.html index ab3fa87422..1259843d57 100644 --- a/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs_source.html +++ b/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200422010115___m_y_add_compile_job_d_m_api_version_8cs.html b/20200422010115___m_y_add_compile_job_d_m_api_version_8cs.html index 3cd3df340d..73baaf0300 100644 --- a/20200422010115___m_y_add_compile_job_d_m_api_version_8cs.html +++ b/20200422010115___m_y_add_compile_job_d_m_api_version_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200422010115___m_y_add_compile_job_d_m_api_version_8cs_source.html b/20200422010115___m_y_add_compile_job_d_m_api_version_8cs_source.html index b6ee01025d..1ca24fa874 100644 --- a/20200422010115___m_y_add_compile_job_d_m_api_version_8cs_source.html +++ b/20200422010115___m_y_add_compile_job_d_m_api_version_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs.html b/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs.html index a47c8b53be..d7338723ad 100644 --- a/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs.html +++ b/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs_source.html b/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs_source.html index 5b0d223018..5f69a1946e 100644 --- a/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs_source.html +++ b/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423003841___m_y_checkpoint_rebuild_8cs.html b/20200423003841___m_y_checkpoint_rebuild_8cs.html index 5c4354916b..3aba447d0c 100644 --- a/20200423003841___m_y_checkpoint_rebuild_8cs.html +++ b/20200423003841___m_y_checkpoint_rebuild_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423003841___m_y_checkpoint_rebuild_8cs_source.html b/20200423003841___m_y_checkpoint_rebuild_8cs_source.html index 49d667bfae..8445ddf93e 100644 --- a/20200423003841___m_y_checkpoint_rebuild_8cs_source.html +++ b/20200423003841___m_y_checkpoint_rebuild_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs.html b/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs.html index 243ad47b60..bc799154b6 100644 --- a/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs.html +++ b/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs_source.html b/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs_source.html index 05de792ab7..7e402cb4b3 100644 --- a/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs_source.html +++ b/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423004015___m_s_checkpoint_rebuild_8cs.html b/20200423004015___m_s_checkpoint_rebuild_8cs.html index 91599d95af..ad8ac7d095 100644 --- a/20200423004015___m_s_checkpoint_rebuild_8cs.html +++ b/20200423004015___m_s_checkpoint_rebuild_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423004015___m_s_checkpoint_rebuild_8cs_source.html b/20200423004015___m_s_checkpoint_rebuild_8cs_source.html index 34920eb635..c1a93b8651 100644 --- a/20200423004015___m_s_checkpoint_rebuild_8cs_source.html +++ b/20200423004015___m_s_checkpoint_rebuild_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs.html b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs.html index 96b6dd0625..7278b1f838 100644 --- a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs.html +++ b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html index d39d0e2958..85888205b3 100644 --- a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html +++ b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs.html b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs.html index a4b78e8041..208cca8e2e 100644 --- a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs.html +++ b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs_source.html b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs_source.html index 67c44c11a5..481771fbfe 100644 --- a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs_source.html +++ b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs.html b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs.html index 7ad77d04e7..0e2f64d109 100644 --- a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs.html +++ b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html index dd6af59d51..5bec58446f 100644 --- a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html +++ b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs.html b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs.html index d1e36abdd9..d79f95870b 100644 --- a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs.html +++ b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs_source.html b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs_source.html index d4311d31f1..c2b5642868 100644 --- a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs_source.html +++ b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200425024433___m_s_add_job_error_codes_8_designer_8cs.html b/20200425024433___m_s_add_job_error_codes_8_designer_8cs.html index ea716f2c62..6a6c26906e 100644 --- a/20200425024433___m_s_add_job_error_codes_8_designer_8cs.html +++ b/20200425024433___m_s_add_job_error_codes_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200425024433___m_s_add_job_error_codes_8_designer_8cs_source.html b/20200425024433___m_s_add_job_error_codes_8_designer_8cs_source.html index 21966e0b19..2d7f36be37 100644 --- a/20200425024433___m_s_add_job_error_codes_8_designer_8cs_source.html +++ b/20200425024433___m_s_add_job_error_codes_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200425024433___m_s_add_job_error_codes_8cs.html b/20200425024433___m_s_add_job_error_codes_8cs.html index 43d18105d4..54a8287ae2 100644 --- a/20200425024433___m_s_add_job_error_codes_8cs.html +++ b/20200425024433___m_s_add_job_error_codes_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200425024433___m_s_add_job_error_codes_8cs_source.html b/20200425024433___m_s_add_job_error_codes_8cs_source.html index 727d47ffdd..36c6452d0a 100644 --- a/20200425024433___m_s_add_job_error_codes_8cs_source.html +++ b/20200425024433___m_s_add_job_error_codes_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200425024953___m_y_add_job_error_codes_8_designer_8cs.html b/20200425024953___m_y_add_job_error_codes_8_designer_8cs.html index 284b67ef55..8627957e0f 100644 --- a/20200425024953___m_y_add_job_error_codes_8_designer_8cs.html +++ b/20200425024953___m_y_add_job_error_codes_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200425024953___m_y_add_job_error_codes_8_designer_8cs_source.html b/20200425024953___m_y_add_job_error_codes_8_designer_8cs_source.html index d7030239f4..2a550c6b4d 100644 --- a/20200425024953___m_y_add_job_error_codes_8_designer_8cs_source.html +++ b/20200425024953___m_y_add_job_error_codes_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200425024953___m_y_add_job_error_codes_8cs.html b/20200425024953___m_y_add_job_error_codes_8cs.html index fb2de6eb2d..ae57063989 100644 --- a/20200425024953___m_y_add_job_error_codes_8cs.html +++ b/20200425024953___m_y_add_job_error_codes_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200425024953___m_y_add_job_error_codes_8cs_source.html b/20200425024953___m_y_add_job_error_codes_8cs_source.html index 50786c184a..3d494bde9d 100644 --- a/20200425024953___m_y_add_job_error_codes_8cs_source.html +++ b/20200425024953___m_y_add_job_error_codes_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200427173852___m_s_fix_cascading_delete_8_designer_8cs.html b/20200427173852___m_s_fix_cascading_delete_8_designer_8cs.html index 03d0378e54..f359ab95de 100644 --- a/20200427173852___m_s_fix_cascading_delete_8_designer_8cs.html +++ b/20200427173852___m_s_fix_cascading_delete_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200427173852___m_s_fix_cascading_delete_8_designer_8cs_source.html b/20200427173852___m_s_fix_cascading_delete_8_designer_8cs_source.html index a8a7ca00e6..4ac7ac6867 100644 --- a/20200427173852___m_s_fix_cascading_delete_8_designer_8cs_source.html +++ b/20200427173852___m_s_fix_cascading_delete_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200427173852___m_s_fix_cascading_delete_8cs.html b/20200427173852___m_s_fix_cascading_delete_8cs.html index 577a915ba7..d12c3ed354 100644 --- a/20200427173852___m_s_fix_cascading_delete_8cs.html +++ b/20200427173852___m_s_fix_cascading_delete_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200427173852___m_s_fix_cascading_delete_8cs_source.html b/20200427173852___m_s_fix_cascading_delete_8cs_source.html index 97d71a7e32..3951c96c63 100644 --- a/20200427173852___m_s_fix_cascading_delete_8cs_source.html +++ b/20200427173852___m_s_fix_cascading_delete_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200427180159___m_y_fix_cascading_delete_8_designer_8cs.html b/20200427180159___m_y_fix_cascading_delete_8_designer_8cs.html index eabe474429..34943ccdf7 100644 --- a/20200427180159___m_y_fix_cascading_delete_8_designer_8cs.html +++ b/20200427180159___m_y_fix_cascading_delete_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200427180159___m_y_fix_cascading_delete_8_designer_8cs_source.html b/20200427180159___m_y_fix_cascading_delete_8_designer_8cs_source.html index 865d66cc97..85b24cf593 100644 --- a/20200427180159___m_y_fix_cascading_delete_8_designer_8cs_source.html +++ b/20200427180159___m_y_fix_cascading_delete_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200427180159___m_y_fix_cascading_delete_8cs.html b/20200427180159___m_y_fix_cascading_delete_8cs.html index 41cbfff7a1..e9bb7ca91d 100644 --- a/20200427180159___m_y_fix_cascading_delete_8cs.html +++ b/20200427180159___m_y_fix_cascading_delete_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200427180159___m_y_fix_cascading_delete_8cs_source.html b/20200427180159___m_y_fix_cascading_delete_8cs_source.html index c18d10df0c..aa35c11693 100644 --- a/20200427180159___m_y_fix_cascading_delete_8cs_source.html +++ b/20200427180159___m_y_fix_cascading_delete_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200427180904___s_l_rebuild_8_designer_8cs.html b/20200427180904___s_l_rebuild_8_designer_8cs.html index 433a23c6af..b0402b3724 100644 --- a/20200427180904___s_l_rebuild_8_designer_8cs.html +++ b/20200427180904___s_l_rebuild_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200427180904___s_l_rebuild_8_designer_8cs_source.html b/20200427180904___s_l_rebuild_8_designer_8cs_source.html index 6c55dc9eb7..d33430d518 100644 --- a/20200427180904___s_l_rebuild_8_designer_8cs_source.html +++ b/20200427180904___s_l_rebuild_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200427180904___s_l_rebuild_8cs.html b/20200427180904___s_l_rebuild_8cs.html index 1e096cdcbf..99c822565e 100644 --- a/20200427180904___s_l_rebuild_8cs.html +++ b/20200427180904___s_l_rebuild_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200427180904___s_l_rebuild_8cs_source.html b/20200427180904___s_l_rebuild_8cs_source.html index d4ce000d62..61204c4623 100644 --- a/20200427180904___s_l_rebuild_8cs_source.html +++ b/20200427180904___s_l_rebuild_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511005957___m_s_add_heartbeat_8_designer_8cs.html b/20200511005957___m_s_add_heartbeat_8_designer_8cs.html index 92da70693a..4da99bc8cc 100644 --- a/20200511005957___m_s_add_heartbeat_8_designer_8cs.html +++ b/20200511005957___m_s_add_heartbeat_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511005957___m_s_add_heartbeat_8_designer_8cs_source.html b/20200511005957___m_s_add_heartbeat_8_designer_8cs_source.html index 925709eafd..92b47273ae 100644 --- a/20200511005957___m_s_add_heartbeat_8_designer_8cs_source.html +++ b/20200511005957___m_s_add_heartbeat_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511005957___m_s_add_heartbeat_8cs.html b/20200511005957___m_s_add_heartbeat_8cs.html index 527b78a2ae..86e2e0484f 100644 --- a/20200511005957___m_s_add_heartbeat_8cs.html +++ b/20200511005957___m_s_add_heartbeat_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511005957___m_s_add_heartbeat_8cs_source.html b/20200511005957___m_s_add_heartbeat_8cs_source.html index 0f33257ebc..047d7922c1 100644 --- a/20200511005957___m_s_add_heartbeat_8cs_source.html +++ b/20200511005957___m_s_add_heartbeat_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511011048___m_y_add_heartbeat_8_designer_8cs.html b/20200511011048___m_y_add_heartbeat_8_designer_8cs.html index 66c608b217..2dc2bcb8ec 100644 --- a/20200511011048___m_y_add_heartbeat_8_designer_8cs.html +++ b/20200511011048___m_y_add_heartbeat_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511011048___m_y_add_heartbeat_8_designer_8cs_source.html b/20200511011048___m_y_add_heartbeat_8_designer_8cs_source.html index ee5af64b67..c7ce256edf 100644 --- a/20200511011048___m_y_add_heartbeat_8_designer_8cs_source.html +++ b/20200511011048___m_y_add_heartbeat_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511011048___m_y_add_heartbeat_8cs.html b/20200511011048___m_y_add_heartbeat_8cs.html index 88753e80c1..76482a1770 100644 --- a/20200511011048___m_y_add_heartbeat_8cs.html +++ b/20200511011048___m_y_add_heartbeat_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511011048___m_y_add_heartbeat_8cs_source.html b/20200511011048___m_y_add_heartbeat_8cs_source.html index 0ef2a07dff..bef69483f9 100644 --- a/20200511011048___m_y_add_heartbeat_8cs_source.html +++ b/20200511011048___m_y_add_heartbeat_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511012117___s_l_add_heartbeat_8_designer_8cs.html b/20200511012117___s_l_add_heartbeat_8_designer_8cs.html index 33c1597391..01911e99aa 100644 --- a/20200511012117___s_l_add_heartbeat_8_designer_8cs.html +++ b/20200511012117___s_l_add_heartbeat_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511012117___s_l_add_heartbeat_8_designer_8cs_source.html b/20200511012117___s_l_add_heartbeat_8_designer_8cs_source.html index f25e841593..33baa9b689 100644 --- a/20200511012117___s_l_add_heartbeat_8_designer_8cs_source.html +++ b/20200511012117___s_l_add_heartbeat_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511012117___s_l_add_heartbeat_8cs.html b/20200511012117___s_l_add_heartbeat_8cs.html index 46d06ca82c..c9fe1a9cd8 100644 --- a/20200511012117___s_l_add_heartbeat_8cs.html +++ b/20200511012117___s_l_add_heartbeat_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511012117___s_l_add_heartbeat_8cs_source.html b/20200511012117___s_l_add_heartbeat_8cs_source.html index 718a15cc60..83a06db885 100644 --- a/20200511012117___s_l_add_heartbeat_8cs_source.html +++ b/20200511012117___s_l_add_heartbeat_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511162912___s_l_remove_soft_columns_8_designer_8cs.html b/20200511162912___s_l_remove_soft_columns_8_designer_8cs.html index f6f6c8c6af..a40f096dce 100644 --- a/20200511162912___s_l_remove_soft_columns_8_designer_8cs.html +++ b/20200511162912___s_l_remove_soft_columns_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511162912___s_l_remove_soft_columns_8_designer_8cs_source.html b/20200511162912___s_l_remove_soft_columns_8_designer_8cs_source.html index 27b4e71c3a..b74c5c9950 100644 --- a/20200511162912___s_l_remove_soft_columns_8_designer_8cs_source.html +++ b/20200511162912___s_l_remove_soft_columns_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511162912___s_l_remove_soft_columns_8cs.html b/20200511162912___s_l_remove_soft_columns_8cs.html index 4e34ebf391..b4acbc544b 100644 --- a/20200511162912___s_l_remove_soft_columns_8cs.html +++ b/20200511162912___s_l_remove_soft_columns_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200511162912___s_l_remove_soft_columns_8cs_source.html b/20200511162912___s_l_remove_soft_columns_8cs_source.html index bccba59301..36494c634f 100644 --- a/20200511162912___s_l_remove_soft_columns_8cs_source.html +++ b/20200511162912___s_l_remove_soft_columns_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200512181801___m_s_remove_soft_columns_8_designer_8cs.html b/20200512181801___m_s_remove_soft_columns_8_designer_8cs.html index 26052a8252..89525d8399 100644 --- a/20200512181801___m_s_remove_soft_columns_8_designer_8cs.html +++ b/20200512181801___m_s_remove_soft_columns_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200512181801___m_s_remove_soft_columns_8_designer_8cs_source.html b/20200512181801___m_s_remove_soft_columns_8_designer_8cs_source.html index 3f48ace937..c3d3bc7555 100644 --- a/20200512181801___m_s_remove_soft_columns_8_designer_8cs_source.html +++ b/20200512181801___m_s_remove_soft_columns_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200512181801___m_s_remove_soft_columns_8cs.html b/20200512181801___m_s_remove_soft_columns_8cs.html index 885d410bb2..5df2ba828b 100644 --- a/20200512181801___m_s_remove_soft_columns_8cs.html +++ b/20200512181801___m_s_remove_soft_columns_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200512181801___m_s_remove_soft_columns_8cs_source.html b/20200512181801___m_s_remove_soft_columns_8cs_source.html index 2121c0954e..421a13d0d2 100644 --- a/20200512181801___m_s_remove_soft_columns_8cs_source.html +++ b/20200512181801___m_s_remove_soft_columns_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200512182535___m_y_remove_soft_columns_8_designer_8cs.html b/20200512182535___m_y_remove_soft_columns_8_designer_8cs.html index 460490c281..895a43cc29 100644 --- a/20200512182535___m_y_remove_soft_columns_8_designer_8cs.html +++ b/20200512182535___m_y_remove_soft_columns_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200512182535___m_y_remove_soft_columns_8_designer_8cs_source.html b/20200512182535___m_y_remove_soft_columns_8_designer_8cs_source.html index a0a038c275..c411f64dae 100644 --- a/20200512182535___m_y_remove_soft_columns_8_designer_8cs_source.html +++ b/20200512182535___m_y_remove_soft_columns_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200512182535___m_y_remove_soft_columns_8cs.html b/20200512182535___m_y_remove_soft_columns_8cs.html index 698b3befd4..ef1f34a9c3 100644 --- a/20200512182535___m_y_remove_soft_columns_8cs.html +++ b/20200512182535___m_y_remove_soft_columns_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200512182535___m_y_remove_soft_columns_8cs_source.html b/20200512182535___m_y_remove_soft_columns_8cs_source.html index 1cad4a50cc..f4588152d4 100644 --- a/20200512182535___m_y_remove_soft_columns_8cs_source.html +++ b/20200512182535___m_y_remove_soft_columns_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200516111712___p_g_create_8_designer_8cs.html b/20200516111712___p_g_create_8_designer_8cs.html index 223022b8f7..4e9fd6ac8e 100644 --- a/20200516111712___p_g_create_8_designer_8cs.html +++ b/20200516111712___p_g_create_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200516111712___p_g_create_8_designer_8cs_source.html b/20200516111712___p_g_create_8_designer_8cs_source.html index c5d5ce1bdf..aa606205ec 100644 --- a/20200516111712___p_g_create_8_designer_8cs_source.html +++ b/20200516111712___p_g_create_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200516111712___p_g_create_8cs.html b/20200516111712___p_g_create_8cs.html index aef7b0a276..16c6aa988a 100644 --- a/20200516111712___p_g_create_8cs.html +++ b/20200516111712___p_g_create_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/20200516111712___p_g_create_8cs_source.html b/20200516111712___p_g_create_8cs_source.html index f967fb9161..dfbe14ebe8 100644 --- a/20200516111712___p_g_create_8cs_source.html +++ b/20200516111712___p_g_create_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_a_p_i_8dox.html b/_a_p_i_8dox.html index 884a86b078..480a7bad2f 100644 --- a/_a_p_i_8dox.html +++ b/_a_p_i_8dox.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_administration_8cs.html b/_administration_8cs.html index 120e09fae9..f4bbba26bc 100644 --- a/_administration_8cs.html +++ b/_administration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_administration_8cs_source.html b/_administration_8cs_source.html index 746256aa66..49e99039a9 100644 --- a/_administration_8cs_source.html +++ b/_administration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_administration_client_8cs.html b/_administration_client_8cs.html index 89374c0c99..0c12fbbdc5 100644 --- a/_administration_client_8cs.html +++ b/_administration_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_administration_client_8cs_source.html b/_administration_client_8cs_source.html index f81b802ed3..001550a5da 100644 --- a/_administration_client_8cs_source.html +++ b/_administration_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_administration_controller_8cs.html b/_administration_controller_8cs.html index cc4fc498c5..1942da0261 100644 --- a/_administration_controller_8cs.html +++ b/_administration_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_administration_controller_8cs_source.html b/_administration_controller_8cs_source.html index a4b1bd9a71..16e55790c1 100644 --- a/_administration_controller_8cs_source.html +++ b/_administration_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_administration_rights_8cs.html b/_administration_rights_8cs.html index 94e74c57dd..f39337ff9d 100644 --- a/_administration_rights_8cs.html +++ b/_administration_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_administration_rights_8cs_source.html b/_administration_rights_8cs_source.html index bb127a210e..bab20b1ccf 100644 --- a/_administration_rights_8cs_source.html +++ b/_administration_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_client_8cs.html b/_api_client_8cs.html index f5e6798805..99e28095fe 100644 --- a/_api_client_8cs.html +++ b/_api_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_client_8cs_source.html b/_api_client_8cs_source.html index 4783694adb..2c3d9c4af0 100644 --- a/_api_client_8cs_source.html +++ b/_api_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_client_factory_8cs.html b/_api_client_factory_8cs.html index 32059db5c7..4a55d266a1 100644 --- a/_api_client_factory_8cs.html +++ b/_api_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_client_factory_8cs_source.html b/_api_client_factory_8cs_source.html index 0b456f93a1..088f38d648 100644 --- a/_api_client_factory_8cs_source.html +++ b/_api_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_conflict_exception_8cs.html b/_api_conflict_exception_8cs.html index a84b7ef856..514a0eb372 100644 --- a/_api_conflict_exception_8cs.html +++ b/_api_conflict_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_conflict_exception_8cs_source.html b/_api_conflict_exception_8cs_source.html index f8c15f5e61..c8faa2dac9 100644 --- a/_api_conflict_exception_8cs_source.html +++ b/_api_conflict_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_controller_8cs.html b/_api_controller_8cs.html index 40258a6ea5..838cf21188 100644 --- a/_api_controller_8cs.html +++ b/_api_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_controller_8cs_source.html b/_api_controller_8cs_source.html index 31d530d19f..29b0f752cd 100644 --- a/_api_controller_8cs_source.html +++ b/_api_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_exception_8cs.html b/_api_exception_8cs.html index 1d7164448d..dfbca67f98 100644 --- a/_api_exception_8cs.html +++ b/_api_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_exception_8cs_source.html b/_api_exception_8cs_source.html index 79db0fbcec..b5d70c1db1 100644 --- a/_api_exception_8cs_source.html +++ b/_api_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_headers_8cs.html b/_api_headers_8cs.html index 70bbf5d045..41e07f58fd 100644 --- a/_api_headers_8cs.html +++ b/_api_headers_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_headers_8cs_source.html b/_api_headers_8cs_source.html index f1977a34b4..7783d7dafb 100644 --- a/_api_headers_8cs_source.html +++ b/_api_headers_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_validation_status_8cs.html b/_api_validation_status_8cs.html index d71f43839a..84901013c4 100644 --- a/_api_validation_status_8cs.html +++ b/_api_validation_status_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_api_validation_status_8cs_source.html b/_api_validation_status_8cs_source.html index c77fc0802d..a8b296295c 100644 --- a/_api_validation_status_8cs_source.html +++ b/_api_validation_status_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_application_8cs.html b/_application_8cs.html index 1beebca9e3..ac72324aa7 100644 --- a/_application_8cs.html +++ b/_application_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_application_8cs_source.html b/_application_8cs_source.html index 9def760522..6057633095 100644 --- a/_application_8cs_source.html +++ b/_application_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Application.cs
-Go to the documentation of this file.
1 using Byond.TopicSender;
2 using Cyberboss.AspNetCore.AsyncInitializer;
3 using Microsoft.AspNetCore.Authentication.JwtBearer;
4 using Microsoft.AspNetCore.Builder;
5 using Microsoft.AspNetCore.Cors.Infrastructure;
6 using Microsoft.AspNetCore.Hosting;
7 using Microsoft.AspNetCore.Identity;
8 using Microsoft.Extensions.Configuration;
9 using Microsoft.Extensions.DependencyInjection;
10 using Microsoft.Extensions.Hosting;
11 using Microsoft.Extensions.Logging;
12 using Microsoft.Extensions.Options;
13 using Microsoft.Extensions.Primitives;
14 using Newtonsoft.Json;
15 using Serilog;
16 using Serilog.Events;
17 using Serilog.Formatting.Display;
18 using System;
19 using System.Globalization;
20 using System.IdentityModel.Tokens.Jwt;
21 using System.Threading.Tasks;
22 using Tgstation.Server.Api;
35 using Tgstation.Server.Host.IO;
40 
41 namespace Tgstation.Server.Host.Core
42 {
46 #pragma warning disable CA1506
48  {
52  readonly IWebHostEnvironment hostingEnvironment;
53 
58 
64  public Application(
65  IConfiguration configuration,
66  IWebHostEnvironment hostingEnvironment)
67  : base(configuration)
68  {
69  this.hostingEnvironment = hostingEnvironment ?? throw new ArgumentNullException(nameof(hostingEnvironment));
70  }
71 
76  public static IServerFactory CreateDefaultServerFactory()
77  => new ServerFactory(
79  IOManager);
80 
86  public void ConfigureServices(IServiceCollection services, IPostSetupServices postSetupServices)
87  {
88  ConfigureServices(services);
89 
90  if (postSetupServices == null)
91  throw new ArgumentNullException(nameof(postSetupServices));
92 
93  // configure configuration
94  services.UseStandardConfig<UpdatesConfiguration>(Configuration);
95  services.UseStandardConfig<ControlPanelConfiguration>(Configuration);
96 
97  // enable options which give us config reloading
98  services.AddOptions();
99 
100  static LogEventLevel? ConvertSeriLogLevel(LogLevel logLevel) =>
101  logLevel switch
102  {
103  LogLevel.Critical => LogEventLevel.Fatal,
104  LogLevel.Debug => LogEventLevel.Debug,
105  LogLevel.Error => LogEventLevel.Error,
106  LogLevel.Information => LogEventLevel.Information,
107  LogLevel.Trace => LogEventLevel.Verbose,
108  LogLevel.Warning => LogEventLevel.Warning,
109  LogLevel.None => null,
110  _ => throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Invalid log level {0}", logLevel)),
111  };
112 
113  var microsoftEventLevel = ConvertSeriLogLevel(postSetupServices.FileLoggingConfiguration.MicrosoftLogLevel);
114  services.SetupLogging(
115  config =>
116  {
117  if (microsoftEventLevel.HasValue)
118  config.MinimumLevel.Override("Microsoft", microsoftEventLevel.Value);
119  },
120  sinkConfig =>
121  {
122  if (postSetupServices.FileLoggingConfiguration.Disable)
123  return;
124 
125  // common app data is C:/ProgramData on windows, else /usr/share
126  var logPath = !String.IsNullOrEmpty(postSetupServices.FileLoggingConfiguration.Directory)
127  ? postSetupServices.FileLoggingConfiguration.Directory
128  : IOManager.ConcatPath(
129  Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
131  "Logs");
132 
133  var logEventLevel = ConvertSeriLogLevel(postSetupServices.FileLoggingConfiguration.LogLevel);
134 
135  var formatter = new MessageTemplateTextFormatter(
136  "{Timestamp:o} {RequestId,13} [{Level:u3}] {SourceContext:l}: {Message} ({EventId:x8}){NewLine}{Exception}",
137  null);
138 
139  logPath = IOManager.ConcatPath(logPath, "tgs-{Date}.log");
140  var rollingFileConfig = sinkConfig.File(
141  formatter,
142  logPath,
143  logEventLevel ?? LogEventLevel.Verbose,
144  50 * 1024 * 1024, // 50MB max size
145  flushToDiskInterval: TimeSpan.FromSeconds(2),
146  rollingInterval: RollingInterval.Day,
147  rollOnFileSizeLimit: true);
148  });
149 
150  // configure bearer token validation
151  services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(jwtBearerOptions =>
152  {
153  // this line isn't actually run until the first request is made
154  // at that point tokenFactory will be populated
155  jwtBearerOptions.TokenValidationParameters = tokenFactory.ValidationParameters;
156  jwtBearerOptions.Events = new JwtBearerEvents
157  {
158  // Application is our composition root so this monstrosity of a line is okay
159  // At least, that's what I tell myself to sleep at night
160  OnTokenValidated = ctx => ctx
161  .HttpContext
162  .RequestServices
163  .GetRequiredService<IClaimsInjector>()
164  .InjectClaimsIntoContext(
165  ctx,
166  ctx.HttpContext.RequestAborted)
167  };
168  });
169 
170  // fucking prevents converting 'sub' to M$ bs
171  // can't be done in the above lambda, that's too late
172  JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
173 
174  // add mvc, configure the json serializer settings
175  services
176  .AddMvc(options =>
177  {
178  options.EnableEndpointRouting = false;
179  })
180  .AddNewtonsoftJson(options =>
181  {
182  options.AllowInputFormatterExceptionMessages = true;
183  options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
184  options.SerializerSettings.CheckAdditionalContent = true;
185  options.SerializerSettings.MissingMemberHandling = MissingMemberHandling.Error;
186  options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
187  options.SerializerSettings.Converters = new[] { new VersionConverter() };
188  });
189 
190  if (hostingEnvironment.IsDevelopment())
191  {
192  static string GetDocumentationFilePath(string assemblyLocation) => IOManager.ConcatPath(IOManager.GetDirectoryName(assemblyLocation), String.Concat(IOManager.GetFileNameWithoutExtension(assemblyLocation), ".xml"));
193  var assemblyDocumentationPath = GetDocumentationFilePath(typeof(Application).Assembly.Location);
194  var apiDocumentationPath = GetDocumentationFilePath(typeof(ApiHeaders).Assembly.Location);
195  services.AddSwaggerGen(genOptions => SwaggerConfiguration.Configure(genOptions, assemblyDocumentationPath, apiDocumentationPath));
196  services.AddSwaggerGenNewtonsoftSupport();
197  }
198 
199  // enable browser detection
200  services.AddDetectionCore().AddBrowser();
201 
202  // CORS conditionally enabled later
203  services.AddCors();
204 
205  void AddTypedContext<TContext>() where TContext : DatabaseContext
206  {
207  services.AddDbContext<TContext>(builder =>
208  {
209  if (hostingEnvironment.IsDevelopment())
210  builder.EnableSensitiveDataLogging();
211  });
212  services.AddScoped<IDatabaseContext>(x => x.GetRequiredService<TContext>());
213  }
214 
215  // add the correct database context type
216  var dbType = postSetupServices.DatabaseConfiguration.DatabaseType;
217  switch (dbType)
218  {
219  case DatabaseType.MySql:
220  case DatabaseType.MariaDB:
221  AddTypedContext<MySqlDatabaseContext>();
222  break;
223  case DatabaseType.SqlServer:
224  AddTypedContext<SqlServerDatabaseContext>();
225  break;
226  case DatabaseType.Sqlite:
227  AddTypedContext<SqliteDatabaseContext>();
228  break;
229  case DatabaseType.PostgresSql:
230  AddTypedContext<PostgresSqlDatabaseContext>();
231  break;
232  default:
233  throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Invalid {0}: {1}!", nameof(DatabaseType), dbType));
234  }
235 
236  // configure other database services
237  services.AddSingleton<IDatabaseContextFactory, DatabaseContextFactory>();
238  services.AddSingleton<IDatabaseSeeder, DatabaseSeeder>();
239 
240  // configure security services
242  services.AddScoped<IClaimsInjector, ClaimsInjector>();
243  services.AddSingleton<IIdentityCache, IdentityCache>();
244  services.AddSingleton<ICryptographySuite, CryptographySuite>();
245  services.AddSingleton<ITokenFactory, TokenFactory>();
246  services.AddSingleton<IPasswordHasher<Models.User>, PasswordHasher<Models.User>>();
247 
248  // configure platform specific services
249  if (postSetupServices.PlatformIdentifier.IsWindows)
250  {
251  if (postSetupServices.GeneralConfiguration.UseBasicWatchdogOnWindows)
252  services.AddSingleton<IWatchdogFactory, WatchdogFactory>();
253  else
254  services.AddSingleton<IWatchdogFactory, WindowsWatchdogFactory>();
255 
256  services.AddSingleton<ISystemIdentityFactory, WindowsSystemIdentityFactory>();
257  services.AddSingleton<ISymlinkFactory, WindowsSymlinkFactory>();
258  services.AddSingleton<IByondInstaller, WindowsByondInstaller>();
259  services.AddSingleton<IPostWriteHandler, WindowsPostWriteHandler>();
260  services.AddSingleton<IProcessFeatures, WindowsProcessFeatures>();
261 
262  services.AddSingleton<WindowsNetworkPromptReaper>();
263  services.AddSingleton<INetworkPromptReaper>(x => x.GetRequiredService<WindowsNetworkPromptReaper>());
264  services.AddSingleton<IHostedService>(x => x.GetRequiredService<WindowsNetworkPromptReaper>());
265  }
266  else
267  {
268  services.AddSingleton<IWatchdogFactory, WatchdogFactory>();
269  services.AddSingleton<ISystemIdentityFactory, PosixSystemIdentityFactory>();
270  services.AddSingleton<ISymlinkFactory, PosixSymlinkFactory>();
271  services.AddSingleton<IByondInstaller, PosixByondInstaller>();
272  services.AddSingleton<IPostWriteHandler, PosixPostWriteHandler>();
273  services.AddSingleton<IProcessFeatures, PosixProcessFeatures>();
274  services.AddSingleton<INetworkPromptReaper, PosixNetworkPromptReaper>();
275  }
276 
277  // configure misc services
278  services.AddSingleton<ISynchronousIOManager, SynchronousIOManager>();
279  services.AddSingleton<IGitHubClientFactory, GitHubClientFactory>();
280  services.AddSingleton<IProcessExecutor, ProcessExecutor>();
281  services.AddSingleton<IServerPortProvider, ServerPortProivder>();
282  services.AddSingleton<ITopicClient, TopicClient>();
283  services.AddSingleton(new SocketParameters
284  {
285  ReceiveTimeout = TimeSpan.FromMilliseconds(postSetupServices.GeneralConfiguration.ByondTopicTimeout),
286  SendTimeout = TimeSpan.FromMilliseconds(postSetupServices.GeneralConfiguration.ByondTopicTimeout),
287  ConnectTimeout = TimeSpan.FromMilliseconds(postSetupServices.GeneralConfiguration.ByondTopicTimeout),
288  DisconnectTimeout = TimeSpan.FromMilliseconds(postSetupServices.GeneralConfiguration.ByondTopicTimeout)
289  });
290 
291  // configure component services
292  services.AddSingleton<ILibGit2RepositoryFactory, LibGit2RepositoryFactory>();
293  services.AddSingleton<ILibGit2Commands, LibGit2Commands>();
294  services.AddSingleton<IProviderFactory, ProviderFactory>();
295  services.AddSingleton<IChatManagerFactory, ChatManagerFactory>();
296  services.AddSingleton<IInstanceFactory, InstanceFactory>();
297 
298  // configure root services
299  services.AddSingleton<IJobManager, JobManager>();
300 
301  services.AddSingleton<InstanceManager>();
302  services.AddSingleton<IBridgeDispatcher>(x => x.GetRequiredService<InstanceManager>());
303  services.AddSingleton<IInstanceManager>(x => x.GetRequiredService<InstanceManager>());
304  }
305 
307  protected override void ConfigureHostedService(IServiceCollection services)
308  => services.AddSingleton<IHostedService>(x => x.GetRequiredService<InstanceManager>());
309 
320  public void Configure(
321  IApplicationBuilder applicationBuilder,
322  IServerControl serverControl,
323  ITokenFactory tokenFactory,
324  IInstanceManager instanceManager,
325  IOptions<ControlPanelConfiguration> controlPanelConfigurationOptions,
326  IOptions<GeneralConfiguration> generalConfigurationOptions,
327  ILogger<Application> logger)
328  {
329  if (applicationBuilder == null)
330  throw new ArgumentNullException(nameof(applicationBuilder));
331  if (serverControl == null)
332  throw new ArgumentNullException(nameof(serverControl));
333 
334  this.tokenFactory = tokenFactory ?? throw new ArgumentNullException(nameof(tokenFactory));
335 
336  var controlPanelConfiguration = controlPanelConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(controlPanelConfigurationOptions));
337  var generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
338 
339  if (logger == null)
340  throw new ArgumentNullException(nameof(logger));
341 
342  logger.LogDebug("Content Root: {0}", hostingEnvironment.ContentRootPath);
343  logger.LogTrace("Web Root: {0}", hostingEnvironment.WebRootPath);
344 
345  if (generalConfiguration.MinimumPasswordLength > Limits.MaximumStringLength)
346  {
347  logger.LogCritical("Configured minimum password length ({0}) is greater than the maximum database string length ({1})!");
348  serverControl.Die(new InvalidOperationException("Minimum password length greater than database limit!"));
349  return;
350  }
351 
352  // attempt to restart the server if the configuration changes
353  if (serverControl.WatchdogPresent)
354  ChangeToken.OnChange(Configuration.GetReloadToken, () => serverControl.Restart());
355 
356  // setup the HTTP request pipeline
357  // Final point where we wrap exceptions in a 500 (ErrorMessage) response
358  applicationBuilder.UseServerErrorHandling();
359 
360  applicationBuilder.UseRequestCounting();
361 
362  // 503 requests made while the application is starting
363  applicationBuilder.UseAsyncInitialization(async (cancellationToken) =>
364  {
365  var tcs = new TaskCompletionSource<object>();
366  using (cancellationToken.Register(() => tcs.SetCanceled()))
367  await Task.WhenAny(tcs.Task, instanceManager.Ready).ConfigureAwait(false);
368  });
369 
370  // suppress OperationCancelledExceptions, they are just aborted HTTP requests
371  applicationBuilder.UseCancelledRequestSuppression();
372 
373  if (hostingEnvironment.IsDevelopment())
374  {
375  applicationBuilder.UseSwagger();
376  applicationBuilder.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "TGS API V4"));
377  logger.LogTrace("Swagger API generation enabled");
378  }
379 
380  // Set up CORS based on configuration if necessary
381  Action<CorsPolicyBuilder> corsBuilder = null;
382  if (controlPanelConfiguration.AllowAnyOrigin)
383  {
384  logger.LogTrace("Access-Control-Allow-Origin: *");
385  corsBuilder = builder => builder.AllowAnyOrigin();
386  }
387  else if (controlPanelConfiguration.AllowedOrigins?.Count > 0)
388  {
389  logger.LogTrace("Access-Control-Allow-Origin: ", String.Join(',', controlPanelConfiguration.AllowedOrigins));
390  corsBuilder = builder => builder.WithOrigins(controlPanelConfiguration.AllowedOrigins.ToArray());
391  }
392 
393  var originalBuilder = corsBuilder;
394  corsBuilder = builder =>
395  {
396  builder.AllowAnyHeader().AllowAnyMethod();
397  originalBuilder?.Invoke(builder);
398  };
399  applicationBuilder.UseCors(corsBuilder);
400 
401  // spa loading if necessary
402  if (controlPanelConfiguration.Enable)
403  {
404  logger.LogWarning("Web control panel enabled. This is a highly WIP feature!");
405  applicationBuilder.UseStaticFiles();
406  }
407  else
408  logger.LogDebug("Web control panel disabled!");
409 
410  // authenticate JWT tokens using our security pipeline if present, returns 401 if bad
411  applicationBuilder.UseAuthentication();
412 
413  // suppress and log database exceptions
414  applicationBuilder.UseDbConflictHandling();
415 
416  // majority of handling is done in the controllers
417  applicationBuilder.UseMvc();
418 
419  // 404 anything that gets this far
420  }
421  }
422 }
LogLevel MicrosoftLogLevel
The minimum Microsoft.Extensions.Logging.LogLevel to display in logs for Microsoft library sources ...
+Go to the documentation of this file.
1 using Byond.TopicSender;
2 using Cyberboss.AspNetCore.AsyncInitializer;
3 using Microsoft.AspNetCore.Authentication.JwtBearer;
4 using Microsoft.AspNetCore.Builder;
5 using Microsoft.AspNetCore.Cors.Infrastructure;
6 using Microsoft.AspNetCore.Hosting;
7 using Microsoft.AspNetCore.Identity;
8 using Microsoft.Extensions.Configuration;
9 using Microsoft.Extensions.DependencyInjection;
10 using Microsoft.Extensions.Hosting;
11 using Microsoft.Extensions.Logging;
12 using Microsoft.Extensions.Options;
13 using Microsoft.Extensions.Primitives;
14 using Newtonsoft.Json;
15 using Serilog;
16 using Serilog.Events;
17 using Serilog.Formatting.Display;
18 using System;
19 using System.Globalization;
20 using System.IdentityModel.Tokens.Jwt;
21 using System.Threading.Tasks;
22 using Tgstation.Server.Api;
35 using Tgstation.Server.Host.IO;
40 
41 namespace Tgstation.Server.Host.Core
42 {
46 #pragma warning disable CA1506
48  {
52  readonly IWebHostEnvironment hostingEnvironment;
53 
58 
64  public Application(
65  IConfiguration configuration,
66  IWebHostEnvironment hostingEnvironment)
67  : base(configuration)
68  {
69  this.hostingEnvironment = hostingEnvironment ?? throw new ArgumentNullException(nameof(hostingEnvironment));
70  }
71 
76  public static IServerFactory CreateDefaultServerFactory()
77  => new ServerFactory(
79  IOManager);
80 
86  public void ConfigureServices(IServiceCollection services, IPostSetupServices postSetupServices)
87  {
88  ConfigureServices(services);
89 
90  if (postSetupServices == null)
91  throw new ArgumentNullException(nameof(postSetupServices));
92 
93  // configure configuration
94  services.UseStandardConfig<UpdatesConfiguration>(Configuration);
95  services.UseStandardConfig<ControlPanelConfiguration>(Configuration);
96 
97  // enable options which give us config reloading
98  services.AddOptions();
99 
100  static LogEventLevel? ConvertSeriLogLevel(LogLevel logLevel) =>
101  logLevel switch
102  {
103  LogLevel.Critical => LogEventLevel.Fatal,
104  LogLevel.Debug => LogEventLevel.Debug,
105  LogLevel.Error => LogEventLevel.Error,
106  LogLevel.Information => LogEventLevel.Information,
107  LogLevel.Trace => LogEventLevel.Verbose,
108  LogLevel.Warning => LogEventLevel.Warning,
109  LogLevel.None => null,
110  _ => throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Invalid log level {0}", logLevel)),
111  };
112 
113  var microsoftEventLevel = ConvertSeriLogLevel(postSetupServices.FileLoggingConfiguration.MicrosoftLogLevel);
114  services.SetupLogging(
115  config =>
116  {
117  if (microsoftEventLevel.HasValue)
118  config.MinimumLevel.Override("Microsoft", microsoftEventLevel.Value);
119  },
120  sinkConfig =>
121  {
122  if (postSetupServices.FileLoggingConfiguration.Disable)
123  return;
124 
125  // common app data is C:/ProgramData on windows, else /usr/share
126  var logPath = !String.IsNullOrEmpty(postSetupServices.FileLoggingConfiguration.Directory)
127  ? postSetupServices.FileLoggingConfiguration.Directory
128  : IOManager.ConcatPath(
129  Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
131  "Logs");
132 
133  var logEventLevel = ConvertSeriLogLevel(postSetupServices.FileLoggingConfiguration.LogLevel);
134 
135  var formatter = new MessageTemplateTextFormatter(
136  "{Timestamp:o} {RequestId,13} [{Level:u3}] {SourceContext:l}: {Message} ({EventId:x8}){NewLine}{Exception}",
137  null);
138 
139  logPath = IOManager.ConcatPath(logPath, "tgs-{Date}.log");
140  var rollingFileConfig = sinkConfig.File(
141  formatter,
142  logPath,
143  logEventLevel ?? LogEventLevel.Verbose,
144  50 * 1024 * 1024, // 50MB max size
145  flushToDiskInterval: TimeSpan.FromSeconds(2),
146  rollingInterval: RollingInterval.Day,
147  rollOnFileSizeLimit: true);
148  });
149 
150  // configure bearer token validation
151  services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(jwtBearerOptions =>
152  {
153  // this line isn't actually run until the first request is made
154  // at that point tokenFactory will be populated
155  jwtBearerOptions.TokenValidationParameters = tokenFactory.ValidationParameters;
156  jwtBearerOptions.Events = new JwtBearerEvents
157  {
158  // Application is our composition root so this monstrosity of a line is okay
159  // At least, that's what I tell myself to sleep at night
160  OnTokenValidated = ctx => ctx
161  .HttpContext
162  .RequestServices
163  .GetRequiredService<IClaimsInjector>()
164  .InjectClaimsIntoContext(
165  ctx,
166  ctx.HttpContext.RequestAborted)
167  };
168  });
169 
170  // fucking prevents converting 'sub' to M$ bs
171  // can't be done in the above lambda, that's too late
172  JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
173 
174  // add mvc, configure the json serializer settings
175  services
176  .AddMvc(options =>
177  {
178  options.EnableEndpointRouting = false;
179  })
180  .AddNewtonsoftJson(options =>
181  {
182  options.AllowInputFormatterExceptionMessages = true;
183  options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
184  options.SerializerSettings.CheckAdditionalContent = true;
185  options.SerializerSettings.MissingMemberHandling = MissingMemberHandling.Error;
186  options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
187  options.SerializerSettings.Converters = new[] { new VersionConverter() };
188  });
189 
190  if (hostingEnvironment.IsDevelopment())
191  {
192  static string GetDocumentationFilePath(string assemblyLocation) => IOManager.ConcatPath(IOManager.GetDirectoryName(assemblyLocation), String.Concat(IOManager.GetFileNameWithoutExtension(assemblyLocation), ".xml"));
193  var assemblyDocumentationPath = GetDocumentationFilePath(typeof(Application).Assembly.Location);
194  var apiDocumentationPath = GetDocumentationFilePath(typeof(ApiHeaders).Assembly.Location);
195  services.AddSwaggerGen(genOptions => SwaggerConfiguration.Configure(genOptions, assemblyDocumentationPath, apiDocumentationPath));
196  services.AddSwaggerGenNewtonsoftSupport();
197  }
198 
199  // enable browser detection
200  services.AddDetectionCore().AddBrowser();
201 
202  // CORS conditionally enabled later
203  services.AddCors();
204 
205  void AddTypedContext<TContext>() where TContext : DatabaseContext
206  {
207  services.AddDbContext<TContext>(builder =>
208  {
209  if (hostingEnvironment.IsDevelopment())
210  builder.EnableSensitiveDataLogging();
211  });
212  services.AddScoped<IDatabaseContext>(x => x.GetRequiredService<TContext>());
213  }
214 
215  // add the correct database context type
216  var dbType = postSetupServices.DatabaseConfiguration.DatabaseType;
217  switch (dbType)
218  {
219  case DatabaseType.MySql:
220  case DatabaseType.MariaDB:
221  AddTypedContext<MySqlDatabaseContext>();
222  break;
223  case DatabaseType.SqlServer:
224  AddTypedContext<SqlServerDatabaseContext>();
225  break;
226  case DatabaseType.Sqlite:
227  AddTypedContext<SqliteDatabaseContext>();
228  break;
229  case DatabaseType.PostgresSql:
230  AddTypedContext<PostgresSqlDatabaseContext>();
231  break;
232  default:
233  throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Invalid {0}: {1}!", nameof(DatabaseType), dbType));
234  }
235 
236  // configure other database services
237  services.AddSingleton<IDatabaseContextFactory, DatabaseContextFactory>();
238  services.AddSingleton<IDatabaseSeeder, DatabaseSeeder>();
239 
240  // configure security services
242  services.AddScoped<IClaimsInjector, ClaimsInjector>();
243  services.AddSingleton<IIdentityCache, IdentityCache>();
244  services.AddSingleton<ICryptographySuite, CryptographySuite>();
245  services.AddSingleton<ITokenFactory, TokenFactory>();
246  services.AddSingleton<IPasswordHasher<Models.User>, PasswordHasher<Models.User>>();
247 
248  // configure platform specific services
249  if (postSetupServices.PlatformIdentifier.IsWindows)
250  {
251  if (postSetupServices.GeneralConfiguration.UseBasicWatchdogOnWindows)
252  services.AddSingleton<IWatchdogFactory, WatchdogFactory>();
253  else
254  services.AddSingleton<IWatchdogFactory, WindowsWatchdogFactory>();
255 
256  services.AddSingleton<ISystemIdentityFactory, WindowsSystemIdentityFactory>();
257  services.AddSingleton<ISymlinkFactory, WindowsSymlinkFactory>();
258  services.AddSingleton<IByondInstaller, WindowsByondInstaller>();
259  services.AddSingleton<IPostWriteHandler, WindowsPostWriteHandler>();
260  services.AddSingleton<IProcessFeatures, WindowsProcessFeatures>();
261 
262  services.AddSingleton<WindowsNetworkPromptReaper>();
263  services.AddSingleton<INetworkPromptReaper>(x => x.GetRequiredService<WindowsNetworkPromptReaper>());
264  services.AddSingleton<IHostedService>(x => x.GetRequiredService<WindowsNetworkPromptReaper>());
265  }
266  else
267  {
268  services.AddSingleton<IWatchdogFactory, WatchdogFactory>();
269  services.AddSingleton<ISystemIdentityFactory, PosixSystemIdentityFactory>();
270  services.AddSingleton<ISymlinkFactory, PosixSymlinkFactory>();
271  services.AddSingleton<IByondInstaller, PosixByondInstaller>();
272  services.AddSingleton<IPostWriteHandler, PosixPostWriteHandler>();
273  services.AddSingleton<IProcessFeatures, PosixProcessFeatures>();
274  services.AddSingleton<INetworkPromptReaper, PosixNetworkPromptReaper>();
275  }
276 
277  // configure misc services
278  services.AddSingleton<ISynchronousIOManager, SynchronousIOManager>();
279  services.AddSingleton<IGitHubClientFactory, GitHubClientFactory>();
280  services.AddSingleton<IProcessExecutor, ProcessExecutor>();
281  services.AddSingleton<IServerPortProvider, ServerPortProivder>();
282  services.AddSingleton<ITopicClient, TopicClient>();
283  services.AddSingleton(new SocketParameters
284  {
285  ReceiveTimeout = TimeSpan.FromMilliseconds(postSetupServices.GeneralConfiguration.ByondTopicTimeout),
286  SendTimeout = TimeSpan.FromMilliseconds(postSetupServices.GeneralConfiguration.ByondTopicTimeout),
287  ConnectTimeout = TimeSpan.FromMilliseconds(postSetupServices.GeneralConfiguration.ByondTopicTimeout),
288  DisconnectTimeout = TimeSpan.FromMilliseconds(postSetupServices.GeneralConfiguration.ByondTopicTimeout)
289  });
290 
291  // configure component services
292  services.AddSingleton<ILibGit2RepositoryFactory, LibGit2RepositoryFactory>();
293  services.AddSingleton<ILibGit2Commands, LibGit2Commands>();
294  services.AddSingleton<IProviderFactory, ProviderFactory>();
295  services.AddSingleton<IChatManagerFactory, ChatManagerFactory>();
296  services.AddSingleton<IInstanceFactory, InstanceFactory>();
297 
298  // configure root services
299  services.AddSingleton<IJobManager, JobManager>();
300 
301  services.AddSingleton<InstanceManager>();
302  services.AddSingleton<IBridgeDispatcher>(x => x.GetRequiredService<InstanceManager>());
303  services.AddSingleton<IInstanceManager>(x => x.GetRequiredService<InstanceManager>());
304  }
305 
307  protected override void ConfigureHostedService(IServiceCollection services)
308  => services.AddSingleton<IHostedService>(x => x.GetRequiredService<InstanceManager>());
309 
320  public void Configure(
321  IApplicationBuilder applicationBuilder,
322  IServerControl serverControl,
323  ITokenFactory tokenFactory,
324  IInstanceManager instanceManager,
325  IOptions<ControlPanelConfiguration> controlPanelConfigurationOptions,
326  IOptions<GeneralConfiguration> generalConfigurationOptions,
327  ILogger<Application> logger)
328  {
329  if (applicationBuilder == null)
330  throw new ArgumentNullException(nameof(applicationBuilder));
331  if (serverControl == null)
332  throw new ArgumentNullException(nameof(serverControl));
333 
334  this.tokenFactory = tokenFactory ?? throw new ArgumentNullException(nameof(tokenFactory));
335 
336  var controlPanelConfiguration = controlPanelConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(controlPanelConfigurationOptions));
337  var generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
338 
339  if (logger == null)
340  throw new ArgumentNullException(nameof(logger));
341 
342  logger.LogDebug("Content Root: {0}", hostingEnvironment.ContentRootPath);
343  logger.LogTrace("Web Root: {0}", hostingEnvironment.WebRootPath);
344 
345  if (generalConfiguration.MinimumPasswordLength > Limits.MaximumStringLength)
346  {
347  logger.LogCritical("Configured minimum password length ({0}) is greater than the maximum database string length ({1})!");
348  serverControl.Die(new InvalidOperationException("Minimum password length greater than database limit!"));
349  return;
350  }
351 
352  // attempt to restart the server if the configuration changes
353  if (serverControl.WatchdogPresent)
354  ChangeToken.OnChange(Configuration.GetReloadToken, () => serverControl.Restart());
355 
356  // setup the HTTP request pipeline
357  // Final point where we wrap exceptions in a 500 (ErrorMessage) response
358  applicationBuilder.UseServerErrorHandling();
359 
360  // 503 requests made while the application is starting
361  applicationBuilder.UseAsyncInitialization(async (cancellationToken) =>
362  {
363  var tcs = new TaskCompletionSource<object>();
364  using (cancellationToken.Register(() => tcs.SetCanceled()))
365  await Task.WhenAny(tcs.Task, instanceManager.Ready).ConfigureAwait(false);
366  });
367 
368  // suppress OperationCancelledExceptions, they are just aborted HTTP requests
369  applicationBuilder.UseCancelledRequestSuppression();
370 
371  if (hostingEnvironment.IsDevelopment())
372  {
373  applicationBuilder.UseSwagger();
374  applicationBuilder.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "TGS API V4"));
375  logger.LogTrace("Swagger API generation enabled");
376  }
377 
378  // Set up CORS based on configuration if necessary
379  Action<CorsPolicyBuilder> corsBuilder = null;
380  if (controlPanelConfiguration.AllowAnyOrigin)
381  {
382  logger.LogTrace("Access-Control-Allow-Origin: *");
383  corsBuilder = builder => builder.AllowAnyOrigin();
384  }
385  else if (controlPanelConfiguration.AllowedOrigins?.Count > 0)
386  {
387  logger.LogTrace("Access-Control-Allow-Origin: ", String.Join(',', controlPanelConfiguration.AllowedOrigins));
388  corsBuilder = builder => builder.WithOrigins(controlPanelConfiguration.AllowedOrigins.ToArray());
389  }
390 
391  var originalBuilder = corsBuilder;
392  corsBuilder = builder =>
393  {
394  builder.AllowAnyHeader().AllowAnyMethod();
395  originalBuilder?.Invoke(builder);
396  };
397  applicationBuilder.UseCors(corsBuilder);
398 
399  // spa loading if necessary
400  if (controlPanelConfiguration.Enable)
401  {
402  logger.LogWarning("Web control panel enabled. This is a highly WIP feature!");
403  applicationBuilder.UseStaticFiles();
404  }
405  else
406  logger.LogDebug("Web control panel disabled!");
407 
408  // authenticate JWT tokens using our security pipeline if present, returns 401 if bad
409  applicationBuilder.UseAuthentication();
410 
411  // suppress and log database exceptions
412  applicationBuilder.UseDbConflictHandling();
413 
414  // majority of handling is done in the controllers
415  applicationBuilder.UseMvc();
416 
417  // 404 anything that gets this far
418  }
419  }
420 }
LogLevel MicrosoftLogLevel
The minimum Microsoft.Extensions.Logging.LogLevel to display in logs for Microsoft library sources ...
diff --git a/_application_builder_extensions_8cs.html b/_application_builder_extensions_8cs.html index e4e3bde21d..26310b8fb6 100644 --- a/_application_builder_extensions_8cs.html +++ b/_application_builder_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_application_builder_extensions_8cs_source.html b/_application_builder_extensions_8cs_source.html index f2aa0e09b1..ad6339419f 100644 --- a/_application_builder_extensions_8cs_source.html +++ b/_application_builder_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -94,12 +94,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
ApplicationBuilderExtensions.cs
-Go to the documentation of this file.
1 using Microsoft.AspNetCore.Builder;
2 using Microsoft.AspNetCore.Http;
3 using Microsoft.AspNetCore.Mvc;
4 using Microsoft.EntityFrameworkCore;
5 using Microsoft.Extensions.DependencyInjection;
6 using Microsoft.Extensions.Logging;
7 using System;
8 using System.Globalization;
9 using System.Net;
11 
12 namespace Tgstation.Server.Host.Extensions
13 {
18  {
24  static ILogger GetLogger(HttpContext httpContext) => httpContext.RequestServices.GetRequiredService<ILoggerFactory>().CreateLogger(typeof(ApplicationBuilderExtensions));
25 
30  public static void UseDbConflictHandling(this IApplicationBuilder applicationBuilder)
31  {
32  if (applicationBuilder == null)
33  throw new ArgumentNullException(nameof(applicationBuilder));
34  applicationBuilder.Use(async (context, next) =>
35  {
36  var logger = GetLogger(context);
37  try
38  {
39  await next().ConfigureAwait(false);
40  }
41  catch (DbUpdateException e)
42  {
43  logger.LogDebug("Database conflict: {0}", e.Message);
44  await new ConflictObjectResult(new ErrorMessage(ErrorCode.DatabaseIntegrityConflict)
45  {
46  AdditionalData = String.Format(CultureInfo.InvariantCulture, (e.InnerException ?? e).Message)
47  }).ExecuteResultAsync(new ActionContext
48  {
49  HttpContext = context
50  }).ConfigureAwait(false);
51  }
52  });
53  }
54 
59  public static void UseCancelledRequestSuppression(this IApplicationBuilder applicationBuilder)
60  {
61  if (applicationBuilder == null)
62  throw new ArgumentNullException(nameof(applicationBuilder));
63  applicationBuilder.Use(async (context, next) =>
64  {
65  var logger = GetLogger(context);
66  try
67  {
68  await next().ConfigureAwait(false);
69  }
70  catch (OperationCanceledException)
71  {
72  logger.LogDebug("Request cancelled!");
73  }
74  });
75  }
76 
81  public static void UseServerErrorHandling(this IApplicationBuilder applicationBuilder)
82  {
83  if (applicationBuilder == null)
84  throw new ArgumentNullException(nameof(applicationBuilder));
85  applicationBuilder.Use(async (context, next) =>
86  {
87  var logger = GetLogger(context);
88  try
89  {
90  await next().ConfigureAwait(false);
91  }
92  catch (Exception e)
93  {
94  logger.LogError("Failed request: {0}", e);
95  await new ObjectResult(
96  new ErrorMessage(ErrorCode.InternalServerError)
97  {
98  AdditionalData = e.ToString()
99  })
100  {
101  StatusCode = (int)HttpStatusCode.InternalServerError
102  }
103  .ExecuteResultAsync(new ActionContext
104  {
105  HttpContext = context
106  }).ConfigureAwait(false);
107  }
108  });
109  }
110 
115  public static void UseRequestCounting(this IApplicationBuilder applicationBuilder)
116  {
117  if (applicationBuilder == null)
118  throw new ArgumentNullException(nameof(applicationBuilder));
119 
120  ulong requestCounter = 0;
121 
122  applicationBuilder.Use(async (context, next) =>
123  {
124  var logger = GetLogger(context);
125  var requestNumber = ++requestCounter;
126  logger.LogTrace("Starting request #{0}...", requestNumber);
127  try
128  {
129  await next().ConfigureAwait(false);
130  }
131  finally
132  {
133  logger.LogTrace("Finished request #{0}", requestNumber);
134  }
135  });
136  }
137  }
138 }
static void UseDbConflictHandling(this IApplicationBuilder applicationBuilder)
Return a ConflictObjectResult for DbUpdateExceptions
+Go to the documentation of this file.
1 using Microsoft.AspNetCore.Builder;
2 using Microsoft.AspNetCore.Http;
3 using Microsoft.AspNetCore.Mvc;
4 using Microsoft.EntityFrameworkCore;
5 using Microsoft.Extensions.DependencyInjection;
6 using Microsoft.Extensions.Logging;
7 using System;
8 using System.Globalization;
9 using System.Net;
11 
12 namespace Tgstation.Server.Host.Extensions
13 {
18  {
24  static ILogger GetLogger(HttpContext httpContext) => httpContext.RequestServices.GetRequiredService<ILoggerFactory>().CreateLogger(typeof(ApplicationBuilderExtensions));
25 
30  public static void UseDbConflictHandling(this IApplicationBuilder applicationBuilder)
31  {
32  if (applicationBuilder == null)
33  throw new ArgumentNullException(nameof(applicationBuilder));
34  applicationBuilder.Use(async (context, next) =>
35  {
36  var logger = GetLogger(context);
37  try
38  {
39  await next().ConfigureAwait(false);
40  }
41  catch (DbUpdateException e)
42  {
43  logger.LogDebug("Database conflict: {0}", e.Message);
44  await new ConflictObjectResult(new ErrorMessage(ErrorCode.DatabaseIntegrityConflict)
45  {
46  AdditionalData = String.Format(CultureInfo.InvariantCulture, (e.InnerException ?? e).Message)
47  }).ExecuteResultAsync(new ActionContext
48  {
49  HttpContext = context
50  }).ConfigureAwait(false);
51  }
52  });
53  }
54 
59  public static void UseCancelledRequestSuppression(this IApplicationBuilder applicationBuilder)
60  {
61  if (applicationBuilder == null)
62  throw new ArgumentNullException(nameof(applicationBuilder));
63  applicationBuilder.Use(async (context, next) =>
64  {
65  var logger = GetLogger(context);
66  try
67  {
68  await next().ConfigureAwait(false);
69  }
70  catch (OperationCanceledException)
71  {
72  logger.LogDebug("Request cancelled!");
73  }
74  });
75  }
76 
81  public static void UseServerErrorHandling(this IApplicationBuilder applicationBuilder)
82  {
83  if (applicationBuilder == null)
84  throw new ArgumentNullException(nameof(applicationBuilder));
85  applicationBuilder.Use(async (context, next) =>
86  {
87  var logger = GetLogger(context);
88  try
89  {
90  await next().ConfigureAwait(false);
91  }
92  catch (Exception e)
93  {
94  logger.LogError("Failed request: {0}", e);
95  await new ObjectResult(
96  new ErrorMessage(ErrorCode.InternalServerError)
97  {
98  AdditionalData = e.ToString()
99  })
100  {
101  StatusCode = (int)HttpStatusCode.InternalServerError
102  }
103  .ExecuteResultAsync(new ActionContext
104  {
105  HttpContext = context
106  }).ConfigureAwait(false);
107  }
108  });
109  }
110  }
111 }
static void UseDbConflictHandling(this IApplicationBuilder applicationBuilder)
Return a ConflictObjectResult for DbUpdateExceptions
ErrorCode
Types of ErrorMessages that the API may return.
Definition: ErrorCode.cs:10
-
static void UseRequestCounting(this IApplicationBuilder applicationBuilder)
Add middleware for logging the request number.
static void UseServerErrorHandling(this IApplicationBuilder applicationBuilder)
Suppress all in flight exceptions with error 500.
static void UseCancelledRequestSuppression(this IApplicationBuilder applicationBuilder)
Suppress TaskCanceledException warnings when a user aborts a request
diff --git a/_architecture_8dox.html b/_architecture_8dox.html index 256b91705e..d42fdab765 100644 --- a/_architecture_8dox.html +++ b/_architecture_8dox.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_assembly_information_provider_8cs.html b/_assembly_information_provider_8cs.html index f9474f6fb9..02cc09ecbb 100644 --- a/_assembly_information_provider_8cs.html +++ b/_assembly_information_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_assembly_information_provider_8cs_source.html b/_assembly_information_provider_8cs_source.html index 2ba2113897..3334061ca9 100644 --- a/_assembly_information_provider_8cs_source.html +++ b/_assembly_information_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_async_delayer_8cs.html b/_async_delayer_8cs.html index 0d7e5cfce3..d4b8aade2e 100644 --- a/_async_delayer_8cs.html +++ b/_async_delayer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_async_delayer_8cs_source.html b/_async_delayer_8cs_source.html index e2e146cf2b..42c6f8c1a8 100644 --- a/_async_delayer_8cs_source.html +++ b/_async_delayer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_authentication_context_8cs.html b/_authentication_context_8cs.html index 0a755a462d..0e9d7ba75f 100644 --- a/_authentication_context_8cs.html +++ b/_authentication_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_authentication_context_8cs_source.html b/_authentication_context_8cs_source.html index 0d790d8a19..0c2ae36147 100644 --- a/_authentication_context_8cs_source.html +++ b/_authentication_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_authentication_context_factory_8cs.html b/_authentication_context_factory_8cs.html index d896259500..a474f86fd5 100644 --- a/_authentication_context_factory_8cs.html +++ b/_authentication_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_authentication_context_factory_8cs_source.html b/_authentication_context_factory_8cs_source.html index 89523d0685..8d91470b95 100644 --- a/_authentication_context_factory_8cs_source.html +++ b/_authentication_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_basic_watchdog_8cs.html b/_basic_watchdog_8cs.html index 9bf7c14e08..8c89ea6cbc 100644 --- a/_basic_watchdog_8cs.html +++ b/_basic_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_basic_watchdog_8cs_source.html b/_basic_watchdog_8cs_source.html index ef937af8de..93e620a426 100644 --- a/_basic_watchdog_8cs_source.html +++ b/_basic_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
MonitorAction
The action for the monitor loop to take when control is returned to it
Definition: MonitorAction.cs:6
override Task ResetRebootState(CancellationToken cancellationToken)
Cancels pending graceful actions
-
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:150
+
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:153
The (absolute) state of the ExperimentalWatchdog
Definition: MonitorState.cs:9
diff --git a/_bool_converter_8cs.html b/_bool_converter_8cs.html index 7d3b780af0..d6b6f1db4e 100644 --- a/_bool_converter_8cs.html +++ b/_bool_converter_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_bool_converter_8cs_source.html b/_bool_converter_8cs_source.html index fee55a80bd..7ffdea8aa9 100644 --- a/_bool_converter_8cs_source.html +++ b/_bool_converter_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_bridge_command_type_8cs.html b/_bridge_command_type_8cs.html index 76bcb07eee..ae551f28f6 100644 --- a/_bridge_command_type_8cs.html +++ b/_bridge_command_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_bridge_command_type_8cs_source.html b/_bridge_command_type_8cs_source.html index a09f1f2a53..7cd2858ee7 100644 --- a/_bridge_command_type_8cs_source.html +++ b/_bridge_command_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_bridge_controller_8cs.html b/_bridge_controller_8cs.html index 7a4af319a4..a2dcd02324 100644 --- a/_bridge_controller_8cs.html +++ b/_bridge_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_bridge_controller_8cs_source.html b/_bridge_controller_8cs_source.html index 4dab0f9b1e..eda7f3f6e8 100644 --- a/_bridge_controller_8cs_source.html +++ b/_bridge_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_bridge_parameters_8cs.html b/_bridge_parameters_8cs.html index bb55731aeb..6af8f8a245 100644 --- a/_bridge_parameters_8cs.html +++ b/_bridge_parameters_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_bridge_parameters_8cs_source.html b/_bridge_parameters_8cs_source.html index af3ae639cd..ee56125aae 100644 --- a/_bridge_parameters_8cs_source.html +++ b/_bridge_parameters_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_bridge_registration_8cs.html b/_bridge_registration_8cs.html index fe45b46740..e507eda196 100644 --- a/_bridge_registration_8cs.html +++ b/_bridge_registration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_bridge_registration_8cs_source.html b/_bridge_registration_8cs_source.html index 46ba5e61ea..a8276a0655 100644 --- a/_bridge_registration_8cs_source.html +++ b/_bridge_registration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_bridge_response_8cs.html b/_bridge_response_8cs.html index 9fbb059820..54df6c4106 100644 --- a/_bridge_response_8cs.html +++ b/_bridge_response_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_bridge_response_8cs_source.html b/_bridge_response_8cs_source.html index 943b15314c..f131d971bd 100644 --- a/_bridge_response_8cs_source.html +++ b/_bridge_response_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_8cs.html b/_byond_8cs.html index 1994289ceb..d0da76dd51 100644 --- a/_byond_8cs.html +++ b/_byond_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_8cs_source.html b/_byond_8cs_source.html index 9d5e3fb6b0..542b431887 100644 --- a/_byond_8cs_source.html +++ b/_byond_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_client_8cs.html b/_byond_client_8cs.html index fe44c6c228..d03e368730 100644 --- a/_byond_client_8cs.html +++ b/_byond_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_client_8cs_source.html b/_byond_client_8cs_source.html index e5736510ca..e7f92f91e7 100644 --- a/_byond_client_8cs_source.html +++ b/_byond_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_command_8cs.html b/_byond_command_8cs.html index 1b61b381f1..0331433e8b 100644 --- a/_byond_command_8cs.html +++ b/_byond_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_command_8cs_source.html b/_byond_command_8cs_source.html index 504dda1c1e..5deeaf5242 100644 --- a/_byond_command_8cs_source.html +++ b/_byond_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_controller_8cs.html b/_byond_controller_8cs.html index c6bc9b7fac..04f237bc8e 100644 --- a/_byond_controller_8cs.html +++ b/_byond_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_controller_8cs_source.html b/_byond_controller_8cs_source.html index 1b9167dd75..6e85a16288 100644 --- a/_byond_controller_8cs_source.html +++ b/_byond_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_executable_lock_8cs.html b/_byond_executable_lock_8cs.html index 689f744a83..6e348544e0 100644 --- a/_byond_executable_lock_8cs.html +++ b/_byond_executable_lock_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_executable_lock_8cs_source.html b/_byond_executable_lock_8cs_source.html index fb6f48f52d..541327bb56 100644 --- a/_byond_executable_lock_8cs_source.html +++ b/_byond_executable_lock_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_installer_base_8cs.html b/_byond_installer_base_8cs.html index ed73b1d66d..6ae2b881d2 100644 --- a/_byond_installer_base_8cs.html +++ b/_byond_installer_base_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_installer_base_8cs_source.html b/_byond_installer_base_8cs_source.html index 5eaf60577f..870988e514 100644 --- a/_byond_installer_base_8cs_source.html +++ b/_byond_installer_base_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_manager_8cs.html b/_byond_manager_8cs.html index 2fc4138990..ddd98bbf5b 100644 --- a/_byond_manager_8cs.html +++ b/_byond_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_manager_8cs_source.html b/_byond_manager_8cs_source.html index eac97b5aa8..39cab14b5a 100644 --- a/_byond_manager_8cs_source.html +++ b/_byond_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_rights_8cs.html b/_byond_rights_8cs.html index 32a7679680..3cdc459d11 100644 --- a/_byond_rights_8cs.html +++ b/_byond_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_byond_rights_8cs_source.html b/_byond_rights_8cs_source.html index d5f79ca4f9..0f313c10c4 100644 --- a/_byond_rights_8cs_source.html +++ b/_byond_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_channel_mapping_8cs.html b/_channel_mapping_8cs.html index 59bfe9a2f5..f0c6288296 100644 --- a/_channel_mapping_8cs.html +++ b/_channel_mapping_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_channel_mapping_8cs_source.html b/_channel_mapping_8cs_source.html index 80a72f9fba..b45d6536bd 100644 --- a/_channel_mapping_8cs_source.html +++ b/_channel_mapping_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_channel_representation_8cs.html b/_channel_representation_8cs.html index c7aaeb083c..84a2d3d6c6 100644 --- a/_channel_representation_8cs.html +++ b/_channel_representation_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_channel_representation_8cs_source.html b/_channel_representation_8cs_source.html index 2e307d58c3..d0ea07684d 100644 --- a/_channel_representation_8cs_source.html +++ b/_channel_representation_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_bot_rights_8cs.html b/_chat_bot_rights_8cs.html index 94e68f7dd1..449ea6cb4f 100644 --- a/_chat_bot_rights_8cs.html +++ b/_chat_bot_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_bot_rights_8cs_source.html b/_chat_bot_rights_8cs_source.html index 80f9e45833..507b576167 100644 --- a/_chat_bot_rights_8cs_source.html +++ b/_chat_bot_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_bots_client_8cs.html b/_chat_bots_client_8cs.html index a3bda2a04c..5b447c0459 100644 --- a/_chat_bots_client_8cs.html +++ b/_chat_bots_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_bots_client_8cs_source.html b/_chat_bots_client_8cs_source.html index 0c1ef3dd77..7790ae3f6a 100644 --- a/_chat_bots_client_8cs_source.html +++ b/_chat_bots_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_channel_extensions_8cs.html b/_chat_channel_extensions_8cs.html index c8ae47663e..1bc3534bc3 100644 --- a/_chat_channel_extensions_8cs.html +++ b/_chat_channel_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_channel_extensions_8cs_source.html b/_chat_channel_extensions_8cs_source.html index 4ee820d12c..11f3c98c5c 100644 --- a/_chat_channel_extensions_8cs_source.html +++ b/_chat_channel_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_command_8cs.html b/_chat_command_8cs.html index ab6b6193fa..666ec70744 100644 --- a/_chat_command_8cs.html +++ b/_chat_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_command_8cs_source.html b/_chat_command_8cs_source.html index 666b88e89e..d28abf219f 100644 --- a/_chat_command_8cs_source.html +++ b/_chat_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_connection_string_builder_8cs.html b/_chat_connection_string_builder_8cs.html index 2a453e3b0a..fe1104b3cd 100644 --- a/_chat_connection_string_builder_8cs.html +++ b/_chat_connection_string_builder_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_connection_string_builder_8cs_source.html b/_chat_connection_string_builder_8cs_source.html index 8bcb5bc770..f88cf3fff8 100644 --- a/_chat_connection_string_builder_8cs_source.html +++ b/_chat_connection_string_builder_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_controller_8cs.html b/_chat_controller_8cs.html index 4a32dc8433..e3706b042b 100644 --- a/_chat_controller_8cs.html +++ b/_chat_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_controller_8cs_source.html b/_chat_controller_8cs_source.html index bba8856265..bdff564984 100644 --- a/_chat_controller_8cs_source.html +++ b/_chat_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_manager_8cs.html b/_chat_manager_8cs.html index 029811ae44..b03b464491 100644 --- a/_chat_manager_8cs.html +++ b/_chat_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_manager_8cs_source.html b/_chat_manager_8cs_source.html index ca4b1288d8..8308c65f55 100644 --- a/_chat_manager_8cs_source.html +++ b/_chat_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_manager_factory_8cs.html b/_chat_manager_factory_8cs.html index bce10dc310..b3591d1b24 100644 --- a/_chat_manager_factory_8cs.html +++ b/_chat_manager_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_manager_factory_8cs_source.html b/_chat_manager_factory_8cs_source.html index 103abf141e..ac92695067 100644 --- a/_chat_manager_factory_8cs_source.html +++ b/_chat_manager_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_message_8cs.html b/_chat_message_8cs.html index 19a3f0f2f8..872aaa561a 100644 --- a/_chat_message_8cs.html +++ b/_chat_message_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_message_8cs_source.html b/_chat_message_8cs_source.html index 80e24c97e8..c1f039e979 100644 --- a/_chat_message_8cs_source.html +++ b/_chat_message_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_provider_8cs.html b/_chat_provider_8cs.html index c7ae5c8597..059cea0b89 100644 --- a/_chat_provider_8cs.html +++ b/_chat_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_provider_8cs_source.html b/_chat_provider_8cs_source.html index 2301361c20..5cb40e5584 100644 --- a/_chat_provider_8cs_source.html +++ b/_chat_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_tracking_context_8cs.html b/_chat_tracking_context_8cs.html index f569f1b54b..1ea7e614bc 100644 --- a/_chat_tracking_context_8cs.html +++ b/_chat_tracking_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_tracking_context_8cs_source.html b/_chat_tracking_context_8cs_source.html index 8dcbcd2382..3cc6984d4f 100644 --- a/_chat_tracking_context_8cs_source.html +++ b/_chat_tracking_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_update_8cs.html b/_chat_update_8cs.html index dbd3d5e9d8..53214668c4 100644 --- a/_chat_update_8cs.html +++ b/_chat_update_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_update_8cs_source.html b/_chat_update_8cs_source.html index dd587ba1c2..1db32c91d8 100644 --- a/_chat_update_8cs_source.html +++ b/_chat_update_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_user_8cs.html b/_chat_user_8cs.html index f7cd3d4516..89152b1791 100644 --- a/_chat_user_8cs.html +++ b/_chat_user_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_chat_user_8cs_source.html b/_chat_user_8cs_source.html index 91ac2d84c2..ccc22b7ee2 100644 --- a/_chat_user_8cs_source.html +++ b/_chat_user_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_claims_injector_8cs.html b/_claims_injector_8cs.html index 5f77a587de..3ccd5cacd2 100644 --- a/_claims_injector_8cs.html +++ b/_claims_injector_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_claims_injector_8cs_source.html b/_claims_injector_8cs_source.html index 16bb915e42..bde2f2170e 100644 --- a/_claims_injector_8cs_source.html +++ b/_claims_injector_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_client_exception_8cs.html b/_client_exception_8cs.html index a16dd73351..39a087bca0 100644 --- a/_client_exception_8cs.html +++ b/_client_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_client_exception_8cs_source.html b/_client_exception_8cs_source.html index 5d92fb8980..d4e57ada67 100644 --- a/_client_exception_8cs_source.html +++ b/_client_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_combined_topic_response_8cs.html b/_combined_topic_response_8cs.html index a06ae181d1..849e731566 100644 --- a/_combined_topic_response_8cs.html +++ b/_combined_topic_response_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_combined_topic_response_8cs_source.html b/_combined_topic_response_8cs_source.html index 056c4b6ca6..6223a99e08 100644 --- a/_combined_topic_response_8cs_source.html +++ b/_combined_topic_response_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_command_factory_8cs.html b/_command_factory_8cs.html index d8e8f451e1..ff631ba856 100644 --- a/_command_factory_8cs.html +++ b/_command_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_command_factory_8cs_source.html b/_command_factory_8cs_source.html index fe5c6b0f31..a3371d0c15 100644 --- a/_command_factory_8cs_source.html +++ b/_command_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_components_2_session_2_dual_reattach_information_8cs.html b/_components_2_session_2_dual_reattach_information_8cs.html index 7b8e22d23d..68efaa0252 100644 --- a/_components_2_session_2_dual_reattach_information_8cs.html +++ b/_components_2_session_2_dual_reattach_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_components_2_session_2_dual_reattach_information_8cs_source.html b/_components_2_session_2_dual_reattach_information_8cs_source.html index 664cd47b9a..96c8c338f9 100644 --- a/_components_2_session_2_dual_reattach_information_8cs_source.html +++ b/_components_2_session_2_dual_reattach_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_components_2_session_2_reattach_information_8cs.html b/_components_2_session_2_reattach_information_8cs.html index 009163fe8f..1431ce236b 100644 --- a/_components_2_session_2_reattach_information_8cs.html +++ b/_components_2_session_2_reattach_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_components_2_session_2_reattach_information_8cs_source.html b/_components_2_session_2_reattach_information_8cs_source.html index f12ffd7bae..4e7cf84d8e 100644 --- a/_components_2_session_2_reattach_information_8cs_source.html +++ b/_components_2_session_2_reattach_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_components_2_watchdog_2_i_watchdog_8cs.html b/_components_2_watchdog_2_i_watchdog_8cs.html index 9302d9d260..39c25f4690 100644 --- a/_components_2_watchdog_2_i_watchdog_8cs.html +++ b/_components_2_watchdog_2_i_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_components_2_watchdog_2_i_watchdog_8cs_source.html b/_components_2_watchdog_2_i_watchdog_8cs_source.html index b0b4c407d6..60c6f402dc 100644 --- a/_components_2_watchdog_2_i_watchdog_8cs_source.html +++ b/_components_2_watchdog_2_i_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_components_2_watchdog_2_i_watchdog_factory_8cs.html b/_components_2_watchdog_2_i_watchdog_factory_8cs.html index 96c5608dd5..218dd0e58f 100644 --- a/_components_2_watchdog_2_i_watchdog_factory_8cs.html +++ b/_components_2_watchdog_2_i_watchdog_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_components_2_watchdog_2_i_watchdog_factory_8cs_source.html b/_components_2_watchdog_2_i_watchdog_factory_8cs_source.html index 2353eff9b8..4b22856e7f 100644 --- a/_components_2_watchdog_2_i_watchdog_factory_8cs_source.html +++ b/_components_2_watchdog_2_i_watchdog_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_components_2_watchdog_2_watchdog_factory_8cs.html b/_components_2_watchdog_2_watchdog_factory_8cs.html index 6f87e7469e..37079cbb61 100644 --- a/_components_2_watchdog_2_watchdog_factory_8cs.html +++ b/_components_2_watchdog_2_watchdog_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_components_2_watchdog_2_watchdog_factory_8cs_source.html b/_components_2_watchdog_2_watchdog_factory_8cs_source.html index de94bb825f..7453043dab 100644 --- a/_components_2_watchdog_2_watchdog_factory_8cs_source.html +++ b/_components_2_watchdog_2_watchdog_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_configuration_8cs.html b/_configuration_8cs.html index d049764894..1797927a3a 100644 --- a/_configuration_8cs.html +++ b/_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_configuration_8cs_source.html b/_configuration_8cs_source.html index 8af446cd7a..a3bafefc85 100644 --- a/_configuration_8cs_source.html +++ b/_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_configuration_client_8cs.html b/_configuration_client_8cs.html index 009459e37c..30d5080fb3 100644 --- a/_configuration_client_8cs.html +++ b/_configuration_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_configuration_client_8cs_source.html b/_configuration_client_8cs_source.html index 5944fb9ae1..42efc41472 100644 --- a/_configuration_client_8cs_source.html +++ b/_configuration_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_configuration_controller_8cs.html b/_configuration_controller_8cs.html index 904336076e..5161ec023b 100644 --- a/_configuration_controller_8cs.html +++ b/_configuration_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_configuration_controller_8cs_source.html b/_configuration_controller_8cs_source.html index 1c03a62aa3..526d335bf2 100644 --- a/_configuration_controller_8cs_source.html +++ b/_configuration_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_configuration_file_8cs.html b/_configuration_file_8cs.html index 8a974568e0..5f7006f14a 100644 --- a/_configuration_file_8cs.html +++ b/_configuration_file_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_configuration_file_8cs_source.html b/_configuration_file_8cs_source.html index d470540a1b..ebc3f94fe8 100644 --- a/_configuration_file_8cs_source.html +++ b/_configuration_file_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_configuration_rights_8cs.html b/_configuration_rights_8cs.html index 88c73f546c..6badb4953d 100644 --- a/_configuration_rights_8cs.html +++ b/_configuration_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_configuration_rights_8cs_source.html b/_configuration_rights_8cs_source.html index 0a021ad6e6..74c2426a44 100644 --- a/_configuration_rights_8cs_source.html +++ b/_configuration_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_configuration_type_8cs.html b/_configuration_type_8cs.html index 28088b3627..b9c2c3c758 100644 --- a/_configuration_type_8cs.html +++ b/_configuration_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_configuration_type_8cs_source.html b/_configuration_type_8cs_source.html index b39b6b23a6..7bf5871359 100644 --- a/_configuration_type_8cs_source.html +++ b/_configuration_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_conflict_exception_8cs.html b/_conflict_exception_8cs.html index 1463008b0c..db0a647ed2 100644 --- a/_conflict_exception_8cs.html +++ b/_conflict_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_conflict_exception_8cs_source.html b/_conflict_exception_8cs_source.html index 7dd324c89b..963762e120 100644 --- a/_conflict_exception_8cs_source.html +++ b/_conflict_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_console_2_program_8cs.html b/_console_2_program_8cs.html index ebd4acd9f5..c31f1e7d59 100644 --- a/_console_2_program_8cs.html +++ b/_console_2_program_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_console_2_program_8cs_source.html b/_console_2_program_8cs_source.html index 0542af964e..33695d17cc 100644 --- a/_console_2_program_8cs_source.html +++ b/_console_2_program_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_console_8cs.html b/_console_8cs.html index f017ab925f..5cd4d932fe 100644 --- a/_console_8cs.html +++ b/_console_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_console_8cs_source.html b/_console_8cs_source.html index 4bdbb56ede..713ad8af89 100644 --- a/_console_8cs_source.html +++ b/_console_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_control_panel_configuration_8cs.html b/_control_panel_configuration_8cs.html index 0dc873bbd7..0e7dac6d7e 100644 --- a/_control_panel_configuration_8cs.html +++ b/_control_panel_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_control_panel_configuration_8cs_source.html b/_control_panel_configuration_8cs_source.html index f656e034ae..97f2a6a536 100644 --- a/_control_panel_configuration_8cs_source.html +++ b/_control_panel_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_cryptography_suite_8cs.html b/_cryptography_suite_8cs.html index e203c94e9f..af3364db51 100644 --- a/_cryptography_suite_8cs.html +++ b/_cryptography_suite_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_cryptography_suite_8cs_source.html b/_cryptography_suite_8cs_source.html index 70b2f6a640..6b5fb8bc13 100644 --- a/_cryptography_suite_8cs_source.html +++ b/_cryptography_suite_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_custom_command_8cs.html b/_custom_command_8cs.html index 83b9ed6040..cc1c900505 100644 --- a/_custom_command_8cs.html +++ b/_custom_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_custom_command_8cs_source.html b/_custom_command_8cs_source.html index 9f329a8d73..9fb05f1c31 100644 --- a/_custom_command_8cs_source.html +++ b/_custom_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_d_m_api_constants_8cs.html b/_d_m_api_constants_8cs.html index 55de727f21..dced9c8583 100644 --- a/_d_m_api_constants_8cs.html +++ b/_d_m_api_constants_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_d_m_api_constants_8cs_source.html b/_d_m_api_constants_8cs_source.html index e8c732361b..985aa5d66e 100644 --- a/_d_m_api_constants_8cs_source.html +++ b/_d_m_api_constants_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_d_m_api_parameters_8cs.html b/_d_m_api_parameters_8cs.html index 308bb09b99..f3f95a317b 100644 --- a/_d_m_api_parameters_8cs.html +++ b/_d_m_api_parameters_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_d_m_api_parameters_8cs_source.html b/_d_m_api_parameters_8cs_source.html index 88dceb62ab..b3098ad6ef 100644 --- a/_d_m_api_parameters_8cs_source.html +++ b/_d_m_api_parameters_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_d_m_api_response_8cs.html b/_d_m_api_response_8cs.html index 1206ca3a34..9abcd308ea 100644 --- a/_d_m_api_response_8cs.html +++ b/_d_m_api_response_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_d_m_api_response_8cs_source.html b/_d_m_api_response_8cs_source.html index 0745214e02..dc018ce921 100644 --- a/_d_m_api_response_8cs_source.html +++ b/_d_m_api_response_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_collection_8cs.html b/_database_collection_8cs.html index 3229bb4117..357a7a61f2 100644 --- a/_database_collection_8cs.html +++ b/_database_collection_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_collection_8cs_source.html b/_database_collection_8cs_source.html index 709d1de3ba..9867ea92da 100644 --- a/_database_collection_8cs_source.html +++ b/_database_collection_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_configuration_8cs.html b/_database_configuration_8cs.html index e073eadad2..363e19e1e3 100644 --- a/_database_configuration_8cs.html +++ b/_database_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_configuration_8cs_source.html b/_database_configuration_8cs_source.html index 55d003a498..a18b29b7d2 100644 --- a/_database_configuration_8cs_source.html +++ b/_database_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_connection_factory_8cs.html b/_database_connection_factory_8cs.html index 1dc4414867..05f601a512 100644 --- a/_database_connection_factory_8cs.html +++ b/_database_connection_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_connection_factory_8cs_source.html b/_database_connection_factory_8cs_source.html index 0cf2f4a1b1..2ecd70b0f4 100644 --- a/_database_connection_factory_8cs_source.html +++ b/_database_connection_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_context_8cs.html b/_database_context_8cs.html index 1e6d9d10cc..5427688f27 100644 --- a/_database_context_8cs.html +++ b/_database_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_context_8cs_source.html b/_database_context_8cs_source.html index ea41ebbeae..eed812368b 100644 --- a/_database_context_8cs_source.html +++ b/_database_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_context_extensions_8cs.html b/_database_context_extensions_8cs.html index e66e114a78..17266f0a1e 100644 --- a/_database_context_extensions_8cs.html +++ b/_database_context_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_context_extensions_8cs_source.html b/_database_context_extensions_8cs_source.html index 8f879dabb1..2b99800235 100644 --- a/_database_context_extensions_8cs_source.html +++ b/_database_context_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_context_factory_8cs.html b/_database_context_factory_8cs.html index a9cf8d8d6d..d7561d09bf 100644 --- a/_database_context_factory_8cs.html +++ b/_database_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_context_factory_8cs_source.html b/_database_context_factory_8cs_source.html index e2f4fb087f..1a8d877fd4 100644 --- a/_database_context_factory_8cs_source.html +++ b/_database_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_seeder_8cs.html b/_database_seeder_8cs.html index cdb512b7b4..1c2573274e 100644 --- a/_database_seeder_8cs.html +++ b/_database_seeder_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_seeder_8cs_source.html b/_database_seeder_8cs_source.html index 6a4e74a75b..0a2f599f3c 100644 --- a/_database_seeder_8cs_source.html +++ b/_database_seeder_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_type_8cs.html b/_database_type_8cs.html index 8017c9886b..3b7d88f6f0 100644 --- a/_database_type_8cs.html +++ b/_database_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_database_type_8cs_source.html b/_database_type_8cs_source.html index d4dedbdfc5..d36b8c2894 100644 --- a/_database_type_8cs_source.html +++ b/_database_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dead_session_controller_8cs.html b/_dead_session_controller_8cs.html index df9838ce1f..02a84ddf0a 100644 --- a/_dead_session_controller_8cs.html +++ b/_dead_session_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dead_session_controller_8cs_source.html b/_dead_session_controller_8cs_source.html index a0d9527b42..8a89d31969 100644 --- a/_dead_session_controller_8cs_source.html +++ b/_dead_session_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_default_i_o_manager_8cs.html b/_default_i_o_manager_8cs.html index d896deae1c..4cf264a572 100644 --- a/_default_i_o_manager_8cs.html +++ b/_default_i_o_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_default_i_o_manager_8cs_source.html b/_default_i_o_manager_8cs_source.html index a7e8409077..4b2fd23b72 100644 --- a/_default_i_o_manager_8cs_source.html +++ b/_default_i_o_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_design_time_db_context_factory_helpers_8cs.html b/_design_time_db_context_factory_helpers_8cs.html index 3c2f603e55..1b241ec8d2 100644 --- a/_design_time_db_context_factory_helpers_8cs.html +++ b/_design_time_db_context_factory_helpers_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_design_time_db_context_factory_helpers_8cs_source.html b/_design_time_db_context_factory_helpers_8cs_source.html index 09b6bee607..adf3a3bccc 100644 --- a/_design_time_db_context_factory_helpers_8cs_source.html +++ b/_design_time_db_context_factory_helpers_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_discord_connection_string_builder_8cs.html b/_discord_connection_string_builder_8cs.html index 23bda11679..cdee24fcec 100644 --- a/_discord_connection_string_builder_8cs.html +++ b/_discord_connection_string_builder_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_discord_connection_string_builder_8cs_source.html b/_discord_connection_string_builder_8cs_source.html index eb30429364..78abb2427a 100644 --- a/_discord_connection_string_builder_8cs_source.html +++ b/_discord_connection_string_builder_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_discord_provider_8cs.html b/_discord_provider_8cs.html index 19f0f6d07d..ea8a08695c 100644 --- a/_discord_provider_8cs.html +++ b/_discord_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_discord_provider_8cs_source.html b/_discord_provider_8cs_source.html index 9346930331..2ebe04d444 100644 --- a/_discord_provider_8cs_source.html +++ b/_discord_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dmb_factory_8cs.html b/_dmb_factory_8cs.html index bec5403cd4..fe3a9e93af 100644 --- a/_dmb_factory_8cs.html +++ b/_dmb_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dmb_factory_8cs_source.html b/_dmb_factory_8cs_source.html index 87dfa1e785..f13c8ab5b0 100644 --- a/_dmb_factory_8cs_source.html +++ b/_dmb_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -94,19 +94,19 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
DmbFactory.cs
-Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Logging;
3 using System;
4 using System.Collections.Generic;
5 using System.Linq;
6 using System.Threading;
7 using System.Threading.Tasks;
10 using Tgstation.Server.Host.IO;
12 
13 namespace Tgstation.Server.Host.Components.Deployment
14 {
19  {
21  public Task OnNewerDmb
22  {
23  get
24  {
25  lock (jobLockCounts)
26  return newerDmbTcs.Task;
27  }
28  }
29 
31  public bool DmbAvailable => nextDmbProvider != null;
32 
37 
42 
46  readonly ILogger<DmbFactory> logger;
47 
51  readonly Api.Models.Instance instance;
52 
56  readonly CancellationTokenSource cleanupCts;
57 
61  readonly IDictionary<long, int> jobLockCounts;
62 
67 
71  TaskCompletionSource<object> newerDmbTcs;
72 
77 
85  public DmbFactory(IDatabaseContextFactory databaseContextFactory, IIOManager ioManager, ILogger<DmbFactory> logger, Api.Models.Instance instance)
86  {
87  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
88  this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
89  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
90  this.instance = instance ?? throw new ArgumentNullException(nameof(instance));
91 
92  cleanupTask = Task.CompletedTask;
93  newerDmbTcs = new TaskCompletionSource<object>();
94  cleanupCts = new CancellationTokenSource();
95  jobLockCounts = new Dictionary<long, int>();
96  }
97 
99  public void Dispose() => cleanupCts.Dispose(); // we don't dispose nextDmbProvider here, since it might be the only thing we have
100 
106  {
107  async Task HandleCleanup()
108  {
109  var deleteJob = ioManager.DeleteDirectory(job.DirectoryName.ToString(), cleanupCts.Token);
110  Task otherTask;
111 
112  // lock (this) //already locked below
113  otherTask = cleanupTask;
114  await Task.WhenAll(otherTask, deleteJob).ConfigureAwait(false);
115  }
116 
117  lock (jobLockCounts)
118  if (!jobLockCounts.TryGetValue(job.Id, out var currentVal) || currentVal == 1)
119  {
120  jobLockCounts.Remove(job.Id);
121  logger.LogDebug("Cleaning lock-free compile job {0} => {1}", job.Id, job.DirectoryName);
122  cleanupTask = HandleCleanup();
123  }
124  else
125  {
126  var decremented = --jobLockCounts[job.Id];
127  logger.LogTrace("Compile job {0} lock count now: {1}", job.Id, decremented);
128  }
129  }
130 
132  public async Task LoadCompileJob(CompileJob job, CancellationToken cancellationToken)
133  {
134  if (job == null)
135  throw new ArgumentNullException(nameof(job));
136 
137  var newProvider = await FromCompileJob(job, cancellationToken).ConfigureAwait(false);
138  if (newProvider == null)
139  return;
140  lock (jobLockCounts)
141  {
142  nextDmbProvider?.Dispose();
143  nextDmbProvider = newProvider;
144  newerDmbTcs.SetResult(nextDmbProvider);
145  newerDmbTcs = new TaskCompletionSource<object>();
146  }
147  }
148 
150  public IDmbProvider LockNextDmb(int lockCount)
151  {
152  if (!DmbAvailable)
153  throw new InvalidOperationException("No .dmb available!");
154  if (lockCount < 0)
155  throw new ArgumentOutOfRangeException(nameof(lockCount), lockCount, "lockCount must be greater than or equal to 0!");
156  lock (jobLockCounts)
157  {
158  var jobId = nextDmbProvider.CompileJob.Id;
159  var incremented = jobLockCounts[jobId] += lockCount;
160  logger.LogTrace("Compile job {0} lock count now: {1}", jobId, incremented);
161  return nextDmbProvider;
162  }
163  }
164 
166  public async Task StartAsync(CancellationToken cancellationToken)
167  {
168  CompileJob cj = null;
169  await databaseContextFactory.UseContext(async (db) =>
170  {
171  cj = await db
172  .MostRecentCompletedCompileJobOrDefault(instance, cancellationToken)
173  .ConfigureAwait(false);
174  })
175  .ConfigureAwait(false);
176 
177  if (cj == default(CompileJob))
178  return;
179  await LoadCompileJob(cj, cancellationToken).ConfigureAwait(false);
180 
181  // we dont do CleanUnusedCompileJobs here because the watchdog may have plans for them yet
182  }
183 
185  public async Task StopAsync(CancellationToken cancellationToken)
186  {
187  using (cancellationToken.Register(() => cleanupCts.Cancel()))
188  await cleanupTask.ConfigureAwait(false);
189  }
190 
192  #pragma warning disable CA1506 // TODO: Decomplexify
193  public async Task<IDmbProvider> FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
194  {
195  if (compileJob == null)
196  throw new ArgumentNullException(nameof(compileJob));
197 
198  // ensure we have the entire compile job tree
199  logger.LogTrace("Loading compile job {0}...", compileJob.Id);
200  await databaseContextFactory.UseContext(
201  async db => compileJob = await db
202  .CompileJobs
203  .AsQueryable()
204  .Where(x => x.Id == compileJob.Id)
205  .Include(x => x.Job).ThenInclude(x => x.StartedBy)
206  .Include(x => x.RevisionInformation).ThenInclude(x => x.PrimaryTestMerge).ThenInclude(x => x.MergedBy)
207  .Include(x => x.RevisionInformation).ThenInclude(x => x.ActiveTestMerges).ThenInclude(x => x.TestMerge).ThenInclude(x => x.MergedBy)
208  .FirstAsync(cancellationToken)
209  .ConfigureAwait(false))
210  .ConfigureAwait(false); // can't wait to see that query
211 
212  if (!compileJob.Job.StoppedAt.HasValue)
213  {
214  // This happens if we're told to load the compile job that is currently finished up
215  // It can constitute an API violation if it's returned by the DreamDaemonController so just set it here
216  // Bit of a hack, but it should work out to be the same value
217  logger.LogTrace("Setting missing StoppedAt for CompileJob job...");
218  compileJob.Job.StoppedAt = DateTimeOffset.Now;
219  }
220 
221  var providerSubmitted = false;
222  var newProvider = new DmbProvider(compileJob, ioManager, () =>
223  {
224  if (providerSubmitted)
225  CleanJob(compileJob);
226  });
227 
228  try
229  {
230  var primaryCheckTask = ioManager.FileExists(ioManager.ConcatPath(newProvider.PrimaryDirectory, newProvider.DmbName), cancellationToken);
231  var secondaryCheckTask = ioManager.FileExists(ioManager.ConcatPath(newProvider.PrimaryDirectory, newProvider.DmbName), cancellationToken);
232 
233  if (!(await primaryCheckTask.ConfigureAwait(false) && await secondaryCheckTask.ConfigureAwait(false)))
234  {
235  logger.LogWarning("Error loading compile job, .dmb missing!");
236  return null; // omae wa mou shinderu
237  }
238 
239  lock (jobLockCounts)
240  {
241  if (!jobLockCounts.TryGetValue(compileJob.Id, out int value))
242  {
243  value = 1;
244  jobLockCounts.Add(compileJob.Id, 1);
245  }
246  else
247  jobLockCounts[compileJob.Id] = ++value;
248 
249  logger.LogTrace("Compile job {0} lock count now: {1}", compileJob.Id, value);
250 
251  providerSubmitted = true;
252  return newProvider;
253  }
254  }
255  finally
256  {
257  if (!providerSubmitted)
258  newProvider.Dispose();
259  }
260  }
261  #pragma warning restore CA1506
262 
264  #pragma warning disable CA1506 // TODO: Decomplexify
265  public async Task CleanUnusedCompileJobs(CancellationToken cancellationToken)
266  {
267  List<long> jobIdsToSkip;
268 
269  // don't clean locked directories
270  lock (jobLockCounts)
271  jobIdsToSkip = jobLockCounts.Select(x => x.Key).ToList();
272 
273  List<string> jobUidsToNotErase = null;
274 
275  // find the uids of locked directories
276  await databaseContextFactory.UseContext(async db =>
277  {
278  jobUidsToNotErase = (await db
279  .CompileJobs
280  .AsQueryable()
281  .Where(
282  x => x.Job.Instance.Id == instance.Id
283  && jobIdsToSkip.Contains(x.Id))
284  .Select(x => x.DirectoryName.Value)
285  .ToListAsync(cancellationToken)
286  .ConfigureAwait(false))
287  .Select(x => x.ToString())
288  .ToList();
289  }).ConfigureAwait(false);
290 
291  jobUidsToNotErase.Add(WindowsSwappableDmbProvider.LiveGameDirectory);
292 
293  logger.LogTrace("We will not clean the following directories: {0}", String.Join(", ", jobUidsToNotErase));
294 
295  // cleanup
296  var gameDirectory = ioManager.ResolvePath();
297  await ioManager.CreateDirectory(gameDirectory, cancellationToken).ConfigureAwait(false);
298  var directories = await ioManager.GetDirectories(gameDirectory, cancellationToken).ConfigureAwait(false);
299  int deleting = 0;
300  var tasks = directories.Select(async x =>
301  {
302  var nameOnly = ioManager.GetFileName(x);
303  if (jobUidsToNotErase.Contains(nameOnly))
304  return;
305  logger.LogDebug("Cleaning unused game folder: {0}...", nameOnly);
306  try
307  {
308  ++deleting;
309  await ioManager.DeleteDirectory(x, cancellationToken).ConfigureAwait(false);
310  }
311  catch (OperationCanceledException)
312  {
313  throw;
314  }
315  catch (Exception e)
316  {
317  logger.LogWarning("Error deleting directory {0}! Exception: {1}", x, e);
318  }
319  }).ToList();
320  if (deleting > 0)
321  await Task.WhenAll(tasks).ConfigureAwait(false);
322  }
323  #pragma warning restore CA1506
324 
327  {
328  if (!DmbAvailable)
329  return null;
330  return LockNextDmb(0)?.CompileJob;
331  }
332  }
333 }
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:29
-
async Task StartAsync(CancellationToken cancellationToken)
Definition: DmbFactory.cs:166
+Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Logging;
3 using System;
4 using System.Collections.Generic;
5 using System.Linq;
6 using System.Threading;
7 using System.Threading.Tasks;
10 using Tgstation.Server.Host.IO;
12 
13 namespace Tgstation.Server.Host.Components.Deployment
14 {
19  {
21  public Task OnNewerDmb
22  {
23  get
24  {
25  lock (jobLockCounts)
26  return newerDmbTcs.Task;
27  }
28  }
29 
31  public bool DmbAvailable => nextDmbProvider != null;
32 
37 
42 
46  readonly ILogger<DmbFactory> logger;
47 
51  readonly Api.Models.Instance instance;
52 
56  readonly CancellationTokenSource cleanupCts;
57 
61  readonly IDictionary<long, int> jobLockCounts;
62 
67 
71  TaskCompletionSource<object> newerDmbTcs;
72 
77 
85  public DmbFactory(IDatabaseContextFactory databaseContextFactory, IIOManager ioManager, ILogger<DmbFactory> logger, Api.Models.Instance instance)
86  {
87  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
88  this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
89  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
90  this.instance = instance ?? throw new ArgumentNullException(nameof(instance));
91 
92  cleanupTask = Task.CompletedTask;
93  newerDmbTcs = new TaskCompletionSource<object>();
94  cleanupCts = new CancellationTokenSource();
95  jobLockCounts = new Dictionary<long, int>();
96  }
97 
99  public void Dispose() => cleanupCts.Dispose(); // we don't dispose nextDmbProvider here, since it might be the only thing we have
100 
106  {
107  async Task HandleCleanup()
108  {
109  var deleteJob = ioManager.DeleteDirectory(job.DirectoryName.ToString(), cleanupCts.Token);
110  Task otherTask;
111 
112  // lock (this) //already locked below
113  otherTask = cleanupTask;
114  await Task.WhenAll(otherTask, deleteJob).ConfigureAwait(false);
115  }
116 
117  lock (jobLockCounts)
118  if (!jobLockCounts.TryGetValue(job.Id, out var currentVal) || currentVal == 1)
119  {
120  jobLockCounts.Remove(job.Id);
121  logger.LogDebug("Cleaning lock-free compile job {0} => {1}", job.Id, job.DirectoryName);
122  cleanupTask = HandleCleanup();
123  }
124  else
125  {
126  var decremented = --jobLockCounts[job.Id];
127  logger.LogTrace("Compile job {0} lock count now: {1}", job.Id, decremented);
128  }
129  }
130 
132  public async Task LoadCompileJob(CompileJob job, CancellationToken cancellationToken)
133  {
134  if (job == null)
135  throw new ArgumentNullException(nameof(job));
136 
137  var newProvider = await FromCompileJob(job, cancellationToken).ConfigureAwait(false);
138  if (newProvider == null)
139  return;
140  lock (jobLockCounts)
141  {
142  nextDmbProvider?.Dispose();
143  nextDmbProvider = newProvider;
144 
145  // Oh god dammit
146  var temp = newerDmbTcs;
147  newerDmbTcs = new TaskCompletionSource<object>();
148  temp.SetResult(nextDmbProvider);
149  }
150  }
151 
153  public IDmbProvider LockNextDmb(int lockCount)
154  {
155  if (!DmbAvailable)
156  throw new InvalidOperationException("No .dmb available!");
157  if (lockCount < 0)
158  throw new ArgumentOutOfRangeException(nameof(lockCount), lockCount, "lockCount must be greater than or equal to 0!");
159  lock (jobLockCounts)
160  {
161  var jobId = nextDmbProvider.CompileJob.Id;
162  var incremented = jobLockCounts[jobId] += lockCount;
163  logger.LogTrace("Compile job {0} lock count now: {1}", jobId, incremented);
164  return nextDmbProvider;
165  }
166  }
167 
169  public async Task StartAsync(CancellationToken cancellationToken)
170  {
171  CompileJob cj = null;
172  await databaseContextFactory.UseContext(async (db) =>
173  {
174  cj = await db
175  .MostRecentCompletedCompileJobOrDefault(instance, cancellationToken)
176  .ConfigureAwait(false);
177  })
178  .ConfigureAwait(false);
179 
180  if (cj == default(CompileJob))
181  return;
182  await LoadCompileJob(cj, cancellationToken).ConfigureAwait(false);
183 
184  // we dont do CleanUnusedCompileJobs here because the watchdog may have plans for them yet
185  }
186 
188  public async Task StopAsync(CancellationToken cancellationToken)
189  {
190  using (cancellationToken.Register(() => cleanupCts.Cancel()))
191  await cleanupTask.ConfigureAwait(false);
192  }
193 
195  #pragma warning disable CA1506 // TODO: Decomplexify
196  public async Task<IDmbProvider> FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
197  {
198  if (compileJob == null)
199  throw new ArgumentNullException(nameof(compileJob));
200 
201  // ensure we have the entire compile job tree
202  logger.LogTrace("Loading compile job {0}...", compileJob.Id);
203  await databaseContextFactory.UseContext(
204  async db => compileJob = await db
205  .CompileJobs
206  .AsQueryable()
207  .Where(x => x.Id == compileJob.Id)
208  .Include(x => x.Job).ThenInclude(x => x.StartedBy)
209  .Include(x => x.RevisionInformation).ThenInclude(x => x.PrimaryTestMerge).ThenInclude(x => x.MergedBy)
210  .Include(x => x.RevisionInformation).ThenInclude(x => x.ActiveTestMerges).ThenInclude(x => x.TestMerge).ThenInclude(x => x.MergedBy)
211  .FirstAsync(cancellationToken)
212  .ConfigureAwait(false))
213  .ConfigureAwait(false); // can't wait to see that query
214 
215  if (!compileJob.Job.StoppedAt.HasValue)
216  {
217  // This happens if we're told to load the compile job that is currently finished up
218  // It can constitute an API violation if it's returned by the DreamDaemonController so just set it here
219  // Bit of a hack, but it should work out to be the same value
220  logger.LogTrace("Setting missing StoppedAt for CompileJob job...");
221  compileJob.Job.StoppedAt = DateTimeOffset.Now;
222  }
223 
224  var providerSubmitted = false;
225  var newProvider = new DmbProvider(compileJob, ioManager, () =>
226  {
227  if (providerSubmitted)
228  CleanJob(compileJob);
229  });
230 
231  try
232  {
233  var primaryCheckTask = ioManager.FileExists(ioManager.ConcatPath(newProvider.PrimaryDirectory, newProvider.DmbName), cancellationToken);
234  var secondaryCheckTask = ioManager.FileExists(ioManager.ConcatPath(newProvider.PrimaryDirectory, newProvider.DmbName), cancellationToken);
235 
236  if (!(await primaryCheckTask.ConfigureAwait(false) && await secondaryCheckTask.ConfigureAwait(false)))
237  {
238  logger.LogWarning("Error loading compile job, .dmb missing!");
239  return null; // omae wa mou shinderu
240  }
241 
242  lock (jobLockCounts)
243  {
244  if (!jobLockCounts.TryGetValue(compileJob.Id, out int value))
245  {
246  value = 1;
247  jobLockCounts.Add(compileJob.Id, 1);
248  }
249  else
250  jobLockCounts[compileJob.Id] = ++value;
251 
252  logger.LogTrace("Compile job {0} lock count now: {1}", compileJob.Id, value);
253 
254  providerSubmitted = true;
255  return newProvider;
256  }
257  }
258  finally
259  {
260  if (!providerSubmitted)
261  newProvider.Dispose();
262  }
263  }
264  #pragma warning restore CA1506
265 
267  #pragma warning disable CA1506 // TODO: Decomplexify
268  public async Task CleanUnusedCompileJobs(CancellationToken cancellationToken)
269  {
270  List<long> jobIdsToSkip;
271 
272  // don't clean locked directories
273  lock (jobLockCounts)
274  jobIdsToSkip = jobLockCounts.Select(x => x.Key).ToList();
275 
276  List<string> jobUidsToNotErase = null;
277 
278  // find the uids of locked directories
279  await databaseContextFactory.UseContext(async db =>
280  {
281  jobUidsToNotErase = (await db
282  .CompileJobs
283  .AsQueryable()
284  .Where(
285  x => x.Job.Instance.Id == instance.Id
286  && jobIdsToSkip.Contains(x.Id))
287  .Select(x => x.DirectoryName.Value)
288  .ToListAsync(cancellationToken)
289  .ConfigureAwait(false))
290  .Select(x => x.ToString())
291  .ToList();
292  }).ConfigureAwait(false);
293 
294  jobUidsToNotErase.Add(WindowsSwappableDmbProvider.LiveGameDirectory);
295 
296  logger.LogTrace("We will not clean the following directories: {0}", String.Join(", ", jobUidsToNotErase));
297 
298  // cleanup
299  var gameDirectory = ioManager.ResolvePath();
300  await ioManager.CreateDirectory(gameDirectory, cancellationToken).ConfigureAwait(false);
301  var directories = await ioManager.GetDirectories(gameDirectory, cancellationToken).ConfigureAwait(false);
302  int deleting = 0;
303  var tasks = directories.Select(async x =>
304  {
305  var nameOnly = ioManager.GetFileName(x);
306  if (jobUidsToNotErase.Contains(nameOnly))
307  return;
308  logger.LogDebug("Cleaning unused game folder: {0}...", nameOnly);
309  try
310  {
311  ++deleting;
312  await ioManager.DeleteDirectory(x, cancellationToken).ConfigureAwait(false);
313  }
314  catch (OperationCanceledException)
315  {
316  throw;
317  }
318  catch (Exception e)
319  {
320  logger.LogWarning("Error deleting directory {0}! Exception: {1}", x, e);
321  }
322  }).ToList();
323  if (deleting > 0)
324  await Task.WhenAll(tasks).ConfigureAwait(false);
325  }
326  #pragma warning restore CA1506
327 
330  {
331  if (!DmbAvailable)
332  return null;
333  return LockNextDmb(0)?.CompileJob;
334  }
335  }
336 }
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:29
+
async Task StartAsync(CancellationToken cancellationToken)
Definition: DmbFactory.cs:169
IDmbProvider nextDmbProvider
The latest DmbProvider
Definition: DmbFactory.cs:76
long Id
The ID of the entity.
Definition: EntityId.cs:11
-
async Task StopAsync(CancellationToken cancellationToken)
Definition: DmbFactory.cs:185
+
async Task StopAsync(CancellationToken cancellationToken)
Definition: DmbFactory.cs:188
readonly IDatabaseContextFactory databaseContextFactory
The IDatabaseContextFactory for the DmbFactory
Definition: DmbFactory.cs:36
DmbFactory(IDatabaseContextFactory databaseContextFactory, IIOManager ioManager, ILogger< DmbFactory > logger, Api.Models.Instance instance)
Construct a DmbFactory
Definition: DmbFactory.cs:85
Factory for scoping usage of IDatabaseContexts. Meant for use by Components
-
async Task CleanUnusedCompileJobs(CancellationToken cancellationToken)
Deletes all compile jobs that are inactive in the Game folder.
Definition: DmbFactory.cs:265
+
async Task CleanUnusedCompileJobs(CancellationToken cancellationToken)
Deletes all compile jobs that are inactive in the Game folder.
Definition: DmbFactory.cs:268
DateTimeOffset StoppedAt
When the Job stopped
Definition: Job.cs:37
void CleanJob(CompileJob job)
Delete the Api.Models.Internal.CompileJob.DirectoryName of job
Definition: DmbFactory.cs:105
Job Job
See Api.Models.CompileJob.Job
Definition: CompileJob.cs:13
@@ -115,20 +115,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
readonly IDictionary< long, int > jobLockCounts
Map of CompileJob.JobIds to locks on them.
Definition: DmbFactory.cs:61
readonly IIOManager ioManager
The IIOManager for the DmbFactory
Definition: DmbFactory.cs:41
readonly CancellationTokenSource cleanupCts
The CancellationTokenSource for cleanupTask
Definition: DmbFactory.cs:56
-
CompileJob LatestCompileJob()
Gets the latest CompileJob.
Definition: DmbFactory.cs:326
+
CompileJob LatestCompileJob()
Gets the latest CompileJob.
Definition: DmbFactory.cs:329
Guid DirectoryName
The Game folder the results were compiled into
Definition: CompileJob.cs:28
const string LiveGameDirectory
The directory where the baseProvider is symlinked to.
-
async Task< IDmbProvider > FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
Gets a IDmbProvider for a given CompileJob
Definition: DmbFactory.cs:193
+
async Task< IDmbProvider > FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
Gets a IDmbProvider for a given CompileJob
Definition: DmbFactory.cs:196
Provides absolute paths to the latest compiled .dmbs
Definition: IDmbProvider.cs:9
Interface for using filesystems
Definition: IIOManager.cs:11
async Task LoadCompileJob(CompileJob job, CancellationToken cancellationToken)
Load a new job into the ICompileJobSink
Definition: DmbFactory.cs:132
-
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:150
+
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:153
readonly ILogger< DmbFactory > logger
The ILogger for the DmbFactory
Definition: DmbFactory.cs:46
diff --git a/_dmb_provider_8cs.html b/_dmb_provider_8cs.html index 0ba96e0bfc..e23fef346b 100644 --- a/_dmb_provider_8cs.html +++ b/_dmb_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dmb_provider_8cs_source.html b/_dmb_provider_8cs_source.html index 969cb680f4..abad7f16da 100644 --- a/_dmb_provider_8cs_source.html +++ b/_dmb_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_8cs.html b/_dream_daemon_8cs.html index 7bb6e5201e..9cbc46c8b6 100644 --- a/_dream_daemon_8cs.html +++ b/_dream_daemon_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_8cs_source.html b/_dream_daemon_8cs_source.html index 3b57ad2f43..672bf780b8 100644 --- a/_dream_daemon_8cs_source.html +++ b/_dream_daemon_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_client_8cs.html b/_dream_daemon_client_8cs.html index 0c70cf4176..9d16427161 100644 --- a/_dream_daemon_client_8cs.html +++ b/_dream_daemon_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_client_8cs_source.html b/_dream_daemon_client_8cs_source.html index 003aaa8918..b0675b5b92 100644 --- a/_dream_daemon_client_8cs_source.html +++ b/_dream_daemon_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_controller_8cs.html b/_dream_daemon_controller_8cs.html index e27b22832b..bd066ad747 100644 --- a/_dream_daemon_controller_8cs.html +++ b/_dream_daemon_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_controller_8cs_source.html b/_dream_daemon_controller_8cs_source.html index d93ade2fa6..9806f8dd49 100644 --- a/_dream_daemon_controller_8cs_source.html +++ b/_dream_daemon_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_launch_parameters_8cs.html b/_dream_daemon_launch_parameters_8cs.html index b224cde920..1be3414fe3 100644 --- a/_dream_daemon_launch_parameters_8cs.html +++ b/_dream_daemon_launch_parameters_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_launch_parameters_8cs_source.html b/_dream_daemon_launch_parameters_8cs_source.html index 8c85d3cc85..fe5b51560c 100644 --- a/_dream_daemon_launch_parameters_8cs_source.html +++ b/_dream_daemon_launch_parameters_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -94,16 +94,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
DreamDaemonLaunchParameters.cs
-Go to the documentation of this file.
1 using System;
2 using System.ComponentModel.DataAnnotations;
3 
4 namespace Tgstation.Server.Api.Models.Internal
5 {
10  {
14  [Required]
15  public bool? AllowWebClient { get; set; }
16 
20  [Required]
21  [EnumDataType(typeof(DreamDaemonSecurity))]
22  public DreamDaemonSecurity? SecurityLevel { get; set; }
23 
27  [Required]
28  [Range(1, 65535)]
29  public ushort? PrimaryPort { get; set; }
30 
34  [Required]
35  [Range(1, 65535)]
36  public ushort? SecondaryPort { get; set; }
37 
41  [Required]
42  public uint? StartupTimeout { get; set; }
43 
47  [Required]
48  public uint? HeartbeatSeconds { get; set; }
49 
55  public bool Match(DreamDaemonLaunchParameters otherParameters) =>
56  AllowWebClient == (otherParameters?.AllowWebClient ?? throw new ArgumentNullException(nameof(otherParameters)))
57  && SecurityLevel == otherParameters.SecurityLevel
58  && PrimaryPort == otherParameters.PrimaryPort
59  && SecondaryPort == otherParameters.SecondaryPort
60  && StartupTimeout == otherParameters.StartupTimeout
61  && HeartbeatSeconds == otherParameters.HeartbeatSeconds;
62  }
63 }
+Go to the documentation of this file.
1 using System;
2 using System.ComponentModel.DataAnnotations;
3 
4 namespace Tgstation.Server.Api.Models.Internal
5 {
10  {
14  [Required]
15  public bool? AllowWebClient { get; set; }
16 
20  [Required]
21  [EnumDataType(typeof(DreamDaemonSecurity))]
22  public DreamDaemonSecurity? SecurityLevel { get; set; }
23 
27  [Required]
28  [Range(1, 65535)]
29  public ushort? PrimaryPort { get; set; }
30 
34  [Required]
35  [Range(1, 65535)]
36  public ushort? SecondaryPort { get; set; }
37 
41  [Required]
42  public uint? StartupTimeout { get; set; }
43 
47  [Required]
48  public uint? HeartbeatSeconds { get; set; }
49 
55  public bool CanApplyWithoutReboot(DreamDaemonLaunchParameters otherParameters) =>
56  AllowWebClient == (otherParameters?.AllowWebClient ?? throw new ArgumentNullException(nameof(otherParameters)))
57  && SecurityLevel == otherParameters.SecurityLevel
58  && PrimaryPort == otherParameters.PrimaryPort
59  && SecondaryPort == otherParameters.SecondaryPort; // We intentionally don't check StartupTimeout or heartbeat seconds as it doesn't matter in terms of the watchdog
60  }
61 }
DreamDaemonSecurity SecurityLevel
The DreamDaemonSecurity level of DreamDaemon
-
uint HeartbeatSeconds
The number of seconds between each watchdog heartbeat. 0 disables.
DreamDaemonSecurity
DreamDaemon&#39;s security level
ushort PrimaryPort
The first port DreamDaemon uses. This should be the publically advertised port
-
bool AllowWebClient
If the BYOND web client can be used to connect to the game server
diff --git a/_dream_daemon_rights_8cs.html b/_dream_daemon_rights_8cs.html index a165068adb..2e21a2bac8 100644 --- a/_dream_daemon_rights_8cs.html +++ b/_dream_daemon_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_rights_8cs_source.html b/_dream_daemon_rights_8cs_source.html index 6437cdb004..3c7b186822 100644 --- a/_dream_daemon_rights_8cs_source.html +++ b/_dream_daemon_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_security_8cs.html b/_dream_daemon_security_8cs.html index 07ebfc2d0c..53f0791228 100644 --- a/_dream_daemon_security_8cs.html +++ b/_dream_daemon_security_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_security_8cs_source.html b/_dream_daemon_security_8cs_source.html index 070f3ba18e..e6cd0408c3 100644 --- a/_dream_daemon_security_8cs_source.html +++ b/_dream_daemon_security_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_maker_client_8cs.html b/_dream_maker_client_8cs.html index 88252c0cc8..0a2aefb538 100644 --- a/_dream_maker_client_8cs.html +++ b/_dream_maker_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_maker_client_8cs_source.html b/_dream_maker_client_8cs_source.html index a0f718cb27..b88887f0f9 100644 --- a/_dream_maker_client_8cs_source.html +++ b/_dream_maker_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_maker_controller_8cs.html b/_dream_maker_controller_8cs.html index e156618be8..4b0aeac325 100644 --- a/_dream_maker_controller_8cs.html +++ b/_dream_maker_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_maker_controller_8cs_source.html b/_dream_maker_controller_8cs_source.html index f6f0815b7f..f830b09e55 100644 --- a/_dream_maker_controller_8cs_source.html +++ b/_dream_maker_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_maker_rights_8cs.html b/_dream_maker_rights_8cs.html index 7b4dcd8e67..d775915071 100644 --- a/_dream_maker_rights_8cs.html +++ b/_dream_maker_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_maker_rights_8cs_source.html b/_dream_maker_rights_8cs_source.html index bf6c50a116..1b6addf55b 100644 --- a/_dream_maker_rights_8cs_source.html +++ b/_dream_maker_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_maker_settings_8cs.html b/_dream_maker_settings_8cs.html index ee3af2af81..4872fa883c 100644 --- a/_dream_maker_settings_8cs.html +++ b/_dream_maker_settings_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dream_maker_settings_8cs_source.html b/_dream_maker_settings_8cs_source.html index 16b4f5e603..dbe410ebfd 100644 --- a/_dream_maker_settings_8cs_source.html +++ b/_dream_maker_settings_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dual_reattach_information_base_8cs.html b/_dual_reattach_information_base_8cs.html index 7427a2a40e..e398c095da 100644 --- a/_dual_reattach_information_base_8cs.html +++ b/_dual_reattach_information_base_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_dual_reattach_information_base_8cs_source.html b/_dual_reattach_information_base_8cs_source.html index 2e2a96bd3c..b83a40f04c 100644 --- a/_dual_reattach_information_base_8cs_source.html +++ b/_dual_reattach_information_base_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_entity_id_8cs.html b/_entity_id_8cs.html index b7a4d2a68b..df53ae891f 100644 --- a/_entity_id_8cs.html +++ b/_entity_id_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_entity_id_8cs_source.html b/_entity_id_8cs_source.html index 60fe80ca9c..1c8dc4c41b 100644 --- a/_entity_id_8cs_source.html +++ b/_entity_id_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_error_code_8cs.html b/_error_code_8cs.html index eecdeed057..d6ec469901 100644 --- a/_error_code_8cs.html +++ b/_error_code_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_error_code_8cs_source.html b/_error_code_8cs_source.html index 6fd0a536b6..2cbe592fb8 100644 --- a/_error_code_8cs_source.html +++ b/_error_code_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_error_code_extensions_8cs.html b/_error_code_extensions_8cs.html index 858349b5b5..e09980e9d4 100644 --- a/_error_code_extensions_8cs.html +++ b/_error_code_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_error_code_extensions_8cs_source.html b/_error_code_extensions_8cs_source.html index b6d416c0ce..f8f508c441 100644 --- a/_error_code_extensions_8cs_source.html +++ b/_error_code_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_error_message_8cs.html b/_error_message_8cs.html index 32618d94e3..9be8aa280b 100644 --- a/_error_message_8cs.html +++ b/_error_message_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_error_message_8cs_source.html b/_error_message_8cs_source.html index d890225c8f..c444c5ff5c 100644 --- a/_error_message_8cs_source.html +++ b/_error_message_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_event_consumer_8cs.html b/_event_consumer_8cs.html index df6dd23b2e..2de61295fb 100644 --- a/_event_consumer_8cs.html +++ b/_event_consumer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_event_consumer_8cs_source.html b/_event_consumer_8cs_source.html index ea4501dde9..23ec0c1334 100644 --- a/_event_consumer_8cs_source.html +++ b/_event_consumer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_event_notification_8cs.html b/_event_notification_8cs.html index f87ce5cc36..b31639db61 100644 --- a/_event_notification_8cs.html +++ b/_event_notification_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_event_notification_8cs_source.html b/_event_notification_8cs_source.html index 0790d79bf2..d30242c76e 100644 --- a/_event_notification_8cs_source.html +++ b/_event_notification_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_event_type_8cs.html b/_event_type_8cs.html index 243c6bbeaf..ce2c3082e6 100644 --- a/_event_type_8cs.html +++ b/_event_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_event_type_8cs_source.html b/_event_type_8cs_source.html index d0295c96d8..eb1fc1a591 100644 --- a/_event_type_8cs_source.html +++ b/_event_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_experimental_watchdog_8cs.html b/_experimental_watchdog_8cs.html index 2fea944383..4662537a5a 100644 --- a/_experimental_watchdog_8cs.html +++ b/_experimental_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_experimental_watchdog_8cs_source.html b/_experimental_watchdog_8cs_source.html index 6c15b1de3a..d51ba42ad2 100644 --- a/_experimental_watchdog_8cs_source.html +++ b/_experimental_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Manages the runtime of Jobs
Definition: IJobManager.cs:13
-
async Task< IDmbProvider > FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
Gets a IDmbProvider for a given CompileJob
Definition: DmbFactory.cs:193
+
async Task< IDmbProvider > FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
Gets a IDmbProvider for a given CompileJob
Definition: DmbFactory.cs:196
bool TerminationWasRequested
If the DreamDaemon instance sent a
ISessionController alphaServer
Server designation alpha
@@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
ReattachInformation Release()
Releases the IProcess without terminating it. Also calls IDisposable.Dispose
MonitorAction
The action for the monitor loop to take when control is returned to it
Definition: MonitorAction.cs:6
-
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:150
+
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:153
The (absolute) state of the ExperimentalWatchdog
Definition: MonitorState.cs:9
diff --git a/_features_8dox.html b/_features_8dox.html index d425a6922d..6fb8731744 100644 --- a/_features_8dox.html +++ b/_features_8dox.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_file_logging_configuration_8cs.html b/_file_logging_configuration_8cs.html index 7b653d4f1d..1996cb31a1 100644 --- a/_file_logging_configuration_8cs.html +++ b/_file_logging_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_file_logging_configuration_8cs_source.html b/_file_logging_configuration_8cs_source.html index 4595bf9f63..e969044d8a 100644 --- a/_file_logging_configuration_8cs_source.html +++ b/_file_logging_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_general_configuration_8cs.html b/_general_configuration_8cs.html index 3399592805..7a91f6222d 100644 --- a/_general_configuration_8cs.html +++ b/_general_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_general_configuration_8cs_source.html b/_general_configuration_8cs_source.html index 4055e5e773..da010ecc01 100644 --- a/_general_configuration_8cs_source.html +++ b/_general_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_git_hub_client_factory_8cs.html b/_git_hub_client_factory_8cs.html index 59c9e3c4bf..410a5814f0 100644 --- a/_git_hub_client_factory_8cs.html +++ b/_git_hub_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_git_hub_client_factory_8cs_source.html b/_git_hub_client_factory_8cs_source.html index d1cc58040f..a68c35cf36 100644 --- a/_git_hub_client_factory_8cs_source.html +++ b/_git_hub_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_global_suppressions_8cs.html b/_global_suppressions_8cs.html index 13efa1eaa5..a3ade381a2 100644 --- a/_global_suppressions_8cs.html +++ b/_global_suppressions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_global_suppressions_8cs_source.html b/_global_suppressions_8cs_source.html index f6a93e6bc3..c8d93377b2 100644 --- a/_global_suppressions_8cs_source.html +++ b/_global_suppressions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_home_controller_8cs.html b/_home_controller_8cs.html index 1d44a41d36..2dbfb4cd0c 100644 --- a/_home_controller_8cs.html +++ b/_home_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_home_controller_8cs_source.html b/_home_controller_8cs_source.html index f2ae495b90..8fb506e5dc 100644 --- a/_home_controller_8cs_source.html +++ b/_home_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_host_builder_extensions_8cs.html b/_host_builder_extensions_8cs.html index 67dcb6939b..ab304f9566 100644 --- a/_host_builder_extensions_8cs.html +++ b/_host_builder_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_host_builder_extensions_8cs_source.html b/_host_builder_extensions_8cs_source.html index 8f015b2c6f..5959e8b320 100644 --- a/_host_builder_extensions_8cs_source.html +++ b/_host_builder_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_http_client_8cs.html b/_http_client_8cs.html index d6cf06aaa0..1f6fba7eb5 100644 --- a/_http_client_8cs.html +++ b/_http_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_http_client_8cs_source.html b/_http_client_8cs_source.html index 78a2093e39..5abcca5361 100644 --- a/_http_client_8cs_source.html +++ b/_http_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_administration_client_8cs.html b/_i_administration_client_8cs.html index d2933c9890..b9ac111c5f 100644 --- a/_i_administration_client_8cs.html +++ b/_i_administration_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_administration_client_8cs_source.html b/_i_administration_client_8cs_source.html index d00a24d34b..d1f4a49fca 100644 --- a/_i_administration_client_8cs_source.html +++ b/_i_administration_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_api_client_8cs.html b/_i_api_client_8cs.html index 2777b0d6f8..007843efc0 100644 --- a/_i_api_client_8cs.html +++ b/_i_api_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_api_client_8cs_source.html b/_i_api_client_8cs_source.html index fc0c55a045..04f220faee 100644 --- a/_i_api_client_8cs_source.html +++ b/_i_api_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_api_client_factory_8cs.html b/_i_api_client_factory_8cs.html index 1dedfb957a..9e7ada07c1 100644 --- a/_i_api_client_factory_8cs.html +++ b/_i_api_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_api_client_factory_8cs_source.html b/_i_api_client_factory_8cs_source.html index 157fa0c25e..09e8bb9d54 100644 --- a/_i_api_client_factory_8cs_source.html +++ b/_i_api_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_assembly_information_provider_8cs.html b/_i_assembly_information_provider_8cs.html index cd5bf09048..1acdf5ee72 100644 --- a/_i_assembly_information_provider_8cs.html +++ b/_i_assembly_information_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_assembly_information_provider_8cs_source.html b/_i_assembly_information_provider_8cs_source.html index 85c2c6bec9..7d65637b8d 100644 --- a/_i_assembly_information_provider_8cs_source.html +++ b/_i_assembly_information_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_async_delayer_8cs.html b/_i_async_delayer_8cs.html index 1f2a8d60ba..fd5587f528 100644 --- a/_i_async_delayer_8cs.html +++ b/_i_async_delayer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_async_delayer_8cs_source.html b/_i_async_delayer_8cs_source.html index 0df61ed454..93c8f4fdfa 100644 --- a/_i_async_delayer_8cs_source.html +++ b/_i_async_delayer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_authentication_context_8cs.html b/_i_authentication_context_8cs.html index 07578433bb..596a09610b 100644 --- a/_i_authentication_context_8cs.html +++ b/_i_authentication_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_authentication_context_8cs_source.html b/_i_authentication_context_8cs_source.html index fa81e2889e..9012ed93a5 100644 --- a/_i_authentication_context_8cs_source.html +++ b/_i_authentication_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_authentication_context_factory_8cs.html b/_i_authentication_context_factory_8cs.html index 26c95e8bb7..9fe154d422 100644 --- a/_i_authentication_context_factory_8cs.html +++ b/_i_authentication_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_authentication_context_factory_8cs_source.html b/_i_authentication_context_factory_8cs_source.html index 1f46ad17c1..04f15041a2 100644 --- a/_i_authentication_context_factory_8cs_source.html +++ b/_i_authentication_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_bridge_dispatcher_8cs.html b/_i_bridge_dispatcher_8cs.html index 308a4254e8..ab8b9ac550 100644 --- a/_i_bridge_dispatcher_8cs.html +++ b/_i_bridge_dispatcher_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_bridge_dispatcher_8cs_source.html b/_i_bridge_dispatcher_8cs_source.html index f7c09044e4..820ce3ff81 100644 --- a/_i_bridge_dispatcher_8cs_source.html +++ b/_i_bridge_dispatcher_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_bridge_handler_8cs.html b/_i_bridge_handler_8cs.html index 8dad942516..52e84ca3ea 100644 --- a/_i_bridge_handler_8cs.html +++ b/_i_bridge_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_bridge_handler_8cs_source.html b/_i_bridge_handler_8cs_source.html index 52ad819393..dffc551d45 100644 --- a/_i_bridge_handler_8cs_source.html +++ b/_i_bridge_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_bridge_registrar_8cs.html b/_i_bridge_registrar_8cs.html index 740e612c2f..f461cf203b 100644 --- a/_i_bridge_registrar_8cs.html +++ b/_i_bridge_registrar_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_bridge_registrar_8cs_source.html b/_i_bridge_registrar_8cs_source.html index b5709e72b1..0b15e69fd9 100644 --- a/_i_bridge_registrar_8cs_source.html +++ b/_i_bridge_registrar_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_bridge_registration_8cs.html b/_i_bridge_registration_8cs.html index 5cf99d9c04..5f676b73e2 100644 --- a/_i_bridge_registration_8cs.html +++ b/_i_bridge_registration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_bridge_registration_8cs_source.html b/_i_bridge_registration_8cs_source.html index cd20b6e1a3..b6b1ad8547 100644 --- a/_i_bridge_registration_8cs_source.html +++ b/_i_bridge_registration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_byond_client_8cs.html b/_i_byond_client_8cs.html index 794f3b5de1..494b62e517 100644 --- a/_i_byond_client_8cs.html +++ b/_i_byond_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_byond_client_8cs_source.html b/_i_byond_client_8cs_source.html index fad0a5e396..6187c7bc52 100644 --- a/_i_byond_client_8cs_source.html +++ b/_i_byond_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_byond_executable_lock_8cs.html b/_i_byond_executable_lock_8cs.html index a318968b44..4be447dae6 100644 --- a/_i_byond_executable_lock_8cs.html +++ b/_i_byond_executable_lock_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_byond_executable_lock_8cs_source.html b/_i_byond_executable_lock_8cs_source.html index a902f8bd98..b0e275f7c1 100644 --- a/_i_byond_executable_lock_8cs_source.html +++ b/_i_byond_executable_lock_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_byond_installer_8cs.html b/_i_byond_installer_8cs.html index b1e5bc438e..a28ec38b54 100644 --- a/_i_byond_installer_8cs.html +++ b/_i_byond_installer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_byond_installer_8cs_source.html b/_i_byond_installer_8cs_source.html index bce0242a77..153c949b13 100644 --- a/_i_byond_installer_8cs_source.html +++ b/_i_byond_installer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_byond_manager_8cs.html b/_i_byond_manager_8cs.html index 6e9a45d905..1562f32251 100644 --- a/_i_byond_manager_8cs.html +++ b/_i_byond_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_byond_manager_8cs_source.html b/_i_byond_manager_8cs_source.html index e4c0d55dc9..8a56606c33 100644 --- a/_i_byond_manager_8cs_source.html +++ b/_i_byond_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_channel_sink_8cs.html b/_i_channel_sink_8cs.html index df1035d6dc..8f48bb743e 100644 --- a/_i_channel_sink_8cs.html +++ b/_i_channel_sink_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_channel_sink_8cs_source.html b/_i_channel_sink_8cs_source.html index baf0ba57f3..d23da4e8a3 100644 --- a/_i_channel_sink_8cs_source.html +++ b/_i_channel_sink_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_chat_bots_client_8cs.html b/_i_chat_bots_client_8cs.html index 6a67152f18..c04fa3ddf1 100644 --- a/_i_chat_bots_client_8cs.html +++ b/_i_chat_bots_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_chat_bots_client_8cs_source.html b/_i_chat_bots_client_8cs_source.html index 03c7a129b1..d421c610d2 100644 --- a/_i_chat_bots_client_8cs_source.html +++ b/_i_chat_bots_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_chat_manager_8cs.html b/_i_chat_manager_8cs.html index 11a35bc6c5..5edbb61966 100644 --- a/_i_chat_manager_8cs.html +++ b/_i_chat_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_chat_manager_8cs_source.html b/_i_chat_manager_8cs_source.html index f3ad998e43..6c713ceca4 100644 --- a/_i_chat_manager_8cs_source.html +++ b/_i_chat_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_chat_manager_factory_8cs.html b/_i_chat_manager_factory_8cs.html index 9c21878cee..ca97865e9f 100644 --- a/_i_chat_manager_factory_8cs.html +++ b/_i_chat_manager_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_chat_manager_factory_8cs_source.html b/_i_chat_manager_factory_8cs_source.html index 66c2ef8a0d..5b7aca9120 100644 --- a/_i_chat_manager_factory_8cs_source.html +++ b/_i_chat_manager_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_chat_tracking_context_8cs.html b/_i_chat_tracking_context_8cs.html index fdf8744e9c..6f8976b2c8 100644 --- a/_i_chat_tracking_context_8cs.html +++ b/_i_chat_tracking_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_chat_tracking_context_8cs_source.html b/_i_chat_tracking_context_8cs_source.html index b2ca1a3314..66088a9e89 100644 --- a/_i_chat_tracking_context_8cs_source.html +++ b/_i_chat_tracking_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_claims_injector_8cs.html b/_i_claims_injector_8cs.html index d2ca864f2e..549ce43da9 100644 --- a/_i_claims_injector_8cs.html +++ b/_i_claims_injector_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_claims_injector_8cs_source.html b/_i_claims_injector_8cs_source.html index a6daea51b3..33a5516c86 100644 --- a/_i_claims_injector_8cs_source.html +++ b/_i_claims_injector_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_command_8cs.html b/_i_command_8cs.html index e365722c1a..265da553b4 100644 --- a/_i_command_8cs.html +++ b/_i_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_command_8cs_source.html b/_i_command_8cs_source.html index abe6f26e89..d0209a85e8 100644 --- a/_i_command_8cs_source.html +++ b/_i_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_command_factory_8cs.html b/_i_command_factory_8cs.html index 3e7be0662b..15ca55ef95 100644 --- a/_i_command_factory_8cs.html +++ b/_i_command_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_command_factory_8cs_source.html b/_i_command_factory_8cs_source.html index ead14ef4bd..c306afc885 100644 --- a/_i_command_factory_8cs_source.html +++ b/_i_command_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_compile_job_sink_8cs.html b/_i_compile_job_sink_8cs.html index de838503cc..3b0c68a0b1 100644 --- a/_i_compile_job_sink_8cs.html +++ b/_i_compile_job_sink_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_compile_job_sink_8cs_source.html b/_i_compile_job_sink_8cs_source.html index 1897ecaf91..f0fca4c8f0 100644 --- a/_i_compile_job_sink_8cs_source.html +++ b/_i_compile_job_sink_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_configuration_8cs.html b/_i_configuration_8cs.html index 80cb721dd8..48f86b0b26 100644 --- a/_i_configuration_8cs.html +++ b/_i_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_configuration_8cs_source.html b/_i_configuration_8cs_source.html index 80075c5c9f..b2be5505d1 100644 --- a/_i_configuration_8cs_source.html +++ b/_i_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_configuration_client_8cs.html b/_i_configuration_client_8cs.html index 0f9c4caecd..1d32b92976 100644 --- a/_i_configuration_client_8cs.html +++ b/_i_configuration_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_configuration_client_8cs_source.html b/_i_configuration_client_8cs_source.html index bffb464c1e..2e432e7b56 100644 --- a/_i_configuration_client_8cs_source.html +++ b/_i_configuration_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_console_8cs.html b/_i_console_8cs.html index 0461532b4a..38bbba8f56 100644 --- a/_i_console_8cs.html +++ b/_i_console_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_console_8cs_source.html b/_i_console_8cs_source.html index f1582c71bd..1eafd3b703 100644 --- a/_i_console_8cs_source.html +++ b/_i_console_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_credentials_provider_8cs.html b/_i_credentials_provider_8cs.html index 40161f823f..09ba5a947e 100644 --- a/_i_credentials_provider_8cs.html +++ b/_i_credentials_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_credentials_provider_8cs_source.html b/_i_credentials_provider_8cs_source.html index bc9c406f84..d941b81786 100644 --- a/_i_credentials_provider_8cs_source.html +++ b/_i_credentials_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_cryptography_suite_8cs.html b/_i_cryptography_suite_8cs.html index 8db5dc9160..b006b08127 100644 --- a/_i_cryptography_suite_8cs.html +++ b/_i_cryptography_suite_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_cryptography_suite_8cs_source.html b/_i_cryptography_suite_8cs_source.html index b0e3110c3c..f8f930154a 100644 --- a/_i_cryptography_suite_8cs_source.html +++ b/_i_cryptography_suite_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_custom_command_handler_8cs.html b/_i_custom_command_handler_8cs.html index 57f396803c..c57793ed42 100644 --- a/_i_custom_command_handler_8cs.html +++ b/_i_custom_command_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_custom_command_handler_8cs_source.html b/_i_custom_command_handler_8cs_source.html index 48ff9987f6..092fb4a2d8 100644 --- a/_i_custom_command_handler_8cs_source.html +++ b/_i_custom_command_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_database_collection_8cs.html b/_i_database_collection_8cs.html index 53bb5be750..076e91ec0b 100644 --- a/_i_database_collection_8cs.html +++ b/_i_database_collection_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_database_collection_8cs_source.html b/_i_database_collection_8cs_source.html index 96f03f02aa..c018ad4b6f 100644 --- a/_i_database_collection_8cs_source.html +++ b/_i_database_collection_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_database_connection_factory_8cs.html b/_i_database_connection_factory_8cs.html index 0d57c9c3ec..81368a7187 100644 --- a/_i_database_connection_factory_8cs.html +++ b/_i_database_connection_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_database_connection_factory_8cs_source.html b/_i_database_connection_factory_8cs_source.html index 98f42ebfba..0c84798b05 100644 --- a/_i_database_connection_factory_8cs_source.html +++ b/_i_database_connection_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_database_context_8cs.html b/_i_database_context_8cs.html index 1508241ef7..9a50c1f6d6 100644 --- a/_i_database_context_8cs.html +++ b/_i_database_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_database_context_8cs_source.html b/_i_database_context_8cs_source.html index b1b89ea091..37996fa3bd 100644 --- a/_i_database_context_8cs_source.html +++ b/_i_database_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_database_context_factory_8cs.html b/_i_database_context_factory_8cs.html index 3e8268836e..7dc9e33126 100644 --- a/_i_database_context_factory_8cs.html +++ b/_i_database_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_database_context_factory_8cs_source.html b/_i_database_context_factory_8cs_source.html index 7340571ad1..d9bca0bafe 100644 --- a/_i_database_context_factory_8cs_source.html +++ b/_i_database_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_database_seeder_8cs.html b/_i_database_seeder_8cs.html index 404436a4a8..5687e7f5e6 100644 --- a/_i_database_seeder_8cs.html +++ b/_i_database_seeder_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_database_seeder_8cs_source.html b/_i_database_seeder_8cs_source.html index 3eda961ad0..bc6417c50e 100644 --- a/_i_database_seeder_8cs_source.html +++ b/_i_database_seeder_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_dmb_factory_8cs.html b/_i_dmb_factory_8cs.html index 03c43ff20f..8122681cf5 100644 --- a/_i_dmb_factory_8cs.html +++ b/_i_dmb_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_dmb_factory_8cs_source.html b/_i_dmb_factory_8cs_source.html index d667c1051a..25a36063b9 100644 --- a/_i_dmb_factory_8cs_source.html +++ b/_i_dmb_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_dmb_provider_8cs.html b/_i_dmb_provider_8cs.html index 06ded9245a..3b6631cc9b 100644 --- a/_i_dmb_provider_8cs.html +++ b/_i_dmb_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_dmb_provider_8cs_source.html b/_i_dmb_provider_8cs_source.html index 0193c25f59..98e8c70818 100644 --- a/_i_dmb_provider_8cs_source.html +++ b/_i_dmb_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_dream_daemon_client_8cs.html b/_i_dream_daemon_client_8cs.html index 7c05edc211..a2359fd01f 100644 --- a/_i_dream_daemon_client_8cs.html +++ b/_i_dream_daemon_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_dream_daemon_client_8cs_source.html b/_i_dream_daemon_client_8cs_source.html index c6c2cfc364..203dccfbf0 100644 --- a/_i_dream_daemon_client_8cs_source.html +++ b/_i_dream_daemon_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_dream_maker_8cs.html b/_i_dream_maker_8cs.html index 8b2fed1067..4d3ba105a2 100644 --- a/_i_dream_maker_8cs.html +++ b/_i_dream_maker_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_dream_maker_8cs_source.html b/_i_dream_maker_8cs_source.html index 7b6c10dcc9..376d263038 100644 --- a/_i_dream_maker_8cs_source.html +++ b/_i_dream_maker_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_dream_maker_client_8cs.html b/_i_dream_maker_client_8cs.html index 9eee0a3c8c..b0f5c131ef 100644 --- a/_i_dream_maker_client_8cs.html +++ b/_i_dream_maker_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_dream_maker_client_8cs_source.html b/_i_dream_maker_client_8cs_source.html index 936fa603af..12775b31c5 100644 --- a/_i_dream_maker_client_8cs_source.html +++ b/_i_dream_maker_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_event_consumer_8cs.html b/_i_event_consumer_8cs.html index 1dd8db9a44..5fb30242ac 100644 --- a/_i_event_consumer_8cs.html +++ b/_i_event_consumer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_event_consumer_8cs_source.html b/_i_event_consumer_8cs_source.html index 315a551b6c..35faaf2464 100644 --- a/_i_event_consumer_8cs_source.html +++ b/_i_event_consumer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_git_hub_client_factory_8cs.html b/_i_git_hub_client_factory_8cs.html index c2aed3994b..20952fdeba 100644 --- a/_i_git_hub_client_factory_8cs.html +++ b/_i_git_hub_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_git_hub_client_factory_8cs_source.html b/_i_git_hub_client_factory_8cs_source.html index c792e99789..dee39d1e89 100644 --- a/_i_git_hub_client_factory_8cs_source.html +++ b/_i_git_hub_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_http_client_8cs.html b/_i_http_client_8cs.html index 8e6a31d355..6091268fcb 100644 --- a/_i_http_client_8cs.html +++ b/_i_http_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_http_client_8cs_source.html b/_i_http_client_8cs_source.html index db3958d405..c4509ef46a 100644 --- a/_i_http_client_8cs_source.html +++ b/_i_http_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_i_o_manager_8cs.html b/_i_i_o_manager_8cs.html index 4c53491169..21d29050aa 100644 --- a/_i_i_o_manager_8cs.html +++ b/_i_i_o_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_i_o_manager_8cs_source.html b/_i_i_o_manager_8cs_source.html index c5a5399b95..889d279072 100644 --- a/_i_i_o_manager_8cs_source.html +++ b/_i_i_o_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_identity_cache_8cs.html b/_i_identity_cache_8cs.html index 6155f2c2af..acfa0f641c 100644 --- a/_i_identity_cache_8cs.html +++ b/_i_identity_cache_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_identity_cache_8cs_source.html b/_i_identity_cache_8cs_source.html index efa94126fd..11f9eaf8ee 100644 --- a/_i_identity_cache_8cs_source.html +++ b/_i_identity_cache_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_instance_8cs.html b/_i_instance_8cs.html index f022cb785f..086c8405a4 100644 --- a/_i_instance_8cs.html +++ b/_i_instance_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_instance_8cs_source.html b/_i_instance_8cs_source.html index a9ff465237..5564256c37 100644 --- a/_i_instance_8cs_source.html +++ b/_i_instance_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_instance_client_8cs.html b/_i_instance_client_8cs.html index 6ce9aba3f4..cac9263a92 100644 --- a/_i_instance_client_8cs.html +++ b/_i_instance_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_instance_client_8cs_source.html b/_i_instance_client_8cs_source.html index 769cec7c10..f902571388 100644 --- a/_i_instance_client_8cs_source.html +++ b/_i_instance_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_instance_factory_8cs.html b/_i_instance_factory_8cs.html index fb92eda818..d12525797d 100644 --- a/_i_instance_factory_8cs.html +++ b/_i_instance_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_instance_factory_8cs_source.html b/_i_instance_factory_8cs_source.html index 23069424bc..42b477d1cd 100644 --- a/_i_instance_factory_8cs_source.html +++ b/_i_instance_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_instance_manager_8cs.html b/_i_instance_manager_8cs.html index 9d29567545..0bc0a1e92a 100644 --- a/_i_instance_manager_8cs.html +++ b/_i_instance_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_instance_manager_8cs_source.html b/_i_instance_manager_8cs_source.html index 8490584f3b..d0ca184397 100644 --- a/_i_instance_manager_8cs_source.html +++ b/_i_instance_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_instance_manager_client_8cs.html b/_i_instance_manager_client_8cs.html index ffef4ae82f..c3e012cbea 100644 --- a/_i_instance_manager_client_8cs.html +++ b/_i_instance_manager_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_instance_manager_client_8cs_source.html b/_i_instance_manager_client_8cs_source.html index 393d6ebb07..aad55eafc3 100644 --- a/_i_instance_manager_client_8cs_source.html +++ b/_i_instance_manager_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_instance_user_client_8cs.html b/_i_instance_user_client_8cs.html index c098445bca..3db30ebfd6 100644 --- a/_i_instance_user_client_8cs.html +++ b/_i_instance_user_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_instance_user_client_8cs_source.html b/_i_instance_user_client_8cs_source.html index b32c644f78..bad37f4fd6 100644 --- a/_i_instance_user_client_8cs_source.html +++ b/_i_instance_user_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_job_manager_8cs.html b/_i_job_manager_8cs.html index 6284d142c3..d0885d429a 100644 --- a/_i_job_manager_8cs.html +++ b/_i_job_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_job_manager_8cs_source.html b/_i_job_manager_8cs_source.html index 107c3b2426..605876aeb9 100644 --- a/_i_job_manager_8cs_source.html +++ b/_i_job_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_jobs_client_8cs.html b/_i_jobs_client_8cs.html index 3a651f4d24..e4dcd81fd9 100644 --- a/_i_jobs_client_8cs.html +++ b/_i_jobs_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_jobs_client_8cs_source.html b/_i_jobs_client_8cs_source.html index 8da49a0c8a..474ac4622d 100644 --- a/_i_jobs_client_8cs_source.html +++ b/_i_jobs_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_latest_compile_job_provider_8cs.html b/_i_latest_compile_job_provider_8cs.html index e14124bfe9..2ed2b5c5ce 100644 --- a/_i_latest_compile_job_provider_8cs.html +++ b/_i_latest_compile_job_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_latest_compile_job_provider_8cs_source.html b/_i_latest_compile_job_provider_8cs_source.html index 29bcdb2d2f..268a3be484 100644 --- a/_i_latest_compile_job_provider_8cs_source.html +++ b/_i_latest_compile_job_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_lib_git2_commands_8cs.html b/_i_lib_git2_commands_8cs.html index 6d24de2ea0..2ef7ccae97 100644 --- a/_i_lib_git2_commands_8cs.html +++ b/_i_lib_git2_commands_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_lib_git2_commands_8cs_source.html b/_i_lib_git2_commands_8cs_source.html index eb215156f6..286e0691c6 100644 --- a/_i_lib_git2_commands_8cs_source.html +++ b/_i_lib_git2_commands_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_lib_git2_repository_factory_8cs.html b/_i_lib_git2_repository_factory_8cs.html index 1dcd0904b0..3c51b94c77 100644 --- a/_i_lib_git2_repository_factory_8cs.html +++ b/_i_lib_git2_repository_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_lib_git2_repository_factory_8cs_source.html b/_i_lib_git2_repository_factory_8cs_source.html index 25bd173fd7..dbbfd4310b 100644 --- a/_i_lib_git2_repository_factory_8cs_source.html +++ b/_i_lib_git2_repository_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_network_prompt_reaper_8cs.html b/_i_network_prompt_reaper_8cs.html index 6aedf5d1b9..e08ddb8c0b 100644 --- a/_i_network_prompt_reaper_8cs.html +++ b/_i_network_prompt_reaper_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_network_prompt_reaper_8cs_source.html b/_i_network_prompt_reaper_8cs_source.html index ebe769d988..b54e4cbd5d 100644 --- a/_i_network_prompt_reaper_8cs_source.html +++ b/_i_network_prompt_reaper_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_platform_identifier_8cs.html b/_i_platform_identifier_8cs.html index 1f3080867f..091a2e3b00 100644 --- a/_i_platform_identifier_8cs.html +++ b/_i_platform_identifier_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_platform_identifier_8cs_source.html b/_i_platform_identifier_8cs_source.html index 0a9ce4cbeb..68dd09c394 100644 --- a/_i_platform_identifier_8cs_source.html +++ b/_i_platform_identifier_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_post_setup_services_8cs.html b/_i_post_setup_services_8cs.html index ebd3c58a3e..5ea3db4413 100644 --- a/_i_post_setup_services_8cs.html +++ b/_i_post_setup_services_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_post_setup_services_8cs_source.html b/_i_post_setup_services_8cs_source.html index b2ace34af2..2eddfa0613 100644 --- a/_i_post_setup_services_8cs_source.html +++ b/_i_post_setup_services_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_post_write_handler_8cs.html b/_i_post_write_handler_8cs.html index 1492396542..c131a61e35 100644 --- a/_i_post_write_handler_8cs.html +++ b/_i_post_write_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_post_write_handler_8cs_source.html b/_i_post_write_handler_8cs_source.html index 4b0ccc1e59..72041a71f6 100644 --- a/_i_post_write_handler_8cs_source.html +++ b/_i_post_write_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_process_8cs.html b/_i_process_8cs.html index c6213c0e28..09a68e7183 100644 --- a/_i_process_8cs.html +++ b/_i_process_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_process_8cs_source.html b/_i_process_8cs_source.html index 3898580a30..9d9c88a005 100644 --- a/_i_process_8cs_source.html +++ b/_i_process_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_process_base_8cs.html b/_i_process_base_8cs.html index 8e2b6bb1c6..215e48efe9 100644 --- a/_i_process_base_8cs.html +++ b/_i_process_base_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_process_base_8cs_source.html b/_i_process_base_8cs_source.html index 30c897ccd8..833437ca1e 100644 --- a/_i_process_base_8cs_source.html +++ b/_i_process_base_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_process_executor_8cs.html b/_i_process_executor_8cs.html index 308f0674db..873c863d1c 100644 --- a/_i_process_executor_8cs.html +++ b/_i_process_executor_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_process_executor_8cs_source.html b/_i_process_executor_8cs_source.html index 3392883c3a..3cca177062 100644 --- a/_i_process_executor_8cs_source.html +++ b/_i_process_executor_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_process_features_8cs.html b/_i_process_features_8cs.html index eb08ddb45c..37d57fd2c1 100644 --- a/_i_process_features_8cs.html +++ b/_i_process_features_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_process_features_8cs_source.html b/_i_process_features_8cs_source.html index f3eac01872..344a4b60f0 100644 --- a/_i_process_features_8cs_source.html +++ b/_i_process_features_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_provider_8cs.html b/_i_provider_8cs.html index 23cf838274..ee688fa5c5 100644 --- a/_i_provider_8cs.html +++ b/_i_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_provider_8cs_source.html b/_i_provider_8cs_source.html index 2dfb3d10db..e2bae18516 100644 --- a/_i_provider_8cs_source.html +++ b/_i_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_provider_factory_8cs.html b/_i_provider_factory_8cs.html index dca7d6657c..7020d0175f 100644 --- a/_i_provider_factory_8cs.html +++ b/_i_provider_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_provider_factory_8cs_source.html b/_i_provider_factory_8cs_source.html index d53929b56d..a03d2fae59 100644 --- a/_i_provider_factory_8cs_source.html +++ b/_i_provider_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_reattach_info_handler_8cs.html b/_i_reattach_info_handler_8cs.html index 43eaa5b019..7e4f4c9031 100644 --- a/_i_reattach_info_handler_8cs.html +++ b/_i_reattach_info_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_reattach_info_handler_8cs_source.html b/_i_reattach_info_handler_8cs_source.html index 2918100226..4cde5be33f 100644 --- a/_i_reattach_info_handler_8cs_source.html +++ b/_i_reattach_info_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_repository_8cs.html b/_i_repository_8cs.html index 59466dfdcc..4632434cf1 100644 --- a/_i_repository_8cs.html +++ b/_i_repository_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_repository_8cs_source.html b/_i_repository_8cs_source.html index 4751eceab8..24ce384563 100644 --- a/_i_repository_8cs_source.html +++ b/_i_repository_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_repository_client_8cs.html b/_i_repository_client_8cs.html index 5498150b75..e3d5a804ac 100644 --- a/_i_repository_client_8cs.html +++ b/_i_repository_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_repository_client_8cs_source.html b/_i_repository_client_8cs_source.html index 451cc7e88b..1704c2d628 100644 --- a/_i_repository_client_8cs_source.html +++ b/_i_repository_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_repository_manager_8cs.html b/_i_repository_manager_8cs.html index 1fab2ef5a9..eb5070d46b 100644 --- a/_i_repository_manager_8cs.html +++ b/_i_repository_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_repository_manager_8cs_source.html b/_i_repository_manager_8cs_source.html index 4ad31a58fd..59f56a0a26 100644 --- a/_i_repository_manager_8cs_source.html +++ b/_i_repository_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_request_logger_8cs.html b/_i_request_logger_8cs.html index a4f6882c0e..312ecf3b6c 100644 --- a/_i_request_logger_8cs.html +++ b/_i_request_logger_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_request_logger_8cs_source.html b/_i_request_logger_8cs_source.html index f8120d4009..ef0615c80b 100644 --- a/_i_request_logger_8cs_source.html +++ b/_i_request_logger_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_restart_handler_8cs.html b/_i_restart_handler_8cs.html index 7d6a25846f..0a49d3ca02 100644 --- a/_i_restart_handler_8cs.html +++ b/_i_restart_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_restart_handler_8cs_source.html b/_i_restart_handler_8cs_source.html index 517e4823ed..02c89fcdc0 100644 --- a/_i_restart_handler_8cs_source.html +++ b/_i_restart_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_restart_registration_8cs.html b/_i_restart_registration_8cs.html index b4d8928634..30b3ace6cd 100644 --- a/_i_restart_registration_8cs.html +++ b/_i_restart_registration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_restart_registration_8cs_source.html b/_i_restart_registration_8cs_source.html index 5b68f93dc6..1c455112cd 100644 --- a/_i_restart_registration_8cs_source.html +++ b/_i_restart_registration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_server_8cs.html b/_i_server_8cs.html index 8702aaf10d..ad00b7e2d6 100644 --- a/_i_server_8cs.html +++ b/_i_server_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_server_8cs_source.html b/_i_server_8cs_source.html index 72481a20e7..2679570882 100644 --- a/_i_server_8cs_source.html +++ b/_i_server_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_server_client_8cs.html b/_i_server_client_8cs.html index cf59a4ac22..38f64c64b2 100644 --- a/_i_server_client_8cs.html +++ b/_i_server_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_server_client_8cs_source.html b/_i_server_client_8cs_source.html index 7d01030126..9557a3516c 100644 --- a/_i_server_client_8cs_source.html +++ b/_i_server_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_server_client_factory_8cs.html b/_i_server_client_factory_8cs.html index 69192dc86b..eea97786c8 100644 --- a/_i_server_client_factory_8cs.html +++ b/_i_server_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_server_client_factory_8cs_source.html b/_i_server_client_factory_8cs_source.html index 6a7c264acc..abc9778943 100644 --- a/_i_server_client_factory_8cs_source.html +++ b/_i_server_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_server_control_8cs.html b/_i_server_control_8cs.html index bd841010c4..eb284eb445 100644 --- a/_i_server_control_8cs.html +++ b/_i_server_control_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_server_control_8cs_source.html b/_i_server_control_8cs_source.html index 0e3aa08a77..18a6b11952 100644 --- a/_i_server_control_8cs_source.html +++ b/_i_server_control_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_server_factory_8cs.html b/_i_server_factory_8cs.html index 7ed4bdede1..65e9ac8520 100644 --- a/_i_server_factory_8cs.html +++ b/_i_server_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_server_factory_8cs_source.html b/_i_server_factory_8cs_source.html index bfd568495f..4d90a97d35 100644 --- a/_i_server_factory_8cs_source.html +++ b/_i_server_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_server_port_provider_8cs.html b/_i_server_port_provider_8cs.html index 8bb5d5a03e..e81c13f5f9 100644 --- a/_i_server_port_provider_8cs.html +++ b/_i_server_port_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_server_port_provider_8cs_source.html b/_i_server_port_provider_8cs_source.html index 7de84c78cc..cf7d71ac56 100644 --- a/_i_server_port_provider_8cs_source.html +++ b/_i_server_port_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_session_controller_8cs.html b/_i_session_controller_8cs.html index eeecfa35a1..082569f7b1 100644 --- a/_i_session_controller_8cs.html +++ b/_i_session_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_session_controller_8cs_source.html b/_i_session_controller_8cs_source.html index a9e6422e7c..42fec25410 100644 --- a/_i_session_controller_8cs_source.html +++ b/_i_session_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_session_controller_factory_8cs.html b/_i_session_controller_factory_8cs.html index c2ecd431c9..fe9651efd4 100644 --- a/_i_session_controller_factory_8cs.html +++ b/_i_session_controller_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_session_controller_factory_8cs_source.html b/_i_session_controller_factory_8cs_source.html index a67a9c898a..7d6898972e 100644 --- a/_i_session_controller_factory_8cs_source.html +++ b/_i_session_controller_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_symlink_factory_8cs.html b/_i_symlink_factory_8cs.html index 96c6a9e779..523bd777eb 100644 --- a/_i_symlink_factory_8cs.html +++ b/_i_symlink_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_symlink_factory_8cs_source.html b/_i_symlink_factory_8cs_source.html index 1a6bcebb32..04528be293 100644 --- a/_i_symlink_factory_8cs_source.html +++ b/_i_symlink_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_synchronous_i_o_manager_8cs.html b/_i_synchronous_i_o_manager_8cs.html index 8b9b52f74b..0ebbcd0ae2 100644 --- a/_i_synchronous_i_o_manager_8cs.html +++ b/_i_synchronous_i_o_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_synchronous_i_o_manager_8cs_source.html b/_i_synchronous_i_o_manager_8cs_source.html index c156fa8feb..98d403d673 100644 --- a/_i_synchronous_i_o_manager_8cs_source.html +++ b/_i_synchronous_i_o_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_system_identity_8cs.html b/_i_system_identity_8cs.html index dc3a907c58..06d71b636a 100644 --- a/_i_system_identity_8cs.html +++ b/_i_system_identity_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_system_identity_8cs_source.html b/_i_system_identity_8cs_source.html index 3da98ef8f6..28a9e1b8de 100644 --- a/_i_system_identity_8cs_source.html +++ b/_i_system_identity_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_system_identity_factory_8cs.html b/_i_system_identity_factory_8cs.html index 5b02809b88..77fc014563 100644 --- a/_i_system_identity_factory_8cs.html +++ b/_i_system_identity_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_system_identity_factory_8cs_source.html b/_i_system_identity_factory_8cs_source.html index aee28e3cc5..42883ad189 100644 --- a/_i_system_identity_factory_8cs_source.html +++ b/_i_system_identity_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_token_factory_8cs.html b/_i_token_factory_8cs.html index 5d650cff59..144fc6e521 100644 --- a/_i_token_factory_8cs.html +++ b/_i_token_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_token_factory_8cs_source.html b/_i_token_factory_8cs_source.html index 4003668ed5..346e6461a1 100644 --- a/_i_token_factory_8cs_source.html +++ b/_i_token_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_users_client_8cs.html b/_i_users_client_8cs.html index a9d21a9227..6b9a8b64cf 100644 --- a/_i_users_client_8cs.html +++ b/_i_users_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_i_users_client_8cs_source.html b/_i_users_client_8cs_source.html index 10793881d4..ab7af267b4 100644 --- a/_i_users_client_8cs_source.html +++ b/_i_users_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_identity_cache_8cs.html b/_identity_cache_8cs.html index 36f72db241..442ee03252 100644 --- a/_identity_cache_8cs.html +++ b/_identity_cache_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_identity_cache_8cs_source.html b/_identity_cache_8cs_source.html index e22cf5e49d..5f9e372591 100644 --- a/_identity_cache_8cs_source.html +++ b/_identity_cache_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_identity_cache_object_8cs.html b/_identity_cache_object_8cs.html index 27640b218e..dcebcea655 100644 --- a/_identity_cache_object_8cs.html +++ b/_identity_cache_object_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_identity_cache_object_8cs_source.html b/_identity_cache_object_8cs_source.html index be7b97d1c5..f17b8bc2a0 100644 --- a/_identity_cache_object_8cs_source.html +++ b/_identity_cache_object_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_client_8cs.html b/_instance_client_8cs.html index 4e5dcf703f..a2de374c90 100644 --- a/_instance_client_8cs.html +++ b/_instance_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_client_8cs_source.html b/_instance_client_8cs_source.html index fe23bcd21b..afcb1c232a 100644 --- a/_instance_client_8cs_source.html +++ b/_instance_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_controller_8cs.html b/_instance_controller_8cs.html index 8e2a2198cd..31c5252f2a 100644 --- a/_instance_controller_8cs.html +++ b/_instance_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_controller_8cs_source.html b/_instance_controller_8cs_source.html index 4522370cfe..a6d78fa756 100644 --- a/_instance_controller_8cs_source.html +++ b/_instance_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_factory_8cs.html b/_instance_factory_8cs.html index a8e1b7c3e9..56cc1ac688 100644 --- a/_instance_factory_8cs.html +++ b/_instance_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_factory_8cs_source.html b/_instance_factory_8cs_source.html index 73d58e6308..426a8e83d3 100644 --- a/_instance_factory_8cs_source.html +++ b/_instance_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_manager_8cs.html b/_instance_manager_8cs.html index 8a421d9d55..fb46e7e857 100644 --- a/_instance_manager_8cs.html +++ b/_instance_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_manager_8cs_source.html b/_instance_manager_8cs_source.html index a14d43ae37..05cb3bca07 100644 --- a/_instance_manager_8cs_source.html +++ b/_instance_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_manager_client_8cs.html b/_instance_manager_client_8cs.html index 9764fef102..58f104812e 100644 --- a/_instance_manager_client_8cs.html +++ b/_instance_manager_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_manager_client_8cs_source.html b/_instance_manager_client_8cs_source.html index 574776d983..d134576e1c 100644 --- a/_instance_manager_client_8cs_source.html +++ b/_instance_manager_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_manager_rights_8cs.html b/_instance_manager_rights_8cs.html index a583137507..0018a50797 100644 --- a/_instance_manager_rights_8cs.html +++ b/_instance_manager_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_manager_rights_8cs_source.html b/_instance_manager_rights_8cs_source.html index 4987dbf776..ada795f905 100644 --- a/_instance_manager_rights_8cs_source.html +++ b/_instance_manager_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_user_client_8cs.html b/_instance_user_client_8cs.html index 21c4cb7d1c..dbd53fb673 100644 --- a/_instance_user_client_8cs.html +++ b/_instance_user_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_user_client_8cs_source.html b/_instance_user_client_8cs_source.html index 2d43de87da..33e98a007c 100644 --- a/_instance_user_client_8cs_source.html +++ b/_instance_user_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_user_controller_8cs.html b/_instance_user_controller_8cs.html index 538afd1fb9..11e099e561 100644 --- a/_instance_user_controller_8cs.html +++ b/_instance_user_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_user_controller_8cs_source.html b/_instance_user_controller_8cs_source.html index 2964d4a2b1..813288ae5d 100644 --- a/_instance_user_controller_8cs_source.html +++ b/_instance_user_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_user_rights_8cs.html b/_instance_user_rights_8cs.html index 46a72b7373..2925f304ef 100644 --- a/_instance_user_rights_8cs.html +++ b/_instance_user_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_instance_user_rights_8cs_source.html b/_instance_user_rights_8cs_source.html index f7e4d1167a..f1a9c1f980 100644 --- a/_instance_user_rights_8cs_source.html +++ b/_instance_user_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_insufficient_permissions_exception_8cs.html b/_insufficient_permissions_exception_8cs.html index a13ae64e99..759b34b441 100644 --- a/_insufficient_permissions_exception_8cs.html +++ b/_insufficient_permissions_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_insufficient_permissions_exception_8cs_source.html b/_insufficient_permissions_exception_8cs_source.html index eda3d10a88..1c7dab526b 100644 --- a/_insufficient_permissions_exception_8cs_source.html +++ b/_insufficient_permissions_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_internal_2_server_information_8cs.html b/_internal_2_server_information_8cs.html index 572877d40c..99ead48714 100644 --- a/_internal_2_server_information_8cs.html +++ b/_internal_2_server_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_internal_2_server_information_8cs_source.html b/_internal_2_server_information_8cs_source.html index d78cab5169..5600f09e53 100644 --- a/_internal_2_server_information_8cs_source.html +++ b/_internal_2_server_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_irc_connection_string_builder_8cs.html b/_irc_connection_string_builder_8cs.html index 6ff370ffe6..441f131b02 100644 --- a/_irc_connection_string_builder_8cs.html +++ b/_irc_connection_string_builder_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_irc_connection_string_builder_8cs_source.html b/_irc_connection_string_builder_8cs_source.html index 4097ad6b55..04dc4bda0a 100644 --- a/_irc_connection_string_builder_8cs_source.html +++ b/_irc_connection_string_builder_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_irc_password_type_8cs.html b/_irc_password_type_8cs.html index 94112952fd..88a4d5dbfc 100644 --- a/_irc_password_type_8cs.html +++ b/_irc_password_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_irc_password_type_8cs_source.html b/_irc_password_type_8cs_source.html index 4235f61b16..f188b97955 100644 --- a/_irc_password_type_8cs_source.html +++ b/_irc_password_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_irc_provider_8cs.html b/_irc_provider_8cs.html index e6dfd8b073..b59bcda586 100644 --- a/_irc_provider_8cs.html +++ b/_irc_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_irc_provider_8cs_source.html b/_irc_provider_8cs_source.html index a78ea3d584..eb9e14f606 100644 --- a/_irc_provider_8cs_source.html +++ b/_irc_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_job_controller_8cs.html b/_job_controller_8cs.html index 915b3df607..812c76f3f7 100644 --- a/_job_controller_8cs.html +++ b/_job_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_job_controller_8cs_source.html b/_job_controller_8cs_source.html index 2d628177fb..33069451b9 100644 --- a/_job_controller_8cs_source.html +++ b/_job_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_job_exception_8cs.html b/_job_exception_8cs.html index 568e62dcc9..9df386385e 100644 --- a/_job_exception_8cs.html +++ b/_job_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_job_exception_8cs_source.html b/_job_exception_8cs_source.html index 185c441de7..dbdf37cce9 100644 --- a/_job_exception_8cs_source.html +++ b/_job_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_job_handler_8cs.html b/_job_handler_8cs.html index 63b831a1fe..84d2093cae 100644 --- a/_job_handler_8cs.html +++ b/_job_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_job_handler_8cs_source.html b/_job_handler_8cs_source.html index cb3c79a89e..7ee5c316ee 100644 --- a/_job_handler_8cs_source.html +++ b/_job_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_job_manager_8cs.html b/_job_manager_8cs.html index ba14529e0b..75815ba914 100644 --- a/_job_manager_8cs.html +++ b/_job_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_job_manager_8cs_source.html b/_job_manager_8cs_source.html index 6803bb6791..fe69b95c9c 100644 --- a/_job_manager_8cs_source.html +++ b/_job_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_jobs_client_8cs.html b/_jobs_client_8cs.html index 2dc647b616..85f875eea6 100644 --- a/_jobs_client_8cs.html +++ b/_jobs_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_jobs_client_8cs_source.html b/_jobs_client_8cs_source.html index ae2bea36f7..cda647a92f 100644 --- a/_jobs_client_8cs_source.html +++ b/_jobs_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_kek_command_8cs.html b/_kek_command_8cs.html index b0d1485a0e..01fa3594da 100644 --- a/_kek_command_8cs.html +++ b/_kek_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_kek_command_8cs_source.html b/_kek_command_8cs_source.html index 1bf5bac422..7ecf324dfd 100644 --- a/_kek_command_8cs_source.html +++ b/_kek_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_launch_result_8cs.html b/_launch_result_8cs.html index db5db5dfd4..9a4bb7e6d0 100644 --- a/_launch_result_8cs.html +++ b/_launch_result_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_launch_result_8cs_source.html b/_launch_result_8cs_source.html index df305ae06c..126e6d2646 100644 --- a/_launch_result_8cs_source.html +++ b/_launch_result_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_lib_git2_commands_8cs.html b/_lib_git2_commands_8cs.html index 54a3586ad6..c186108690 100644 --- a/_lib_git2_commands_8cs.html +++ b/_lib_git2_commands_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_lib_git2_commands_8cs_source.html b/_lib_git2_commands_8cs_source.html index 2f4d55ab17..ea45b20c49 100644 --- a/_lib_git2_commands_8cs_source.html +++ b/_lib_git2_commands_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_lib_git2_repository_factory_8cs.html b/_lib_git2_repository_factory_8cs.html index bc4e2d9fa5..f89b5d7b81 100644 --- a/_lib_git2_repository_factory_8cs.html +++ b/_lib_git2_repository_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_lib_git2_repository_factory_8cs_source.html b/_lib_git2_repository_factory_8cs_source.html index e118d98ac5..d90f6d2b71 100644 --- a/_lib_git2_repository_factory_8cs_source.html +++ b/_lib_git2_repository_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_limits_8cs.html b/_limits_8cs.html index 28748c467d..af9d576308 100644 --- a/_limits_8cs.html +++ b/_limits_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_limits_8cs_source.html b/_limits_8cs_source.html index 83d1c4bc94..6a9ca76907 100644 --- a/_limits_8cs_source.html +++ b/_limits_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_message_8cs.html b/_message_8cs.html index 4268ab0464..6f0d4a1c00 100644 --- a/_message_8cs.html +++ b/_message_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_message_8cs_source.html b/_message_8cs_source.html index 444ce2a5f8..0852ac00a0 100644 --- a/_message_8cs_source.html +++ b/_message_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_method_not_supported_exception_8cs.html b/_method_not_supported_exception_8cs.html index 5769a24aa2..b83e9b732b 100644 --- a/_method_not_supported_exception_8cs.html +++ b/_method_not_supported_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_method_not_supported_exception_8cs_source.html b/_method_not_supported_exception_8cs_source.html index 319ab8e7dc..1c0e1c5256 100644 --- a/_method_not_supported_exception_8cs_source.html +++ b/_method_not_supported_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_models_2_dual_reattach_information_8cs.html b/_models_2_dual_reattach_information_8cs.html index bd706c215a..ac76bbaeb9 100644 --- a/_models_2_dual_reattach_information_8cs.html +++ b/_models_2_dual_reattach_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_models_2_dual_reattach_information_8cs_source.html b/_models_2_dual_reattach_information_8cs_source.html index 78ff5f12b0..fb9dc544da 100644 --- a/_models_2_dual_reattach_information_8cs_source.html +++ b/_models_2_dual_reattach_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_models_2_reattach_information_8cs.html b/_models_2_reattach_information_8cs.html index 91ca2da75c..d3681a457e 100644 --- a/_models_2_reattach_information_8cs.html +++ b/_models_2_reattach_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_models_2_reattach_information_8cs_source.html b/_models_2_reattach_information_8cs_source.html index 21f8a87101..01b1b10423 100644 --- a/_models_2_reattach_information_8cs_source.html +++ b/_models_2_reattach_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_monitor_action_8cs.html b/_monitor_action_8cs.html index a4e21ad81b..61f8b9c23c 100644 --- a/_monitor_action_8cs.html +++ b/_monitor_action_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_monitor_action_8cs_source.html b/_monitor_action_8cs_source.html index 2b5f5d4fbb..d6f0cf1580 100644 --- a/_monitor_action_8cs_source.html +++ b/_monitor_action_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_monitor_activation_reason_8cs.html b/_monitor_activation_reason_8cs.html index 766a695091..64d4d20d3f 100644 --- a/_monitor_activation_reason_8cs.html +++ b/_monitor_activation_reason_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_monitor_activation_reason_8cs_source.html b/_monitor_activation_reason_8cs_source.html index e8eded70f1..02278fd34e 100644 --- a/_monitor_activation_reason_8cs_source.html +++ b/_monitor_activation_reason_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_monitor_state_8cs.html b/_monitor_state_8cs.html index 114d9d6915..a8ca342c1e 100644 --- a/_monitor_state_8cs.html +++ b/_monitor_state_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_monitor_state_8cs_source.html b/_monitor_state_8cs_source.html index 4ffb9d5e82..a27545ff92 100644 --- a/_monitor_state_8cs_source.html +++ b/_monitor_state_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_my_sql_database_context_8cs.html b/_my_sql_database_context_8cs.html index babd6923ad..a9e9ab93a1 100644 --- a/_my_sql_database_context_8cs.html +++ b/_my_sql_database_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_my_sql_database_context_8cs_source.html b/_my_sql_database_context_8cs_source.html index a8294bae85..8981f1104a 100644 --- a/_my_sql_database_context_8cs_source.html +++ b/_my_sql_database_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_my_sql_database_context_model_snapshot_8cs.html b/_my_sql_database_context_model_snapshot_8cs.html index 428f6f63a3..59b814ee3f 100644 --- a/_my_sql_database_context_model_snapshot_8cs.html +++ b/_my_sql_database_context_model_snapshot_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_my_sql_database_context_model_snapshot_8cs_source.html b/_my_sql_database_context_model_snapshot_8cs_source.html index e92b141b5f..835da20cb0 100644 --- a/_my_sql_database_context_model_snapshot_8cs_source.html +++ b/_my_sql_database_context_model_snapshot_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_my_sql_design_time_db_context_factory_8cs.html b/_my_sql_design_time_db_context_factory_8cs.html index 4982e14917..320adfe72b 100644 --- a/_my_sql_design_time_db_context_factory_8cs.html +++ b/_my_sql_design_time_db_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_my_sql_design_time_db_context_factory_8cs_source.html b/_my_sql_design_time_db_context_factory_8cs_source.html index 046a51bc3a..0d6e30fcaf 100644 --- a/_my_sql_design_time_db_context_factory_8cs_source.html +++ b/_my_sql_design_time_db_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_native_methods_8cs.html b/_native_methods_8cs.html index 7f57d8c78d..13157f1b54 100644 --- a/_native_methods_8cs.html +++ b/_native_methods_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_native_methods_8cs_source.html b/_native_methods_8cs_source.html index c861e96dab..9c8e97d2a1 100644 --- a/_native_methods_8cs_source.html +++ b/_native_methods_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_open_api_enum_var_names_extension_8cs.html b/_open_api_enum_var_names_extension_8cs.html index f9fdb7d11a..ae93190a54 100644 --- a/_open_api_enum_var_names_extension_8cs.html +++ b/_open_api_enum_var_names_extension_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_open_api_enum_var_names_extension_8cs_source.html b/_open_api_enum_var_names_extension_8cs_source.html index 0b2154dede..82533230da 100644 --- a/_open_api_enum_var_names_extension_8cs_source.html +++ b/_open_api_enum_var_names_extension_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_platform_identifier_8cs.html b/_platform_identifier_8cs.html index aef6426be9..c836cd705d 100644 --- a/_platform_identifier_8cs.html +++ b/_platform_identifier_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_platform_identifier_8cs_source.html b/_platform_identifier_8cs_source.html index 01b28c2947..45fd92c656 100644 --- a/_platform_identifier_8cs_source.html +++ b/_platform_identifier_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_byond_installer_8cs.html b/_posix_byond_installer_8cs.html index 78be1fcc7a..fc0fd8f293 100644 --- a/_posix_byond_installer_8cs.html +++ b/_posix_byond_installer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_byond_installer_8cs_source.html b/_posix_byond_installer_8cs_source.html index 3969154fa6..5fe02fcd97 100644 --- a/_posix_byond_installer_8cs_source.html +++ b/_posix_byond_installer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_network_prompt_reaper_8cs.html b/_posix_network_prompt_reaper_8cs.html index dd6f3ea4f9..726faefc7a 100644 --- a/_posix_network_prompt_reaper_8cs.html +++ b/_posix_network_prompt_reaper_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_network_prompt_reaper_8cs_source.html b/_posix_network_prompt_reaper_8cs_source.html index 92cc5a6ca1..4797562153 100644 --- a/_posix_network_prompt_reaper_8cs_source.html +++ b/_posix_network_prompt_reaper_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_post_write_handler_8cs.html b/_posix_post_write_handler_8cs.html index bf4d560cf0..5a28b35b9c 100644 --- a/_posix_post_write_handler_8cs.html +++ b/_posix_post_write_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_post_write_handler_8cs_source.html b/_posix_post_write_handler_8cs_source.html index 9ba026cb4e..0bbad87a9f 100644 --- a/_posix_post_write_handler_8cs_source.html +++ b/_posix_post_write_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_process_features_8cs.html b/_posix_process_features_8cs.html index a91baf1871..2961313a90 100644 --- a/_posix_process_features_8cs.html +++ b/_posix_process_features_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_process_features_8cs_source.html b/_posix_process_features_8cs_source.html index 62d6c27186..4a660d17a0 100644 --- a/_posix_process_features_8cs_source.html +++ b/_posix_process_features_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_symlink_factory_8cs.html b/_posix_symlink_factory_8cs.html index 2b0f14925f..2bf0cc8723 100644 --- a/_posix_symlink_factory_8cs.html +++ b/_posix_symlink_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_symlink_factory_8cs_source.html b/_posix_symlink_factory_8cs_source.html index 2cfc66fcde..f9f4bc82a6 100644 --- a/_posix_symlink_factory_8cs_source.html +++ b/_posix_symlink_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_system_identity_8cs.html b/_posix_system_identity_8cs.html index d118eb032b..075b613275 100644 --- a/_posix_system_identity_8cs.html +++ b/_posix_system_identity_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_system_identity_8cs_source.html b/_posix_system_identity_8cs_source.html index fae9270d99..9018abd1a3 100644 --- a/_posix_system_identity_8cs_source.html +++ b/_posix_system_identity_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_system_identity_factory_8cs.html b/_posix_system_identity_factory_8cs.html index c281538401..f625f4f28b 100644 --- a/_posix_system_identity_factory_8cs.html +++ b/_posix_system_identity_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_posix_system_identity_factory_8cs_source.html b/_posix_system_identity_factory_8cs_source.html index 5581362e5c..f3180d03f0 100644 --- a/_posix_system_identity_factory_8cs_source.html +++ b/_posix_system_identity_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_post_setup_services_8cs.html b/_post_setup_services_8cs.html index 9154c6afc9..fe0dabbcec 100644 --- a/_post_setup_services_8cs.html +++ b/_post_setup_services_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_post_setup_services_8cs_source.html b/_post_setup_services_8cs_source.html index 917bb41aed..a211c137c2 100644 --- a/_post_setup_services_8cs_source.html +++ b/_post_setup_services_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_postgres_sql_database_context_8cs.html b/_postgres_sql_database_context_8cs.html index 1052bc0a44..ba6f4da9d7 100644 --- a/_postgres_sql_database_context_8cs.html +++ b/_postgres_sql_database_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_postgres_sql_database_context_8cs_source.html b/_postgres_sql_database_context_8cs_source.html index 3c77bd182b..fe9333f586 100644 --- a/_postgres_sql_database_context_8cs_source.html +++ b/_postgres_sql_database_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_postgres_sql_database_context_model_snapshot_8cs.html b/_postgres_sql_database_context_model_snapshot_8cs.html index 7e06fee0e7..74581e233e 100644 --- a/_postgres_sql_database_context_model_snapshot_8cs.html +++ b/_postgres_sql_database_context_model_snapshot_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_postgres_sql_database_context_model_snapshot_8cs_source.html b/_postgres_sql_database_context_model_snapshot_8cs_source.html index 708b5a5fcf..eea841f74d 100644 --- a/_postgres_sql_database_context_model_snapshot_8cs_source.html +++ b/_postgres_sql_database_context_model_snapshot_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_postgres_sql_design_time_db_context_factory_8cs.html b/_postgres_sql_design_time_db_context_factory_8cs.html index a4b1eec059..39720c2e4c 100644 --- a/_postgres_sql_design_time_db_context_factory_8cs.html +++ b/_postgres_sql_design_time_db_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_postgres_sql_design_time_db_context_factory_8cs_source.html b/_postgres_sql_design_time_db_context_factory_8cs_source.html index f2ebbee6f7..f3eaa6fd77 100644 --- a/_postgres_sql_design_time_db_context_factory_8cs_source.html +++ b/_postgres_sql_design_time_db_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_process_8cs.html b/_process_8cs.html index d52c2bd0fb..7a4e7444a7 100644 --- a/_process_8cs.html +++ b/_process_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_process_8cs_source.html b/_process_8cs_source.html index ae58bcd504..24f2eacf96 100644 --- a/_process_8cs_source.html +++ b/_process_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_process_executor_8cs.html b/_process_executor_8cs.html index db26fafada..057150c22e 100644 --- a/_process_executor_8cs.html +++ b/_process_executor_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_process_executor_8cs_source.html b/_process_executor_8cs_source.html index 3a51fd1b48..8f5c9766aa 100644 --- a/_process_executor_8cs_source.html +++ b/_process_executor_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_program_8cs.html b/_program_8cs.html index f3fcd21a80..729ad4df7a 100644 --- a/_program_8cs.html +++ b/_program_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_program_8cs_source.html b/_program_8cs_source.html index edbf9501c1..c7185a0934 100644 --- a/_program_8cs_source.html +++ b/_program_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_program_shutdown_token_source_8cs.html b/_program_shutdown_token_source_8cs.html index 69f98bb7cc..ff49077021 100644 --- a/_program_shutdown_token_source_8cs.html +++ b/_program_shutdown_token_source_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_program_shutdown_token_source_8cs_source.html b/_program_shutdown_token_source_8cs_source.html index f82da758e1..d8172f0d57 100644 --- a/_program_shutdown_token_source_8cs_source.html +++ b/_program_shutdown_token_source_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_provider_8cs.html b/_provider_8cs.html index 01ffc3d7e8..177a18bea5 100644 --- a/_provider_8cs.html +++ b/_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_provider_8cs_source.html b/_provider_8cs_source.html index e97cd061f0..aad798f6d8 100644 --- a/_provider_8cs_source.html +++ b/_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_provider_factory_8cs.html b/_provider_factory_8cs.html index 5cb5383cf1..7339d98c47 100644 --- a/_provider_factory_8cs.html +++ b/_provider_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_provider_factory_8cs_source.html b/_provider_factory_8cs_source.html index 95e21e4d91..d3eed4d3e4 100644 --- a/_provider_factory_8cs_source.html +++ b/_provider_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_pull_requests_command_8cs.html b/_pull_requests_command_8cs.html index 904c56de65..8b8b2906f7 100644 --- a/_pull_requests_command_8cs.html +++ b/_pull_requests_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_pull_requests_command_8cs_source.html b/_pull_requests_command_8cs_source.html index d9bc0a89e4..a6b1df7afb 100644 --- a/_pull_requests_command_8cs_source.html +++ b/_pull_requests_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_r_e_a_d_m_e_8md.html b/_r_e_a_d_m_e_8md.html index 3a6c6cff40..a578fa3b54 100644 --- a/_r_e_a_d_m_e_8md.html +++ b/_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_r_e_a_d_m_e_8md_source.html b/_r_e_a_d_m_e_8md_source.html index de8e672d41..60bcaa6c93 100644 --- a/_r_e_a_d_m_e_8md_source.html +++ b/_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_rate_limit_exception_8cs.html b/_rate_limit_exception_8cs.html index 70cd33394b..ae3f8a13d9 100644 --- a/_rate_limit_exception_8cs.html +++ b/_rate_limit_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_rate_limit_exception_8cs_source.html b/_rate_limit_exception_8cs_source.html index a568ab8e4e..89427306a6 100644 --- a/_rate_limit_exception_8cs_source.html +++ b/_rate_limit_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_reattach_info_handler_8cs.html b/_reattach_info_handler_8cs.html index dfabcb4b26..9aa18391f4 100644 --- a/_reattach_info_handler_8cs.html +++ b/_reattach_info_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_reattach_info_handler_8cs_source.html b/_reattach_info_handler_8cs_source.html index 864977597f..ea3e23e517 100644 --- a/_reattach_info_handler_8cs_source.html +++ b/_reattach_info_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_reattach_information_base_8cs.html b/_reattach_information_base_8cs.html index 95f173cd21..fbea939c90 100644 --- a/_reattach_information_base_8cs.html +++ b/_reattach_information_base_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_reattach_information_base_8cs_source.html b/_reattach_information_base_8cs_source.html index 022cbf8751..6ce7d67516 100644 --- a/_reattach_information_base_8cs_source.html +++ b/_reattach_information_base_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_reboot_state_8cs.html b/_reboot_state_8cs.html index 7c658ea835..664900f370 100644 --- a/_reboot_state_8cs.html +++ b/_reboot_state_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_reboot_state_8cs_source.html b/_reboot_state_8cs_source.html index 90b874ab94..e3839517bd 100644 --- a/_reboot_state_8cs_source.html +++ b/_reboot_state_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_repository_client_8cs.html b/_repository_client_8cs.html index 34b3940773..aef0c40aa8 100644 --- a/_repository_client_8cs.html +++ b/_repository_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_repository_client_8cs_source.html b/_repository_client_8cs_source.html index 9e05f15188..80fcef47c1 100644 --- a/_repository_client_8cs_source.html +++ b/_repository_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_repository_controller_8cs.html b/_repository_controller_8cs.html index 53a166f338..c6875d2f5d 100644 --- a/_repository_controller_8cs.html +++ b/_repository_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_repository_controller_8cs_source.html b/_repository_controller_8cs_source.html index c10664d89a..be56d57696 100644 --- a/_repository_controller_8cs_source.html +++ b/_repository_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_repository_manager_8cs.html b/_repository_manager_8cs.html index a24d40395d..54204b59b6 100644 --- a/_repository_manager_8cs.html +++ b/_repository_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_repository_manager_8cs_source.html b/_repository_manager_8cs_source.html index af8eb12bdb..93e4bf95d6 100644 --- a/_repository_manager_8cs_source.html +++ b/_repository_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_repository_rights_8cs.html b/_repository_rights_8cs.html index 4ab0599bbd..455f38c63f 100644 --- a/_repository_rights_8cs.html +++ b/_repository_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_repository_rights_8cs_source.html b/_repository_rights_8cs_source.html index 0710baac81..0ec007434f 100644 --- a/_repository_rights_8cs_source.html +++ b/_repository_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_request_timeout_exception_8cs.html b/_request_timeout_exception_8cs.html index 86bc344673..d348f14e2f 100644 --- a/_request_timeout_exception_8cs.html +++ b/_request_timeout_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_request_timeout_exception_8cs_source.html b/_request_timeout_exception_8cs_source.html index f73571dc2f..61f87a537a 100644 --- a/_request_timeout_exception_8cs_source.html +++ b/_request_timeout_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_resolving_i_o_manager_8cs.html b/_resolving_i_o_manager_8cs.html index 5028c45e3f..c066efb18d 100644 --- a/_resolving_i_o_manager_8cs.html +++ b/_resolving_i_o_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_resolving_i_o_manager_8cs_source.html b/_resolving_i_o_manager_8cs_source.html index 59eed0265f..7515f58887 100644 --- a/_resolving_i_o_manager_8cs_source.html +++ b/_resolving_i_o_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_restart_registration_8cs.html b/_restart_registration_8cs.html index 055ec46361..6e77ce2a03 100644 --- a/_restart_registration_8cs.html +++ b/_restart_registration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_restart_registration_8cs_source.html b/_restart_registration_8cs_source.html index 335e389ef1..3f5254fad3 100644 --- a/_restart_registration_8cs_source.html +++ b/_restart_registration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_rev_info_test_merge_8cs.html b/_rev_info_test_merge_8cs.html index f92d877f4b..a5911ab452 100644 --- a/_rev_info_test_merge_8cs.html +++ b/_rev_info_test_merge_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_rev_info_test_merge_8cs_source.html b/_rev_info_test_merge_8cs_source.html index 7e53a0b779..0e64addaef 100644 --- a/_rev_info_test_merge_8cs_source.html +++ b/_rev_info_test_merge_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_revision_command_8cs.html b/_revision_command_8cs.html index 3a54a20ed3..320ee37ec2 100644 --- a/_revision_command_8cs.html +++ b/_revision_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_revision_command_8cs_source.html b/_revision_command_8cs_source.html index bf369c1d7b..0b0198446b 100644 --- a/_revision_command_8cs_source.html +++ b/_revision_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_rights_helper_8cs.html b/_rights_helper_8cs.html index 42ded87cc4..68cd8b04f3 100644 --- a/_rights_helper_8cs.html +++ b/_rights_helper_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_rights_helper_8cs_source.html b/_rights_helper_8cs_source.html index 0086d2dc93..e391f9baf0 100644 --- a/_rights_helper_8cs_source.html +++ b/_rights_helper_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_rights_type_8cs.html b/_rights_type_8cs.html index cbc359236b..160c1ec8e4 100644 --- a/_rights_type_8cs.html +++ b/_rights_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_rights_type_8cs_source.html b/_rights_type_8cs_source.html index 5cee5570a2..6cbe2c2e5b 100644 --- a/_rights_type_8cs_source.html +++ b/_rights_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_routes_8cs.html b/_routes_8cs.html index d99452b44e..d1d502b69b 100644 --- a/_routes_8cs.html +++ b/_routes_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_routes_8cs_source.html b/_routes_8cs_source.html index 183994944b..2b9a14f5e6 100644 --- a/_routes_8cs_source.html +++ b/_routes_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_runtime_information_8cs.html b/_runtime_information_8cs.html index bfc48c5988..c3f9fa716f 100644 --- a/_runtime_information_8cs.html +++ b/_runtime_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_runtime_information_8cs_source.html b/_runtime_information_8cs_source.html index f47262d439..079c3ed3c0 100644 --- a/_runtime_information_8cs_source.html +++ b/_runtime_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_semaphore_slim_context_8cs.html b/_semaphore_slim_context_8cs.html index fc6d48dca2..baae7bd9da 100644 --- a/_semaphore_slim_context_8cs.html +++ b/_semaphore_slim_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_semaphore_slim_context_8cs_source.html b/_semaphore_slim_context_8cs_source.html index 8343d357d4..4a16cf2d19 100644 --- a/_semaphore_slim_context_8cs_source.html +++ b/_semaphore_slim_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_8cs.html b/_server_8cs.html index b5ae7e7428..e0908f068e 100644 --- a/_server_8cs.html +++ b/_server_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_8cs_source.html b/_server_8cs_source.html index da584d7a32..cec5eb14c4 100644 --- a/_server_8cs_source.html +++ b/_server_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_client_8cs.html b/_server_client_8cs.html index 95c33bfbfc..5014a518aa 100644 --- a/_server_client_8cs.html +++ b/_server_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_client_8cs_source.html b/_server_client_8cs_source.html index 6b20a71c33..69efd7d9a9 100644 --- a/_server_client_8cs_source.html +++ b/_server_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_client_factory_8cs.html b/_server_client_factory_8cs.html index ab6b9dab8a..14307d237c 100644 --- a/_server_client_factory_8cs.html +++ b/_server_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_client_factory_8cs_source.html b/_server_client_factory_8cs_source.html index 4c7a92be39..016975c1d1 100644 --- a/_server_client_factory_8cs_source.html +++ b/_server_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_error_exception_8cs.html b/_server_error_exception_8cs.html index 950b7f1a71..c8f929bded 100644 --- a/_server_error_exception_8cs.html +++ b/_server_error_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_error_exception_8cs_source.html b/_server_error_exception_8cs_source.html index 2c8faad91b..98c3429ff7 100644 --- a/_server_error_exception_8cs_source.html +++ b/_server_error_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_factory_8cs.html b/_server_factory_8cs.html index 4b1c8b304c..c81a0ca948 100644 --- a/_server_factory_8cs.html +++ b/_server_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_factory_8cs_source.html b/_server_factory_8cs_source.html index 8ea0dcb34f..1791b3a764 100644 --- a/_server_factory_8cs_source.html +++ b/_server_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_information_8cs.html b/_server_information_8cs.html index 28a1fed99d..fe2e1bfd2f 100644 --- a/_server_information_8cs.html +++ b/_server_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_information_8cs_source.html b/_server_information_8cs_source.html index fc71141d81..f5f78af199 100644 --- a/_server_information_8cs_source.html +++ b/_server_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_port_proivder_8cs.html b/_server_port_proivder_8cs.html index 03a98044e5..aabf6cf609 100644 --- a/_server_port_proivder_8cs.html +++ b/_server_port_proivder_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_port_proivder_8cs_source.html b/_server_port_proivder_8cs_source.html index c5dd2fa2c2..a3cbed3ff6 100644 --- a/_server_port_proivder_8cs_source.html +++ b/_server_port_proivder_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_service_8cs.html b/_server_service_8cs.html index 4ff54ab750..b34b7666b9 100644 --- a/_server_service_8cs.html +++ b/_server_service_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_service_8cs_source.html b/_server_service_8cs_source.html index 9e02578c19..ca22a92c55 100644 --- a/_server_service_8cs_source.html +++ b/_server_service_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_side_modifications_8cs.html b/_server_side_modifications_8cs.html index d28f6a6594..bc41fe8db4 100644 --- a/_server_side_modifications_8cs.html +++ b/_server_side_modifications_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_server_side_modifications_8cs_source.html b/_server_side_modifications_8cs_source.html index a7880cea3d..c432db09f9 100644 --- a/_server_side_modifications_8cs_source.html +++ b/_server_side_modifications_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_service_2_program_8cs.html b/_service_2_program_8cs.html index cb7d4af3d8..78f28ebb44 100644 --- a/_service_2_program_8cs.html +++ b/_service_2_program_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_service_2_program_8cs_source.html b/_service_2_program_8cs_source.html index 71a6a3a1e6..5059f90f1f 100644 --- a/_service_2_program_8cs_source.html +++ b/_service_2_program_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_service_collection_extensions_8cs.html b/_service_collection_extensions_8cs.html index 0f3ebd2a32..0c56c889ef 100644 --- a/_service_collection_extensions_8cs.html +++ b/_service_collection_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_service_collection_extensions_8cs_source.html b/_service_collection_extensions_8cs_source.html index ce0070a508..87328e3d9d 100644 --- a/_service_collection_extensions_8cs_source.html +++ b/_service_collection_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_service_unavailable_exception_8cs.html b/_service_unavailable_exception_8cs.html index 26ca6c93e4..4564d413c9 100644 --- a/_service_unavailable_exception_8cs.html +++ b/_service_unavailable_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_service_unavailable_exception_8cs_source.html b/_service_unavailable_exception_8cs_source.html index d13b07b138..4ee6a840c9 100644 --- a/_service_unavailable_exception_8cs_source.html +++ b/_service_unavailable_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_session_controller_8cs.html b/_session_controller_8cs.html index 3c0dfdab7a..9aeb2949d4 100644 --- a/_session_controller_8cs.html +++ b/_session_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_session_controller_8cs_source.html b/_session_controller_8cs_source.html index af5a51a545..e323555208 100644 --- a/_session_controller_8cs_source.html +++ b/_session_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
SessionController.cs
-Go to the documentation of this file.
1 using Byond.TopicSender;
2 using Microsoft.Extensions.Logging;
3 using Newtonsoft.Json;
4 using System;
5 using System.Collections.Generic;
6 using System.Globalization;
7 using System.Linq;
8 using System.Net;
9 using System.Threading;
10 using System.Threading.Tasks;
11 using Tgstation.Server.Api;
20 
21 namespace Tgstation.Server.Host.Components.Session
22 {
25  {
27  public DMApiParameters DMApiParameters => reattachInformation;
28 
30  public bool IsPrimary
31  {
32  get
33  {
34  CheckDisposed();
35  return reattachInformation.IsPrimary;
36  }
37  }
38 
41  {
42  get
43  {
44  if (!Lifetime.IsCompleted)
45  throw new InvalidOperationException("ApiValidated cannot be checked while Lifetime is incomplete!");
46  return apiValidationStatus;
47  }
48  }
49 
51  public IDmbProvider Dmb
52  {
53  get
54  {
55  CheckDisposed();
56  return reattachInformation.Dmb;
57  }
58  }
59 
61  public ushort? Port
62  {
63  get
64  {
65  CheckDisposed();
66  if (portClosedForReboot)
67  return null;
68  return reattachInformation.Port;
69  }
70  }
71 
74  {
75  get
76  {
77  CheckDisposed();
78  return reattachInformation.RebootState;
79  }
80  }
81 
83  public Version DMApiVersion { get; private set; }
84 
86  public bool ClosePortOnReboot { get; set; }
87 
89  public bool TerminationWasRequested { get; private set; }
90 
92  public Task<LaunchResult> LaunchResult { get; }
93 
95  public Task<int> Lifetime => process.Lifetime;
96 
98  public Task OnReboot => rebootTcs.Task;
99 
101  public Task OnPrime => primeTcs.Task;
102 
107 
111  readonly CancellationTokenSource reattachTopicCts;
112 
116  readonly ITopicClient byondTopicSender;
117 
122 
126  readonly IProcess process;
127 
132 
137 
141  readonly IChatManager chat;
142 
146  readonly ILogger<SessionController> logger;
147 
151  readonly object synchronizationLock;
152 
156  TaskCompletionSource<bool> portAssignmentTcs;
157 
161  ushort? nextPort;
162 
166  TaskCompletionSource<object> rebootTcs;
167 
171  TaskCompletionSource<object> primeTcs;
172 
177 
181  bool disposed;
182 
187 
191  bool released;
192 
208  ReattachInformation reattachInformation,
209  IProcess process,
210  IByondExecutableLock byondLock,
211  ITopicClient byondTopicSender,
212  IChatTrackingContext chatTrackingContext,
213  IBridgeRegistrar bridgeRegistrar,
214  IChatManager chat,
215  IAssemblyInformationProvider assemblyInformationProvider,
216  ILogger<SessionController> logger,
217  uint? startupTimeout,
218  bool reattached)
219  {
220  this.reattachInformation = reattachInformation ?? throw new ArgumentNullException(nameof(reattachInformation));
221  this.process = process ?? throw new ArgumentNullException(nameof(process));
222  this.byondLock = byondLock ?? throw new ArgumentNullException(nameof(byondLock));
223  this.byondTopicSender = byondTopicSender ?? throw new ArgumentNullException(nameof(byondTopicSender));
224  this.chatTrackingContext = chatTrackingContext ?? throw new ArgumentNullException(nameof(chatTrackingContext));
225  bridgeRegistration = bridgeRegistrar?.RegisterHandler(this) ?? throw new ArgumentNullException(nameof(bridgeRegistrar));
226  this.chat = chat ?? throw new ArgumentNullException(nameof(chat));
227  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
228 
229  this.chatTrackingContext.SetChannelSink(this);
230 
231  portClosedForReboot = false;
232  disposed = false;
233  apiValidationStatus = ApiValidationStatus.NeverValidated;
234  released = false;
235 
236  rebootTcs = new TaskCompletionSource<object>();
237  primeTcs = new TaskCompletionSource<object>();
238  reattachTopicCts = new CancellationTokenSource();
239  synchronizationLock = new object();
240 
241  _ = process.Lifetime.ContinueWith(
242  x =>
243  {
244  if (!disposed)
245  reattachTopicCts.Cancel();
246  chatTrackingContext.Active = false;
247  },
248  TaskScheduler.Current);
249 
250  LaunchResult = GetLaunchResult(
251  assemblyInformationProvider,
252  startupTimeout,
253  reattached);
254 
255  logger.LogDebug("Created session controller. Primary: {0}, CommsKey: {1}, Port: {2}", IsPrimary, reattachInformation.AccessIdentifier, Port);
256  }
257 
262 #pragma warning disable CA1821 // Remove empty Finalizers TODO: remove this when https://github.com/dotnet/roslyn-analyzers/issues/1241 is fixed
263  ~SessionController() => Dispose(false);
264 #pragma warning restore CA1821 // Remove empty Finalizers
265 
267  public void Dispose()
268  {
269  Dispose(true);
270  GC.SuppressFinalize(this);
271  }
272 
277  void Dispose(bool disposing)
278  {
279  lock (synchronizationLock)
280  {
281  if (disposed)
282  return;
283  if (disposing)
284  {
285  if (!released)
286  {
287  process.Terminate();
288  byondLock.Dispose();
289  }
290 
291  process.Dispose();
292  bridgeRegistration.Dispose();
293  Dmb?.Dispose(); // will be null when released
294  chatTrackingContext.Dispose();
295  reattachTopicCts.Dispose();
296  disposed = true;
297  }
298  else
299  {
300  if (logger != null)
301  logger.LogError("Being disposed via finalizer!");
302  if (!released)
303  if (process != null)
304  process.Terminate();
305  else if (logger != null)
306  logger.LogCritical("Unable to terminate active DreamDaemon session due to finalizer ordering!");
307  }
308  }
309  }
310 
318  async Task<LaunchResult> GetLaunchResult(
319  IAssemblyInformationProvider assemblyInformationProvider,
320  uint? startupTimeout,
321  bool reattached)
322  {
323  var startTime = DateTimeOffset.Now;
324  Task toAwait = process.Startup;
325 
326  if (startupTimeout.HasValue)
327  toAwait = Task.WhenAny(process.Startup, Task.Delay(startTime.AddSeconds(startupTimeout.Value) - startTime));
328 
329  await toAwait.ConfigureAwait(false);
330 
331  var result = new LaunchResult
332  {
333  ExitCode = process.Lifetime.IsCompleted ? (int?)await process.Lifetime.ConfigureAwait(false) : null,
334  StartupTime = process.Startup.IsCompleted ? (TimeSpan?)(DateTimeOffset.Now - startTime) : null
335  };
336 
337  logger.LogTrace("Launch result: {0}", result);
338 
339  if (!result.ExitCode.HasValue && reattached && !disposed)
340  {
341  var reattachResponse = await SendCommand(
342  new TopicParameters(
343  assemblyInformationProvider.Version,
344  reattachInformation.RuntimeInformation.ServerPort),
345  reattachTopicCts.Token)
346  .ConfigureAwait(false);
347 
348  if (reattachResponse.InteropResponse?.CustomCommands != null)
349  chatTrackingContext.CustomCommands = reattachResponse.InteropResponse.CustomCommands;
350  else if (reattachResponse.InteropResponse != null)
351  logger.LogWarning(
352  "DMAPI v{0} isn't returning the TGS custom commands list. Functionality added in v5.2.0.",
353  Dmb.CompileJob.DMApiVersion.Semver());
354  }
355 
356  return result;
357  }
358 
360  public async Task<BridgeResponse> ProcessBridgeRequest(BridgeParameters parameters, CancellationToken cancellationToken)
361  {
362  if (parameters == null)
363  throw new ArgumentNullException(nameof(parameters));
364 
365  var response = new BridgeResponse();
366  switch (parameters.CommandType)
367  {
368  case BridgeCommandType.ChatSend:
369  if (parameters.ChatMessage == null)
370  return new BridgeResponse
371  {
372  ErrorMessage = "Missing chatMessage field!"
373  };
374 
375  if (parameters.ChatMessage.ChannelIds == null)
376  return new BridgeResponse
377  {
378  ErrorMessage = "Missing channelIds field in chatMessage!"
379  };
380 
381  if(parameters.ChatMessage.ChannelIds.Any(channelIdString => !UInt64.TryParse(channelIdString, out var _)))
382  return new BridgeResponse
383  {
384  ErrorMessage = "Invalid channelIds in chatMessage!"
385  };
386 
387  if (parameters.ChatMessage.Text == null)
388  return new BridgeResponse
389  {
390  ErrorMessage = "Missing message field in chatMessage!"
391  };
392 
393  await chat.SendMessage(
394  parameters.ChatMessage.Text,
395  parameters.ChatMessage.ChannelIds.Select(UInt64.Parse),
396  cancellationToken).ConfigureAwait(false);
397  break;
398  case BridgeCommandType.Prime:
399  var oldPrimeTcs = primeTcs;
400  primeTcs = new TaskCompletionSource<object>();
401  oldPrimeTcs.SetResult(null);
402  break;
403  case BridgeCommandType.Kill:
404  logger.LogInformation("Bridge requested process termination!");
405  TerminationWasRequested = true;
406  process.Terminate();
407  break;
408  case BridgeCommandType.PortUpdate:
409  lock (synchronizationLock)
410  {
411  if (!parameters.CurrentPort.HasValue)
412  {
414  logger.LogWarning("DreamDaemon sent new port command without providing it's own!");
415  return new BridgeResponse
416  {
417  ErrorMessage = "Missing stringified port as data parameter!"
418  };
419  }
420 
421  var currentPort = parameters.CurrentPort.Value;
422  if (!nextPort.HasValue)
423  reattachInformation.Port = parameters.CurrentPort.Value; // not ready yet, so what we'll do is accept the random port DD opened on for now and change it later when we decide to
424  else
425  {
426  // nextPort is ready, tell DD to switch to that
427  // if it fails it'll kill itself
428  response.NewPort = nextPort.Value;
429  reattachInformation.Port = nextPort.Value;
430  nextPort = null;
431 
432  // we'll also get here from SetPort so complete that task
433  var tmpTcs = portAssignmentTcs;
434  portAssignmentTcs = null;
435  tmpTcs.SetResult(true);
436  }
437 
438  portClosedForReboot = false;
439  }
440 
441  break;
442  case BridgeCommandType.Startup:
443  apiValidationStatus = ApiValidationStatus.BadValidationRequest;
444  if (parameters.Version == null)
445  return new BridgeResponse
446  {
447  ErrorMessage = "Missing dmApiVersion field!"
448  };
449 
450  DMApiVersion = parameters.Version;
451  switch (parameters.MinimumSecurityLevel)
452  {
453  case DreamDaemonSecurity.Ultrasafe:
454  apiValidationStatus = ApiValidationStatus.RequiresUltrasafe;
455  break;
456  case DreamDaemonSecurity.Safe:
457  apiValidationStatus = ApiValidationStatus.RequiresSafe;
458  break;
459  case DreamDaemonSecurity.Trusted:
460  apiValidationStatus = ApiValidationStatus.RequiresTrusted;
461  break;
462  case null:
463  return new BridgeResponse
464  {
465  ErrorMessage = "Missing minimumSecurityLevel field!"
466  };
467  default:
468  return new BridgeResponse
469  {
470  ErrorMessage = "Invalid minimumSecurityLevel!"
471  };
472  }
473 
474  response.RuntimeInformation = reattachInformation.RuntimeInformation;
475 
476  // Load custom commands
477  chatTrackingContext.CustomCommands = parameters.CustomCommands;
478  break;
479  case BridgeCommandType.Reboot:
480  if (ClosePortOnReboot)
481  {
482  chatTrackingContext.Active = false;
483  response.NewPort = 0;
484  portClosedForReboot = true;
485  }
486 
487  var oldRebootTcs = rebootTcs;
488  rebootTcs = new TaskCompletionSource<object>();
489  oldRebootTcs.SetResult(null);
490  break;
491  case null:
492  response.ErrorMessage = "Missing commandType!";
493  break;
494  default:
495  response.ErrorMessage = "Requested commandType not supported!";
496  break;
497  }
498 
499  return response;
500  }
501 
506  {
507  if (disposed)
508  throw new ObjectDisposedException(nameof(SessionController));
509  }
510 
512  public void EnableCustomChatCommands() => chatTrackingContext.Active = true;
513 
516  {
517  CheckDisposed();
518 
519  // we still don't want to dispose the dmb yet, even though we're keeping it alive
520  var tmpProvider = reattachInformation.Dmb;
521  reattachInformation.Dmb = null;
522  released = true;
523  Dispose();
524  byondLock.DoNotDeleteThisSession();
525  tmpProvider.KeepAlive();
526  reattachInformation.Dmb = tmpProvider;
527  return reattachInformation;
528  }
529 
531  public async Task<CombinedTopicResponse> SendCommand(TopicParameters parameters, CancellationToken cancellationToken)
532  {
533  if (Lifetime.IsCompleted)
534  {
535  logger.LogWarning(
536  "Attempted to send a command to an inactive SessionController: {0}",
537  parameters.CommandType);
538  return null;
539  }
540 
541  parameters.AccessIdentifier = reattachInformation.AccessIdentifier;
542 
543  var json = JsonConvert.SerializeObject(parameters, DMApiConstants.SerializerSettings);
544  logger.LogTrace("Topic request: {0}", json);
545  try
546  {
547  var commandString = String.Format(CultureInfo.InvariantCulture,
548  "?{0}={1}",
549  byondTopicSender.SanitizeString(DMApiConstants.TopicData),
550  byondTopicSender.SanitizeString(json));
551 
552  var targetPort = reattachInformation.Port;
553 
554  var topicResponse = await byondTopicSender.SendTopic(
555  new IPEndPoint(IPAddress.Loopback, targetPort),
556  commandString,
557  cancellationToken).ConfigureAwait(false);
558 
559  var topicReturn = topicResponse.StringData;
560 
561  Interop.Topic.TopicResponse interopResponse = null;
562  if (topicReturn != null)
563  try
564  {
565  interopResponse = JsonConvert.DeserializeObject<Interop.Topic.TopicResponse>(topicReturn, DMApiConstants.SerializerSettings);
566  if (interopResponse.ErrorMessage != null)
567  {
568  logger.LogWarning("Errored topic response for command {0}: {1}", parameters.CommandType, interopResponse.ErrorMessage);
569  }
570 
571  logger.LogTrace("Interop response: {0}", topicReturn);
572  }
573  catch
574  {
575  logger.LogWarning("Invalid interop response: {0}", topicReturn);
576  }
577 
578  return new CombinedTopicResponse(topicResponse, interopResponse);
579  }
580  catch (OperationCanceledException)
581  {
582  logger.LogTrace(
583  "Topic request {0}!",
584  cancellationToken.IsCancellationRequested
585  ? "aborted"
586  : "timed out");
587  cancellationToken.ThrowIfCancellationRequested();
588  }
589  catch (Exception e)
590  {
591  logger.LogWarning("Send command exception:{0}{1}", Environment.NewLine, e);
592  }
593 
594  return null;
595  }
596 
598  public Task<bool> SetPort(ushort port, CancellationToken cancellationToken)
599  {
600  CheckDisposed();
601 
602  if (port == 0)
603  throw new ArgumentOutOfRangeException(nameof(port), port, "port must not be zero!");
604 
605  async Task<bool> ImmediateTopicPortChange()
606  {
607  var commandResult = await SendCommand(
608  new TopicParameters(port),
609  cancellationToken)
610  .ConfigureAwait(false);
611 
612  if (commandResult.InteropResponse?.ErrorMessage != null)
613  return false;
614 
615  reattachInformation.Port = port;
616  return true;
617  }
618 
619  lock (synchronizationLock)
620  if (portClosedForReboot)
621  {
622  if (portAssignmentTcs != null)
623  throw new InvalidOperationException("A port change operation is already in progress!");
624  nextPort = port;
625  portAssignmentTcs = new TaskCompletionSource<bool>();
626  return portAssignmentTcs.Task;
627  }
628  else
629  return ImmediateTopicPortChange();
630  }
631 
633  public async Task<bool> SetRebootState(RebootState newRebootState, CancellationToken cancellationToken)
634  {
635  if (RebootState == newRebootState)
636  return true;
637 
638  logger.LogTrace("Changing reboot state to {0}", newRebootState);
639 
640  reattachInformation.RebootState = newRebootState;
641  var result = await SendCommand(
642  new TopicParameters(newRebootState),
643  cancellationToken)
644  .ConfigureAwait(false);
645 
646  return result?.InteropResponse != null && result.InteropResponse?.ErrorMessage == null;
647  }
648 
650  public void ResetRebootState()
651  {
652  CheckDisposed();
653  logger.LogTrace("Resetting reboot state...");
654  reattachInformation.RebootState = RebootState.Normal;
655  }
656 
658  public void SetHighPriority() => process.SetHighPriority();
659 
661  public void Suspend() => process.Suspend();
662 
664  public void Resume() => process.Resume();
665 
667  public void ReplaceDmbProvider(IDmbProvider dmbProvider)
668  {
669  var oldDmb = reattachInformation.Dmb;
670  reattachInformation.Dmb = dmbProvider ?? throw new ArgumentNullException(nameof(dmbProvider));
671  oldDmb.Dispose();
672  }
673 
675  public Task InstanceRenamed(string newInstanceName, CancellationToken cancellationToken)
676  => SendCommand(new TopicParameters(newInstanceName), cancellationToken);
677 
679  public Task UpdateChannels(IEnumerable<ChannelRepresentation> newChannels, CancellationToken cancellationToken)
680  => SendCommand(
681  new TopicParameters(
682  new ChatUpdate(newChannels)),
683  cancellationToken);
684  }
685 }
readonly CancellationTokenSource reattachTopicCts
A CancellationTokenSource used for the topic send operation made on reattaching.
+Go to the documentation of this file.
1 using Byond.TopicSender;
2 using Microsoft.Extensions.Logging;
3 using Newtonsoft.Json;
4 using System;
5 using System.Collections.Generic;
6 using System.Globalization;
7 using System.Linq;
8 using System.Net;
9 using System.Threading;
10 using System.Threading.Tasks;
11 using Tgstation.Server.Api;
20 
21 namespace Tgstation.Server.Host.Components.Session
22 {
25  {
27  public DMApiParameters DMApiParameters => reattachInformation;
28 
30  public bool IsPrimary
31  {
32  get
33  {
34  CheckDisposed();
35  return reattachInformation.IsPrimary;
36  }
37  }
38 
41  {
42  get
43  {
44  if (!Lifetime.IsCompleted)
45  throw new InvalidOperationException("ApiValidated cannot be checked while Lifetime is incomplete!");
46  return apiValidationStatus;
47  }
48  }
49 
51  public IDmbProvider Dmb
52  {
53  get
54  {
55  CheckDisposed();
56  return reattachInformation.Dmb;
57  }
58  }
59 
61  public ushort? Port
62  {
63  get
64  {
65  CheckDisposed();
66  if (portClosedForReboot)
67  return null;
68  return reattachInformation.Port;
69  }
70  }
71 
74  {
75  get
76  {
77  CheckDisposed();
78  return reattachInformation.RebootState;
79  }
80  }
81 
83  public Version DMApiVersion { get; private set; }
84 
86  public bool ClosePortOnReboot { get; set; }
87 
89  public bool TerminationWasRequested { get; private set; }
90 
92  public Task<LaunchResult> LaunchResult { get; }
93 
95  public Task<int> Lifetime => process.Lifetime;
96 
98  public Task OnReboot => rebootTcs.Task;
99 
101  public Task OnPrime => primeTcs.Task;
102 
107 
111  readonly CancellationTokenSource reattachTopicCts;
112 
116  readonly ITopicClient byondTopicSender;
117 
122 
126  readonly IProcess process;
127 
132 
137 
141  readonly IChatManager chat;
142 
146  readonly ILogger<SessionController> logger;
147 
151  readonly object synchronizationLock;
152 
156  TaskCompletionSource<bool> portAssignmentTcs;
157 
161  ushort? nextPort;
162 
166  TaskCompletionSource<object> rebootTcs;
167 
171  TaskCompletionSource<object> primeTcs;
172 
177 
181  bool disposed;
182 
187 
191  bool released;
192 
208  ReattachInformation reattachInformation,
209  IProcess process,
210  IByondExecutableLock byondLock,
211  ITopicClient byondTopicSender,
212  IChatTrackingContext chatTrackingContext,
213  IBridgeRegistrar bridgeRegistrar,
214  IChatManager chat,
215  IAssemblyInformationProvider assemblyInformationProvider,
216  ILogger<SessionController> logger,
217  uint? startupTimeout,
218  bool reattached)
219  {
220  this.reattachInformation = reattachInformation ?? throw new ArgumentNullException(nameof(reattachInformation));
221  this.process = process ?? throw new ArgumentNullException(nameof(process));
222  this.byondLock = byondLock ?? throw new ArgumentNullException(nameof(byondLock));
223  this.byondTopicSender = byondTopicSender ?? throw new ArgumentNullException(nameof(byondTopicSender));
224  this.chatTrackingContext = chatTrackingContext ?? throw new ArgumentNullException(nameof(chatTrackingContext));
225  bridgeRegistration = bridgeRegistrar?.RegisterHandler(this) ?? throw new ArgumentNullException(nameof(bridgeRegistrar));
226  this.chat = chat ?? throw new ArgumentNullException(nameof(chat));
227  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
228 
229  this.chatTrackingContext.SetChannelSink(this);
230 
231  portClosedForReboot = false;
232  disposed = false;
233  apiValidationStatus = ApiValidationStatus.NeverValidated;
234  released = false;
235 
236  rebootTcs = new TaskCompletionSource<object>();
237  primeTcs = new TaskCompletionSource<object>();
238  reattachTopicCts = new CancellationTokenSource();
239  synchronizationLock = new object();
240 
241  _ = process.Lifetime.ContinueWith(
242  x =>
243  {
244  lock (synchronizationLock)
245  if (!disposed)
246  reattachTopicCts.Cancel();
247  chatTrackingContext.Active = false;
248  },
249  TaskScheduler.Current);
250 
251  LaunchResult = GetLaunchResult(
252  assemblyInformationProvider,
253  startupTimeout,
254  reattached);
255 
256  logger.LogDebug("Created session controller. Primary: {0}, CommsKey: {1}, Port: {2}", IsPrimary, reattachInformation.AccessIdentifier, Port);
257  }
258 
263 #pragma warning disable CA1821 // Remove empty Finalizers TODO: remove this when https://github.com/dotnet/roslyn-analyzers/issues/1241 is fixed
264  ~SessionController() => Dispose(false);
265 #pragma warning restore CA1821 // Remove empty Finalizers
266 
268  public void Dispose()
269  {
270  Dispose(true);
271  GC.SuppressFinalize(this);
272  }
273 
278  void Dispose(bool disposing)
279  {
280  lock (synchronizationLock)
281  {
282  if (disposed)
283  return;
284  disposed = true;
285  logger.LogTrace("Disposing...");
286  if (disposing)
287  {
288  if (!released)
289  {
290  process.Terminate();
291  byondLock.Dispose();
292  }
293 
294  process.Dispose();
295  bridgeRegistration.Dispose();
296  reattachInformation.Dmb?.Dispose(); // will be null when released
297  chatTrackingContext.Dispose();
298  reattachTopicCts.Dispose();
299  }
300  else
301  {
302  if (logger != null)
303  logger.LogError("Being disposed via finalizer!");
304  if (!released)
305  if (process != null)
306  process.Terminate();
307  else if (logger != null)
308  logger.LogCritical("Unable to terminate active DreamDaemon session due to finalizer ordering!");
309  }
310  }
311  }
312 
320  async Task<LaunchResult> GetLaunchResult(
321  IAssemblyInformationProvider assemblyInformationProvider,
322  uint? startupTimeout,
323  bool reattached)
324  {
325  var startTime = DateTimeOffset.Now;
326  Task toAwait = process.Startup;
327 
328  if (startupTimeout.HasValue)
329  toAwait = Task.WhenAny(process.Startup, Task.Delay(startTime.AddSeconds(startupTimeout.Value) - startTime));
330 
331  await toAwait.ConfigureAwait(false);
332 
333  var result = new LaunchResult
334  {
335  ExitCode = process.Lifetime.IsCompleted ? (int?)await process.Lifetime.ConfigureAwait(false) : null,
336  StartupTime = process.Startup.IsCompleted ? (TimeSpan?)(DateTimeOffset.Now - startTime) : null
337  };
338 
339  logger.LogTrace("Launch result: {0}", result);
340 
341  if (!result.ExitCode.HasValue && reattached && !disposed)
342  {
343  var reattachResponse = await SendCommand(
344  new TopicParameters(
345  assemblyInformationProvider.Version,
346  reattachInformation.RuntimeInformation.ServerPort),
347  reattachTopicCts.Token)
348  .ConfigureAwait(false);
349 
350  if (reattachResponse.InteropResponse?.CustomCommands != null)
351  chatTrackingContext.CustomCommands = reattachResponse.InteropResponse.CustomCommands;
352  else if (reattachResponse.InteropResponse != null)
353  logger.LogWarning(
354  "DMAPI v{0} isn't returning the TGS custom commands list. Functionality added in v5.2.0.",
355  Dmb.CompileJob.DMApiVersion.Semver());
356  }
357 
358  return result;
359  }
360 
362  public async Task<BridgeResponse> ProcessBridgeRequest(BridgeParameters parameters, CancellationToken cancellationToken)
363  {
364  if (parameters == null)
365  throw new ArgumentNullException(nameof(parameters));
366 
367  var response = new BridgeResponse();
368  switch (parameters.CommandType)
369  {
370  case BridgeCommandType.ChatSend:
371  if (parameters.ChatMessage == null)
372  return new BridgeResponse
373  {
374  ErrorMessage = "Missing chatMessage field!"
375  };
376 
377  if (parameters.ChatMessage.ChannelIds == null)
378  return new BridgeResponse
379  {
380  ErrorMessage = "Missing channelIds field in chatMessage!"
381  };
382 
383  if(parameters.ChatMessage.ChannelIds.Any(channelIdString => !UInt64.TryParse(channelIdString, out var _)))
384  return new BridgeResponse
385  {
386  ErrorMessage = "Invalid channelIds in chatMessage!"
387  };
388 
389  if (parameters.ChatMessage.Text == null)
390  return new BridgeResponse
391  {
392  ErrorMessage = "Missing message field in chatMessage!"
393  };
394 
395  await chat.SendMessage(
396  parameters.ChatMessage.Text,
397  parameters.ChatMessage.ChannelIds.Select(UInt64.Parse),
398  cancellationToken).ConfigureAwait(false);
399  break;
400  case BridgeCommandType.Prime:
401  var oldPrimeTcs = primeTcs;
402  primeTcs = new TaskCompletionSource<object>();
403  oldPrimeTcs.SetResult(null);
404  break;
405  case BridgeCommandType.Kill:
406  logger.LogInformation("Bridge requested process termination!");
407  TerminationWasRequested = true;
408  process.Terminate();
409  break;
410  case BridgeCommandType.PortUpdate:
411  lock (synchronizationLock)
412  {
413  if (!parameters.CurrentPort.HasValue)
414  {
416  logger.LogWarning("DreamDaemon sent new port command without providing it's own!");
417  return new BridgeResponse
418  {
419  ErrorMessage = "Missing stringified port as data parameter!"
420  };
421  }
422 
423  var currentPort = parameters.CurrentPort.Value;
424  if (!nextPort.HasValue)
425  reattachInformation.Port = parameters.CurrentPort.Value; // not ready yet, so what we'll do is accept the random port DD opened on for now and change it later when we decide to
426  else
427  {
428  // nextPort is ready, tell DD to switch to that
429  // if it fails it'll kill itself
430  response.NewPort = nextPort.Value;
431  reattachInformation.Port = nextPort.Value;
432  nextPort = null;
433 
434  // we'll also get here from SetPort so complete that task
435  var tmpTcs = portAssignmentTcs;
436  portAssignmentTcs = null;
437  tmpTcs.SetResult(true);
438  }
439 
440  portClosedForReboot = false;
441  }
442 
443  break;
444  case BridgeCommandType.Startup:
445  apiValidationStatus = ApiValidationStatus.BadValidationRequest;
446  if (parameters.Version == null)
447  return new BridgeResponse
448  {
449  ErrorMessage = "Missing dmApiVersion field!"
450  };
451 
452  DMApiVersion = parameters.Version;
453  switch (parameters.MinimumSecurityLevel)
454  {
455  case DreamDaemonSecurity.Ultrasafe:
456  apiValidationStatus = ApiValidationStatus.RequiresUltrasafe;
457  break;
458  case DreamDaemonSecurity.Safe:
459  apiValidationStatus = ApiValidationStatus.RequiresSafe;
460  break;
461  case DreamDaemonSecurity.Trusted:
462  apiValidationStatus = ApiValidationStatus.RequiresTrusted;
463  break;
464  case null:
465  return new BridgeResponse
466  {
467  ErrorMessage = "Missing minimumSecurityLevel field!"
468  };
469  default:
470  return new BridgeResponse
471  {
472  ErrorMessage = "Invalid minimumSecurityLevel!"
473  };
474  }
475 
476  response.RuntimeInformation = reattachInformation.RuntimeInformation;
477 
478  // Load custom commands
479  chatTrackingContext.CustomCommands = parameters.CustomCommands;
480  break;
481  case BridgeCommandType.Reboot:
482  if (ClosePortOnReboot)
483  {
484  chatTrackingContext.Active = false;
485  response.NewPort = 0;
486  portClosedForReboot = true;
487  }
488 
489  var oldRebootTcs = rebootTcs;
490  rebootTcs = new TaskCompletionSource<object>();
491  oldRebootTcs.SetResult(null);
492  break;
493  case null:
494  response.ErrorMessage = "Missing commandType!";
495  break;
496  default:
497  response.ErrorMessage = "Requested commandType not supported!";
498  break;
499  }
500 
501  return response;
502  }
503 
508  {
509  if (disposed)
510  throw new ObjectDisposedException(nameof(SessionController));
511  }
512 
514  public void EnableCustomChatCommands() => chatTrackingContext.Active = true;
515 
518  {
519  CheckDisposed();
520 
521  // we still don't want to dispose the dmb yet, even though we're keeping it alive
522  var tmpProvider = reattachInformation.Dmb;
523  reattachInformation.Dmb = null;
524  released = true;
525  Dispose();
526  byondLock.DoNotDeleteThisSession();
527  tmpProvider.KeepAlive();
528  reattachInformation.Dmb = tmpProvider;
529  return reattachInformation;
530  }
531 
533  public async Task<CombinedTopicResponse> SendCommand(TopicParameters parameters, CancellationToken cancellationToken)
534  {
535  if (Lifetime.IsCompleted)
536  {
537  logger.LogWarning(
538  "Attempted to send a command to an inactive SessionController: {0}",
539  parameters.CommandType);
540  return null;
541  }
542 
543  parameters.AccessIdentifier = reattachInformation.AccessIdentifier;
544 
545  var json = JsonConvert.SerializeObject(parameters, DMApiConstants.SerializerSettings);
546  logger.LogTrace("Topic request: {0}", json);
547  try
548  {
549  var commandString = String.Format(CultureInfo.InvariantCulture,
550  "?{0}={1}",
551  byondTopicSender.SanitizeString(DMApiConstants.TopicData),
552  byondTopicSender.SanitizeString(json));
553 
554  var targetPort = reattachInformation.Port;
555 
556  var topicResponse = await byondTopicSender.SendTopic(
557  new IPEndPoint(IPAddress.Loopback, targetPort),
558  commandString,
559  cancellationToken).ConfigureAwait(false);
560 
561  var topicReturn = topicResponse.StringData;
562 
563  Interop.Topic.TopicResponse interopResponse = null;
564  if (topicReturn != null)
565  try
566  {
567  interopResponse = JsonConvert.DeserializeObject<Interop.Topic.TopicResponse>(topicReturn, DMApiConstants.SerializerSettings);
568  if (interopResponse.ErrorMessage != null)
569  {
570  logger.LogWarning("Errored topic response for command {0}: {1}", parameters.CommandType, interopResponse.ErrorMessage);
571  }
572 
573  logger.LogTrace("Interop response: {0}", topicReturn);
574  }
575  catch
576  {
577  logger.LogWarning("Invalid interop response: {0}", topicReturn);
578  }
579 
580  return new CombinedTopicResponse(topicResponse, interopResponse);
581  }
582  catch (OperationCanceledException)
583  {
584  logger.LogTrace(
585  "Topic request {0}!",
586  cancellationToken.IsCancellationRequested
587  ? "aborted"
588  : "timed out");
589  cancellationToken.ThrowIfCancellationRequested();
590  }
591  catch (Exception e)
592  {
593  logger.LogWarning("Send command exception:{0}{1}", Environment.NewLine, e);
594  }
595 
596  return null;
597  }
598 
600  public Task<bool> SetPort(ushort port, CancellationToken cancellationToken)
601  {
602  CheckDisposed();
603 
604  if (port == 0)
605  throw new ArgumentOutOfRangeException(nameof(port), port, "port must not be zero!");
606 
607  async Task<bool> ImmediateTopicPortChange()
608  {
609  var commandResult = await SendCommand(
610  new TopicParameters(port),
611  cancellationToken)
612  .ConfigureAwait(false);
613 
614  if (commandResult.InteropResponse?.ErrorMessage != null)
615  return false;
616 
617  reattachInformation.Port = port;
618  return true;
619  }
620 
621  lock (synchronizationLock)
622  if (portClosedForReboot)
623  {
624  if (portAssignmentTcs != null)
625  throw new InvalidOperationException("A port change operation is already in progress!");
626  nextPort = port;
627  portAssignmentTcs = new TaskCompletionSource<bool>();
628  return portAssignmentTcs.Task;
629  }
630  else
631  return ImmediateTopicPortChange();
632  }
633 
635  public async Task<bool> SetRebootState(RebootState newRebootState, CancellationToken cancellationToken)
636  {
637  if (RebootState == newRebootState)
638  return true;
639 
640  logger.LogTrace("Changing reboot state to {0}", newRebootState);
641 
642  reattachInformation.RebootState = newRebootState;
643  var result = await SendCommand(
644  new TopicParameters(newRebootState),
645  cancellationToken)
646  .ConfigureAwait(false);
647 
648  return result?.InteropResponse != null && result.InteropResponse?.ErrorMessage == null;
649  }
650 
652  public void ResetRebootState()
653  {
654  CheckDisposed();
655  logger.LogTrace("Resetting reboot state...");
656  reattachInformation.RebootState = RebootState.Normal;
657  }
658 
660  public void SetHighPriority() => process.SetHighPriority();
661 
663  public void Suspend() => process.Suspend();
664 
666  public void Resume() => process.Resume();
667 
669  public void ReplaceDmbProvider(IDmbProvider dmbProvider)
670  {
671  var oldDmb = reattachInformation.Dmb;
672  reattachInformation.Dmb = dmbProvider ?? throw new ArgumentNullException(nameof(dmbProvider));
673  oldDmb.Dispose();
674  }
675 
677  public Task InstanceRenamed(string newInstanceName, CancellationToken cancellationToken)
678  => SendCommand(new TopicParameters(newInstanceName), cancellationToken);
679 
681  public Task UpdateChannels(IEnumerable<ChannelRepresentation> newChannels, CancellationToken cancellationToken)
682  => SendCommand(
683  new TopicParameters(
684  new ChatUpdate(newChannels)),
685  cancellationToken);
686  }
687 }
readonly CancellationTokenSource reattachTopicCts
A CancellationTokenSource used for the topic send operation made on reattaching.
ApiValidationStatus
Status of DMAPI validation
readonly IChatManager chat
The IChatManager for the SessionController
@@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
void CheckDisposed()
Throws an ObjectDisposedException if Dispose(bool) has been called
+
void CheckDisposed()
Throws an ObjectDisposedException if Dispose(bool) has been called
@@ -117,12 +117,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
TaskCompletionSource< bool > portAssignmentTcs
The TaskCompletionSource<TResult> SetPort(ushort, CancellationToken) waits on when DreamDaemon curren...
- +
ChatMessage ChatMessage
The Interop.ChatMessage for BridgeCommandType.ChatSend requests.
-
void ReplaceDmbProvider(IDmbProvider dmbProvider)
Replace Dmb with a given newProvider , disposing the old one.
+
void ReplaceDmbProvider(IDmbProvider dmbProvider)
Replace Dmb with a given newProvider , disposing the old one.
Parameters necessary for duplicating a ISessionController session
-
async Task< CombinedTopicResponse > SendCommand(TopicParameters parameters, CancellationToken cancellationToken)
Sends a command to DreamDaemon through /world/Topic()
+
async Task< CombinedTopicResponse > SendCommand(TopicParameters parameters, CancellationToken cancellationToken)
Sends a command to DreamDaemon through /world/Topic()
IBridgeRegistration RegisterHandler(IBridgeHandler bridgeHandler)
Register a given bridgeHandler .
bool portClosedForReboot
If we know DreamDaemon currently has it&#39;s port closed
@@ -138,17 +138,17 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
ushort CurrentPort
The current port for BridgeCommandType.PortUpdate requests.
-
Task< bool > SetPort(ushort port, CancellationToken cancellationToken)
Causes the world to start listening on a newPort
-
void Dispose(bool disposing)
Implements the IDisposable pattern
+
Task< bool > SetPort(ushort port, CancellationToken cancellationToken)
Causes the world to start listening on a newPort
+
void Dispose(bool disposing)
Implements the IDisposable pattern
RebootState
Represents the action to take when /world/Reboot() is called
Definition: RebootState.cs:6
-
async Task< BridgeResponse > ProcessBridgeRequest(BridgeParameters parameters, CancellationToken cancellationToken)
Handle a set of bridge parameters .
+
async Task< BridgeResponse > ProcessBridgeRequest(BridgeParameters parameters, CancellationToken cancellationToken)
Handle a set of bridge parameters .
SessionController(ReattachInformation reattachInformation, IProcess process, IByondExecutableLock byondLock, ITopicClient byondTopicSender, IChatTrackingContext chatTrackingContext, IBridgeRegistrar bridgeRegistrar, IChatManager chat, IAssemblyInformationProvider assemblyInformationProvider, ILogger< SessionController > logger, uint?startupTimeout, bool reattached)
Construct a SessionController
readonly IByondExecutableLock byondLock
The IByondExecutableLock for the SessionController
static readonly JsonSerializerSettings SerializerSettings
JsonSerializerSettings for use when communicating with the DMAPI.
bool Active
If the CustomCommands should be used.
-
ReattachInformation Release()
Releases the IProcess without terminating it. Also calls IDisposable.Dispose
+
ReattachInformation Release()
Releases the IProcess without terminating it. Also calls IDisposable.Dispose
string AccessIdentifier
Used to identify and authenticate the DreamDaemon instance
Abstraction over a global::System.Diagnostics.Process
Definition: IProcess.cs:9
@@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Represents usage of the two primary BYOND server executables
Handles communication with a DreamDaemon IProcess
ICollection< string > ChannelIds
The ICollection<T> of Chat.ChannelRepresentation.Ids to sent the Text to. Must be safe to parse as ul...
Definition: ChatMessage.cs:18
-
async Task< bool > SetRebootState(RebootState newRebootState, CancellationToken cancellationToken)
Attempts to change the current RebootState to newRebootState
+
async Task< bool > SetRebootState(RebootState newRebootState, CancellationToken cancellationToken)
Attempts to change the current RebootState to newRebootState
BridgeCommandType
Represents the BridgeParameters.CommandType.
Represents a BYOND installation
Definition: Byond.cs:8
@@ -174,7 +174,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Represents an error message returned by the server
Definition: ErrorMessage.cs:9
Represents an update of ChannelRepresentations.
Definition: ChatUpdate.cs:11
-
async Task< LaunchResult > GetLaunchResult(IAssemblyInformationProvider assemblyInformationProvider, uint?startupTimeout, bool reattached)
The Task<TResult> for LaunchResult.
+
async Task< LaunchResult > GetLaunchResult(IAssemblyInformationProvider assemblyInformationProvider, uint?startupTimeout, bool reattached)
The Task<TResult> for LaunchResult.
Represents a registration of an interop session.
bool disposed
If the SessionController has been disposed
@@ -183,7 +183,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Combines a global::Byond.TopicSender.TopicResponse with a TopicResponse.
TaskCompletionSource< object > rebootTcs
The TaskCompletionSource<TResult> that completes when DD tells us about a reboot
-
void ResetRebootState()
Changes RebootState to RebootState.Normal without telling the DMAPI
+
void ResetRebootState()
Changes RebootState to RebootState.Normal without telling the DMAPI
-Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Logging;
3 using System;
4 using System.Collections.Generic;
5 using System.Linq;
6 using System.Threading;
7 using System.Threading.Tasks;
17 
18 namespace Tgstation.Server.Host.Components
19 {
21  #pragma warning disable CA1506 // TODO: Decomplexify
22  sealed class Instance : IInstance
23  {
26 
28  public IByondManager ByondManager { get; }
29 
31  public IWatchdog Watchdog { get; }
32 
34  public IChatManager Chat { get; }
35 
37  public StaticFiles.IConfiguration Configuration { get; }
38 
40  public IDreamMaker DreamMaker { get; }
41 
46 
51 
56 
61 
65  readonly ILogger<Instance> logger;
66 
70  readonly Api.Models.Instance metadata;
71 
75  readonly object timerLock;
76 
80  Task timerTask;
81 
85  CancellationTokenSource timerCts;
86 
102  public Instance(
103  Api.Models.Instance metadata,
104  IRepositoryManager repositoryManager,
105  IByondManager byondManager,
106  IDreamMaker dreamMaker,
107  IWatchdog watchdog,
108  IChatManager chat,
109  StaticFiles.IConfiguration
110  configuration,
111  IDatabaseContextFactory databaseContextFactory,
112  IDmbFactory dmbFactory,
113  IJobManager jobManager,
114  IEventConsumer eventConsumer,
115  ILogger<Instance> logger)
116  {
117  this.metadata = metadata ?? throw new ArgumentNullException(nameof(metadata));
118  RepositoryManager = repositoryManager ?? throw new ArgumentNullException(nameof(repositoryManager));
119  ByondManager = byondManager ?? throw new ArgumentNullException(nameof(byondManager));
120  DreamMaker = dreamMaker ?? throw new ArgumentNullException(nameof(dreamMaker));
121  Watchdog = watchdog ?? throw new ArgumentNullException(nameof(watchdog));
122  Chat = chat ?? throw new ArgumentNullException(nameof(chat));
123  Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
124  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
125  this.dmbFactory = dmbFactory ?? throw new ArgumentNullException(nameof(dmbFactory));
126  this.jobManager = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
127  this.eventConsumer = eventConsumer ?? throw new ArgumentNullException(nameof(eventConsumer));
128  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
129 
130  timerLock = new object();
131  }
132 
134  public void Dispose()
135  {
136  timerCts?.Dispose();
137  Configuration.Dispose();
138  Chat.Dispose();
139  Watchdog.Dispose();
140  dmbFactory.Dispose();
142  }
143 
150  #pragma warning disable CA1502 // TODO: Decomplexify
151  async Task TimerLoop(uint minutes, CancellationToken cancellationToken)
152  {
153  while (true)
154  try
155  {
156  await Task.Delay(TimeSpan.FromMinutes(minutes > Int32.MaxValue ? Int32.MaxValue : (int)minutes), cancellationToken).ConfigureAwait(false);
157  logger.LogInformation("Beginning auto update...");
158  await eventConsumer.HandleEvent(EventType.InstanceAutoUpdateStart, new List<string>(), cancellationToken).ConfigureAwait(false);
159  try
160  {
161  User user = null;
162  await databaseContextFactory.UseContext(
163  async (db) => user = await db
164  .Users
165  .AsQueryable()
166  .Where(x => x.CanonicalName == User.CanonicalizeName(Api.Models.User.AdminName))
167  .FirstAsync(cancellationToken)
168  .ConfigureAwait(false))
169  .ConfigureAwait(false);
170  var repositoryUpdateJob = new Job
171  {
172  Instance = new Models.Instance
173  {
174  Id = metadata.Id
175  },
176  Description = "Scheduled repository update",
177  CancelRightsType = RightsType.Repository,
178  CancelRight = (ulong)RepositoryRights.CancelPendingChanges,
179  StartedBy = user
180  };
181 
182  string deploySha = null;
183  await jobManager.RegisterOperation(repositoryUpdateJob, async (paramJob, databaseContextFactory, progressReporter, jobCancellationToken) =>
184  {
185  // assume 5 steps with synchronize
186  const int ProgressSections = 7;
187  const int ProgressStep = 100 / ProgressSections;
188  string repoHead = null;
189 
190  await databaseContextFactory.UseContext(
191  async databaseContext =>
192  {
193  var repositorySettingsTask = databaseContext
194  .RepositorySettings
195  .AsQueryable()
196  .Where(x => x.InstanceId == metadata.Id)
197  .FirstAsync(jobCancellationToken);
198 
199  const int NumSteps = 3;
200  var doneSteps = 0;
201 
202  Action<int> NextProgressReporter()
203  {
204  var tmpDoneSteps = doneSteps;
205  ++doneSteps;
206  return progress => progressReporter((progress + (100 * tmpDoneSteps)) / NumSteps);
207  }
208 
209  using var repo = await RepositoryManager.LoadRepository(jobCancellationToken).ConfigureAwait(false);
210  if (repo == null)
211  {
212  logger.LogTrace("Aborting repo update, no repository!");
213  return;
214  }
215 
216  var startSha = repo.Head;
217  if (!repo.Tracking)
218  {
219  logger.LogTrace("Aborting repo update, active ref not tracking any remote branch!");
220  deploySha = startSha;
221  return;
222  }
223 
224  var repositorySettings = await repositorySettingsTask.ConfigureAwait(false);
225 
226  // the main point of auto update is to pull the remote
227  await repo.FetchOrigin(repositorySettings.AccessUser, repositorySettings.AccessToken, NextProgressReporter(), jobCancellationToken).ConfigureAwait(false);
228 
229  RevisionInformation currentRevInfo = null;
230  bool hasDbChanges = false;
231 
232  Task<RevisionInformation> LoadRevInfo() => databaseContext.RevisionInformations
233  .AsQueryable()
234  .Where(x => x.CommitSha == startSha && x.Instance.Id == metadata.Id)
235  .Include(x => x.ActiveTestMerges).ThenInclude(x => x.TestMerge)
236  .FirstOrDefaultAsync(cancellationToken);
237 
238  async Task UpdateRevInfo(string currentHead, bool onOrigin)
239  {
240  if (currentRevInfo == null)
241  currentRevInfo = await LoadRevInfo().ConfigureAwait(false);
242 
243  if (currentRevInfo == default)
244  {
245  logger.LogWarning(Repository.Repository.OriginTrackingErrorTemplate, currentHead);
246  onOrigin = true;
247  }
248 
249  var attachedInstance = new Models.Instance
250  {
251  Id = metadata.Id
252  };
253  var oldRevInfo = currentRevInfo;
254  currentRevInfo = new RevisionInformation
255  {
256  CommitSha = currentHead,
257  OriginCommitSha = onOrigin ? currentHead : oldRevInfo.OriginCommitSha,
258  Instance = attachedInstance
259  };
260  if (!onOrigin)
261  currentRevInfo.ActiveTestMerges = new List<RevInfoTestMerge>(oldRevInfo.ActiveTestMerges);
262 
263  databaseContext.Instances.Attach(attachedInstance);
264  databaseContext.RevisionInformations.Add(currentRevInfo);
265  hasDbChanges = true;
266  }
267 
268  // take appropriate auto update actions
269  bool shouldSyncTracked;
270  if (repositorySettings.AutoUpdatesKeepTestMerges.Value)
271  {
272  logger.LogTrace("Preserving test merges...");
273 
274  var currentRevInfoTask = LoadRevInfo();
275 
276  var result = await repo.MergeOrigin(repositorySettings.CommitterName, repositorySettings.CommitterEmail, NextProgressReporter(), jobCancellationToken).ConfigureAwait(false);
277 
278  if (!result.HasValue)
279  throw new JobException(Api.Models.ErrorCode.InstanceUpdateTestMergeConflict);
280 
281  currentRevInfo = await currentRevInfoTask.ConfigureAwait(false);
282 
283  var lastRevInfoWasOriginCommit = currentRevInfo == default || currentRevInfo.CommitSha == currentRevInfo.OriginCommitSha;
284  var stillOnOrigin = result.Value && lastRevInfoWasOriginCommit;
285 
286  var currentHead = repo.Head;
287  if (currentHead != startSha)
288  {
289  await UpdateRevInfo(currentHead, stillOnOrigin).ConfigureAwait(false);
290  shouldSyncTracked = stillOnOrigin;
291  }
292  else
293  shouldSyncTracked = false;
294  }
295  else
296  {
297  logger.LogTrace("Not preserving test merges...");
298  await repo.ResetToOrigin(NextProgressReporter(), jobCancellationToken).ConfigureAwait(false);
299 
300  var currentHead = repo.Head;
301 
302  currentRevInfo = await databaseContext.RevisionInformations
303  .AsQueryable()
304  .Where(x => x.CommitSha == currentHead && x.Instance.Id == metadata.Id)
305  .FirstOrDefaultAsync(jobCancellationToken).ConfigureAwait(false);
306 
307  if (currentHead != startSha && currentRevInfo != default)
308  await UpdateRevInfo(currentHead, true).ConfigureAwait(false);
309 
310  shouldSyncTracked = true;
311  }
312 
313  // synch if necessary
314  if (repositorySettings.AutoUpdatesSynchronize.Value && startSha != repo.Head)
315  {
316  var pushedOrigin = await repo.Sychronize(repositorySettings.AccessUser, repositorySettings.AccessToken, repositorySettings.CommitterName, repositorySettings.CommitterEmail, NextProgressReporter(), shouldSyncTracked, jobCancellationToken).ConfigureAwait(false);
317  var currentHead = repo.Head;
318  if (currentHead != currentRevInfo.CommitSha)
319  await UpdateRevInfo(currentHead, pushedOrigin).ConfigureAwait(false);
320  }
321 
322  repoHead = repo.Head;
323 
324  if (hasDbChanges)
325  try
326  {
327  await databaseContext.Save(cancellationToken).ConfigureAwait(false);
328  }
329  catch
330  {
331  await repo.ResetToSha(startSha, progressReporter, default).ConfigureAwait(false);
332  throw;
333  }
334  })
335  .ConfigureAwait(false);
336 
337  progressReporter(5 * ProgressStep);
338  deploySha = repoHead;
339  }, cancellationToken).ConfigureAwait(false);
340 
341  await jobManager.WaitForJobCompletion(repositoryUpdateJob, user, cancellationToken, default).ConfigureAwait(false);
342 
343  if (deploySha == null)
344  {
345  logger.LogTrace("Aborting auto update, repository error!");
346  continue;
347  }
348 
349  if(deploySha == LatestCompileJob()?.RevisionInformation.CommitSha)
350  {
351  logger.LogTrace("Aborting auto update, same revision as latest CompileJob");
352  continue;
353  }
354 
355  // finally set up the job
356  var compileProcessJob = new Job
357  {
358  StartedBy = user,
359  Instance = repositoryUpdateJob.Instance,
360  Description = "Scheduled code deployment",
361  CancelRightsType = RightsType.DreamMaker,
362  CancelRight = (ulong)DreamMakerRights.CancelCompile
363  };
364 
365  await jobManager.RegisterOperation(
366  compileProcessJob,
368  cancellationToken).ConfigureAwait(false);
369 
370  await jobManager.WaitForJobCompletion(compileProcessJob, user, cancellationToken, default).ConfigureAwait(false);
371  }
372  catch (OperationCanceledException)
373  {
374  logger.LogDebug("Cancelled auto update job!");
375  throw;
376  }
377  catch (Exception e)
378  {
379  logger.LogWarning("Error in auto update loop! Exception: {0}", e);
380  continue;
381  }
382  }
383  catch (OperationCanceledException)
384  {
385  break;
386  }
387 
388  logger.LogTrace("Leaving auto update loop...");
389  }
390  #pragma warning restore CA1502
391 
393  public void Rename(string newName)
394  {
395  if (String.IsNullOrWhiteSpace(newName))
396  throw new ArgumentNullException(nameof(newName));
397  metadata.Name = newName;
398  }
399 
401  public async Task StartAsync(CancellationToken cancellationToken)
402  {
403  await Task.WhenAll(
404  SetAutoUpdateInterval(metadata.AutoUpdateInterval.Value),
405  Configuration.StartAsync(cancellationToken),
406  ByondManager.StartAsync(cancellationToken),
407  Chat.StartAsync(cancellationToken),
408  dmbFactory.StartAsync(cancellationToken))
409  .ConfigureAwait(false);
410 
411  // dependent on so many things, its just safer this way
412  await Watchdog.StartAsync(cancellationToken).ConfigureAwait(false);
413 
414  await dmbFactory.CleanUnusedCompileJobs(cancellationToken).ConfigureAwait(false);
415  }
416 
418  public async Task StopAsync(CancellationToken cancellationToken)
419  {
420  await SetAutoUpdateInterval(0).ConfigureAwait(false);
421  await Watchdog.StopAsync(cancellationToken).ConfigureAwait(false);
422  await Task.WhenAll(
423  Configuration.StopAsync(cancellationToken),
424  ByondManager.StopAsync(cancellationToken),
425  Chat.StopAsync(cancellationToken),
426  dmbFactory.StopAsync(cancellationToken))
427  .ConfigureAwait(false);
428  }
429 
431  public async Task SetAutoUpdateInterval(uint newInterval)
432  {
433  Task toWait;
434  lock (timerLock)
435  {
436  if (timerTask != null)
437  {
438  timerCts.Cancel();
439  toWait = timerTask;
440  }
441  else
442  toWait = Task.CompletedTask;
443  }
444 
445  await toWait.ConfigureAwait(false);
446  if (newInterval == 0)
447  return;
448  lock (timerLock)
449  {
450  // race condition, just quit
451  if (timerTask != null)
452  return;
453  timerCts?.Dispose();
454  timerCts = new CancellationTokenSource();
455  timerTask = TimerLoop(newInterval, timerCts.Token);
456  }
457  }
458 
460  public CompileJob LatestCompileJob() => dmbFactory.LatestCompileJob();
461  }
462 }
-
async Task SetAutoUpdateInterval(uint newInterval)
Change the Api.Models.Instance.AutoUpdateInterval for the IInstance
Definition: Instance.cs:431
+Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Logging;
3 using System;
4 using System.Collections.Generic;
5 using System.Linq;
6 using System.Threading;
7 using System.Threading.Tasks;
17 
18 namespace Tgstation.Server.Host.Components
19 {
21  #pragma warning disable CA1506 // TODO: Decomplexify
22  sealed class Instance : IInstance
23  {
26 
28  public IByondManager ByondManager { get; }
29 
31  public IWatchdog Watchdog { get; }
32 
34  public IChatManager Chat { get; }
35 
37  public StaticFiles.IConfiguration Configuration { get; }
38 
40  public IDreamMaker DreamMaker { get; }
41 
46 
51 
56 
61 
65  readonly ILogger<Instance> logger;
66 
70  readonly Api.Models.Instance metadata;
71 
75  readonly object timerLock;
76 
80  Task timerTask;
81 
85  CancellationTokenSource timerCts;
86 
102  public Instance(
103  Api.Models.Instance metadata,
104  IRepositoryManager repositoryManager,
105  IByondManager byondManager,
106  IDreamMaker dreamMaker,
107  IWatchdog watchdog,
108  IChatManager chat,
109  StaticFiles.IConfiguration
110  configuration,
111  IDatabaseContextFactory databaseContextFactory,
112  IDmbFactory dmbFactory,
113  IJobManager jobManager,
114  IEventConsumer eventConsumer,
115  ILogger<Instance> logger)
116  {
117  this.metadata = metadata ?? throw new ArgumentNullException(nameof(metadata));
118  RepositoryManager = repositoryManager ?? throw new ArgumentNullException(nameof(repositoryManager));
119  ByondManager = byondManager ?? throw new ArgumentNullException(nameof(byondManager));
120  DreamMaker = dreamMaker ?? throw new ArgumentNullException(nameof(dreamMaker));
121  Watchdog = watchdog ?? throw new ArgumentNullException(nameof(watchdog));
122  Chat = chat ?? throw new ArgumentNullException(nameof(chat));
123  Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
124  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
125  this.dmbFactory = dmbFactory ?? throw new ArgumentNullException(nameof(dmbFactory));
126  this.jobManager = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
127  this.eventConsumer = eventConsumer ?? throw new ArgumentNullException(nameof(eventConsumer));
128  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
129 
130  timerLock = new object();
131  }
132 
134  public void Dispose()
135  {
136  timerCts?.Dispose();
137  Configuration.Dispose();
138  Chat.Dispose();
139  Watchdog.Dispose();
140  dmbFactory.Dispose();
142  }
143 
150  #pragma warning disable CA1502 // TODO: Decomplexify
151  async Task TimerLoop(uint minutes, CancellationToken cancellationToken)
152  {
153  logger.LogTrace("Entering auto-update loop");
154  while (true)
155  try
156  {
157  await Task.Delay(TimeSpan.FromMinutes(minutes > Int32.MaxValue ? Int32.MaxValue : (int)minutes), cancellationToken).ConfigureAwait(false);
158  logger.LogInformation("Beginning auto update...");
159  await eventConsumer.HandleEvent(EventType.InstanceAutoUpdateStart, new List<string>(), cancellationToken).ConfigureAwait(false);
160  try
161  {
162  User user = null;
163  await databaseContextFactory.UseContext(
164  async (db) => user = await db
165  .Users
166  .AsQueryable()
167  .Where(x => x.CanonicalName == User.CanonicalizeName(Api.Models.User.AdminName))
168  .FirstAsync(cancellationToken)
169  .ConfigureAwait(false))
170  .ConfigureAwait(false);
171  var repositoryUpdateJob = new Job
172  {
173  Instance = new Models.Instance
174  {
175  Id = metadata.Id
176  },
177  Description = "Scheduled repository update",
178  CancelRightsType = RightsType.Repository,
179  CancelRight = (ulong)RepositoryRights.CancelPendingChanges,
180  StartedBy = user
181  };
182 
183  string deploySha = null;
184  await jobManager.RegisterOperation(repositoryUpdateJob, async (paramJob, databaseContextFactory, progressReporter, jobCancellationToken) =>
185  {
186  // assume 5 steps with synchronize
187  const int ProgressSections = 7;
188  const int ProgressStep = 100 / ProgressSections;
189  string repoHead = null;
190 
191  await databaseContextFactory.UseContext(
192  async databaseContext =>
193  {
194  var repositorySettingsTask = databaseContext
195  .RepositorySettings
196  .AsQueryable()
197  .Where(x => x.InstanceId == metadata.Id)
198  .FirstAsync(jobCancellationToken);
199 
200  const int NumSteps = 3;
201  var doneSteps = 0;
202 
203  Action<int> NextProgressReporter()
204  {
205  var tmpDoneSteps = doneSteps;
206  ++doneSteps;
207  return progress => progressReporter((progress + (100 * tmpDoneSteps)) / NumSteps);
208  }
209 
210  using var repo = await RepositoryManager.LoadRepository(jobCancellationToken).ConfigureAwait(false);
211  if (repo == null)
212  {
213  logger.LogTrace("Aborting repo update, no repository!");
214  return;
215  }
216 
217  var startSha = repo.Head;
218  if (!repo.Tracking)
219  {
220  logger.LogTrace("Aborting repo update, active ref not tracking any remote branch!");
221  deploySha = startSha;
222  return;
223  }
224 
225  var repositorySettings = await repositorySettingsTask.ConfigureAwait(false);
226 
227  // the main point of auto update is to pull the remote
228  await repo.FetchOrigin(repositorySettings.AccessUser, repositorySettings.AccessToken, NextProgressReporter(), jobCancellationToken).ConfigureAwait(false);
229 
230  RevisionInformation currentRevInfo = null;
231  bool hasDbChanges = false;
232 
233  Task<RevisionInformation> LoadRevInfo() => databaseContext.RevisionInformations
234  .AsQueryable()
235  .Where(x => x.CommitSha == startSha && x.Instance.Id == metadata.Id)
236  .Include(x => x.ActiveTestMerges).ThenInclude(x => x.TestMerge)
237  .FirstOrDefaultAsync(jobCancellationToken);
238 
239  async Task UpdateRevInfo(string currentHead, bool onOrigin)
240  {
241  if (currentRevInfo == null)
242  currentRevInfo = await LoadRevInfo().ConfigureAwait(false);
243 
244  if (currentRevInfo == default)
245  {
246  logger.LogWarning(Repository.Repository.OriginTrackingErrorTemplate, currentHead);
247  onOrigin = true;
248  }
249 
250  var attachedInstance = new Models.Instance
251  {
252  Id = metadata.Id
253  };
254  var oldRevInfo = currentRevInfo;
255  currentRevInfo = new RevisionInformation
256  {
257  CommitSha = currentHead,
258  OriginCommitSha = onOrigin ? currentHead : oldRevInfo.OriginCommitSha,
259  Instance = attachedInstance
260  };
261  if (!onOrigin)
262  currentRevInfo.ActiveTestMerges = new List<RevInfoTestMerge>(oldRevInfo.ActiveTestMerges);
263 
264  databaseContext.Instances.Attach(attachedInstance);
265  databaseContext.RevisionInformations.Add(currentRevInfo);
266  hasDbChanges = true;
267  }
268 
269  // take appropriate auto update actions
270  bool shouldSyncTracked;
271  if (repositorySettings.AutoUpdatesKeepTestMerges.Value)
272  {
273  logger.LogTrace("Preserving test merges...");
274 
275  var currentRevInfoTask = LoadRevInfo();
276 
277  var result = await repo.MergeOrigin(repositorySettings.CommitterName, repositorySettings.CommitterEmail, NextProgressReporter(), jobCancellationToken).ConfigureAwait(false);
278 
279  if (!result.HasValue)
280  throw new JobException(Api.Models.ErrorCode.InstanceUpdateTestMergeConflict);
281 
282  currentRevInfo = await currentRevInfoTask.ConfigureAwait(false);
283 
284  var lastRevInfoWasOriginCommit = currentRevInfo == default || currentRevInfo.CommitSha == currentRevInfo.OriginCommitSha;
285  var stillOnOrigin = result.Value && lastRevInfoWasOriginCommit;
286 
287  var currentHead = repo.Head;
288  if (currentHead != startSha)
289  {
290  await UpdateRevInfo(currentHead, stillOnOrigin).ConfigureAwait(false);
291  shouldSyncTracked = stillOnOrigin;
292  }
293  else
294  shouldSyncTracked = false;
295  }
296  else
297  {
298  logger.LogTrace("Not preserving test merges...");
299  await repo.ResetToOrigin(NextProgressReporter(), jobCancellationToken).ConfigureAwait(false);
300 
301  var currentHead = repo.Head;
302 
303  currentRevInfo = await databaseContext.RevisionInformations
304  .AsQueryable()
305  .Where(x => x.CommitSha == currentHead && x.Instance.Id == metadata.Id)
306  .FirstOrDefaultAsync(jobCancellationToken)
307  .ConfigureAwait(false);
308 
309  if (currentHead != startSha && currentRevInfo == default)
310  await UpdateRevInfo(currentHead, true).ConfigureAwait(false);
311 
312  shouldSyncTracked = true;
313  }
314 
315  // synch if necessary
316  if (repositorySettings.AutoUpdatesSynchronize.Value && startSha != repo.Head)
317  {
318  var pushedOrigin = await repo.Sychronize(repositorySettings.AccessUser, repositorySettings.AccessToken, repositorySettings.CommitterName, repositorySettings.CommitterEmail, NextProgressReporter(), shouldSyncTracked, jobCancellationToken).ConfigureAwait(false);
319  var currentHead = repo.Head;
320  if (currentHead != currentRevInfo.CommitSha)
321  await UpdateRevInfo(currentHead, pushedOrigin).ConfigureAwait(false);
322  }
323 
324  repoHead = repo.Head;
325 
326  if (hasDbChanges)
327  try
328  {
329  await databaseContext.Save(jobCancellationToken).ConfigureAwait(false);
330  }
331  catch
332  {
333  await repo.ResetToSha(startSha, progressReporter, default).ConfigureAwait(false);
334  throw;
335  }
336  })
337  .ConfigureAwait(false);
338 
339  progressReporter(5 * ProgressStep);
340  deploySha = repoHead;
341  }, cancellationToken).ConfigureAwait(false);
342 
343  await jobManager.WaitForJobCompletion(repositoryUpdateJob, user, cancellationToken, default).ConfigureAwait(false);
344 
345  if (deploySha == null)
346  {
347  logger.LogTrace("Aborting auto update, repository error!");
348  continue;
349  }
350 
351  if(deploySha == LatestCompileJob()?.RevisionInformation.CommitSha)
352  {
353  logger.LogTrace("Aborting auto update, same revision as latest CompileJob");
354  continue;
355  }
356 
357  // finally set up the job
358  var compileProcessJob = new Job
359  {
360  StartedBy = user,
361  Instance = repositoryUpdateJob.Instance,
362  Description = "Scheduled code deployment",
363  CancelRightsType = RightsType.DreamMaker,
364  CancelRight = (ulong)DreamMakerRights.CancelCompile
365  };
366 
367  await jobManager.RegisterOperation(
368  compileProcessJob,
370  cancellationToken).ConfigureAwait(false);
371 
372  await jobManager.WaitForJobCompletion(compileProcessJob, user, default, cancellationToken).ConfigureAwait(false);
373  }
374  catch (OperationCanceledException)
375  {
376  logger.LogDebug("Cancelled auto update job!");
377  throw;
378  }
379  catch (Exception e)
380  {
381  logger.LogWarning("Error in auto update loop! Exception: {0}", e);
382  continue;
383  }
384  }
385  catch (OperationCanceledException)
386  {
387  break;
388  }
389 
390  logger.LogTrace("Leaving auto update loop...");
391  }
392  #pragma warning restore CA1502
393 
395  public void Rename(string newName)
396  {
397  if (String.IsNullOrWhiteSpace(newName))
398  throw new ArgumentNullException(nameof(newName));
399  metadata.Name = newName;
400  }
401 
403  public async Task StartAsync(CancellationToken cancellationToken)
404  {
405  await Task.WhenAll(
406  SetAutoUpdateInterval(metadata.AutoUpdateInterval.Value),
407  Configuration.StartAsync(cancellationToken),
408  ByondManager.StartAsync(cancellationToken),
409  Chat.StartAsync(cancellationToken),
410  dmbFactory.StartAsync(cancellationToken))
411  .ConfigureAwait(false);
412 
413  // dependent on so many things, its just safer this way
414  await Watchdog.StartAsync(cancellationToken).ConfigureAwait(false);
415 
416  await dmbFactory.CleanUnusedCompileJobs(cancellationToken).ConfigureAwait(false);
417  }
418 
420  public async Task StopAsync(CancellationToken cancellationToken)
421  {
422  await SetAutoUpdateInterval(0).ConfigureAwait(false);
423  await Watchdog.StopAsync(cancellationToken).ConfigureAwait(false);
424  await Task.WhenAll(
425  Configuration.StopAsync(cancellationToken),
426  ByondManager.StopAsync(cancellationToken),
427  Chat.StopAsync(cancellationToken),
428  dmbFactory.StopAsync(cancellationToken))
429  .ConfigureAwait(false);
430  }
431 
433  public async Task SetAutoUpdateInterval(uint newInterval)
434  {
435  Task toWait;
436  lock (timerLock)
437  {
438  if (timerTask != null)
439  {
440  timerCts.Cancel();
441  toWait = timerTask;
442  }
443  else
444  toWait = Task.CompletedTask;
445  }
446 
447  await toWait.ConfigureAwait(false);
448  if (newInterval == 0)
449  return;
450  lock (timerLock)
451  {
452  // race condition, just quit
453  if (timerTask != null)
454  return;
455  timerCts?.Dispose();
456  timerCts = new CancellationTokenSource();
457  timerTask = TimerLoop(newInterval, timerCts.Token);
458  }
459  }
460 
462  public CompileJob LatestCompileJob() => dmbFactory.LatestCompileJob();
463  }
464 }
+
async Task SetAutoUpdateInterval(uint newInterval)
Change the Api.Models.Instance.AutoUpdateInterval for the IInstance
Definition: Instance.cs:433
RightsType
The type of rights a model uses
Definition: RightsType.cs:6
@@ -106,8 +106,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
readonly object timerLock
object for timerCts and timerTask.
Definition: Instance.cs:75
-
async Task StopAsync(CancellationToken cancellationToken)
Definition: Instance.cs:418
-
void Rename(string newName)
Rename the IInstance
Definition: Instance.cs:393
+
async Task StopAsync(CancellationToken cancellationToken)
Definition: Instance.cs:420
+
void Rename(string newName)
Rename the IInstance
Definition: Instance.cs:395
Instance(Api.Models.Instance metadata, IRepositoryManager repositoryManager, IByondManager byondManager, IDreamMaker dreamMaker, IWatchdog watchdog, IChatManager chat, StaticFiles.IConfiguration configuration, IDatabaseContextFactory databaseContextFactory, IDmbFactory dmbFactory, IJobManager jobManager, IEventConsumer eventConsumer, ILogger< Instance > logger)
Construct an Instance
Definition: Instance.cs:102
async Task DeploymentProcess(Models.Job job, IDatabaseContextFactory databaseContextFactory, Action< int > progressReporter, CancellationToken cancellationToken)
Definition: DreamMaker.cs:467
@@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
readonly IJobManager jobManager
The IJobManager for the Instance
Definition: Instance.cs:55
Repository(LibGit2Sharp.IRepository libGitRepo, ILibGit2Commands commands, IIOManager ioMananger, IEventConsumer eventConsumer, ICredentialsProvider credentialsProvider, ILogger< Repository > logger, Action onDispose)
Construct a Repository
Definition: Repository.cs:114
async Task< IRepository > LoadRepository(CancellationToken cancellationToken)
Attempt to load the IRepository from the default location
-
async Task StartAsync(CancellationToken cancellationToken)
Definition: Instance.cs:401
+
async Task StartAsync(CancellationToken cancellationToken)
Definition: Instance.cs:403
Task StopAsync(CancellationToken cancellationToken)
List< RevInfoTestMerge > ActiveTestMerges
See Api.Models.RevisionInformation.ActiveTestMerges
diff --git a/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs.html b/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs.html index d5f38b97b0..25d0954122 100644 --- a/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs.html +++ b/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs_source.html b/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs_source.html index 0001bfb9e9..6c8fabab25 100644 --- a/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs_source.html +++ b/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs.html b/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs.html index d49ed09ecc..486ee67224 100644 --- a/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs_source.html index d66c48d362..6d8fcd1822 100644 --- a/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs.html b/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs.html index d3065f0515..cedf805d8a 100644 --- a/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs_source.html index 4a8f9d0ca3..495a298c71 100644 --- a/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_compile_job_8cs.html b/_tgstation_8_server_8_host_2_models_2_compile_job_8cs.html index 66ac833bce..f6f33471e2 100644 --- a/_tgstation_8_server_8_host_2_models_2_compile_job_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_compile_job_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_compile_job_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_compile_job_8cs_source.html index ee26d61c76..ab1f0a2d67 100644 --- a/_tgstation_8_server_8_host_2_models_2_compile_job_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_compile_job_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs.html b/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs.html index 8761148d79..4b9c2629fe 100644 --- a/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs_source.html index 82aea43428..5b4a588294 100644 --- a/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_instance_8cs.html b/_tgstation_8_server_8_host_2_models_2_instance_8cs.html index bfc8c92600..e26ca6cc38 100644 --- a/_tgstation_8_server_8_host_2_models_2_instance_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_instance_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_instance_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_instance_8cs_source.html index e43b6af3ca..84fadbb25e 100644 --- a/_tgstation_8_server_8_host_2_models_2_instance_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_instance_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_instance_user_8cs.html b/_tgstation_8_server_8_host_2_models_2_instance_user_8cs.html index cba4c6f594..2c708aca02 100644 --- a/_tgstation_8_server_8_host_2_models_2_instance_user_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_instance_user_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_instance_user_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_instance_user_8cs_source.html index c5feeacdab..8274024775 100644 --- a/_tgstation_8_server_8_host_2_models_2_instance_user_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_instance_user_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_job_8cs.html b/_tgstation_8_server_8_host_2_models_2_job_8cs.html index 301a7f6749..94ec45b471 100644 --- a/_tgstation_8_server_8_host_2_models_2_job_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_job_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_job_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_job_8cs_source.html index 266a056eff..8c538f2658 100644 --- a/_tgstation_8_server_8_host_2_models_2_job_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_job_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs.html b/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs.html index 110cdb41ff..73926a10e0 100644 --- a/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs_source.html index 7bfb480ef7..c7f9a0cdc0 100644 --- a/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_revision_information_8cs.html b/_tgstation_8_server_8_host_2_models_2_revision_information_8cs.html index d85ea072ce..6c0240e608 100644 --- a/_tgstation_8_server_8_host_2_models_2_revision_information_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_revision_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_revision_information_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_revision_information_8cs_source.html index 4ff61a28d5..1c916d2b52 100644 --- a/_tgstation_8_server_8_host_2_models_2_revision_information_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_revision_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_test_merge_8cs.html b/_tgstation_8_server_8_host_2_models_2_test_merge_8cs.html index 23ba71bb6b..e531f5f6e8 100644 --- a/_tgstation_8_server_8_host_2_models_2_test_merge_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_test_merge_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_test_merge_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_test_merge_8cs_source.html index b166eaff7a..4e1eaf0641 100644 --- a/_tgstation_8_server_8_host_2_models_2_test_merge_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_test_merge_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_user_8cs.html b/_tgstation_8_server_8_host_2_models_2_user_8cs.html index d9e948d6ab..3f197f8fd7 100644 --- a/_tgstation_8_server_8_host_2_models_2_user_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_user_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_user_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_user_8cs_source.html index a7baa68f5c..1d48040ab0 100644 --- a/_tgstation_8_server_8_host_2_models_2_user_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_user_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs.html b/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs.html index 5ef7e1b182..34ab7f2382 100644 --- a/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs.html +++ b/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs_source.html b/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs_source.html index df7a6359be..c6b179baeb 100644 --- a/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs_source.html +++ b/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs.html b/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs.html index fa5341f87c..67d75865ec 100644 --- a/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs.html +++ b/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs_source.html b/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs_source.html index d137f3af8c..320cbe7381 100644 --- a/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs_source.html +++ b/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs.html b/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs.html index a53c81f684..8574500f3f 100644 --- a/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs.html +++ b/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs_source.html b/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs_source.html index 8b90886b62..fb7592de9b 100644 --- a/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs_source.html +++ b/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs.html b/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs.html index e8f9fac212..a629a7fd41 100644 --- a/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs.html +++ b/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs_source.html b/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs_source.html index 2c7fb3234d..b3ae734147 100644 --- a/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs_source.html +++ b/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_token_8cs.html b/_token_8cs.html index bc8d40651d..4cbceea1f3 100644 --- a/_token_8cs.html +++ b/_token_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_token_8cs_source.html b/_token_8cs_source.html index 7444f7f26e..e04b76cc81 100644 --- a/_token_8cs_source.html +++ b/_token_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_token_factory_8cs.html b/_token_factory_8cs.html index 1017823332..4e107d1aa0 100644 --- a/_token_factory_8cs.html +++ b/_token_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_token_factory_8cs_source.html b/_token_factory_8cs_source.html index e98d5dfefd..ff7f73c000 100644 --- a/_token_factory_8cs_source.html +++ b/_token_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_topic_command_type_8cs.html b/_topic_command_type_8cs.html index 94f27bba2d..7793d8ab26 100644 --- a/_topic_command_type_8cs.html +++ b/_topic_command_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_topic_command_type_8cs_source.html b/_topic_command_type_8cs_source.html index a5bc80b68f..4ae7bb3d9a 100644 --- a/_topic_command_type_8cs_source.html +++ b/_topic_command_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_topic_parameters_8cs.html b/_topic_parameters_8cs.html index 22b654ff7c..b0179a153d 100644 --- a/_topic_parameters_8cs.html +++ b/_topic_parameters_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_topic_parameters_8cs_source.html b/_topic_parameters_8cs_source.html index 3506110d52..3a76b257f9 100644 --- a/_topic_parameters_8cs_source.html +++ b/_topic_parameters_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_topic_response_8cs.html b/_topic_response_8cs.html index 64d0c996b4..32ad287547 100644 --- a/_topic_response_8cs.html +++ b/_topic_response_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_topic_response_8cs_source.html b/_topic_response_8cs_source.html index eb41dc159e..2e7ec3b45d 100644 --- a/_topic_response_8cs_source.html +++ b/_topic_response_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_unauthorized_exception_8cs.html b/_unauthorized_exception_8cs.html index a29a15450c..44c16f39ee 100644 --- a/_unauthorized_exception_8cs.html +++ b/_unauthorized_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_unauthorized_exception_8cs_source.html b/_unauthorized_exception_8cs_source.html index 909799dbd2..09b61cac10 100644 --- a/_unauthorized_exception_8cs_source.html +++ b/_unauthorized_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_unrecognized_response_exception_8cs.html b/_unrecognized_response_exception_8cs.html index b5a2ef1777..51dbfb1b0e 100644 --- a/_unrecognized_response_exception_8cs.html +++ b/_unrecognized_response_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_unrecognized_response_exception_8cs_source.html b/_unrecognized_response_exception_8cs_source.html index 207c8db4e8..d206c28897 100644 --- a/_unrecognized_response_exception_8cs_source.html +++ b/_unrecognized_response_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_updates_configuration_8cs.html b/_updates_configuration_8cs.html index c42e6a6750..68853665db 100644 --- a/_updates_configuration_8cs.html +++ b/_updates_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_updates_configuration_8cs_source.html b/_updates_configuration_8cs_source.html index 78bbfd1c09..3ca1179c30 100644 --- a/_updates_configuration_8cs_source.html +++ b/_updates_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_user_controller_8cs.html b/_user_controller_8cs.html index 90fc6e8772..c93b076482 100644 --- a/_user_controller_8cs.html +++ b/_user_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_user_controller_8cs_source.html b/_user_controller_8cs_source.html index 1107fae009..e948f72dea 100644 --- a/_user_controller_8cs_source.html +++ b/_user_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_user_update_8cs.html b/_user_update_8cs.html index 7aba12112b..e2e1334b59 100644 --- a/_user_update_8cs.html +++ b/_user_update_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_user_update_8cs_source.html b/_user_update_8cs_source.html index 13eba4d1f8..e4b1a19010 100644 --- a/_user_update_8cs_source.html +++ b/_user_update_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_users_client_8cs.html b/_users_client_8cs.html index 81a9de0319..e9e14d5485 100644 --- a/_users_client_8cs.html +++ b/_users_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_users_client_8cs_source.html b/_users_client_8cs_source.html index 6a9eacfdec..ef31494006 100644 --- a/_users_client_8cs_source.html +++ b/_users_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_version_command_8cs.html b/_version_command_8cs.html index 3959a91869..f2e3c1a8a1 100644 --- a/_version_command_8cs.html +++ b/_version_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_version_command_8cs_source.html b/_version_command_8cs_source.html index f40bf5c82f..db99685389 100644 --- a/_version_command_8cs_source.html +++ b/_version_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_version_converter_8cs.html b/_version_converter_8cs.html index 285107fb3c..ec2bc2221b 100644 --- a/_version_converter_8cs.html +++ b/_version_converter_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_version_converter_8cs_source.html b/_version_converter_8cs_source.html index d1c11364df..985a403508 100644 --- a/_version_converter_8cs_source.html +++ b/_version_converter_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_version_extensions_8cs.html b/_version_extensions_8cs.html index 624179a2c0..c12d023edd 100644 --- a/_version_extensions_8cs.html +++ b/_version_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_version_extensions_8cs_source.html b/_version_extensions_8cs_source.html index 719f9bce72..5c5cd1af44 100644 --- a/_version_extensions_8cs_source.html +++ b/_version_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_version_mismatch_exception_8cs.html b/_version_mismatch_exception_8cs.html index 21adfc8bfa..afdbed8d2d 100644 --- a/_version_mismatch_exception_8cs.html +++ b/_version_mismatch_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_version_mismatch_exception_8cs_source.html b/_version_mismatch_exception_8cs_source.html index 52f50f5f36..cea8498a42 100644 --- a/_version_mismatch_exception_8cs_source.html +++ b/_version_mismatch_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_watchdog_2_i_watchdog_8cs.html b/_watchdog_2_i_watchdog_8cs.html index 324988a6c7..51d50e54ba 100644 --- a/_watchdog_2_i_watchdog_8cs.html +++ b/_watchdog_2_i_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_watchdog_2_i_watchdog_8cs_source.html b/_watchdog_2_i_watchdog_8cs_source.html index f0a1456f96..ac4f7992fe 100644 --- a/_watchdog_2_i_watchdog_8cs_source.html +++ b/_watchdog_2_i_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_watchdog_2_i_watchdog_factory_8cs.html b/_watchdog_2_i_watchdog_factory_8cs.html index 78df298fa7..bb42b07163 100644 --- a/_watchdog_2_i_watchdog_factory_8cs.html +++ b/_watchdog_2_i_watchdog_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_watchdog_2_i_watchdog_factory_8cs_source.html b/_watchdog_2_i_watchdog_factory_8cs_source.html index 6d855b2d37..c91831f4a8 100644 --- a/_watchdog_2_i_watchdog_factory_8cs_source.html +++ b/_watchdog_2_i_watchdog_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_watchdog_2_watchdog_factory_8cs.html b/_watchdog_2_watchdog_factory_8cs.html index 24bb5fe101..a9a408c726 100644 --- a/_watchdog_2_watchdog_factory_8cs.html +++ b/_watchdog_2_watchdog_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_watchdog_2_watchdog_factory_8cs_source.html b/_watchdog_2_watchdog_factory_8cs_source.html index dc9ef14015..78b0aae8d1 100644 --- a/_watchdog_2_watchdog_factory_8cs_source.html +++ b/_watchdog_2_watchdog_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_watchdog_8cs.html b/_watchdog_8cs.html index f5998d3c49..56acd1f089 100644 --- a/_watchdog_8cs.html +++ b/_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_watchdog_8cs_source.html b/_watchdog_8cs_source.html index 74c2d6dcc0..8ec35bd6ff 100644 --- a/_watchdog_8cs_source.html +++ b/_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_watchdog_base_8cs.html b/_watchdog_base_8cs.html index f6866c35b2..deab32c955 100644 --- a/_watchdog_base_8cs.html +++ b/_watchdog_base_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_watchdog_base_8cs_source.html b/_watchdog_base_8cs_source.html index 3ac61a7813..c3deba7db7 100644 --- a/_watchdog_base_8cs_source.html +++ b/_watchdog_base_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -94,9 +94,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
WatchdogBase.cs
-Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Logging;
3 using Newtonsoft.Json;
4 using System;
5 using System.Collections.Generic;
6 using System.Linq;
7 using System.Threading;
8 using System.Threading.Tasks;
20 
21 namespace Tgstation.Server.Host.Components.Watchdog
22 {
26  #pragma warning disable CA1506 // TODO: Decomplexify
28  {
30  public bool Running
31  {
32  get => running;
33  set
34  {
35  running = value;
36  Logger.LogTrace("Running set to {0}", running);
37  }
38  }
39 
41  public abstract bool AlphaIsActive { get; }
42 
44  public abstract Models.CompileJob ActiveCompileJob { get; }
45 
47  public DreamDaemonLaunchParameters ActiveLaunchParameters { get; protected set; }
48 
50  public DreamDaemonLaunchParameters LastLaunchParameters { get; protected set; }
51 
53  public abstract RebootState? RebootState { get; }
54 
58  protected TaskCompletionSource<object> ActiveParametersUpdated { get; set; }
59 
63  protected SemaphoreSlim Semaphore { get; }
64 
68  protected ILogger Logger { get; }
69 
73  protected IChatManager Chat { get; }
74 
79 
83  protected IDmbFactory DmbFactory { get; }
84 
88  protected IAsyncDelayer AsyncDelayer { get; }
89 
93  readonly Api.Models.Instance instance;
94 
99 
104 
109 
114 
118  readonly object controllerDisposeLock;
119 
123  readonly bool autoStart;
124 
129 
133  CancellationTokenSource monitorCts;
134 
139 
144 
149 
153  bool running;
154 
158  bool disposed;
159 
175  protected WatchdogBase(
176  IChatManager chat,
177  ISessionControllerFactory sessionControllerFactory,
178  IDmbFactory dmbFactory,
179  IReattachInfoHandler reattachInfoHandler,
180  IDatabaseContextFactory databaseContextFactory,
181  IJobManager jobManager,
182  IServerControl serverControl,
183  IAsyncDelayer asyncDelayer,
184  ILogger logger,
185  DreamDaemonLaunchParameters initialLaunchParameters,
186  Api.Models.Instance instance,
187  bool autoStart)
188  {
189  Chat = chat ?? throw new ArgumentNullException(nameof(chat));
190  SessionControllerFactory = sessionControllerFactory ?? throw new ArgumentNullException(nameof(sessionControllerFactory));
191  DmbFactory = dmbFactory ?? throw new ArgumentNullException(nameof(dmbFactory));
192  this.reattachInfoHandler = reattachInfoHandler ?? throw new ArgumentNullException(nameof(reattachInfoHandler));
193  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
194  this.jobManager = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
195  AsyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
196  Logger = logger ?? throw new ArgumentNullException(nameof(logger));
197  ActiveLaunchParameters = initialLaunchParameters ?? throw new ArgumentNullException(nameof(initialLaunchParameters));
198  this.instance = instance ?? throw new ArgumentNullException(nameof(instance));
199  this.autoStart = autoStart;
200 
201  if (serverControl == null)
202  throw new ArgumentNullException(nameof(serverControl));
203 
204  chat.RegisterCommandHandler(this);
205 
206  ActiveLaunchParameters = initialLaunchParameters;
207  releaseServers = false;
208  ActiveParametersUpdated = new TaskCompletionSource<object>();
209  controllerDisposeLock = new object();
210 
211  restartRegistration = serverControl.RegisterForRestart(this);
212  try
213  {
214  Semaphore = new SemaphoreSlim(1);
215  }
216  catch
217  {
218  restartRegistration.Dispose();
219  throw;
220  }
221  }
222 
224  public void Dispose()
225  {
226  Logger.LogTrace("Disposing...");
227  Semaphore.Dispose();
228  restartRegistration.Dispose();
229  DisposeAndNullControllers();
230  monitorCts?.Dispose();
231  disposed = true;
232  }
233 
241  async Task TerminateNoLock(bool graceful, bool announce, CancellationToken cancellationToken)
242  {
243  if (!Running)
244  return;
245  if (!graceful)
246  {
247  var eventTask = HandleEvent(releaseServers ? EventType.WatchdogDetach : EventType.WatchdogShutdown, null, cancellationToken);
248 
249  var chatTask = announce ? Chat.SendWatchdogMessage("Shutting down...", false, cancellationToken) : Task.CompletedTask;
250 
251  await eventTask.ConfigureAwait(false);
252 
253  await StopMonitor().ConfigureAwait(false);
254 
255  DisposeAndNullControllers();
256 
257  LastLaunchParameters = null;
258 
259  await chatTask.ConfigureAwait(false);
260  return;
261  }
262 
263  // merely set the reboot state
264  var toKill = GetActiveController();
265  if (toKill != null)
266  {
267  await toKill.SetRebootState(Session.RebootState.Shutdown, cancellationToken).ConfigureAwait(false);
268  Logger.LogTrace("Graceful termination requested");
269  }
270  else
271  Logger.LogTrace("Could not gracefully terminate as there is no active controller!");
272  }
273 
280  async Task<MonitorAction> HandleHeartbeat(ISessionController activeServer, CancellationToken cancellationToken)
281  {
282  Logger.LogTrace("Sending heartbeat to active server...");
283  var response = await activeServer.SendCommand(new TopicParameters(), cancellationToken).ConfigureAwait(false);
284 
285  var shouldShutdown = activeServer.RebootState == Session.RebootState.Shutdown;
286  if (response == null)
287  {
288  switch (++heartbeatsMissed)
289  {
290  case 1:
291  Logger.LogDebug("DEFCON 4: Watchdog missed first heartbeat!");
292  break;
293  case 2:
294  var message2 = "DEFCON 3: Watchdog has missed 2 heartbeats!";
295  Logger.LogInformation(message2);
296  await Chat.SendWatchdogMessage(message2, true, cancellationToken).ConfigureAwait(false);
297  break;
298  case 3:
299  var actionToTake = shouldShutdown
300  ? "shutdown"
301  : "be restarted";
302  var message3 = $"DEFCON 2: Watchdog has missed 3 heartbeats! If DreamDaemon does not respond to the next one, the watchdog will {actionToTake}!";
303  Logger.LogWarning(message3);
304  await Chat.SendWatchdogMessage(message3, false, cancellationToken).ConfigureAwait(false);
305  break;
306  case 4:
307  var actionTaken = shouldShutdown
308  ? "Shutting down due to graceful termination request"
309  : "Restarting";
310  var message4 = $"DEFCON 1: Four heartbeats have been missed! {actionTaken}...";
311  Logger.LogWarning(message4);
312  DisposeAndNullControllers();
313  await Chat.SendWatchdogMessage(message4, false, cancellationToken).ConfigureAwait(false);
314  return shouldShutdown ? MonitorAction.Exit : MonitorAction.Restart;
315  default:
316  Logger.LogError("Invalid heartbeats missed count: {0}", heartbeatsMissed);
317  break;
318  }
319  }
320  else
321  heartbeatsMissed = 0;
322 
323  return MonitorAction.Continue;
324  }
325 
334  protected async Task LaunchImplNoLock(bool startMonitor, bool announce, DualReattachInformation reattachInfo, CancellationToken cancellationToken)
335  {
336  Logger.LogTrace("Begin LaunchImplNoLock");
337 
338  if (Running)
339  throw new JobException(ErrorCode.WatchdogRunning);
340 
342  throw new JobException(ErrorCode.WatchdogCompileJobCorrupted);
343 
344  // this is necessary, the monitor could be in it's sleep loop trying to restart, if so cancel THAT monitor and start our own with blackjack and hookers
345  Task chatTask;
346  if (startMonitor && await StopMonitor().ConfigureAwait(false))
347  chatTask = Chat.SendWatchdogMessage("Automatic retry sequence cancelled by manual launch. Restarting...", false, cancellationToken);
348  else if (announce)
349  chatTask = Chat.SendWatchdogMessage(reattachInfo == null ? "Launching..." : "Reattaching...", false, cancellationToken); // simple announce
350  else
351  chatTask = Task.CompletedTask; // no announce
352 
353  // since neither server is running, this is safe to do
354  LastLaunchParameters = ActiveLaunchParameters;
355  heartbeatsMissed = 0;
356 
357  // for when we call ourself and want to not catch thrown exceptions
358  var ignoreNestedException = false;
359  try
360  {
361  await InitControllers(() => ignoreNestedException = true, chatTask, reattachInfo, cancellationToken).ConfigureAwait(false);
362  await chatTask.ConfigureAwait(false);
363 
364  Logger.LogInformation("Launched servers successfully");
365  Running = true;
366 
367  if (startMonitor)
368  {
369  StartMonitor();
370  }
371  }
372  catch (Exception e)
373  {
374  // don't try to send chat tasks or warning logs if were suppressing exceptions or cancelled
375  if (!ignoreNestedException && !cancellationToken.IsCancellationRequested)
376  {
377  var originalChatTask = chatTask;
378  async Task ChainChatTaskWithErrorMessage()
379  {
380  await originalChatTask.ConfigureAwait(false);
381  await Chat.SendWatchdogMessage("Startup failed!", false, cancellationToken).ConfigureAwait(false);
382  }
383 
384  chatTask = ChainChatTaskWithErrorMessage();
385  Logger.LogWarning("Failed to start watchdog: {0}", e.ToString());
386  }
387 
388  throw;
389  }
390  finally
391  {
392  // finish the chat task that's in flight
393  try
394  {
395  await chatTask.ConfigureAwait(false);
396  }
397  catch (OperationCanceledException) { }
398  }
399  }
400 
404  protected void StartMonitor()
405  {
406  monitorCts = new CancellationTokenSource();
407  monitorTask = MonitorLifetimes(monitorCts.Token);
408  }
409 
414  protected async Task<bool> StopMonitor()
415  {
416  Logger.LogTrace("StopMonitor");
417  if (monitorTask == null)
418  return false;
419  var wasRunning = !monitorTask.IsCompleted;
420  monitorCts.Cancel();
421  await monitorTask.ConfigureAwait(false);
422  Logger.LogTrace("Stopped Monitor");
423  monitorCts.Dispose();
424  monitorTask = null;
425  monitorCts = null;
426  return wasRunning;
427  }
428 
435  protected async Task NotifyOfFailedReattach(bool inactiveReattachSuccess, CancellationToken cancellationToken)
436  {
437  // we lost the server, just restart entirely
438  DisposeAndNullControllers();
439  const string FailReattachMessage = "Unable to properly reattach to server! Restarting...";
440  Logger.LogWarning(FailReattachMessage);
441  Logger.LogDebug(inactiveReattachSuccess ? "Also could not reattach to inactive server!" : "Inactive server was reattached successfully!");
442  Task chatTask = Chat.SendWatchdogMessage(FailReattachMessage, false, cancellationToken);
443  await LaunchImplNoLock(true, false, null, cancellationToken).ConfigureAwait(false);
444  await chatTask.ConfigureAwait(false);
445  }
446 
454  protected async Task CheckLaunchResult(ISessionController controller, string serverName, CancellationToken cancellationToken)
455  {
456  var launchResult = await controller.LaunchResult.WithToken(cancellationToken).ConfigureAwait(false);
457 
458  // Dead sessions won't trigger this
459  if (launchResult.ExitCode.HasValue) // you killed us ray...
460  throw new JobException(
461  ErrorCode.WatchdogStartupFailed,
462  new JobException($"{serverName} failed to start: {launchResult}"));
463  if (!launchResult.StartupTime.HasValue)
464  throw new JobException(
465  ErrorCode.WatchdogStartupTimeout,
466  new JobException($"{serverName} timed out on startup: {ActiveLaunchParameters.StartupTimeout.Value}s"));
467  }
468 
472  protected abstract void DisposeAndNullControllersImpl();
473 
477  protected void DisposeAndNullControllers()
478  {
479  lock (controllerDisposeLock)
480  DisposeAndNullControllersImpl();
481  }
482 
487  protected abstract ISessionController GetActiveController();
488 
493  protected abstract DualReattachInformation CreateReattachInformation();
494 
501  protected abstract IReadOnlyDictionary<MonitorActivationReason, Task> GetMonitoredServerTasks(MonitorState monitorState);
502 
510  protected abstract Task HandleMonitorWakeup(
511  MonitorActivationReason activationReason,
512  MonitorState monitorState,
513  CancellationToken cancellationToken);
514 
515  private async Task<MonitorState> MonitorRestart(CancellationToken cancellationToken)
516  {
517  Logger.LogTrace("Monitor restart!");
518  DisposeAndNullControllers();
519 
520  var chatTask = Task.CompletedTask;
521  for (var retryAttempts = 1; ; ++retryAttempts)
522  {
523  Exception launchException = null;
524  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
525  try
526  {
527  // use LaunchImplNoLock without announcements or restarting the monitor
528  await LaunchImplNoLock(false, false, null, cancellationToken).ConfigureAwait(false);
529  if (Running)
530  {
531  Logger.LogDebug("Relaunch successful, resetting monitor state...");
532  return new MonitorState();
533  }
534  }
535  catch (OperationCanceledException)
536  {
537  throw;
538  }
539  catch (Exception e)
540  {
541  launchException = e;
542  }
543 
544  await chatTask.ConfigureAwait(false);
545  if (!Running)
546  {
547  if (launchException == null)
548  Logger.LogWarning("Failed to automatically restart the watchdog! Attempt: {0}", retryAttempts);
549  else
550  Logger.LogWarning("Failed to automatically restart the watchdog! Attempt: {0}, Exception: {1}", retryAttempts, launchException);
551  var retryDelay = Math.Min(
552  Convert.ToInt32(
553  Math.Pow(2, retryAttempts)),
554  TimeSpan.FromHours(1).Seconds); // max of one hour, increasing by a power of 2 each time
555  chatTask = Chat.SendWatchdogMessage(
556  $"Failed to restart (Attempt: {retryAttempts}), retrying in {retryDelay}",
557  false,
558  cancellationToken);
559  await Task.WhenAll(
561  TimeSpan.FromSeconds(retryDelay),
562  cancellationToken),
563  chatTask)
564  .ConfigureAwait(false);
565  }
566  }
567  }
568 
574  private async Task MonitorLifetimes(CancellationToken cancellationToken)
575  {
576  Logger.LogTrace("Entered MonitorLifetimes");
577  using var _ = cancellationToken.Register(() => Logger.LogTrace("Monitor cancellationToken triggered"));
578 
579  // this function is responsible for calling HandlerMonitorWakeup when necessary and manitaining the MonitorState
580  var iteration = 1;
581  try
582  {
583  for (var monitorState = new MonitorState(); monitorState.NextAction != MonitorAction.Exit; ++iteration)
584  try
585  {
586  Logger.LogDebug("Iteration {0} of monitor loop", iteration);
587 
588  // load the activation tasks into local variables
589  var serverTasks = GetMonitoredServerTasks(monitorState);
590  if (serverTasks.Count != 5)
591  throw new InvalidOperationException("Expected 5 monitored server tasks!");
592 
593  var activeServerLifetime = serverTasks[MonitorActivationReason.ActiveServerCrashed];
594  var activeServerReboot = serverTasks[MonitorActivationReason.ActiveServerRebooted];
595  var inactiveServerLifetime = serverTasks[MonitorActivationReason.InactiveServerCrashed];
596  var inactiveServerReboot = serverTasks[MonitorActivationReason.InactiveServerRebooted];
597  var inactiveStartupComplete = serverTasks[MonitorActivationReason.InactiveServerStartupComplete];
598 
599  Task activeLaunchParametersChanged = ActiveParametersUpdated.Task;
600  var newDmbAvailable = DmbFactory.OnNewerDmb;
601 
602  var heartbeatSeconds = ActiveLaunchParameters.HeartbeatSeconds.Value;
603  var heartbeat = heartbeatSeconds == 0
604  ? Extensions.TaskExtensions.InfiniteTask()
605  : Task.Delay(TimeSpan.FromSeconds(heartbeatSeconds));
606 
607  // cancel waiting if requested
608  var cancelTcs = new TaskCompletionSource<object>();
609  using (cancellationToken.Register(() => cancelTcs.SetCanceled()))
610  {
611  var toWaitOn = Task.WhenAny(
612  activeServerLifetime,
613  activeServerReboot,
614  inactiveServerLifetime,
615  inactiveServerReboot,
616  inactiveStartupComplete,
617  heartbeat,
618  newDmbAvailable,
619  cancelTcs.Task,
620  activeLaunchParametersChanged);
621 
622  // wait for something to happen
623  await toWaitOn.ConfigureAwait(false);
624  cancellationToken.ThrowIfCancellationRequested();
625  }
626 
627  Logger.LogTrace("Monitor activated");
628 
629  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
630  {
631  // always run HandleMonitorWakeup from the context of the semaphore lock
632  // multiple things may have happened, handle them one at a time
633  for (var moreActivationsToProcess = true; moreActivationsToProcess && (monitorState.NextAction == MonitorAction.Continue || monitorState.NextAction == MonitorAction.Skip);)
634  {
635  MonitorActivationReason activationReason = default; // this will always be assigned before being used
636 
637  // process the tasks in this order and call HandlerMonitorWakup for each
638  bool CheckActivationReason(ref Task task, MonitorActivationReason testActivationReason)
639  {
640  var taskCompleted = task?.IsCompleted == true;
641  task = null;
642  if (monitorState.NextAction == MonitorAction.Skip)
643  monitorState.NextAction = MonitorAction.Continue;
644  else if (taskCompleted)
645  {
646  activationReason = testActivationReason;
647  return true;
648  }
649 
650  return false;
651  }
652 
653  var anyActivation = CheckActivationReason(ref activeServerLifetime, MonitorActivationReason.ActiveServerCrashed)
654  || CheckActivationReason(ref activeServerReboot, MonitorActivationReason.ActiveServerRebooted)
655  || CheckActivationReason(ref newDmbAvailable, MonitorActivationReason.NewDmbAvailable)
656  || CheckActivationReason(ref inactiveServerLifetime, MonitorActivationReason.InactiveServerCrashed)
657  || CheckActivationReason(ref inactiveServerReboot, MonitorActivationReason.InactiveServerRebooted)
658  || CheckActivationReason(ref inactiveStartupComplete, MonitorActivationReason.InactiveServerStartupComplete)
659  || CheckActivationReason(ref activeLaunchParametersChanged, MonitorActivationReason.ActiveLaunchParametersUpdated)
660  || CheckActivationReason(ref heartbeat, MonitorActivationReason.Heartbeat);
661 
662  if (!anyActivation)
663  moreActivationsToProcess = false;
664  else
665  {
666  Logger.LogTrace("Reason: {0}", activationReason);
667  if (activationReason == MonitorActivationReason.Heartbeat)
668  monitorState.NextAction = await HandleHeartbeat(
669  monitorState.ActiveServer,
670  cancellationToken)
671  .ConfigureAwait(false);
672  else
673  await HandleMonitorWakeup(
674  activationReason,
675  monitorState,
676  cancellationToken)
677  .ConfigureAwait(false);
678  }
679  }
680  }
681 
682  Logger.LogTrace("Next monitor action is to {0}", monitorState.NextAction);
683  if (monitorState.NextAction == MonitorAction.Restart)
684  monitorState = await MonitorRestart(cancellationToken).ConfigureAwait(false);
685  }
686  catch (OperationCanceledException)
687  {
688  throw;
689  }
690  catch (Exception e)
691  {
692  // really, this should NEVER happen
693  Logger.LogError(
694  "Monitor crashed! Iteration: {0}, Monitor State: {1}, Exception: {2}",
695  iteration,
696  JsonConvert.SerializeObject(monitorState),
697  e);
698 
699  var nextActionMessage = monitorState.NextAction != MonitorAction.Exit
700  ? "Restarting"
701  : "Shutting down";
702  var chatTask = Chat.SendWatchdogMessage(
703  $"Monitor crashed, this should NEVER happen! Please report this, full details in logs! {nextActionMessage}. Error: {e.Message}",
704  false,
705  cancellationToken);
706 
707  if (disposed)
708  monitorState.NextAction = MonitorAction.Exit;
709  else if (monitorState.NextAction != MonitorAction.Exit)
710  monitorState = await MonitorRestart(cancellationToken).ConfigureAwait(false);
711 
712  await chatTask.ConfigureAwait(false);
713  }
714  }
715  catch (OperationCanceledException)
716  {
717  Logger.LogDebug("Monitor cancelled");
718 
719  if (releaseServers)
720  {
721  Logger.LogTrace("Detaching servers...");
722  releasedReattachInformation = CreateReattachInformation();
723  }
724  }
725 
726  DisposeAndNullControllers();
727 
728  Logger.LogTrace("Monitor exiting...");
729  }
730 
739  protected abstract Task InitControllers(Action callBeforeRecurse, Task chatTask, DualReattachInformation reattachInfo, CancellationToken cancellationToken);
740 
742  public async Task ChangeSettings(DreamDaemonLaunchParameters launchParameters, CancellationToken cancellationToken)
743  {
744  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
745  {
746  if (launchParameters.Match(ActiveLaunchParameters))
747  return;
748  ActiveLaunchParameters = launchParameters;
749  if (Running)
750  ActiveParametersUpdated.TrySetResult(null); // queue an update
751  }
752  }
753 
755  public async Task HandleEvent(EventType eventType, IEnumerable<string> parameters, CancellationToken cancellationToken)
756  {
757  var activeServer = GetActiveController();
758 
759  // Server may have ended
760  if (activeServer == null)
761  return;
762 
763  var notification = new EventNotification(eventType, parameters);
764  var result = await activeServer.SendCommand(
765  new TopicParameters(notification),
766  cancellationToken)
767  .ConfigureAwait(false);
768 
769  if (result?.InteropResponse?.ChatResponses != null)
770  await Task.WhenAll(
771  result.InteropResponse.ChatResponses.Select(
772  x => Chat.SendMessage(
773  x.Text,
774  x.ChannelIds
775  .Select(channelIdString =>
776  {
777  if (UInt64.TryParse(channelIdString, out var channelId))
778  return (ulong?)channelId;
779 
780  return null;
781  })
782  .Where(nullableChannelId => nullableChannelId.HasValue)
783  .Select(nullableChannelId => nullableChannelId.Value),
784  cancellationToken)))
785  .ConfigureAwait(false);
786  }
787 
789  public async Task<string> HandleChatCommand(string commandName, string arguments, ChatUser sender, CancellationToken cancellationToken)
790  {
791  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
792  {
793  if (!Running)
794  return "ERROR: Server offline!";
795 
796  var commandObject = new ChatCommand(sender, commandName, arguments);
797 
798  var command = new TopicParameters(commandObject);
799 
800  var activeServer = GetActiveController();
801  var commandResult = await activeServer.SendCommand(command, cancellationToken).ConfigureAwait(false);
802 
803  if (commandResult == null)
804  return "TGS: Bad topic exchange!";
805 
806  if (commandResult.InteropResponse == null)
807  return "TGS: Bad topic response!";
808 
809  return commandResult.InteropResponse.CommandResponseMessage ??
810  "TGS: Command processed but no DMAPI response returned!";
811  }
812  }
813 
815  public async Task Launch(CancellationToken cancellationToken)
816  {
817  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
818  await LaunchImplNoLock(true, true, null, cancellationToken).ConfigureAwait(false);
819  }
820 
822  public virtual async Task ResetRebootState(CancellationToken cancellationToken)
823  {
824  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
825  {
826  if (!Running)
827  return;
828  var toClear = GetActiveController();
829  if (toClear != null)
830  await toClear.SetRebootState(Session.RebootState.Normal, cancellationToken).ConfigureAwait(false);
831  }
832  }
833 
835  public async Task Restart(bool graceful, CancellationToken cancellationToken)
836  {
837  Logger.LogTrace("Begin Restart. Graceful: {0}", graceful);
838  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
839  {
840  if (!graceful || !Running)
841  {
842  Task chatTask;
843  if (Running)
844  {
845  chatTask = Chat.SendWatchdogMessage("Manual restart triggered...", false, cancellationToken);
846  await TerminateNoLock(false, false, cancellationToken).ConfigureAwait(false);
847  }
848  else
849  chatTask = Task.CompletedTask;
850  await LaunchImplNoLock(true, !Running, null, cancellationToken).ConfigureAwait(false);
851  await chatTask.ConfigureAwait(false);
852  }
853 
854  var toReboot = GetActiveController();
855  if (toReboot != null)
856  {
857  if (!await toReboot.SetRebootState(Session.RebootState.Restart, cancellationToken).ConfigureAwait(false))
858  Logger.LogWarning("Unable to send reboot state change event!");
859  }
860  }
861  }
862 
864  public async Task StartAsync(CancellationToken cancellationToken)
865  {
866  var reattachInfo = await reattachInfoHandler.Load(cancellationToken).ConfigureAwait(false);
867  if (!autoStart && reattachInfo == null)
868  return;
869 
870  long? adminUserId = null;
871 
872  await databaseContextFactory.UseContext(
873  async db => adminUserId = await db
874  .Users
875  .AsQueryable()
876  .Where(x => x.CanonicalName == Models.User.CanonicalizeName(Api.Models.User.AdminName))
877  .Select(x => x.Id)
878  .FirstAsync(cancellationToken)
879  .ConfigureAwait(false))
880  .ConfigureAwait(false);
881  var job = new Models.Job
882  {
883  StartedBy = new Models.User
884  {
885  Id = adminUserId.Value
886  },
887  Instance = new Models.Instance
888  {
889  Id = instance.Id
890  },
891  Description = $"Instance startup watchdog {(reattachInfo != null ? "reattach" : "launch")}",
892  CancelRight = (ulong)DreamDaemonRights.Shutdown,
893  CancelRightsType = RightsType.DreamDaemon
894  };
895  await jobManager.RegisterOperation(job, async (j, databaseContextFactory, progressFunction, ct) =>
896  {
897  using (await SemaphoreSlimContext.Lock(Semaphore, ct).ConfigureAwait(false))
898  await LaunchImplNoLock(true, true, reattachInfo, ct).ConfigureAwait(false);
899  }, cancellationToken).ConfigureAwait(false);
900  }
901 
903  public async Task StopAsync(CancellationToken cancellationToken)
904  {
905  if (releaseServers)
906  {
907  await StopMonitor().ConfigureAwait(false);
908  if (releasedReattachInformation != null)
909  await reattachInfoHandler.Save(releasedReattachInformation, cancellationToken).ConfigureAwait(false);
910  }
911 
912  await TerminateNoLock(false, !releaseServers, cancellationToken).ConfigureAwait(false);
913  }
914 
916  public async Task Terminate(bool graceful, CancellationToken cancellationToken)
917  {
918  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
919  await TerminateNoLock(graceful, !releaseServers, cancellationToken).ConfigureAwait(false);
920  }
921 
923  public async Task HandleRestart(Version updateVersion, CancellationToken cancellationToken)
924  {
925  releaseServers = true;
926  if (Running)
927  await Chat.SendWatchdogMessage("Detaching...", false, cancellationToken).ConfigureAwait(false);
928  }
929  }
930 }
readonly bool autoStart
If the WatchdogBase should LaunchImplNoLock(bool, bool, DualReattachInformation, CancellationToken) i...
+Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Logging;
3 using Newtonsoft.Json;
4 using System;
5 using System.Collections.Generic;
6 using System.Linq;
7 using System.Threading;
8 using System.Threading.Tasks;
20 
21 namespace Tgstation.Server.Host.Components.Watchdog
22 {
26  #pragma warning disable CA1506 // TODO: Decomplexify
28  {
30  public bool Running
31  {
32  get => running;
33  set
34  {
35  running = value;
36  Logger.LogTrace("Running set to {0}", running);
37  }
38  }
39 
41  public abstract bool AlphaIsActive { get; }
42 
44  public abstract Models.CompileJob ActiveCompileJob { get; }
45 
47  public DreamDaemonLaunchParameters ActiveLaunchParameters { get; protected set; }
48 
50  public DreamDaemonLaunchParameters LastLaunchParameters { get; protected set; }
51 
53  public abstract RebootState? RebootState { get; }
54 
58  protected TaskCompletionSource<object> ActiveParametersUpdated { get; set; }
59 
63  protected SemaphoreSlim Semaphore { get; }
64 
68  protected ILogger Logger { get; }
69 
73  protected IChatManager Chat { get; }
74 
79 
83  protected IDmbFactory DmbFactory { get; }
84 
88  protected IAsyncDelayer AsyncDelayer { get; }
89 
93  readonly Api.Models.Instance instance;
94 
99 
104 
109 
114 
118  readonly object controllerDisposeLock;
119 
123  readonly bool autoStart;
124 
129 
133  CancellationTokenSource monitorCts;
134 
139 
144 
149 
153  bool running;
154 
158  bool disposed;
159 
175  protected WatchdogBase(
176  IChatManager chat,
177  ISessionControllerFactory sessionControllerFactory,
178  IDmbFactory dmbFactory,
179  IReattachInfoHandler reattachInfoHandler,
180  IDatabaseContextFactory databaseContextFactory,
181  IJobManager jobManager,
182  IServerControl serverControl,
183  IAsyncDelayer asyncDelayer,
184  ILogger logger,
185  DreamDaemonLaunchParameters initialLaunchParameters,
186  Api.Models.Instance instance,
187  bool autoStart)
188  {
189  Chat = chat ?? throw new ArgumentNullException(nameof(chat));
190  SessionControllerFactory = sessionControllerFactory ?? throw new ArgumentNullException(nameof(sessionControllerFactory));
191  DmbFactory = dmbFactory ?? throw new ArgumentNullException(nameof(dmbFactory));
192  this.reattachInfoHandler = reattachInfoHandler ?? throw new ArgumentNullException(nameof(reattachInfoHandler));
193  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
194  this.jobManager = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
195  AsyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
196  Logger = logger ?? throw new ArgumentNullException(nameof(logger));
197  ActiveLaunchParameters = initialLaunchParameters ?? throw new ArgumentNullException(nameof(initialLaunchParameters));
198  this.instance = instance ?? throw new ArgumentNullException(nameof(instance));
199  this.autoStart = autoStart;
200 
201  if (serverControl == null)
202  throw new ArgumentNullException(nameof(serverControl));
203 
204  chat.RegisterCommandHandler(this);
205 
206  ActiveLaunchParameters = initialLaunchParameters;
207  releaseServers = false;
208  ActiveParametersUpdated = new TaskCompletionSource<object>();
209  controllerDisposeLock = new object();
210 
211  restartRegistration = serverControl.RegisterForRestart(this);
212  try
213  {
214  Semaphore = new SemaphoreSlim(1);
215  }
216  catch
217  {
218  restartRegistration.Dispose();
219  throw;
220  }
221  }
222 
224  public void Dispose()
225  {
226  Logger.LogTrace("Disposing...");
227  Semaphore.Dispose();
228  restartRegistration.Dispose();
229  DisposeAndNullControllers();
230  monitorCts?.Dispose();
231  disposed = true;
232  }
233 
241  async Task TerminateNoLock(bool graceful, bool announce, CancellationToken cancellationToken)
242  {
243  if (!Running)
244  return;
245  if (!graceful)
246  {
247  var eventTask = HandleEvent(releaseServers ? EventType.WatchdogDetach : EventType.WatchdogShutdown, null, cancellationToken);
248 
249  var chatTask = announce ? Chat.SendWatchdogMessage("Shutting down...", false, cancellationToken) : Task.CompletedTask;
250 
251  await eventTask.ConfigureAwait(false);
252 
253  await StopMonitor().ConfigureAwait(false);
254 
255  DisposeAndNullControllers();
256 
257  LastLaunchParameters = null;
258 
259  await chatTask.ConfigureAwait(false);
260  return;
261  }
262 
263  // merely set the reboot state
264  var toKill = GetActiveController();
265  if (toKill != null)
266  {
267  await toKill.SetRebootState(Session.RebootState.Shutdown, cancellationToken).ConfigureAwait(false);
268  Logger.LogTrace("Graceful termination requested");
269  }
270  else
271  Logger.LogTrace("Could not gracefully terminate as there is no active controller!");
272  }
273 
280  async Task<MonitorAction> HandleHeartbeat(ISessionController activeServer, CancellationToken cancellationToken)
281  {
282  Logger.LogTrace("Sending heartbeat to active server...");
283  var response = await activeServer.SendCommand(new TopicParameters(), cancellationToken).ConfigureAwait(false);
284 
285  var shouldShutdown = activeServer.RebootState == Session.RebootState.Shutdown;
286  if (response == null)
287  {
288  switch (++heartbeatsMissed)
289  {
290  case 1:
291  Logger.LogDebug("DEFCON 4: Watchdog missed first heartbeat!");
292  break;
293  case 2:
294  var message2 = "DEFCON 3: Watchdog has missed 2 heartbeats!";
295  Logger.LogInformation(message2);
296  await Chat.SendWatchdogMessage(message2, true, cancellationToken).ConfigureAwait(false);
297  break;
298  case 3:
299  var actionToTake = shouldShutdown
300  ? "shutdown"
301  : "be restarted";
302  var message3 = $"DEFCON 2: Watchdog has missed 3 heartbeats! If DreamDaemon does not respond to the next one, the watchdog will {actionToTake}!";
303  Logger.LogWarning(message3);
304  await Chat.SendWatchdogMessage(message3, false, cancellationToken).ConfigureAwait(false);
305  break;
306  case 4:
307  var actionTaken = shouldShutdown
308  ? "Shutting down due to graceful termination request"
309  : "Restarting";
310  var message4 = $"DEFCON 1: Four heartbeats have been missed! {actionTaken}...";
311  Logger.LogWarning(message4);
312  DisposeAndNullControllers();
313  await Chat.SendWatchdogMessage(message4, false, cancellationToken).ConfigureAwait(false);
314  return shouldShutdown ? MonitorAction.Exit : MonitorAction.Restart;
315  default:
316  Logger.LogError("Invalid heartbeats missed count: {0}", heartbeatsMissed);
317  break;
318  }
319  }
320  else
321  heartbeatsMissed = 0;
322 
323  return MonitorAction.Continue;
324  }
325 
334  protected async Task LaunchImplNoLock(bool startMonitor, bool announce, DualReattachInformation reattachInfo, CancellationToken cancellationToken)
335  {
336  Logger.LogTrace("Begin LaunchImplNoLock");
337 
338  if (Running)
339  throw new JobException(ErrorCode.WatchdogRunning);
340 
342  throw new JobException(ErrorCode.WatchdogCompileJobCorrupted);
343 
344  // this is necessary, the monitor could be in it's sleep loop trying to restart, if so cancel THAT monitor and start our own with blackjack and hookers
345  Task chatTask;
346  if (startMonitor && await StopMonitor().ConfigureAwait(false))
347  chatTask = Chat.SendWatchdogMessage("Automatic retry sequence cancelled by manual launch. Restarting...", false, cancellationToken);
348  else if (announce)
349  chatTask = Chat.SendWatchdogMessage(reattachInfo == null ? "Launching..." : "Reattaching...", false, cancellationToken); // simple announce
350  else
351  chatTask = Task.CompletedTask; // no announce
352 
353  // since neither server is running, this is safe to do
354  LastLaunchParameters = ActiveLaunchParameters;
355  heartbeatsMissed = 0;
356 
357  // for when we call ourself and want to not catch thrown exceptions
358  var ignoreNestedException = false;
359  try
360  {
361  await InitControllers(() => ignoreNestedException = true, chatTask, reattachInfo, cancellationToken).ConfigureAwait(false);
362  await chatTask.ConfigureAwait(false);
363 
364  Logger.LogInformation("Launched servers successfully");
365  Running = true;
366 
367  if (startMonitor)
368  {
369  StartMonitor();
370  }
371  }
372  catch (Exception e)
373  {
374  // don't try to send chat tasks or warning logs if were suppressing exceptions or cancelled
375  if (!ignoreNestedException && !cancellationToken.IsCancellationRequested)
376  {
377  var originalChatTask = chatTask;
378  async Task ChainChatTaskWithErrorMessage()
379  {
380  await originalChatTask.ConfigureAwait(false);
381  await Chat.SendWatchdogMessage("Startup failed!", false, cancellationToken).ConfigureAwait(false);
382  }
383 
384  chatTask = ChainChatTaskWithErrorMessage();
385  Logger.LogWarning("Failed to start watchdog: {0}", e.ToString());
386  }
387 
388  throw;
389  }
390  finally
391  {
392  // finish the chat task that's in flight
393  try
394  {
395  await chatTask.ConfigureAwait(false);
396  }
397  catch (OperationCanceledException) { }
398  }
399  }
400 
404  protected void StartMonitor()
405  {
406  monitorCts = new CancellationTokenSource();
407  monitorTask = MonitorLifetimes(monitorCts.Token);
408  }
409 
414  protected async Task<bool> StopMonitor()
415  {
416  Logger.LogTrace("StopMonitor");
417  if (monitorTask == null)
418  return false;
419  var wasRunning = !monitorTask.IsCompleted;
420  monitorCts.Cancel();
421  await monitorTask.ConfigureAwait(false);
422  Logger.LogTrace("Stopped Monitor");
423  monitorCts.Dispose();
424  monitorTask = null;
425  monitorCts = null;
426  return wasRunning;
427  }
428 
435  protected async Task NotifyOfFailedReattach(bool inactiveReattachSuccess, CancellationToken cancellationToken)
436  {
437  // we lost the server, just restart entirely
438  DisposeAndNullControllers();
439  const string FailReattachMessage = "Unable to properly reattach to server! Restarting...";
440  Logger.LogWarning(FailReattachMessage);
441  Logger.LogDebug(inactiveReattachSuccess ? "Also could not reattach to inactive server!" : "Inactive server was reattached successfully!");
442  Task chatTask = Chat.SendWatchdogMessage(FailReattachMessage, false, cancellationToken);
443  await LaunchImplNoLock(true, false, null, cancellationToken).ConfigureAwait(false);
444  await chatTask.ConfigureAwait(false);
445  }
446 
454  protected async Task CheckLaunchResult(ISessionController controller, string serverName, CancellationToken cancellationToken)
455  {
456  var launchResult = await controller.LaunchResult.WithToken(cancellationToken).ConfigureAwait(false);
457 
458  // Dead sessions won't trigger this
459  if (launchResult.ExitCode.HasValue) // you killed us ray...
460  throw new JobException(
461  ErrorCode.WatchdogStartupFailed,
462  new JobException($"{serverName} failed to start: {launchResult}"));
463  if (!launchResult.StartupTime.HasValue)
464  throw new JobException(
465  ErrorCode.WatchdogStartupTimeout,
466  new JobException($"{serverName} timed out on startup: {ActiveLaunchParameters.StartupTimeout.Value}s"));
467  }
468 
472  protected abstract void DisposeAndNullControllersImpl();
473 
477  protected void DisposeAndNullControllers()
478  {
479  lock (controllerDisposeLock)
480  DisposeAndNullControllersImpl();
481  }
482 
487  protected abstract ISessionController GetActiveController();
488 
493  protected abstract DualReattachInformation CreateReattachInformation();
494 
501  protected abstract IReadOnlyDictionary<MonitorActivationReason, Task> GetMonitoredServerTasks(MonitorState monitorState);
502 
510  protected abstract Task HandleMonitorWakeup(
511  MonitorActivationReason activationReason,
512  MonitorState monitorState,
513  CancellationToken cancellationToken);
514 
515  private async Task<MonitorState> MonitorRestart(CancellationToken cancellationToken)
516  {
517  Logger.LogTrace("Monitor restart!");
518  DisposeAndNullControllers();
519 
520  var chatTask = Task.CompletedTask;
521  for (var retryAttempts = 1; ; ++retryAttempts)
522  {
523  Exception launchException = null;
524  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
525  try
526  {
527  // use LaunchImplNoLock without announcements or restarting the monitor
528  await LaunchImplNoLock(false, false, null, cancellationToken).ConfigureAwait(false);
529  if (Running)
530  {
531  Logger.LogDebug("Relaunch successful, resetting monitor state...");
532  return new MonitorState();
533  }
534  }
535  catch (OperationCanceledException)
536  {
537  throw;
538  }
539  catch (Exception e)
540  {
541  launchException = e;
542  }
543 
544  await chatTask.ConfigureAwait(false);
545  if (!Running)
546  {
547  if (launchException == null)
548  Logger.LogWarning("Failed to automatically restart the watchdog! Attempt: {0}", retryAttempts);
549  else
550  Logger.LogWarning("Failed to automatically restart the watchdog! Attempt: {0}, Exception: {1}", retryAttempts, launchException);
551  var retryDelay = Math.Min(
552  Convert.ToInt32(
553  Math.Pow(2, retryAttempts)),
554  TimeSpan.FromHours(1).Seconds); // max of one hour, increasing by a power of 2 each time
555  chatTask = Chat.SendWatchdogMessage(
556  $"Failed to restart (Attempt: {retryAttempts}), retrying in {retryDelay}",
557  false,
558  cancellationToken);
559  await Task.WhenAll(
561  TimeSpan.FromSeconds(retryDelay),
562  cancellationToken),
563  chatTask)
564  .ConfigureAwait(false);
565  }
566  }
567  }
568 
574  private async Task MonitorLifetimes(CancellationToken cancellationToken)
575  {
576  Logger.LogTrace("Entered MonitorLifetimes");
577  using var _ = cancellationToken.Register(() => Logger.LogTrace("Monitor cancellationToken triggered"));
578 
579  // this function is responsible for calling HandlerMonitorWakeup when necessary and manitaining the MonitorState
580  var iteration = 1;
581  try
582  {
583  for (var monitorState = new MonitorState(); monitorState.NextAction != MonitorAction.Exit; ++iteration)
584  try
585  {
586  Logger.LogDebug("Iteration {0} of monitor loop", iteration);
587 
588  // load the activation tasks into local variables
589  var serverTasks = GetMonitoredServerTasks(monitorState);
590  if (serverTasks.Count != 5)
591  throw new InvalidOperationException("Expected 5 monitored server tasks!");
592 
593  var activeServerLifetime = serverTasks[MonitorActivationReason.ActiveServerCrashed];
594  var activeServerReboot = serverTasks[MonitorActivationReason.ActiveServerRebooted];
595  var inactiveServerLifetime = serverTasks[MonitorActivationReason.InactiveServerCrashed];
596  var inactiveServerReboot = serverTasks[MonitorActivationReason.InactiveServerRebooted];
597  var inactiveStartupComplete = serverTasks[MonitorActivationReason.InactiveServerStartupComplete];
598 
599  Task activeLaunchParametersChanged = ActiveParametersUpdated.Task;
600  var newDmbAvailable = DmbFactory.OnNewerDmb;
601 
602  var heartbeatSeconds = ActiveLaunchParameters.HeartbeatSeconds.Value;
603  var heartbeat = heartbeatSeconds == 0
604  ? Extensions.TaskExtensions.InfiniteTask()
605  : Task.Delay(TimeSpan.FromSeconds(heartbeatSeconds));
606 
607  // cancel waiting if requested
608  var cancelTcs = new TaskCompletionSource<object>();
609  using (cancellationToken.Register(() => cancelTcs.SetCanceled()))
610  {
611  var toWaitOn = Task.WhenAny(
612  activeServerLifetime,
613  activeServerReboot,
614  inactiveServerLifetime,
615  inactiveServerReboot,
616  inactiveStartupComplete,
617  heartbeat,
618  newDmbAvailable,
619  cancelTcs.Task,
620  activeLaunchParametersChanged);
621 
622  // wait for something to happen
623  await toWaitOn.ConfigureAwait(false);
624  }
625 
626  cancellationToken.ThrowIfCancellationRequested();
627  Logger.LogTrace("Monitor activated");
628 
629  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
630  {
631  // always run HandleMonitorWakeup from the context of the semaphore lock
632  // multiple things may have happened, handle them one at a time
633  for (var moreActivationsToProcess = true; moreActivationsToProcess && (monitorState.NextAction == MonitorAction.Continue || monitorState.NextAction == MonitorAction.Skip);)
634  {
635  MonitorActivationReason activationReason = default; // this will always be assigned before being used
636 
637  // process the tasks in this order and call HandlerMonitorWakup for each
638  bool CheckActivationReason(ref Task task, MonitorActivationReason testActivationReason)
639  {
640  var taskCompleted = task?.IsCompleted == true;
641  task = null;
642  if (monitorState.NextAction == MonitorAction.Skip)
643  monitorState.NextAction = MonitorAction.Continue;
644  else if (taskCompleted)
645  {
646  activationReason = testActivationReason;
647  return true;
648  }
649 
650  return false;
651  }
652 
653  var anyActivation = CheckActivationReason(ref activeServerLifetime, MonitorActivationReason.ActiveServerCrashed)
654  || CheckActivationReason(ref activeServerReboot, MonitorActivationReason.ActiveServerRebooted)
655  || CheckActivationReason(ref newDmbAvailable, MonitorActivationReason.NewDmbAvailable)
656  || CheckActivationReason(ref inactiveServerLifetime, MonitorActivationReason.InactiveServerCrashed)
657  || CheckActivationReason(ref inactiveServerReboot, MonitorActivationReason.InactiveServerRebooted)
658  || CheckActivationReason(ref inactiveStartupComplete, MonitorActivationReason.InactiveServerStartupComplete)
659  || CheckActivationReason(ref activeLaunchParametersChanged, MonitorActivationReason.ActiveLaunchParametersUpdated)
660  || CheckActivationReason(ref heartbeat, MonitorActivationReason.Heartbeat);
661 
662  if (!anyActivation)
663  moreActivationsToProcess = false;
664  else
665  {
666  Logger.LogTrace("Reason: {0}", activationReason);
667  if (activationReason == MonitorActivationReason.Heartbeat)
668  monitorState.NextAction = await HandleHeartbeat(
669  monitorState.ActiveServer,
670  cancellationToken)
671  .ConfigureAwait(false);
672  else
673  await HandleMonitorWakeup(
674  activationReason,
675  monitorState,
676  cancellationToken)
677  .ConfigureAwait(false);
678  }
679  }
680  }
681 
682  Logger.LogTrace("Next monitor action is to {0}", monitorState.NextAction);
683  if (monitorState.NextAction == MonitorAction.Restart)
684  monitorState = await MonitorRestart(cancellationToken).ConfigureAwait(false);
685  }
686  catch (OperationCanceledException)
687  {
688  throw;
689  }
690  catch (Exception e)
691  {
692  // really, this should NEVER happen
693  Logger.LogError(
694  "Monitor crashed! Iteration: {0}, Monitor State: {1}, Exception: {2}",
695  iteration,
696  JsonConvert.SerializeObject(monitorState),
697  e);
698 
699  var nextActionMessage = monitorState.NextAction != MonitorAction.Exit
700  ? "Restarting"
701  : "Shutting down";
702  var chatTask = Chat.SendWatchdogMessage(
703  $"Monitor crashed, this should NEVER happen! Please report this, full details in logs! {nextActionMessage}. Error: {e.Message}",
704  false,
705  cancellationToken);
706 
707  if (disposed)
708  monitorState.NextAction = MonitorAction.Exit;
709  else if (monitorState.NextAction != MonitorAction.Exit)
710  monitorState = await MonitorRestart(cancellationToken).ConfigureAwait(false);
711 
712  await chatTask.ConfigureAwait(false);
713  }
714  }
715  catch (OperationCanceledException)
716  {
717  Logger.LogDebug("Monitor cancelled");
718 
719  if (releaseServers)
720  {
721  Logger.LogTrace("Detaching servers...");
722  releasedReattachInformation = CreateReattachInformation();
723  }
724  }
725 
726  DisposeAndNullControllers();
727 
728  Logger.LogTrace("Monitor exiting...");
729  }
730 
739  protected abstract Task InitControllers(Action callBeforeRecurse, Task chatTask, DualReattachInformation reattachInfo, CancellationToken cancellationToken);
740 
742  public async Task ChangeSettings(DreamDaemonLaunchParameters launchParameters, CancellationToken cancellationToken)
743  {
744  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
745  {
746  bool match = launchParameters.CanApplyWithoutReboot(ActiveLaunchParameters);
747  ActiveLaunchParameters = launchParameters;
748  if (match || !Running)
749  return;
750 
751  ActiveParametersUpdated.TrySetResult(null); // queue an update
752  ActiveParametersUpdated = new TaskCompletionSource<object>();
753  }
754  }
755 
757  public async Task HandleEvent(EventType eventType, IEnumerable<string> parameters, CancellationToken cancellationToken)
758  {
759  var activeServer = GetActiveController();
760 
761  // Server may have ended
762  if (activeServer == null)
763  return;
764 
765  var notification = new EventNotification(eventType, parameters);
766  var result = await activeServer.SendCommand(
767  new TopicParameters(notification),
768  cancellationToken)
769  .ConfigureAwait(false);
770 
771  if (result?.InteropResponse?.ChatResponses != null)
772  await Task.WhenAll(
773  result.InteropResponse.ChatResponses.Select(
774  x => Chat.SendMessage(
775  x.Text,
776  x.ChannelIds
777  .Select(channelIdString =>
778  {
779  if (UInt64.TryParse(channelIdString, out var channelId))
780  return (ulong?)channelId;
781 
782  return null;
783  })
784  .Where(nullableChannelId => nullableChannelId.HasValue)
785  .Select(nullableChannelId => nullableChannelId.Value),
786  cancellationToken)))
787  .ConfigureAwait(false);
788  }
789 
791  public async Task<string> HandleChatCommand(string commandName, string arguments, ChatUser sender, CancellationToken cancellationToken)
792  {
793  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
794  {
795  if (!Running)
796  return "ERROR: Server offline!";
797 
798  var commandObject = new ChatCommand(sender, commandName, arguments);
799 
800  var command = new TopicParameters(commandObject);
801 
802  var activeServer = GetActiveController();
803  var commandResult = await activeServer.SendCommand(command, cancellationToken).ConfigureAwait(false);
804 
805  if (commandResult == null)
806  return "TGS: Bad topic exchange!";
807 
808  if (commandResult.InteropResponse == null)
809  return "TGS: Bad topic response!";
810 
811  return commandResult.InteropResponse.CommandResponseMessage ??
812  "TGS: Command processed but no DMAPI response returned!";
813  }
814  }
815 
817  public async Task Launch(CancellationToken cancellationToken)
818  {
819  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
820  await LaunchImplNoLock(true, true, null, cancellationToken).ConfigureAwait(false);
821  }
822 
824  public virtual async Task ResetRebootState(CancellationToken cancellationToken)
825  {
826  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
827  {
828  if (!Running)
829  return;
830  var toClear = GetActiveController();
831  if (toClear != null)
832  await toClear.SetRebootState(Session.RebootState.Normal, cancellationToken).ConfigureAwait(false);
833  }
834  }
835 
837  public async Task Restart(bool graceful, CancellationToken cancellationToken)
838  {
839  Logger.LogTrace("Begin Restart. Graceful: {0}", graceful);
840  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
841  {
842  if (!graceful || !Running)
843  {
844  Task chatTask;
845  if (Running)
846  {
847  chatTask = Chat.SendWatchdogMessage("Manual restart triggered...", false, cancellationToken);
848  await TerminateNoLock(false, false, cancellationToken).ConfigureAwait(false);
849  }
850  else
851  chatTask = Task.CompletedTask;
852  await LaunchImplNoLock(true, !Running, null, cancellationToken).ConfigureAwait(false);
853  await chatTask.ConfigureAwait(false);
854  }
855 
856  var toReboot = GetActiveController();
857  if (toReboot != null)
858  {
859  if (!await toReboot.SetRebootState(Session.RebootState.Restart, cancellationToken).ConfigureAwait(false))
860  Logger.LogWarning("Unable to send reboot state change event!");
861  }
862  }
863  }
864 
866  public async Task StartAsync(CancellationToken cancellationToken)
867  {
868  var reattachInfo = await reattachInfoHandler.Load(cancellationToken).ConfigureAwait(false);
869  if (!autoStart && reattachInfo == null)
870  return;
871 
872  long? adminUserId = null;
873 
874  await databaseContextFactory.UseContext(
875  async db => adminUserId = await db
876  .Users
877  .AsQueryable()
878  .Where(x => x.CanonicalName == Models.User.CanonicalizeName(Api.Models.User.AdminName))
879  .Select(x => x.Id)
880  .FirstAsync(cancellationToken)
881  .ConfigureAwait(false))
882  .ConfigureAwait(false);
883  var job = new Models.Job
884  {
885  StartedBy = new Models.User
886  {
887  Id = adminUserId.Value
888  },
889  Instance = new Models.Instance
890  {
891  Id = instance.Id
892  },
893  Description = $"Instance startup watchdog {(reattachInfo != null ? "reattach" : "launch")}",
894  CancelRight = (ulong)DreamDaemonRights.Shutdown,
895  CancelRightsType = RightsType.DreamDaemon
896  };
897  await jobManager.RegisterOperation(job, async (j, databaseContextFactory, progressFunction, ct) =>
898  {
899  using (await SemaphoreSlimContext.Lock(Semaphore, ct).ConfigureAwait(false))
900  await LaunchImplNoLock(true, true, reattachInfo, ct).ConfigureAwait(false);
901  }, cancellationToken).ConfigureAwait(false);
902  }
903 
905  public async Task StopAsync(CancellationToken cancellationToken)
906  {
907  await TerminateNoLock(false, !releaseServers, cancellationToken).ConfigureAwait(false);
908  if (releasedReattachInformation != null)
909  await reattachInfoHandler.Save(releasedReattachInformation, cancellationToken).ConfigureAwait(false);
910  }
911 
913  public async Task Terminate(bool graceful, CancellationToken cancellationToken)
914  {
915  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
916  await TerminateNoLock(graceful, !releaseServers, cancellationToken).ConfigureAwait(false);
917  }
918 
920  public async Task HandleRestart(Version updateVersion, CancellationToken cancellationToken)
921  {
922  releaseServers = true;
923  if (Running)
924  await Chat.SendWatchdogMessage("Detaching...", false, cancellationToken).ConfigureAwait(false);
925  }
926  }
927 }
readonly bool autoStart
If the WatchdogBase should LaunchImplNoLock(bool, bool, DualReattachInformation, CancellationToken) i...
-
async Task Launch(CancellationToken cancellationToken)
Start the IWatchdog
+
async Task Launch(CancellationToken cancellationToken)
Start the IWatchdog
ErrorCode
Types of ErrorMessages that the API may return.
Definition: ErrorCode.cs:10
@@ -118,11 +118,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
EventType
Types of events. Mirror in tgs.dm
Definition: EventType.cs:6
async Task< MonitorState > MonitorRestart(CancellationToken cancellationToken)
async Task TerminateNoLock(bool graceful, bool announce, CancellationToken cancellationToken)
Implementation of Terminate(bool, CancellationToken). Does not lock Semaphore
-
async Task HandleEvent(EventType eventType, IEnumerable< string > parameters, CancellationToken cancellationToken)
Handle a given eventType
+
async Task HandleEvent(EventType eventType, IEnumerable< string > parameters, CancellationToken cancellationToken)
Handle a given eventType
-
async Task Restart(bool graceful, CancellationToken cancellationToken)
Restarts the watchdog
+
async Task Restart(bool graceful, CancellationToken cancellationToken)
Restarts the watchdog
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
+
bool CanApplyWithoutReboot(DreamDaemonLaunchParameters otherParameters)
Check if we match a given set of otherParameters . StartupTimeout is excluded.
readonly IReattachInfoHandler reattachInfoHandler
The IReattachInfoHandler for the WatchdogBase
Definition: WatchdogBase.cs:98
@@ -130,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
void StartMonitor()
Call MonitorLifetimes(CancellationToken) and setup monitorCts and monitorTask.
Task monitorTask
The Task running the monitor loop
-
async Task StopAsync(CancellationToken cancellationToken)
+
async Task StopAsync(CancellationToken cancellationToken)
DreamDaemonRights
Rights for Models.DreamDaemon
readonly IDatabaseContextFactory databaseContextFactory
The IDatabaseContextFactory for the WatchdogBase
int heartbeatsMissed
The number of hearbeats missed.
@@ -140,13 +141,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
async Task< MonitorAction > HandleHeartbeat(ISessionController activeServer, CancellationToken cancellationToken)
Handles a watchdog heartbeat.
Operation exceptions thrown from the context of a Models.Job
Definition: JobException.cs:9
-
virtual async Task ResetRebootState(CancellationToken cancellationToken)
Cancels pending graceful actions
+
virtual async Task ResetRebootState(CancellationToken cancellationToken)
Cancels pending graceful actions
void DisposeAndNullControllers()
Wrapper for DisposeAndNullControllersImpl under a locked context.
Task Delay(TimeSpan timeSpan, CancellationToken cancellationToken)
Create a Task that completes after a given timeSpan
MonitorActivationReason
Reasons for the monitor to wake up
Data structure for TopicCommandType.EventNotification requests.
-
async Task< string > HandleChatCommand(string commandName, string arguments, ChatUser sender, CancellationToken cancellationToken)
Handle a chat command
+
async Task< string > HandleChatCommand(string commandName, string arguments, ChatUser sender, CancellationToken cancellationToken)
Handle a chat command
Task< CombinedTopicResponse > SendCommand(TopicParameters parameters, CancellationToken cancellationToken)
Sends a command to DreamDaemon through /world/Topic()
@@ -154,7 +155,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
ISessionController ActiveServer
The active ISessionController
Definition: MonitorState.cs:30
Represents a tgs_chat_user datum
Definition: ChatUser.cs:10
-
async Task StartAsync(CancellationToken cancellationToken)
+
async Task StartAsync(CancellationToken cancellationToken)
readonly object controllerDisposeLock
object used for DisposeAndNullControllers.
@@ -167,17 +168,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Manages the runtime of Jobs
Definition: IJobManager.cs:13
-
async Task Terminate(bool graceful, CancellationToken cancellationToken)
Stops the watchdog
+
async Task Terminate(bool graceful, CancellationToken cancellationToken)
Stops the watchdog
Handles Commands.ICommands that map to those defined in a IChatTrackingContext
async Task NotifyOfFailedReattach(bool inactiveReattachSuccess, CancellationToken cancellationToken)
Send a chat message and log about a failed reattach operation and attempts another call to LaunchImpl...
-
async Task HandleRestart(Version updateVersion, CancellationToken cancellationToken)
Handle a restart of the server
+
async Task HandleRestart(Version updateVersion, CancellationToken cancellationToken)
Handle a restart of the server
async Task CheckLaunchResult(ISessionController controller, string serverName, CancellationToken cancellationToken)
Check the LaunchResult of a given controller for errors and throw a JobException if any are detected...
Handles saving and loading DualReattachInformation
DualReattachInformation releasedReattachInformation
Used when detaching servers.
readonly Api.Models.Instance instance
The Api.Models.Instance for the WatchdogBase.
Definition: WatchdogBase.cs:93
async Task< bool > StopMonitor()
Stops MonitorLifetimes(CancellationToken). Doesn&#39;t kill the servers
-
bool Match(DreamDaemonLaunchParameters otherParameters)
Check if we match a given set of otherParameters
Represents the lifetime of a IRestartHandler registration
MonitorAction
The action for the monitor loop to take when control is returned to it
Definition: MonitorAction.cs:6
Task< LaunchResult > LaunchResult
A Task that completes when DreamDaemon starts pumping the windows message queue after loading a ...
diff --git a/_web_host_builder_extensions_8cs.html b/_web_host_builder_extensions_8cs.html index b187f581d7..09d846917a 100644 --- a/_web_host_builder_extensions_8cs.html +++ b/_web_host_builder_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_web_host_builder_extensions_8cs_source.html b/_web_host_builder_extensions_8cs_source.html index 8bd63dd40c..a40e49f554 100644 --- a/_web_host_builder_extensions_8cs_source.html +++ b/_web_host_builder_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_byond_installer_8cs.html b/_windows_byond_installer_8cs.html index 87f6747d89..fe8984c930 100644 --- a/_windows_byond_installer_8cs.html +++ b/_windows_byond_installer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_byond_installer_8cs_source.html b/_windows_byond_installer_8cs_source.html index f52391fc9f..0eeb4fe48d 100644 --- a/_windows_byond_installer_8cs_source.html +++ b/_windows_byond_installer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_network_prompt_reaper_8cs.html b/_windows_network_prompt_reaper_8cs.html index bec31f31ba..3ae8187904 100644 --- a/_windows_network_prompt_reaper_8cs.html +++ b/_windows_network_prompt_reaper_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_network_prompt_reaper_8cs_source.html b/_windows_network_prompt_reaper_8cs_source.html index 1b5395c78b..8b5adc0c4c 100644 --- a/_windows_network_prompt_reaper_8cs_source.html +++ b/_windows_network_prompt_reaper_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_post_write_handler_8cs.html b/_windows_post_write_handler_8cs.html index 4286cd5908..e9206b7c24 100644 --- a/_windows_post_write_handler_8cs.html +++ b/_windows_post_write_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_post_write_handler_8cs_source.html b/_windows_post_write_handler_8cs_source.html index b7e109e9e8..a090c2bf3f 100644 --- a/_windows_post_write_handler_8cs_source.html +++ b/_windows_post_write_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_process_features_8cs.html b/_windows_process_features_8cs.html index d96cf29d10..52a70fca2b 100644 --- a/_windows_process_features_8cs.html +++ b/_windows_process_features_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_process_features_8cs_source.html b/_windows_process_features_8cs_source.html index a577a7f167..872ecd12ce 100644 --- a/_windows_process_features_8cs_source.html +++ b/_windows_process_features_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_swappable_dmb_provider_8cs.html b/_windows_swappable_dmb_provider_8cs.html index d5e7b0d7f4..608000d403 100644 --- a/_windows_swappable_dmb_provider_8cs.html +++ b/_windows_swappable_dmb_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_swappable_dmb_provider_8cs_source.html b/_windows_swappable_dmb_provider_8cs_source.html index 1852f43b5b..aec21ce54b 100644 --- a/_windows_swappable_dmb_provider_8cs_source.html +++ b/_windows_swappable_dmb_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_symlink_factory_8cs.html b/_windows_symlink_factory_8cs.html index e11dea6b8f..f62f71a7c5 100644 --- a/_windows_symlink_factory_8cs.html +++ b/_windows_symlink_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_symlink_factory_8cs_source.html b/_windows_symlink_factory_8cs_source.html index 7c7889129d..e94ab3922d 100644 --- a/_windows_symlink_factory_8cs_source.html +++ b/_windows_symlink_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_system_identity_8cs.html b/_windows_system_identity_8cs.html index 8fe084d184..ef36f6f321 100644 --- a/_windows_system_identity_8cs.html +++ b/_windows_system_identity_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_system_identity_8cs_source.html b/_windows_system_identity_8cs_source.html index 95a91dbe2d..3afd3b0b3c 100644 --- a/_windows_system_identity_8cs_source.html +++ b/_windows_system_identity_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_system_identity_factory_8cs.html b/_windows_system_identity_factory_8cs.html index db356375f5..e53be2e2c6 100644 --- a/_windows_system_identity_factory_8cs.html +++ b/_windows_system_identity_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_system_identity_factory_8cs_source.html b/_windows_system_identity_factory_8cs_source.html index 85ab667043..43a0e9ca09 100644 --- a/_windows_system_identity_factory_8cs_source.html +++ b/_windows_system_identity_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_watchdog_8cs.html b/_windows_watchdog_8cs.html index 23f2baf44f..a240c02e60 100644 --- a/_windows_watchdog_8cs.html +++ b/_windows_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_watchdog_8cs_source.html b/_windows_watchdog_8cs_source.html index 724858e8b1..cd83959c53 100644 --- a/_windows_watchdog_8cs_source.html +++ b/_windows_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -94,9 +94,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
WindowsWatchdog.cs
-Go to the documentation of this file.
1 using Microsoft.Extensions.Logging;
2 using System;
3 using System.Threading;
4 using System.Threading.Tasks;
11 using Tgstation.Server.Host.IO;
13 
14 namespace Tgstation.Server.Host.Components.Watchdog
15 {
20  {
25 
30 
35 
40 
45 
64  IChatManager chat,
65  ISessionControllerFactory sessionControllerFactory,
66  IDmbFactory dmbFactory,
67  IReattachInfoHandler reattachInfoHandler,
68  IDatabaseContextFactory databaseContextFactory,
69  IJobManager jobManager,
70  IServerControl serverControl,
71  IAsyncDelayer asyncDelayer,
72  IIOManager ioManager,
73  ISymlinkFactory symlinkFactory,
74  ILogger<WindowsWatchdog> logger,
75  DreamDaemonLaunchParameters initialLaunchParameters,
76  Api.Models.Instance instance, bool autoStart)
77  : base(
78  chat,
79  sessionControllerFactory,
80  dmbFactory,
81  reattachInfoHandler,
82  databaseContextFactory,
83  jobManager,
84  serverControl,
85  asyncDelayer,
86  logger,
87  initialLaunchParameters,
88  instance,
89  autoStart)
90  {
91  try
92  {
93  this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
94  this.symlinkFactory = symlinkFactory ?? throw new ArgumentNullException(nameof(symlinkFactory));
95  }
96  catch
97  {
98  Dispose();
99  throw;
100  }
101  }
102 
104  protected override void DisposeAndNullControllersImpl()
105  {
106  base.DisposeAndNullControllersImpl();
107 
108  // If we reach this point, we can guarantee PrepServerForLaunch will be called before starting again.
109  activeSwappable = null;
110  pendingSwappable?.Dispose();
111  pendingSwappable = null;
112 
113  startupDmbProvider?.Dispose();
114  startupDmbProvider = null;
115  }
116 
118  protected override MonitorAction HandleNormalReboot()
119  {
120  if (activeSwappable == null)
121  throw new InvalidOperationException("Expected activeSwappable to not be null!");
122  if (pendingSwappable != null)
123  {
124  Logger.LogTrace("Replacing activeSwappable with pendingSwappable...");
125  Server.ReplaceDmbProvider(pendingSwappable);
126  activeSwappable = pendingSwappable;
127  pendingSwappable = null;
128  }
129  else
130  Logger.LogTrace("Nothing to do as pendingSwappable is null.");
131 
132  return MonitorAction.Continue;
133  }
134 
136  protected override async Task HandleNewDmbAvailable(CancellationToken cancellationToken)
137  {
138  IDmbProvider compileJobProvider = DmbFactory.LockNextDmb(1);
139  if (compileJobProvider.CompileJob.ByondVersion != ActiveCompileJob.ByondVersion)
140  {
141  // have to do a graceful restart
142  Logger.LogDebug(
143  "Not swapping to new compile job {0} as it uses a different BYOND version ({1}) than what is currently active {2}. Queueing graceful restart instead...",
144  compileJobProvider.CompileJob.Id,
145  compileJobProvider.CompileJob.ByondVersion,
146  ActiveCompileJob.ByondVersion);
147  compileJobProvider.Dispose();
148  await base.HandleNewDmbAvailable(cancellationToken).ConfigureAwait(false);
149  return;
150  }
151 
152  WindowsSwappableDmbProvider windowsProvider = null;
153  bool suspended = false;
154  try
155  {
156  windowsProvider = new WindowsSwappableDmbProvider(compileJobProvider, ioManager, symlinkFactory);
157 
158  Logger.LogDebug("Swapping to compile job {0}...", windowsProvider.CompileJob.Id);
159  try
160  {
161  Server.Suspend();
162  suspended = true;
163  }
164  catch (Exception ex)
165  {
166  Logger.LogWarning("Exception while suspending server: {0}", ex);
167  }
168 
169  await windowsProvider.MakeActive(cancellationToken).ConfigureAwait(false);
170  }
171  catch(Exception ex)
172  {
173  Logger.LogError("Exception while swapping: {0}", ex);
174  IDmbProvider providerToDispose = windowsProvider ?? compileJobProvider;
175  providerToDispose.Dispose();
176  throw;
177  }
178 
179  // Let this throw hard if it fails
180  if (suspended)
181  Server.Resume();
182 
183  pendingSwappable?.Dispose();
184  pendingSwappable = windowsProvider;
185  }
186 
188  protected override async Task<IDmbProvider> PrepServerForLaunch(IDmbProvider dmbToUse, CancellationToken cancellationToken)
189  {
190  if(activeSwappable != null)
191  throw new InvalidOperationException("Expected activeSwappable to be null!");
192  if(startupDmbProvider != null)
193  throw new InvalidOperationException("Expected startupDmbProvider to be null!");
194 
195  Logger.LogTrace("Prep for server launch. pendingSwappable is {0}available", pendingSwappable == null ? "not " : String.Empty);
196 
197  // Add another lock to the startup DMB because it'll be used throughout the lifetime of the watchdog
198  startupDmbProvider = await DmbFactory.FromCompileJob(dmbToUse.CompileJob, cancellationToken).ConfigureAwait(false);
199 
200  activeSwappable = pendingSwappable ?? new WindowsSwappableDmbProvider(dmbToUse, ioManager, symlinkFactory);
201  pendingSwappable = null;
202 
203  try
204  {
205  await activeSwappable.MakeActive(cancellationToken).ConfigureAwait(false);
206  }
207  catch
208  {
209  // We won't worry about disposing activeSwappable here as we can't dispose dmbToUse here.
210  activeSwappable = null;
211  throw;
212  }
213 
214  return activeSwappable;
215  }
216  }
217 }
async Task MakeActive(CancellationToken cancellationToken)
Make the WindowsSwappableDmbProvider active by replacing the live link with our CompileJob.
+Go to the documentation of this file.
1 using Microsoft.Extensions.Logging;
2 using System;
3 using System.Threading;
4 using System.Threading.Tasks;
11 using Tgstation.Server.Host.IO;
13 
14 namespace Tgstation.Server.Host.Components.Watchdog
15 {
20  {
25 
30 
35 
40 
45 
64  IChatManager chat,
65  ISessionControllerFactory sessionControllerFactory,
66  IDmbFactory dmbFactory,
67  IReattachInfoHandler reattachInfoHandler,
68  IDatabaseContextFactory databaseContextFactory,
69  IJobManager jobManager,
70  IServerControl serverControl,
71  IAsyncDelayer asyncDelayer,
72  IIOManager ioManager,
73  ISymlinkFactory symlinkFactory,
74  ILogger<WindowsWatchdog> logger,
75  DreamDaemonLaunchParameters initialLaunchParameters,
76  Api.Models.Instance instance, bool autoStart)
77  : base(
78  chat,
79  sessionControllerFactory,
80  dmbFactory,
81  reattachInfoHandler,
82  databaseContextFactory,
83  jobManager,
84  serverControl,
85  asyncDelayer,
86  logger,
87  initialLaunchParameters,
88  instance,
89  autoStart)
90  {
91  try
92  {
93  this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
94  this.symlinkFactory = symlinkFactory ?? throw new ArgumentNullException(nameof(symlinkFactory));
95  }
96  catch
97  {
98  Dispose();
99  throw;
100  }
101  }
102 
104  protected override void DisposeAndNullControllersImpl()
105  {
106  base.DisposeAndNullControllersImpl();
107 
108  // If we reach this point, we can guarantee PrepServerForLaunch will be called before starting again.
109  activeSwappable = null;
110  pendingSwappable?.Dispose();
111  pendingSwappable = null;
112 
113  startupDmbProvider?.Dispose();
114  startupDmbProvider = null;
115  }
116 
118  protected override MonitorAction HandleNormalReboot()
119  {
120  if (pendingSwappable != null)
121  {
122  Logger.LogTrace("Replacing activeSwappable with pendingSwappable...");
123  Server.ReplaceDmbProvider(pendingSwappable);
124  activeSwappable = pendingSwappable;
125  pendingSwappable = null;
126  }
127  else
128  Logger.LogTrace("Nothing to do as pendingSwappable is null.");
129 
130  return MonitorAction.Continue;
131  }
132 
134  protected override async Task HandleNewDmbAvailable(CancellationToken cancellationToken)
135  {
136  IDmbProvider compileJobProvider = DmbFactory.LockNextDmb(1);
137  if (compileJobProvider.CompileJob.ByondVersion != ActiveCompileJob.ByondVersion)
138  {
139  // have to do a graceful restart
140  Logger.LogDebug(
141  "Not swapping to new compile job {0} as it uses a different BYOND version ({1}) than what is currently active {2}. Queueing graceful restart instead...",
142  compileJobProvider.CompileJob.Id,
143  compileJobProvider.CompileJob.ByondVersion,
144  ActiveCompileJob.ByondVersion);
145  compileJobProvider.Dispose();
146  await base.HandleNewDmbAvailable(cancellationToken).ConfigureAwait(false);
147  return;
148  }
149 
150  WindowsSwappableDmbProvider windowsProvider = null;
151  bool suspended = false;
152  try
153  {
154  windowsProvider = new WindowsSwappableDmbProvider(compileJobProvider, ioManager, symlinkFactory);
155 
156  Logger.LogDebug("Swapping to compile job {0}...", windowsProvider.CompileJob.Id);
157  try
158  {
159  Server.Suspend();
160  suspended = true;
161  }
162  catch (Exception ex)
163  {
164  Logger.LogWarning("Exception while suspending server: {0}", ex);
165  }
166 
167  await windowsProvider.MakeActive(cancellationToken).ConfigureAwait(false);
168  }
169  catch(Exception ex)
170  {
171  Logger.LogError("Exception while swapping: {0}", ex);
172  IDmbProvider providerToDispose = windowsProvider ?? compileJobProvider;
173  providerToDispose.Dispose();
174  throw;
175  }
176 
177  // Let this throw hard if it fails
178  if (suspended)
179  Server.Resume();
180 
181  pendingSwappable?.Dispose();
182  pendingSwappable = windowsProvider;
183  }
184 
186  protected override async Task<IDmbProvider> PrepServerForLaunch(IDmbProvider dmbToUse, CancellationToken cancellationToken)
187  {
188  if(activeSwappable != null)
189  throw new InvalidOperationException("Expected activeSwappable to be null!");
190  if(startupDmbProvider != null)
191  throw new InvalidOperationException("Expected startupDmbProvider to be null!");
192 
193  Logger.LogTrace("Prep for server launch. pendingSwappable is {0}available", pendingSwappable == null ? "not " : String.Empty);
194 
195  // Add another lock to the startup DMB because it'll be used throughout the lifetime of the watchdog
196  startupDmbProvider = await DmbFactory.FromCompileJob(dmbToUse.CompileJob, cancellationToken).ConfigureAwait(false);
197 
198  activeSwappable = pendingSwappable ?? new WindowsSwappableDmbProvider(dmbToUse, ioManager, symlinkFactory);
199  pendingSwappable = null;
200 
201  try
202  {
203  await activeSwappable.MakeActive(cancellationToken).ConfigureAwait(false);
204  }
205  catch
206  {
207  // We won't worry about disposing activeSwappable here as we can't dispose dmbToUse here.
208  activeSwappable = null;
209  throw;
210  }
211 
212  return activeSwappable;
213  }
214  }
215 }
async Task MakeActive(CancellationToken cancellationToken)
Make the WindowsSwappableDmbProvider active by replacing the live link with our CompileJob.
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:29
-
override async Task< IDmbProvider > PrepServerForLaunch(IDmbProvider dmbToUse, CancellationToken cancellationToken)
Prepare the server to launch a new instance with the WatchdogBase.ActiveLaunchParameters and a given ...
+
override async Task< IDmbProvider > PrepServerForLaunch(IDmbProvider dmbToUse, CancellationToken cancellationToken)
Prepare the server to launch a new instance with the WatchdogBase.ActiveLaunchParameters and a given ...
long Id
The ID of the entity.
Definition: EntityId.cs:11
@@ -126,7 +126,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Manages the runtime of Jobs
Definition: IJobManager.cs:13
-
async Task< IDmbProvider > FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
Gets a IDmbProvider for a given CompileJob
Definition: DmbFactory.cs:193
+
async Task< IDmbProvider > FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
Gets a IDmbProvider for a given CompileJob
Definition: DmbFactory.cs:196
Provides absolute paths to the latest compiled .dmbs
Definition: IDmbProvider.cs:9
readonly IIOManager ioManager
The IIOManager for the WindowsWatchdog.
@@ -136,9 +136,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
IDmbProvider startupDmbProvider
The IDmbProvider the WindowsWatchdog was started with.
MonitorAction
The action for the monitor loop to take when control is returned to it
Definition: MonitorAction.cs:6
-
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:150
+
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:153
-
override async Task HandleNewDmbAvailable(CancellationToken cancellationToken)
Handler for MonitorActivationReason.NewDmbAvailable.
+
override async Task HandleNewDmbAvailable(CancellationToken cancellationToken)
Handler for MonitorActivationReason.NewDmbAvailable.
A version of the BasicWatchdog that, instead of killing servers for updates, uses the wonders of syml...
readonly ISymlinkFactory symlinkFactory
The ISymlinkFactory for the WindowsWatchdog.
diff --git a/_windows_watchdog_factory_8cs.html b/_windows_watchdog_factory_8cs.html index 23e557a96b..01dd95c145 100644 --- a/_windows_watchdog_factory_8cs.html +++ b/_windows_watchdog_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/_windows_watchdog_factory_8cs_source.html b/_windows_watchdog_factory_8cs_source.html index f33e7c244a..f1ff770dc3 100644 --- a/_windows_watchdog_factory_8cs_source.html +++ b/_windows_watchdog_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/annotated.html b/annotated.html index fadf8f70b1..19a64c35f9 100644 --- a/annotated.html +++ b/annotated.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/api.html b/api.html index 18d48b1a7c..8c61cf1647 100644 --- a/api.html +++ b/api.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/architecture.html b/architecture.html index 6615d9a720..bf31c2f5f9 100644 --- a/architecture.html +++ b/architecture.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_authorize_attribute.html b/class_authorize_attribute.html index ce9821f653..e4f5ae65ad 100644 --- a/class_authorize_attribute.html +++ b/class_authorize_attribute.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_controller.html b/class_controller.html index f805c0135c..8cbdfed8e2 100644 --- a/class_controller.html +++ b/class_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_db_context.html b/class_db_context.html index 5e6e316326..322f86b519 100644 --- a/class_db_context.html +++ b/class_db_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_i_async_enumerable.html b/class_i_async_enumerable.html index e28e68d3d3..b1de876650 100644 --- a/class_i_async_enumerable.html +++ b/class_i_async_enumerable.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_i_design_time_db_context_factory.html b/class_i_design_time_db_context_factory.html index c3188f4fdf..45b05cdb8d 100644 --- a/class_i_design_time_db_context_factory.html +++ b/class_i_design_time_db_context_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_i_disposable.html b/class_i_disposable.html index d91c11246c..a011ca0791 100644 --- a/class_i_disposable.html +++ b/class_i_disposable.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_i_document_filter.html b/class_i_document_filter.html index 9b60415189..a6b8a98094 100644 --- a/class_i_document_filter.html +++ b/class_i_document_filter.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_i_hosted_service.html b/class_i_hosted_service.html index 244e30dcc5..b6238fb96e 100644 --- a/class_i_hosted_service.html +++ b/class_i_hosted_service.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_i_open_api_extension.html b/class_i_open_api_extension.html index 0bbe82f59e..8a5815f9c4 100644 --- a/class_i_open_api_extension.html +++ b/class_i_open_api_extension.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_i_operation_filter.html b/class_i_operation_filter.html index bd7576de5a..9ef0ce2110 100644 --- a/class_i_operation_filter.html +++ b/class_i_operation_filter.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_i_queryable.html b/class_i_queryable.html index 7f87c270fa..98280fac90 100644 --- a/class_i_queryable.html +++ b/class_i_queryable.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_i_schema_filter.html b/class_i_schema_filter.html index b0cff3fa48..435a66df62 100644 --- a/class_i_schema_filter.html +++ b/class_i_schema_filter.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_json_converter.html b/class_json_converter.html index 435bb6a8c3..0581f74288 100644 --- a/class_json_converter.html +++ b/class_json_converter.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_migration.html b/class_migration.html index e4f69b773f..c4d0cfaec2 100644 --- a/class_migration.html +++ b/class_migration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_model_snapshot.html b/class_model_snapshot.html index 7fc41e498b..8c2cdcbebd 100644 --- a/class_model_snapshot.html +++ b/class_model_snapshot.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_service_base.html b/class_service_base.html index 13ae2de787..d2c1ce213e 100644 --- a/class_service_base.html +++ b/class_service_base.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_api_headers-members.html b/class_tgstation_1_1_server_1_1_api_1_1_api_headers-members.html index 7148d81a3a..cc2c0bd05d 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_api_headers-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_api_headers-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_api_headers.html b/class_tgstation_1_1_server_1_1_api_1_1_api_headers.html index 82d537d6b1..3a2a15d325 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_api_headers.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_api_headers.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration-members.html index 859f1bc210..d1436db735 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration.html index 085b8442f0..95a0aec568 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond-members.html index 063941e040..90b9647875 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond.html index ab105a2859..98665ca286 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot-members.html index 4b85f200c4..b1b335ff61 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot.html index 55660c0bfe..a02e0d5ddf 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel-members.html index c9dcde7896..44303cc1aa 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel.html index 61b5cc1b78..728cb1a822 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job-members.html index 688592f8c4..7d4bb008ba 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job.html index d413cd5c39..b45f95dc7e 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file-members.html index ae656a954c..6b8afea5af 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file.html index cc35729c78..a539fc900c 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder-members.html index 861a78b0e5..2393a175fb 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder.html index 155dcbd864..0e51c7f32c 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon-members.html index 666f4e99fc..a66297f532 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -103,11 +103,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); ActiveCompileJobTgstation.Server.Api.Models.DreamDaemon AllowWebClientTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters AutoStartTgstation.Server.Api.Models.Internal.DreamDaemonSettings - CurrentAllowWebclientTgstation.Server.Api.Models.DreamDaemon - CurrentPortTgstation.Server.Api.Models.DreamDaemon - CurrentSecurityTgstation.Server.Api.Models.DreamDaemon - HeartbeatSecondsTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters - Match(DreamDaemonLaunchParameters otherParameters)Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters + CanApplyWithoutReboot(DreamDaemonLaunchParameters otherParameters)Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters + CurrentAllowWebclientTgstation.Server.Api.Models.DreamDaemon + CurrentPortTgstation.Server.Api.Models.DreamDaemon + CurrentSecurityTgstation.Server.Api.Models.DreamDaemon + HeartbeatSecondsTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters PrimaryPortTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters RunningTgstation.Server.Api.Models.DreamDaemon SecondaryPortTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon.html index b7bfa0df89..8d349dae93 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -175,9 +175,9 @@ Properties

Additional Inherited Members

- Public Member Functions inherited from Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters -bool Match (DreamDaemonLaunchParameters otherParameters) - Check if we match a given set of otherParameters More...
-  +bool CanApplyWithoutReboot (DreamDaemonLaunchParameters otherParameters) + Check if we match a given set of otherParameters . StartupTimeout is excluded. More...

Detailed Description

Represents an instance of BYOND's DreamDaemon game server. Create action starts the server. Delete action shuts down the server

diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker-members.html index 11aabe5bd4..d9aec9a368 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker.html index 7d56998e00..4966202ec6 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id-members.html index 6a18740796..e57d98f27c 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html index 8173a7988a..1d5aaeeb66 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -150,7 +150,7 @@ Properties

Definition at line 11 of file EntityId.cs.

-

Referenced by Tgstation.Server.Host.Jobs.JobManager.CancelJob(), Tgstation.Server.Host.Jobs.JobManager.CheckGetJob(), Tgstation.Server.Host.Components.Deployment.DmbFactory.CleanJob(), Tgstation.Server.Client.Components.DreamMakerClient.DreamMakerClient(), Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob(), Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.GetMonitoredServerTasks(), Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Jobs.JobManager.JobProgress(), Tgstation.Server.Client.Components.JobsClient.JobsClient(), Tgstation.Server.Host.Controllers.DreamMakerController.List(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Jobs.JobManager.RunJob(), and Tgstation.Server.Host.Jobs.JobManager.WaitForJobCompletion().

+

Referenced by Tgstation.Server.Host.Jobs.JobManager.CancelJob(), Tgstation.Server.Host.Jobs.JobManager.CheckGetJob(), Tgstation.Server.Host.Components.Deployment.DmbFactory.CleanJob(), Tgstation.Server.Client.Components.DreamMakerClient.DreamMakerClient(), Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob(), Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.GetMonitoredServerTasks(), Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Jobs.JobManager.JobProgress(), Tgstation.Server.Client.Components.JobsClient.JobsClient(), Tgstation.Server.Host.Controllers.DreamMakerController.List(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Jobs.JobManager.RunJob(), and Tgstation.Server.Host.Jobs.JobManager.WaitForJobCompletion().

diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions-members.html index d10de2bf77..dc34fe7e24 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions.html index f737506378..8dc90f4bdd 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message-members.html index 652ce15759..6391efd01c 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message.html index 7f5e91e9c4..ba33bd8011 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance-members.html index 685c72de5b..87faa07551 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance.html index 28c5c0eba4..75d843114f 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user-members.html index 357245af0f..c37c12d529 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user.html index 5d5007dfef..bf47f0c068 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot-members.html index b64963451f..4f8cbfc469 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot.html index c0c4023d86..8d4426d089 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder-members.html index 9db3321d55..31c68f70db 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder.html index 182afec448..9f36352cc4 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job-members.html index 072db60b3c..4591ef6cd8 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html index 38d56a0672..b5b7953c6d 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters-members.html index 75731279d5..c9f32e8288 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -101,8 +101,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');

This is the complete list of members for Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters, including all inherited members.

- - + + diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html index 82c7700c67..c9b58e23d4 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html @@ -25,7 +25,7 @@ @@ -117,9 +117,9 @@ Inheritance diagram for Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchPa
AllowWebClientTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
HeartbeatSecondsTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
Match(DreamDaemonLaunchParameters otherParameters)Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
CanApplyWithoutReboot(DreamDaemonLaunchParameters otherParameters)Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
HeartbeatSecondsTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
PrimaryPortTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
SecondaryPortTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
SecurityLevelTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
- - - + + +

Public Member Functions

bool Match (DreamDaemonLaunchParameters otherParameters)
 Check if we match a given set of otherParameters More...
 
bool CanApplyWithoutReboot (DreamDaemonLaunchParameters otherParameters)
 Check if we match a given set of otherParameters . StartupTimeout is excluded. More...
 
@@ -147,12 +147,12 @@ Properties

Definition at line 9 of file DreamDaemonLaunchParameters.cs.

Member Function Documentation

- +

Properties

- + @@ -161,7 +161,7 @@ Properties
bool Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.Match bool Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.CanApplyWithoutReboot ( DreamDaemonLaunchParameters  otherParameters)
-

Check if we match a given set of otherParameters

+

Check if we match a given set of otherParameters . StartupTimeout is excluded.

Parameters
@@ -175,9 +175,9 @@ Properties

Here is the caller graph for this function:
-
- - +
+ +

diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_ad1c56d38c1a48c110765c99a72619e13_icgraph.map b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_ad1c56d38c1a48c110765c99a72619e13_icgraph.map new file mode 100644 index 0000000000..183c35794e --- /dev/null +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_ad1c56d38c1a48c110765c99a72619e13_icgraph.map @@ -0,0 +1,3 @@ + + + diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_ad1c56d38c1a48c110765c99a72619e13_icgraph.md5 b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_ad1c56d38c1a48c110765c99a72619e13_icgraph.md5 new file mode 100644 index 0000000000..57b6db7c96 --- /dev/null +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_ad1c56d38c1a48c110765c99a72619e13_icgraph.md5 @@ -0,0 +1 @@ +1dfee506fcd7500b9c7d55309756847d \ No newline at end of file diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_ad1c56d38c1a48c110765c99a72619e13_icgraph.png b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_ad1c56d38c1a48c110765c99a72619e13_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..0995b079d69cfa1c76cfa79b0e8a2eecbb06217a GIT binary patch literal 10493 zcmaia2RN4R+y9efZ)MMflFaNqLZO6=tdPC;D67m6B_W&aSw_gnCMz@9*?W_o(0ktX z{U86|`~H5%`yM@&o_Oy2zOM89oS$)psohp2#G}DOp-_Z3mE_e?D2zb(S`G&b{yf)u z-WvYGGEr8PNBu^ArPbxcpioSxoANT6o=F?YUYZ(T58E3^)$lHG$jfV%b8uu7nf|yJYZ+Qu(&xr64vU6|63f54e}OKg#5ylaIODu3q5Lhi zVA%l7y)%`l0e@%jM-qmraph+plhAkzvY^z)SvPmYfZ~H1Z{; zOgYy)$=~GXK3Vu@E|0}pfr;-+=Wf}j=GE>YiOIx$^fgl?{QT{D-%uzy~)Fefj48=8i$5nxz%+Nr597j zXNwXMUG`9g<>!Z!QgEK<|;KG-8mW@~4+vy|$0@#Apiu_)$Zm}M2 zjAJu0GJ1M?KInRVEjK^kq{3^ygY@xsBQ^;RCJA29Wo~YZ3JpWU=TIGKwY3vz=!uDm z^3Og8tM_Wrs|6%s@}=eFEfqFjbyi^AadC0u`ONU(*|rzrjNW6Bd>s>aaB!d#bq#gf z_>wNSy|ZI%Ft1`t=c{lr!oEXNkVo`}|VV(FxtE|3w7bdh~NC zRdNGT~ps;Y$N7Z!|vpPm$oOP%bKXJlqNt&j2wi;1!D@x7Nh2_~cs4h_Yb zsP!Tr9v;5GcZrpi8TS0eixVIfwn*9#a`xM$15u1p z&v)k9GhLQ?v4-PPQi|_ozj}3EC4ui8YG!36Y<~V>qJN}P~ghSH)pDIhhKvBrJl8Qf7*Umr0PhS>rx0YP9<(KQuS)$a=n zL9lp2I!2b3m)AEo5_Ah!26N^T9qMIn+&CAr)DlLHgM%aeV{@{<+QowNemM>$x8cL# zxuqp+8yg$cr=dKJ7cXBnC9xam>4nd=N6nr5n0C)OAa2H&1bf+S*#j?HL)=r^ct)6_T$PSEJCblBs=f3o>9KcwPTl zi1bzuYD!AVOlZySN5fxHBn%ACq3uojQY1=COZ`hqxRa8TX$!g8*|D9RoH}}X%oqyX zm(v=I3b^h>F-S1Qbn18&78b^TO%`>tc3dPzb$563cx>u-CyP-6{F=O@f?~!YCT`DG zO+=xBf`X2=n~8N7hUi&nX=xWL>gps6{Z8EUYduM!?kTzS{bORtW7@xt=96@j`lx4T9h_LX36ZC-^M{Je%0Y|0nwUAS;zdwcuAK((O4P}kr`4+oUAuP-dKZ;Y#^-N!qrlG_IdL2+@E zE|YC-SbCMV0Yybcz3=l?5(NoAdTa$tGkxmMR3s%K`SKRM3W(AO+wZjeg;~ohPxBez zu<7PR_44RD7MG%_+v<5k55yAUL4 z3``@LLfe|>cG5IC^z;axFujoum*R8x@MzaI@(G%qH91d7Y5MDMqj3LV?W-Io1%H&{ zJ$hT+QUVqoP9a?AbFlm<#doREzz2^||)B zP@A8A?k(-?uV`F8j|VljKKkygTnLfbuBW&6#fuj)U}N!uFuc6HaPaX5zqRGw%~ZR4 zHvl@dcK7pDM@L6Xb)N&ioSdBI{{Fko0jpDWVpv3U9rqtm)6(K6s9+_i1dopDL@-Jj zawq2U`Ji2sBpzv*^52xuKjHN~_9PV1q<;#Z@*a4H(p*-kqg`C^TJl^}307nAh z1a`5D5xF~j{j>amW#&Dy@aT)Z$@nZREC|>%9Pi@CNSb$373!8@!4fS`eiYIwG3P(0qSRVJaGsKgETpAlo-}+_bW0wjY!yyU4OjON;&%8 z41dkrbnWb_U<|a7w#^$DSukDN#cwf)IA2=qON|;EyI)mZEzo(JuyL3Xt|V`3%PEOo zW}%{{{&O$9og{k8G&Yz!85yg#73~Sa+}zxweu~2 zXmh%O7zP<8HZ}_f2i|0jo1B&wMWy}ZGpoVuib~HGe5^ZphZ`^B<8ipTODMwGkP9a0&o6^|c&mPe^V&7q z@-A5YQl~kE^@(cotgI}UZJ}Xd0oBzagXRw(UV=SgexdYfY0qhEO2TzzASiFHGlt#K z)wN~vqldATRi1~>&!0a%57((Jq^y+Z-p8i<q8E~2i{ z9x8baCo0%!X zo#xsI^&5N*=I*XSiI#dFSR=!4wl%!Uc>&MA!6EQg*2@L8+TW+YblyM2y+nrV`}@RW zf4TqcRqf&-U4>XeT0vw~c64{ko13!%rFjP{q?Iz5b7$`O=N>Zo;HD9pBb1w3P;eFD zQeAP}b0rO@18>+xMQMP+Dtdd1`u^Gw>R50N3=V$3t6$}KM!Uo?NIkEm+-k7Yw4F!` z4fK)+S{l~1H4QzKEF(AbcLA$imT2^gGfN0i(XU?zL+Q@IqQ^`6h_b1^2?Xd!5_QAl zOCZ>)`;nr+m?GkW^|i!E(cN9p+1WW>^)L|tp~Ic_r~~#@ALC5^JO1CC^|aw1j;gd zAFQ_Oriz-GnK?Q;H^H{iaAtZJ88!F{`yLBp5i<~=s=W5t;2WJ?ToP*4^Iqw;>+9;` zN~T7A{`?thJSsF)+S-}}Ztj7F1@;T2K%^~3zV!E#Ub%9GO4yOfzh?PtZ*Q;X(Khqo zBHUy`kCn&PR4dTR?Qw^O#?es(L5YZnsvND=wzC&LuV2vKj&-1Z>*4f>4PG*;1 z88ia)S1Awq{P|XVV&dAm979wH6dteJRE-;cN=k}KvMN0bdY?G%@oMFu*;-trRx&dz zBnLF$i=?E8EakYD{G(V*7ST*&Snx@n&^rk~e1098W#znm%OoK|4|mq?f9C8q5RA1# zZhn69&CSiy_wO;H+Mhz>D7fNqd1;z0Pd7;I?(OM%X$n;U6B7{L!$wh1PyqNNc)@Y? z>WepTo@HcQ?2hMs+Q~u@&TILF$-FEQxX|3E5e>!_3=|e24JJD~JKJYzb#*d?<%ABCccq6+&fjB;&MUtIMX z2*fEvwr>Qwzamo&Xd~XqfaPx&HRR{!j*68uX~DU~&Yqc@i*xtx-9lCEG4uDJXLuhS z+RiU7%BHKORaM1*OPE#zwAM5OHZvT`IHm(+DJdz5gr2@BKREj_7$tjnmWk>KIssi~>?10Y83kAHCBw+Jl2+FjcFS>>`sbkz?yAtxv2 z1ABX-cRCU0@F_|MDq`9A4qeFM=j6c@YT;$~?h4BPh#dCY+j8>se z#ipnfX60 z$<6f^1(JrxYxf~?8)EM3(je|^!n0#5*-DtpgLX0^ z(UPP%m@1B&@87>4q3B{7%ikFOxz}fXiPfyBeTi0BBq%K-<9kfV*hOY$=H=l6%3uQO zC*PYxOrfRt9iY5s9yWh~MN_XzGLqqYnE~_mDvfW$CtNvBM0G|^<#ft&t z=thI@NvZX4zBw?FlT2ipCJilLtFi{$N_*ZFyt@2SPM|119}h6ADNiHE@q5#`mbSK4 zH;%Tww?&;cINYB-?}jLI4Z8w40<>!G=)i%M=u>WC+shbZn3>X4*T|IiM$;cJNlDFx zFxtze=Z@o|*AvKeb&X5ktsIND4yV0KytU6PCPoXTKG)AHBhEc$TH9SIFE=gK!w`R; ziG+!VhXgSK0P_1A{QMrHS91O!0(A)b_kj>CDD#tFKj!8;V{&tIKaIXK-RWdc3u3L6_6 z(YB)%Hk5nHii!IAHIALEBse6{Q-C>0k4ii`l!w-UB6FJgbmkZa4}vqVxs8h5?v`=vSMK%+elH!%9qgZp-}Xb|9J z_ZxxmgEO~ORfm=BB~yw0{QSC8B=j7rhuiNdN6;FaOeUocuYD~+#8`k1r$QW;0gufH zr%H-=LYW`o!Z&_aK7K|ffdlPJtOjykUKb)FBGS~B8!B^)$f&477rNpyp-p6DWPno? zT_ckrv5TP4l{*4(V1^Od{+#}4Ss6bNj5EhR8l4>-4<>VCUcQWujSYgy53&^npbwhV zWccSlO4ytZ-(UmvX{^GA8Hg;n2A9~_p7brTNJ`e<^j3wNa=R5QSY74XuUHIYoC&yh zdlX~)(as!F^!hcfxS%~6fhx?*&NdC)Gx~q4W(PtY89hKsNkF~V)`~~wc^aJLhA%Fg z8rU(4y5fBM_AT_;vnG&-;0f(d%xf`fU*olRJ@9bx)e^Fw2u0Gxj%DfM9(1|hzw{x2fG(w z*_f7h^t%NF1Ryg-&10S9Yu+XH+ey-%p2B4nKK&UtbjmGBp}4x|cc2krBd0civ&DE# z=4r5ZCkhd}EOuMHG}O}4qFMViv@knxgRxrjWM3n@7YOQin4_%&S<2J~IjV`lFx03y zxwXg9`%lx~Cj)&*6tt5CIHP_P6c||gypP|tcDW!*a@qP9h-;k&Uy1egbreeZHD~|F zLXOtf)}z&e5+3WJ%XJHXS7Lv~!Hs55SAdW2i3(dYbd0g7Y34h_0$$hU2hU^J8I9LQ zc;=U+g2KW`=XXVyqPlR8zlZ3RmfH$*jqjz&g)9=*Eo^N;`TaI8ieaL`m*BEbEDx2_ z@jHvLYHv6^Ttn$ZNkK6Siv6L1hS6mkQ&UqlF%c1w(C~0MdwZ_WU0r7^H);4@vENCt z6nEB&3sdT{939?U%pnyTb8+sFlP=q~tIg_|%jEjR~ zfEq7Ac@y1UR8n_H131_!{0iMsBw2jlWMX-6diDBZ8O{Hf``sDt78VxC8;(1lubu@T zfo##Ijz5>U>-7pz^Nu(V-+N0t()|oxn?}R71Jj4t%~o6J4>#_&Fb@S)(ms!jBm^a$ z;j;HMU9Y~msfh{0_ti!sQ;=pXI=zod z?N6~*p+8nj7639M+X+5gv0>e_YkHMDX98%IZ?wAEj?Q2QHBp2R8OX^rYJj?xHL0j%!2s^1x~+DeE`BQUb_}~kgGwfUqi(am%jWmu3+Q!GB(VGmX?+@fVmqtZXn|0 zf2AlASCPyo!(PLw^6Y#-WD(%LZVsG6Amk{7zin2PffPhl} zWKutM_#ZVNU^-0S))xF>WonW@Iqo))_{+DG@tQ&yYd(F>-*kKg^{FuYGXt@B?I&xj zx+U)<@C6;z!_0y8qgm4*wkmixH1?5x_0BwK(B&`bXThBPJ~wwZOuosWDyZtw53X$Z zK#;1gt3$ZJh!xb;)eAaJF9Q+Osdi??BA`O?^CPNP=JI*#q;tjic5_PO6_qmt7)3mC z!oc~D(CFDdsoxLH)nJ|iuacFMV~)MmU!YyWrig1)X-kdhnm);21klik^LwLmNtTJk zzkLpICEVTJsU*Cw*Pk5f)gF%7h;})x3}{xrxd=Udt)Cdt>-ze16kPfp9U?A^Do@=s z*jZSfYNP_Cl9!jC`4n(=c_0h_@#Dwa4ZlzBY`NFf)^2|_@@oVV1v?loVDnnWSxDZr zO&W$k@u_`r-)cOsX{mV+&3Oun3}EIxWOFLXLQ~5@$Zxkb@twUsVyAf}wwEz}ZAN~> z(9uM>MLr|zc9O)1@AqNamlk{-&)+9M&J6Xq=45Bfvc>S0ZFF{aIyyNSkF3_)M$@0V zbEHT-3I@amlax$SQnCtEkxSgd>B%ogH@6!gL^3imz7**RJv1`|JSi$n`^wE{XlPgp zD&_ut8t)&Qk>GbceE1Ntta=2k`bR8Z3nMu}A9=BGAWH2XYx}pd4^I1*Yy*Q^(p-L6 zX&bG~DmQO70x5DjK5|02(LS1bv?W0&<{qIdh?r@J)%X;fxa~hkZX?shjMD<6bTuYU zPJ%~=>oU5!)S%Q$U02iaKM)|*aLxYKh1)S{+8ylNW zjq8=y*Yw(k3=9k+VN$Zd+tQQoJQIZ+%wIccYHPDFF`>f3!gzRj5l;MP(ko<1jLVF( zw8L|{ZcWk0#>S%j!HpEit0HixxOgq6&a4$Re~Ei1w?jpx#{n+#{7U9XiKds121xQrI#V$X3frK zJNnu%)#5RI0wO+;h2t}=%VLBv!_^NLR+|-1fSREGXyIg!sYZCPGebpPJ-xkcz?61Q ze{Gp|zGRJ7x^x5@3QRv@#Gm>!EtG>UGg|vr>&4GyP!qVn?+W(0m3XkY5BfUfM8v@I zAX}ki^gHH_sf6d5_~=0lBN@bb%a3WlK8}yZ%~%tl@!<9m!45iD(0-!hZAeH67<<5S zX{&rsYI@t<9)^gnTHpxTjRk&~@(!;qR<=mnwCY(MF1V|%{v@1|d-ikeRh9d$uE<5B z;4Y5A-vsFZ4wRi*FgWfjZhWEtvRc(OH71Qu&Q(4B$#;rg<1X4=%aq7llfJ0> zZdPF-!R_0(J@=PM2aC~>pBo#`K&NyQ1l1&gwEiZq`A1s!b>BMJnr4K)q7wJyLCwI2 zQHi=<9#jBo?FjX(Rik!U9)@E~3OEQdPqEIRfSM2jy~lFM-WVnt8_9B888`=w?nz8c zjFw*Bnl0$LnVAPTL9+X+!{M=C|5ct_V*Hio=_56&Dk^G*hP{|?zhcGpRLw7N^qKK< zC4Bmzp_UC69WKh{S2wIX{ptAOz!$Q%c^sJzXq!fqpCqLPh! zXP4Kamkz9CYyklQButp{{beWawTlV4$Y_}bF?kH%|B%_NZ`Jd9Ygox}(Lc7PAJnWq zcLtapvAqTE68dnXt5&-tCoN5yMM6p{HMY1W+(@8AaIB1e)gl>Y-s#aCF{fcIRqEqi z+?d`hms_{+1_lRtL7Ea!@%RgbU-?Ik&pkubc)V5f*cc5M0fgCKGrP>u`!9-j^#$h! zI-8m>Koxa-{w!-|#;UHNfeaC9e)H>NTRux@v7!D78*Q)*>5wqcB~p2bltqC_M1&fdq0gR~*kOTx z(+>Ehb34ac*KJ~Q(&@-?aMsJYv+G=34?%wzOp?w{-2VRl!X9sZx8;vrqa;=P1H)0O zL3B-Q+rPFNSgv0`&%nTNv?TRAEK2H>3Ni=FLw7PVvYE}zUQQ+76tL7De13HWNdnhw zMhcDVO2E8-bwxu>UA^hP{dPvTG#)0#V&C8(InZ(2;b_AA=(DQJNOJJbdYGfCrUoNd z?`(zrr07VP0AvVAiUPJHPqEOUTtwKZ?9uxyA47eAG9Q?Dm z3Ku~Sg0y3n3!Xt}Iaqt&x3>C3ZK_2eYEe>EZGFkA>?Y=DgF@kCBWD4k-@HLj%u(0D zqzC`agu?!;w3n9%mr;ELOoGMxC-*6eOT~+Bo>bRDpwWytRFGnRs8oU^o!`7$8fMcR z4m=1EG*zLZzL>{m%d-ntzd)FVgNYGAEA;$cJNz3FMK#r+M4MY%&jD!40ggOya47kp z0+d8yy50xKyc#0kw`%u@u1Z|Gg!$iG1NM>LA(%P<9r)ldHv(zng?J!7K0cbhd{jn& z;yZF%pyS^61}zPIgOUJ%c>VgdPMJAjK_Tq!-*ozcv2g&j((=Uh*_j!CfM7(mAz{jG zCUuXCZjG$mlt>F+fy#ui3|#2IprCV5+Qtw7Y z(#N%JC`RcL5{ZIA^#nozVAf>Haa?8;g;1YRPqQ3V zM+0tzQyBLqi4>YPAljZwKNOMVm6a6WY9ZcnL}cW_?Y@o<|Aq!BaS4gx==p>lum9qjM7KxHI|4qMc(wx5ria;~O>%rL@bV{tJ! z2%nOV@fjL@uRlk1m=A_Lm^s33tLKsMd}}%?hW!o@Aq>;@=dJ9ikDEB-7vD3-)z%Eq zzKr{#`e~nY1wP`-1f0btxP|Qx(${2bs;-c_11yRM5F|N5 z#0KdJU;sv%eaHmFU5?-TBYJ&QUQ4JrPdlBs_S%~wvYDrqMkyoy5z zQGk>5e>4PQ`_1IIyxg+ZSh!_syO9lqNSq|R6$cORiP~jbyBGJ*y?^?>wouUKT3rXT z?IrN7A>JBEuz(DdO7gL=sM{*0i;D}wkPr{=-?M0bEA_ndpf4llR$xOQI*v@%@%8nc z+4~7Eu+CeFrH&t{iJ~GHBxp)%ck%ecSzjn^!wSk=B17Ej;^JcAM~9sLq9Kk@Ifysz zUlV@|Bfvj_cM#jaI~5c+eBAO_#Z{okcv4bQ*&Eqv4Z&ZUo6mxTZ2^Ph%+R?i!vB_f zE6trJF%X=8`5|kcIW#Un(g*zj@(Rzjq7Pp_I2Z+ngh0a=VSH3SBFvlvxxmv!05K)5*$Z6}<-5f+MumNy2s1vx4KARPjfL;O+pbV5Eb z2+&p6iReXJ#BXt6u8xhJUC&DqU=yq^U|8uA%|rj~+sDB01d;;` zC-nJq1)u?dKiAg_r#{r!cCd15duueGM~+CzYcPkDzJQY?*uQ`F`8k4Pb^gKy8Lqgw z&B>45rb;M8*MfZyE+7)n!I6-%XdO zf%wzN}F8Koa10rr5|kzSJr@xZ#y8Pt~0LqZ33Ly&4bST0S&ym!_ zxCXL8C>k$q@R-ZU$mprbM$a1oeB|&|QxN_;$M3SWz{EKdo<4cv2o=M|Exr6d#kn-(*vv3I~!wkt5ix^pPW`hFgWHF=-lxU&I z3-vxcw^zsPZ`xn~Mh;O6a5L+_2eiObw~36FB{HTBS#v6_j|#U6LxIr(_SDeWMYvFD znkp-@#xf+xIX4J5;n32U$p3yKuYc4`-%p=9`HeJ5OLzpj{~7$W{9M0q-dnIX09)kk z?Cfkh<>8PWITGc=5@cs*7hS`XA!$(#2>$0_pG-OT|8eZj6s34y4>?1H9HTlo^4rW9 WcIXZ)8iMnTsGB!#%NNT&c=BJ36dFtb literal 0 HcmV?d00001 diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings-members.html index fcb6eaf5b7..b815f8a703 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings-members.html @@ -25,7 +25,7 @@ @@ -102,8 +102,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
otherParametersThe DreamDaemonLaunchParameters to compare against
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
- - + + diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings.html index 22b700fcf5..c218127396 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings.html @@ -25,7 +25,7 @@ @@ -150,9 +150,9 @@ Properties - - - + + +
AllowWebClientTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
AutoStartTgstation.Server.Api.Models.Internal.DreamDaemonSettings
HeartbeatSecondsTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
Match(DreamDaemonLaunchParameters otherParameters)Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
CanApplyWithoutReboot(DreamDaemonLaunchParameters otherParameters)Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
HeartbeatSecondsTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
PrimaryPortTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
SecondaryPortTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
SecurityLevelTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite

Additional Inherited Members

- Public Member Functions inherited from Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
bool Match (DreamDaemonLaunchParameters otherParameters)
 Check if we match a given set of otherParameters More...
 
bool CanApplyWithoutReboot (DreamDaemonLaunchParameters otherParameters)
 Check if we match a given set of otherParameters . StartupTimeout is excluded. More...
 

Detailed Description

Configurable settings for DreamDaemon

diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job-members.html index d500521b93..5964e77778 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job.html index 31c6c098db..9af0ea259a 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -358,7 +358,7 @@ Properties

Definition at line 37 of file Job.cs.

-

Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob().

+

Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob().

diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings-members.html index 465de968d2..f299c66493 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings.html index d7d536767f..dde8ffecc1 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information-members.html index 1a169a069f..98f84a7851 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information.html index 54099c10c2..5c99745822 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information-members.html index 838dbf977a..8d9b80d607 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information.html index e74a5dcb9a..fdde94602a 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge-members.html index 9a4d8e8d4e..52e3474290 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge.html index eba5b85367..fb840970a3 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base-members.html index 8624b9537c..38d906dcc7 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base.html index 07e1c3c6fc..414ff5fd5d 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user-members.html index 7df80696dc..217a65b1b8 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user.html index 584a217888..254bc6c519 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder-members.html index 6b3e007464..6a2b68a69b 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder.html index d86ca7e0ad..4e9aaaff6c 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job-members.html index 6cdae3796c..0f4889e8d1 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job.html index 8492d4dd10..77f443859b 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits-members.html index 065fafd630..16e689b063 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits.html index c3ed754dbf..64228349f0 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository-members.html index d0d4fb4b68..8e8af835d5 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository.html index da49b03707..e477c31777 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information-members.html index 87044160be..e078fc7148 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information.html index aecb3a3ae7..89ca22fc50 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information-members.html index cad0fb7b31..1e9789c786 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information.html index 54ae380896..004572a47c 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge-members.html index 40e1026a59..8ae3e325cd 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge.html index ecdbda9d4f..f05f0b2204 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters-members.html index 06c3d664f9..1741bfca4e 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters.html index 8ed5950aa2..2e7a1edc18 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token-members.html index ab41c00b14..403ae73edc 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token.html index 19ab986803..1d3cfe0642 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user-members.html index 46aad673d2..2261c1c091 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user.html index b0ed4fdd23..99ab874c99 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update-members.html index dcef2fdb40..294490c52f 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update.html index 0d8605c565..e558c58455 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper-members.html b/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper-members.html index cce45ab06d..6e6d4e0917 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper.html b/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper.html index 310a7067c5..bbbb5a474c 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_routes-members.html b/class_tgstation_1_1_server_1_1_api_1_1_routes-members.html index 0f23c276f7..1e10bdef93 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_routes-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_routes-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_routes.html b/class_tgstation_1_1_server_1_1_api_1_1_routes.html index 919b8c498f..c4cf1c6e79 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_routes.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_routes.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_version_extensions-members.html b/class_tgstation_1_1_server_1_1_api_1_1_version_extensions-members.html index c154df7005..007c84ce02 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_version_extensions-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_version_extensions-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_version_extensions.html b/class_tgstation_1_1_server_1_1_api_1_1_version_extensions.html index 79d73df48f..40d7768010 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_version_extensions.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_version_extensions.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_administration_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_administration_client-members.html index 62fa4ab102..f973344e1b 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_administration_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_administration_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_administration_client.html b/class_tgstation_1_1_server_1_1_client_1_1_administration_client.html index 47ab2b0325..419c79afb6 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_administration_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_administration_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_api_client-members.html index 765be0d905..c939efcfc4 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_client.html b/class_tgstation_1_1_server_1_1_client_1_1_api_client.html index 7aa2d545d0..18ab056fbb 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory-members.html b/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory-members.html index d01dad59fe..a39aad8ba9 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory.html b/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory.html index 4ff6ef0230..f8e82e4df4 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception-members.html index 11db861889..97cd4dbeb9 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception.html index 045efc00c1..372ac2bbf4 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_api_exception-members.html index dc8d3e79d1..654d4c8adf 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_api_exception.html index e5e0b38429..dc06f1be38 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_client_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_client_exception-members.html index 3801857d81..8c80344194 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_client_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_client_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_client_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_client_exception.html index 00aa6fcf29..07cee793be 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_client_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_client_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client-members.html index 2026849b49..af11aa8484 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client.html index cfb42212b4..fe805eccbf 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client-members.html index 7428829c6f..782dc29acb 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client.html index b6b4cee826..b785b9f9f7 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client-members.html index 41ca5251c4..e34d7215f1 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html index ec4f774ebf..1992d6222e 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client-members.html index 055389b496..9c39c86a97 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client.html index bbb2a455e2..8491a4dca7 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client-members.html index f771e14c4e..85f65ea33a 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client.html index ea36553d42..379438792d 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client-members.html index 4a12e4a538..b3351d292c 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client.html index d9ec8a61a7..0f5ca4e6ae 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client-members.html index 3a506f34a2..c21427da8a 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client.html index 19131daa34..91ae5a1eaf 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client-members.html index 730cfb5824..98d52e3453 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client.html index 55c2acb706..f46eada707 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client-members.html index 60584d5a16..a2effa6828 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client.html index 335fccf10f..66f36ca008 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception-members.html index 122e47f10b..a6d0ceca4b 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception.html index 64fc2ec860..9191223996 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_http_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_http_client-members.html index 42bb70bbba..1b07c8f8e8 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_http_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_http_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_http_client.html b/class_tgstation_1_1_server_1_1_client_1_1_http_client.html index 75a9599bfc..1a5b53ee25 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_http_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_http_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client-members.html index 594e2c9d58..df846ee80c 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client.html b/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client.html index 135e4ea577..ae71c464e2 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception-members.html index 3e2d3b610c..842b28616e 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception.html index 54d20c6d99..4241368663 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception-members.html index 5b8b3e8c2f..d21b19ffb2 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception.html index 6cd9b65d89..d632969351 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception-members.html index 605e95d382..30336ba5ad 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception.html index 6aa2da3fe2..40251a7616 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception-members.html index bad331dfec..86d0c4cb9c 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception.html index 0b4f5fae4d..f4120fbfb7 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_server_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_server_client-members.html index 8820e05d3e..e2e369b693 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_server_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_server_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_server_client.html b/class_tgstation_1_1_server_1_1_client_1_1_server_client.html index 8c9286c90e..b0a85987f4 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_server_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_server_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory-members.html b/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory-members.html index 4cc0e04d24..0419cebea8 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory.html b/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory.html index db03c01f0e..cafcb85554 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception-members.html index cd99505ed9..1b45a35fc9 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception.html index 3b2faf473e..3fc2506247 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception-members.html index 39793a08d3..9ca4dab446 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception.html index 594fd799c8..4e8bd59fd1 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception-members.html index 394358f3a3..c41e975fea 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception.html index 2f488531b6..38945cb903 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception-members.html index 969a6d4f0e..8b82be13cd 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception.html index 400395664f..236347b88a 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_users_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_users_client-members.html index 0d3ef6c01d..3ec20e52c4 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_users_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_users_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_users_client.html b/class_tgstation_1_1_server_1_1_client_1_1_users_client.html index 886946ae48..2aa8dc2407 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_users_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_users_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception-members.html index b1c1e04020..ba51d91532 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception.html index 49bd732abe..8fbf104727 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock-members.html index 0fda802c58..c08195389b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock.html index 964f0f70e1..65d2b47b06 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base-members.html index 40d49de5d7..22e6da8ce8 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base.html index 93a010a258..024490535c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager-members.html index 301f9c1e11..1b6767bbb0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager.html index 881aaf3fb3..3442a51a7b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -432,7 +432,7 @@ Here is the call graph for this function:

Definition at line 242 of file ByondManager.cs.

-

Referenced by Tgstation.Server.Host.Components.Instance.StartAsync().

+

Referenced by Tgstation.Server.Host.Components.Instance.StartAsync().

243  {
244  async Task<byte[]> GetActiveVersion()
245  {
246  var activeVersionFileExists = await ioManager.FileExists(ActiveVersionFileName, cancellationToken).ConfigureAwait(false);
247  return !activeVersionFileExists ? null : await ioManager.ReadAllBytes(ActiveVersionFileName, cancellationToken).ConfigureAwait(false);
248  }
249 
250  var activeVersionBytesTask = GetActiveVersion();
251 
252  // Create local cfg directory in case it doesn't exist
253  var localCfgDirectory = ioManager.ConcatPath(
257  localCfgDirectory,
258  cancellationToken).ConfigureAwait(false);
259 
260  // Delete trusted.txt so it doesn't grow too large
261  var trustedFilePath =
263  localCfgDirectory,
265  logger.LogTrace("Deleting trusted .dmbs file {0}", trustedFilePath);
266  await ioManager.DeleteFile(
267  trustedFilePath,
268  cancellationToken).ConfigureAwait(false);
269 
270  var byondDirectory = ioManager.ResolvePath();
271  await ioManager.CreateDirectory(byondDirectory, cancellationToken).ConfigureAwait(false);
272  var directories = await ioManager.GetDirectories(byondDirectory, cancellationToken).ConfigureAwait(false);
273 
274  async Task ReadVersion(string path)
275  {
276  var versionFile = ioManager.ConcatPath(path, VersionFileName);
277  if (!await ioManager.FileExists(versionFile, cancellationToken).ConfigureAwait(false))
278  {
279  logger.LogInformation("Cleaning unparsable version path: {0}", ioManager.ResolvePath(path));
280  await ioManager.DeleteDirectory(path, cancellationToken).ConfigureAwait(false); // cleanup
281  return;
282  }
283 
284  var bytes = await ioManager.ReadAllBytes(versionFile, cancellationToken).ConfigureAwait(false);
285  var text = Encoding.UTF8.GetString(bytes);
286  if (Version.TryParse(text, out var version))
287  {
288  var key = VersionKey(version);
289  lock (installedVersions)
290  if (!installedVersions.ContainsKey(key))
291  {
292  logger.LogDebug("Adding detected BYOND version {0}...", key);
293  installedVersions.Add(key, Task.CompletedTask);
294  return;
295  }
296  }
297 
298  await ioManager.DeleteDirectory(path, cancellationToken).ConfigureAwait(false);
299  }
300 
301  await Task.WhenAll(directories.Select(x => ReadVersion(x))).ConfigureAwait(false);
302 
303  var activeVersionBytes = await activeVersionBytesTask.ConfigureAwait(false);
304  if (activeVersionBytes != null)
305  {
306  var activeVersionString = Encoding.UTF8.GetString(activeVersionBytes);
307  bool hasRequestedActiveVersion;
308  lock (installedVersions)
309  hasRequestedActiveVersion = installedVersions.ContainsKey(activeVersionString);
310  if (hasRequestedActiveVersion && Version.TryParse(activeVersionString, out var activeVersion))
311  ActiveVersion = activeVersion.Semver();
312  else
313  {
314  logger.LogWarning("Failed to load saved active version {0}!", activeVersionString);
315  await ioManager.DeleteFile(ActiveVersionFileName, cancellationToken).ConfigureAwait(false);
316  }
317  }
318  }
Task DeleteDirectory(string path, CancellationToken cancellationToken)
Recursively delete a directory, removes and does not enter any symlinks encounterd.
string PathToUserByondFolder
The path to the BYOND folder for the user.
readonly IIOManager ioManager
The IIOManager for the ByondManager
Definition: ByondManager.cs:61
@@ -481,7 +481,7 @@ Here is the caller graph for this function:

-

Referenced by Tgstation.Server.Host.Components.Instance.StopAsync().

+

Referenced by Tgstation.Server.Host.Components.Instance.StopAsync().

Here is the caller graph for this function:
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer-members.html index bf07522b96..7bfd4553cc 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer.html index 29e588d8c3..0fff9ef6c5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer-members.html index 579d847bc0..3372b917b8 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer.html index 392041f9d2..b9cc6858c2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping-members.html index 0094cb7533..bc0077c84d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping.html index 902e318855..0c922fc669 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation-members.html index 9cc2d89b95..612e008549 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation.html index 5490ece732..60c37799cd 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager-members.html index 3756a01d84..08fc54b643 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager.html index f91138d241..d43cb19818 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory-members.html index 4ff478be69..bc231402cd 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory.html index 5cde7452e7..bbce1c4bec 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context-members.html index 97b5b9fda5..fc6bd0982e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context.html index a0f7b6cb27..9de8d9dd2f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user-members.html index 4d2436b6e3..e7bf939243 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user.html index f5ace07bb7..124b229f75 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command-members.html index 88eb26bb24..9735c4c9fb 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command.html index 9a2654eba2..86352db0ad 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory-members.html index 9c31927630..22bf35244c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory.html index 0938f49d9c..08e97232e5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command-members.html index 58e3ec1441..7e94307aba 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command.html index 3cb71e923f..67001dfe66 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command-members.html index baf3e491f9..b1670c6395 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command.html index 5f4c33f642..3737e46e76 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command-members.html index 9a5b11492c..8356c55002 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command.html index 85177affcf..24d69e6c71 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command-members.html index 90f2de3837..e1c8d76368 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command.html index 91221419e9..8bc5a05b53 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command-members.html index 345f6de330..16f6d56169 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command.html index 70293e3bea..f9f8e506de 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider-members.html index 8712467f73..972f8e5d61 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider.html index b9fe17dc4e..681abca4d1 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider-members.html index 72355eb6e5..3b6bd6e920 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html index 048740f6b1..9dc6d3b33c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message-members.html index 9656a16865..dfdb89e7a8 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message.html index 54ae35d8af..07beba8727 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider-members.html index 541a1ac9f3..4bd00b61f6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider.html index 6ad73c25ef..c5f2f97897 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory-members.html index e9ace4d2eb..d2ab16865f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory.html index a5fd1d2de7..b2230d9d9d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory-members.html index 872a765c21..53c09752c9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html index d9bc228585..634f39cfba 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -340,10 +340,10 @@ Private Attributes

Implements Tgstation.Server.Host.Components.Deployment.IDmbFactory.

-

Definition at line 265 of file DmbFactory.cs.

+

Definition at line 268 of file DmbFactory.cs.

References Tgstation.Server.Host.Components.Deployment.WindowsSwappableDmbProvider.LiveGameDirectory.

-
266  {
267  List<long> jobIdsToSkip;
268 
269  // don't clean locked directories
270  lock (jobLockCounts)
271  jobIdsToSkip = jobLockCounts.Select(x => x.Key).ToList();
272 
273  List<string> jobUidsToNotErase = null;
274 
275  // find the uids of locked directories
276  await databaseContextFactory.UseContext(async db =>
277  {
278  jobUidsToNotErase = (await db
279  .CompileJobs
280  .AsQueryable()
281  .Where(
282  x => x.Job.Instance.Id == instance.Id
283  && jobIdsToSkip.Contains(x.Id))
284  .Select(x => x.DirectoryName.Value)
285  .ToListAsync(cancellationToken)
286  .ConfigureAwait(false))
287  .Select(x => x.ToString())
288  .ToList();
289  }).ConfigureAwait(false);
290 
291  jobUidsToNotErase.Add(WindowsSwappableDmbProvider.LiveGameDirectory);
292 
293  logger.LogTrace("We will not clean the following directories: {0}", String.Join(", ", jobUidsToNotErase));
294 
295  // cleanup
296  var gameDirectory = ioManager.ResolvePath();
297  await ioManager.CreateDirectory(gameDirectory, cancellationToken).ConfigureAwait(false);
298  var directories = await ioManager.GetDirectories(gameDirectory, cancellationToken).ConfigureAwait(false);
299  int deleting = 0;
300  var tasks = directories.Select(async x =>
301  {
302  var nameOnly = ioManager.GetFileName(x);
303  if (jobUidsToNotErase.Contains(nameOnly))
304  return;
305  logger.LogDebug("Cleaning unused game folder: {0}...", nameOnly);
306  try
307  {
308  ++deleting;
309  await ioManager.DeleteDirectory(x, cancellationToken).ConfigureAwait(false);
310  }
311  catch (OperationCanceledException)
312  {
313  throw;
314  }
315  catch (Exception e)
316  {
317  logger.LogWarning("Error deleting directory {0}! Exception: {1}", x, e);
318  }
319  }).ToList();
320  if (deleting > 0)
321  await Task.WhenAll(tasks).ConfigureAwait(false);
322  }
Task DeleteDirectory(string path, CancellationToken cancellationToken)
Recursively delete a directory, removes and does not enter any symlinks encounterd.
+
269  {
270  List<long> jobIdsToSkip;
271 
272  // don't clean locked directories
273  lock (jobLockCounts)
274  jobIdsToSkip = jobLockCounts.Select(x => x.Key).ToList();
275 
276  List<string> jobUidsToNotErase = null;
277 
278  // find the uids of locked directories
279  await databaseContextFactory.UseContext(async db =>
280  {
281  jobUidsToNotErase = (await db
282  .CompileJobs
283  .AsQueryable()
284  .Where(
285  x => x.Job.Instance.Id == instance.Id
286  && jobIdsToSkip.Contains(x.Id))
287  .Select(x => x.DirectoryName.Value)
288  .ToListAsync(cancellationToken)
289  .ConfigureAwait(false))
290  .Select(x => x.ToString())
291  .ToList();
292  }).ConfigureAwait(false);
293 
294  jobUidsToNotErase.Add(WindowsSwappableDmbProvider.LiveGameDirectory);
295 
296  logger.LogTrace("We will not clean the following directories: {0}", String.Join(", ", jobUidsToNotErase));
297 
298  // cleanup
299  var gameDirectory = ioManager.ResolvePath();
300  await ioManager.CreateDirectory(gameDirectory, cancellationToken).ConfigureAwait(false);
301  var directories = await ioManager.GetDirectories(gameDirectory, cancellationToken).ConfigureAwait(false);
302  int deleting = 0;
303  var tasks = directories.Select(async x =>
304  {
305  var nameOnly = ioManager.GetFileName(x);
306  if (jobUidsToNotErase.Contains(nameOnly))
307  return;
308  logger.LogDebug("Cleaning unused game folder: {0}...", nameOnly);
309  try
310  {
311  ++deleting;
312  await ioManager.DeleteDirectory(x, cancellationToken).ConfigureAwait(false);
313  }
314  catch (OperationCanceledException)
315  {
316  throw;
317  }
318  catch (Exception e)
319  {
320  logger.LogWarning("Error deleting directory {0}! Exception: {1}", x, e);
321  }
322  }).ToList();
323  if (deleting > 0)
324  await Task.WhenAll(tasks).ConfigureAwait(false);
325  }
Task DeleteDirectory(string path, CancellationToken cancellationToken)
Recursively delete a directory, removes and does not enter any symlinks encounterd.
readonly IDatabaseContextFactory databaseContextFactory
The IDatabaseContextFactory for the DmbFactory
Definition: DmbFactory.cs:36
Task< IReadOnlyList< string > > GetDirectories(string path, CancellationToken cancellationToken)
Returns directory names in a given path
Task CreateDirectory(string path, CancellationToken cancellationToken)
Create a directory at path
@@ -401,12 +401,12 @@ Private Attributes

Implements Tgstation.Server.Host.Components.Deployment.IDmbFactory.

-

Definition at line 193 of file DmbFactory.cs.

+

Definition at line 196 of file DmbFactory.cs.

References Tgstation.Server.Host.Components.Deployment.DmbProvider.Dispose(), Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Models.CompileJob.Job, and Tgstation.Server.Api.Models.Internal.Job.StoppedAt.

-

Referenced by Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.HandleMonitorWakeup(), and Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.PrepServerForLaunch().

-
194  {
195  if (compileJob == null)
196  throw new ArgumentNullException(nameof(compileJob));
197 
198  // ensure we have the entire compile job tree
199  logger.LogTrace("Loading compile job {0}...", compileJob.Id);
201  async db => compileJob = await db
202  .CompileJobs
203  .AsQueryable()
204  .Where(x => x.Id == compileJob.Id)
205  .Include(x => x.Job).ThenInclude(x => x.StartedBy)
206  .Include(x => x.RevisionInformation).ThenInclude(x => x.PrimaryTestMerge).ThenInclude(x => x.MergedBy)
207  .Include(x => x.RevisionInformation).ThenInclude(x => x.ActiveTestMerges).ThenInclude(x => x.TestMerge).ThenInclude(x => x.MergedBy)
208  .FirstAsync(cancellationToken)
209  .ConfigureAwait(false))
210  .ConfigureAwait(false); // can't wait to see that query
211 
212  if (!compileJob.Job.StoppedAt.HasValue)
213  {
214  // This happens if we're told to load the compile job that is currently finished up
215  // It can constitute an API violation if it's returned by the DreamDaemonController so just set it here
216  // Bit of a hack, but it should work out to be the same value
217  logger.LogTrace("Setting missing StoppedAt for CompileJob job...");
218  compileJob.Job.StoppedAt = DateTimeOffset.Now;
219  }
220 
221  var providerSubmitted = false;
222  var newProvider = new DmbProvider(compileJob, ioManager, () =>
223  {
224  if (providerSubmitted)
225  CleanJob(compileJob);
226  });
227 
228  try
229  {
230  var primaryCheckTask = ioManager.FileExists(ioManager.ConcatPath(newProvider.PrimaryDirectory, newProvider.DmbName), cancellationToken);
231  var secondaryCheckTask = ioManager.FileExists(ioManager.ConcatPath(newProvider.PrimaryDirectory, newProvider.DmbName), cancellationToken);
232 
233  if (!(await primaryCheckTask.ConfigureAwait(false) && await secondaryCheckTask.ConfigureAwait(false)))
234  {
235  logger.LogWarning("Error loading compile job, .dmb missing!");
236  return null; // omae wa mou shinderu
237  }
238 
239  lock (jobLockCounts)
240  {
241  if (!jobLockCounts.TryGetValue(compileJob.Id, out int value))
242  {
243  value = 1;
244  jobLockCounts.Add(compileJob.Id, 1);
245  }
246  else
247  jobLockCounts[compileJob.Id] = ++value;
248 
249  logger.LogTrace("Compile job {0} lock count now: {1}", compileJob.Id, value);
250 
251  providerSubmitted = true;
252  return newProvider;
253  }
254  }
255  finally
256  {
257  if (!providerSubmitted)
258  newProvider.Dispose();
259  }
260  }
long Id
The ID of the entity.
Definition: EntityId.cs:11
+

Referenced by Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.HandleMonitorWakeup(), and Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.PrepServerForLaunch().

+
197  {
198  if (compileJob == null)
199  throw new ArgumentNullException(nameof(compileJob));
200 
201  // ensure we have the entire compile job tree
202  logger.LogTrace("Loading compile job {0}...", compileJob.Id);
204  async db => compileJob = await db
205  .CompileJobs
206  .AsQueryable()
207  .Where(x => x.Id == compileJob.Id)
208  .Include(x => x.Job).ThenInclude(x => x.StartedBy)
209  .Include(x => x.RevisionInformation).ThenInclude(x => x.PrimaryTestMerge).ThenInclude(x => x.MergedBy)
210  .Include(x => x.RevisionInformation).ThenInclude(x => x.ActiveTestMerges).ThenInclude(x => x.TestMerge).ThenInclude(x => x.MergedBy)
211  .FirstAsync(cancellationToken)
212  .ConfigureAwait(false))
213  .ConfigureAwait(false); // can't wait to see that query
214 
215  if (!compileJob.Job.StoppedAt.HasValue)
216  {
217  // This happens if we're told to load the compile job that is currently finished up
218  // It can constitute an API violation if it's returned by the DreamDaemonController so just set it here
219  // Bit of a hack, but it should work out to be the same value
220  logger.LogTrace("Setting missing StoppedAt for CompileJob job...");
221  compileJob.Job.StoppedAt = DateTimeOffset.Now;
222  }
223 
224  var providerSubmitted = false;
225  var newProvider = new DmbProvider(compileJob, ioManager, () =>
226  {
227  if (providerSubmitted)
228  CleanJob(compileJob);
229  });
230 
231  try
232  {
233  var primaryCheckTask = ioManager.FileExists(ioManager.ConcatPath(newProvider.PrimaryDirectory, newProvider.DmbName), cancellationToken);
234  var secondaryCheckTask = ioManager.FileExists(ioManager.ConcatPath(newProvider.PrimaryDirectory, newProvider.DmbName), cancellationToken);
235 
236  if (!(await primaryCheckTask.ConfigureAwait(false) && await secondaryCheckTask.ConfigureAwait(false)))
237  {
238  logger.LogWarning("Error loading compile job, .dmb missing!");
239  return null; // omae wa mou shinderu
240  }
241 
242  lock (jobLockCounts)
243  {
244  if (!jobLockCounts.TryGetValue(compileJob.Id, out int value))
245  {
246  value = 1;
247  jobLockCounts.Add(compileJob.Id, 1);
248  }
249  else
250  jobLockCounts[compileJob.Id] = ++value;
251 
252  logger.LogTrace("Compile job {0} lock count now: {1}", compileJob.Id, value);
253 
254  providerSubmitted = true;
255  return newProvider;
256  }
257  }
258  finally
259  {
260  if (!providerSubmitted)
261  newProvider.Dispose();
262  }
263  }
long Id
The ID of the entity.
Definition: EntityId.cs:11
readonly IDatabaseContextFactory databaseContextFactory
The IDatabaseContextFactory for the DmbFactory
Definition: DmbFactory.cs:36
DateTimeOffset StoppedAt
When the Job stopped
Definition: Job.cs:37
void CleanJob(CompileJob job)
Delete the Api.Models.Internal.CompileJob.DirectoryName of job
Definition: DmbFactory.cs:105
@@ -458,10 +458,10 @@ Here is the caller graph for this function:

Implements Tgstation.Server.Host.Components.Deployment.ILatestCompileJobProvider.

-

Definition at line 326 of file DmbFactory.cs.

-
327  {
328  if (!DmbAvailable)
329  return null;
330  return LockNextDmb(0)?.CompileJob;
331  }
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:29
+

Definition at line 329 of file DmbFactory.cs.

+
330  {
331  if (!DmbAvailable)
332  return null;
333  return LockNextDmb(0)?.CompileJob;
334  }
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:29
-
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:150
+
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:153
@@ -494,10 +494,10 @@ Here is the caller graph for this function:

Implements Tgstation.Server.Host.Components.Deployment.ICompileJobSink.

Definition at line 132 of file DmbFactory.cs.

-
133  {
134  if (job == null)
135  throw new ArgumentNullException(nameof(job));
136 
137  var newProvider = await FromCompileJob(job, cancellationToken).ConfigureAwait(false);
138  if (newProvider == null)
139  return;
140  lock (jobLockCounts)
141  {
142  nextDmbProvider?.Dispose();
143  nextDmbProvider = newProvider;
144  newerDmbTcs.SetResult(nextDmbProvider);
145  newerDmbTcs = new TaskCompletionSource<object>();
146  }
147  }
IDmbProvider nextDmbProvider
The latest DmbProvider
Definition: DmbFactory.cs:76
+
133  {
134  if (job == null)
135  throw new ArgumentNullException(nameof(job));
136 
137  var newProvider = await FromCompileJob(job, cancellationToken).ConfigureAwait(false);
138  if (newProvider == null)
139  return;
140  lock (jobLockCounts)
141  {
142  nextDmbProvider?.Dispose();
143  nextDmbProvider = newProvider;
144 
145  // Oh god dammit
146  var temp = newerDmbTcs;
147  newerDmbTcs = new TaskCompletionSource<object>();
148  temp.SetResult(nextDmbProvider);
149  }
150  }
IDmbProvider nextDmbProvider
The latest DmbProvider
Definition: DmbFactory.cs:76
TaskCompletionSource< object > newerDmbTcs
TaskCompletionSource<TResult> resulting in the latest DmbProvider yet to exist
Definition: DmbFactory.cs:71
readonly IDictionary< long, int > jobLockCounts
Map of CompileJob.JobIds to locks on them.
Definition: DmbFactory.cs:61
-
async Task< IDmbProvider > FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
Gets a IDmbProvider for a given CompileJob
Definition: DmbFactory.cs:193
+
async Task< IDmbProvider > FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
Gets a IDmbProvider for a given CompileJob
Definition: DmbFactory.cs:196
@@ -519,12 +519,12 @@ Here is the caller graph for this function:

Implements Tgstation.Server.Host.Components.Deployment.IDmbFactory.

-

Definition at line 150 of file DmbFactory.cs.

+

Definition at line 153 of file DmbFactory.cs.

References Tgstation.Server.Host.Components.Deployment.IDmbProvider.CompileJob, and Tgstation.Server.Api.Models.EntityId.Id.

-

Referenced by Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitControllers(), and Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.InitControllers().

-
151  {
152  if (!DmbAvailable)
153  throw new InvalidOperationException("No .dmb available!");
154  if (lockCount < 0)
155  throw new ArgumentOutOfRangeException(nameof(lockCount), lockCount, "lockCount must be greater than or equal to 0!");
156  lock (jobLockCounts)
157  {
158  var jobId = nextDmbProvider.CompileJob.Id;
159  var incremented = jobLockCounts[jobId] += lockCount;
160  logger.LogTrace("Compile job {0} lock count now: {1}", jobId, incremented);
161  return nextDmbProvider;
162  }
163  }
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:29
+

Referenced by Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.InitControllers(), and Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.InitControllers().

+
154  {
155  if (!DmbAvailable)
156  throw new InvalidOperationException("No .dmb available!");
157  if (lockCount < 0)
158  throw new ArgumentOutOfRangeException(nameof(lockCount), lockCount, "lockCount must be greater than or equal to 0!");
159  lock (jobLockCounts)
160  {
161  var jobId = nextDmbProvider.CompileJob.Id;
162  var incremented = jobLockCounts[jobId] += lockCount;
163  logger.LogTrace("Compile job {0} lock count now: {1}", jobId, incremented);
164  return nextDmbProvider;
165  }
166  }
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:29
IDmbProvider nextDmbProvider
The latest DmbProvider
Definition: DmbFactory.cs:76
long Id
The ID of the entity.
Definition: EntityId.cs:11
@@ -562,8 +562,8 @@ Here is the caller graph for this function:

-

Definition at line 166 of file DmbFactory.cs.

-
167  {
168  CompileJob cj = null;
169  await databaseContextFactory.UseContext(async (db) =>
170  {
171  cj = await db
172  .MostRecentCompletedCompileJobOrDefault(instance, cancellationToken)
173  .ConfigureAwait(false);
174  })
175  .ConfigureAwait(false);
176 
177  if (cj == default(CompileJob))
178  return;
179  await LoadCompileJob(cj, cancellationToken).ConfigureAwait(false);
180 
181  // we dont do CleanUnusedCompileJobs here because the watchdog may have plans for them yet
182  }
readonly IDatabaseContextFactory databaseContextFactory
The IDatabaseContextFactory for the DmbFactory
Definition: DmbFactory.cs:36
+

Definition at line 169 of file DmbFactory.cs.

+
170  {
171  CompileJob cj = null;
172  await databaseContextFactory.UseContext(async (db) =>
173  {
174  cj = await db
175  .MostRecentCompletedCompileJobOrDefault(instance, cancellationToken)
176  .ConfigureAwait(false);
177  })
178  .ConfigureAwait(false);
179 
180  if (cj == default(CompileJob))
181  return;
182  await LoadCompileJob(cj, cancellationToken).ConfigureAwait(false);
183 
184  // we dont do CleanUnusedCompileJobs here because the watchdog may have plans for them yet
185  }
readonly IDatabaseContextFactory databaseContextFactory
The IDatabaseContextFactory for the DmbFactory
Definition: DmbFactory.cs:36
Task UseContext(Func< IDatabaseContext, Task > operation)
Run an operation in the scope of an IDatabaseContext
async Task LoadCompileJob(CompileJob job, CancellationToken cancellationToken)
Load a new job into the ICompileJobSink
Definition: DmbFactory.cs:132
readonly Api.Models.Instance instance
The Api.Models.Instance for the DmbFactory
Definition: DmbFactory.cs:51
@@ -587,8 +587,8 @@ Here is the caller graph for this function:

-

Definition at line 185 of file DmbFactory.cs.

-
186  {
187  using (cancellationToken.Register(() => cleanupCts.Cancel()))
188  await cleanupTask.ConfigureAwait(false);
189  }
readonly CancellationTokenSource cleanupCts
The CancellationTokenSource for cleanupTask
Definition: DmbFactory.cs:56
+

Definition at line 188 of file DmbFactory.cs.

+
189  {
190  using (cancellationToken.Register(() => cleanupCts.Cancel()))
191  await cleanupTask.ConfigureAwait(false);
192  }
readonly CancellationTokenSource cleanupCts
The CancellationTokenSource for cleanupTask
Definition: DmbFactory.cs:56
Task cleanupTask
Task representing calls to CleanJob(CompileJob)
Definition: DmbFactory.cs:66
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider-members.html index d5a7b90939..d6f1d2a6dc 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider.html index 67dfbff072..913c026a16 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -240,7 +240,7 @@ Private Attributes

-

Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob().

+

Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob().

Here is the caller graph for this function:
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker-members.html index 2b174a0959..c5c924b6ec 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html index 658fee930e..15208953c0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider-members.html index 0d5e088cc4..f3352fe33f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider.html index 82981bd8d9..55b9bb990a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_windows_swappable_dmb_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_windows_swappable_dmb_provider-members.html index 78400e335d..0ef0beb411 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_windows_swappable_dmb_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_windows_swappable_dmb_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_windows_swappable_dmb_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_windows_swappable_dmb_provider.html index 924a734448..e73a8db345 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_windows_swappable_dmb_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_windows_swappable_dmb_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -252,7 +252,7 @@ Additional Inherited Members

-

Referenced by Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.DisposeAndNullControllersImpl(), and Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.HandleNewDmbAvailable().

+

Referenced by Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.DisposeAndNullControllersImpl(), and Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.HandleNewDmbAvailable().

Here is the caller graph for this function:
@@ -311,7 +311,7 @@ Here is the caller graph for this function:

Definition at line 70 of file WindowsSwappableDmbProvider.cs.

-

Referenced by Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.HandleNewDmbAvailable(), and Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.PrepServerForLaunch().

+

Referenced by Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.HandleNewDmbAvailable(), and Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.PrepServerForLaunch().

71  {
72  // Note this comment from TGS3:
73  // These next two lines should be atomic but this is the best we can do
74  await ioManager.DeleteDirectory(LiveGameDirectory, cancellationToken).ConfigureAwait(false);
78  cancellationToken)
79  .ConfigureAwait(false);
80  }
Task DeleteDirectory(string path, CancellationToken cancellationToken)
Recursively delete a directory, removes and does not enter any symlinks encounterd.
string PrimaryDirectory
The primary game directory with a trailing directory separator
Definition: IDmbProvider.cs:19
string ResolvePath()
Retrieve the full path of the current working directory.
@@ -373,7 +373,7 @@ Here is the caller graph for this function:

Definition at line 29 of file WindowsSwappableDmbProvider.cs.

-

Referenced by Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.HandleNewDmbAvailable().

+

Referenced by Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.HandleNewDmbAvailable().

@@ -431,7 +431,7 @@ Here is the caller graph for this function:

Definition at line 17 of file WindowsSwappableDmbProvider.cs.

-

Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.CleanUnusedCompileJobs().

+

Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.CleanUnusedCompileJobs().

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_event_consumer-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_event_consumer-members.html index 5fcbee54a8..0a5991b89c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_event_consumer-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_event_consumer-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_event_consumer.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_event_consumer.html index 42b21cf4f9..a651a0dee4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_event_consumer.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_event_consumer.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance-members.html index 7cb5be21c1..561f3536f3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html index 21cd921076..effb5779b7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -335,7 +335,7 @@ Private Attributes

References Tgstation.Server.Api.Rights.Configuration.

-

Referenced by Tgstation.Server.Host.Components.Deployment.DreamMaker.DeploymentProcess(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), and Tgstation.Server.Host.Components.Instance.TimerLoop().

+

Referenced by Tgstation.Server.Host.Components.Deployment.DreamMaker.DeploymentProcess(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), and Tgstation.Server.Host.Components.Instance.TimerLoop().

116  {
117  this.metadata = metadata ?? throw new ArgumentNullException(nameof(metadata));
118  RepositoryManager = repositoryManager ?? throw new ArgumentNullException(nameof(repositoryManager));
119  ByondManager = byondManager ?? throw new ArgumentNullException(nameof(byondManager));
120  DreamMaker = dreamMaker ?? throw new ArgumentNullException(nameof(dreamMaker));
121  Watchdog = watchdog ?? throw new ArgumentNullException(nameof(watchdog));
122  Chat = chat ?? throw new ArgumentNullException(nameof(chat));
123  Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
124  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
125  this.dmbFactory = dmbFactory ?? throw new ArgumentNullException(nameof(dmbFactory));
126  this.jobManager = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
127  this.eventConsumer = eventConsumer ?? throw new ArgumentNullException(nameof(eventConsumer));
128  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
129 
130  timerLock = new object();
131  }
readonly object timerLock
object for timerCts and timerTask.
Definition: Instance.cs:75
readonly IEventConsumer eventConsumer
The IEventConsumer for the Instance
Definition: Instance.cs:60
@@ -437,8 +437,8 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.IInstance.

-

Definition at line 393 of file Instance.cs.

-
394  {
395  if (String.IsNullOrWhiteSpace(newName))
396  throw new ArgumentNullException(nameof(newName));
397  metadata.Name = newName;
398  }
readonly Api.Models.Instance metadata
The Api.Models.Instance for the Instance
Definition: Instance.cs:70
+

Definition at line 395 of file Instance.cs.

+
396  {
397  if (String.IsNullOrWhiteSpace(newName))
398  throw new ArgumentNullException(nameof(newName));
399  metadata.Name = newName;
400  }
readonly Api.Models.Instance metadata
The Api.Models.Instance for the Instance
Definition: Instance.cs:70
@@ -460,8 +460,8 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.IInstance.

-

Definition at line 431 of file Instance.cs.

-
432  {
433  Task toWait;
434  lock (timerLock)
435  {
436  if (timerTask != null)
437  {
438  timerCts.Cancel();
439  toWait = timerTask;
440  }
441  else
442  toWait = Task.CompletedTask;
443  }
444 
445  await toWait.ConfigureAwait(false);
446  if (newInterval == 0)
447  return;
448  lock (timerLock)
449  {
450  // race condition, just quit
451  if (timerTask != null)
452  return;
453  timerCts?.Dispose();
454  timerCts = new CancellationTokenSource();
455  timerTask = TimerLoop(newInterval, timerCts.Token);
456  }
457  }
readonly object timerLock
object for timerCts and timerTask.
Definition: Instance.cs:75
+

Definition at line 433 of file Instance.cs.

+
434  {
435  Task toWait;
436  lock (timerLock)
437  {
438  if (timerTask != null)
439  {
440  timerCts.Cancel();
441  toWait = timerTask;
442  }
443  else
444  toWait = Task.CompletedTask;
445  }
446 
447  await toWait.ConfigureAwait(false);
448  if (newInterval == 0)
449  return;
450  lock (timerLock)
451  {
452  // race condition, just quit
453  if (timerTask != null)
454  return;
455  timerCts?.Dispose();
456  timerCts = new CancellationTokenSource();
457  timerTask = TimerLoop(newInterval, timerCts.Token);
458  }
459  }
readonly object timerLock
object for timerCts and timerTask.
Definition: Instance.cs:75
Task timerTask
The auto update Task
Definition: Instance.cs:80
CancellationTokenSource timerCts
CancellationTokenSource for timerTask
Definition: Instance.cs:85
async Task TimerLoop(uint minutes, CancellationToken cancellationToken)
Pull the repository and compile for every set of given minutes
Definition: Instance.cs:151
@@ -484,10 +484,10 @@ Here is the call graph for this function:

-

Definition at line 401 of file Instance.cs.

+

Definition at line 403 of file Instance.cs.

References Tgstation.Server.Api.Rights.Configuration, and Tgstation.Server.Host.Components.Byond.ByondManager.StartAsync().

-
402  {
403  await Task.WhenAll(
404  SetAutoUpdateInterval(metadata.AutoUpdateInterval.Value),
405  Configuration.StartAsync(cancellationToken),
406  ByondManager.StartAsync(cancellationToken),
407  Chat.StartAsync(cancellationToken),
408  dmbFactory.StartAsync(cancellationToken))
409  .ConfigureAwait(false);
410 
411  // dependent on so many things, its just safer this way
412  await Watchdog.StartAsync(cancellationToken).ConfigureAwait(false);
413 
414  await dmbFactory.CleanUnusedCompileJobs(cancellationToken).ConfigureAwait(false);
415  }
async Task SetAutoUpdateInterval(uint newInterval)
Change the Api.Models.Instance.AutoUpdateInterval for the IInstance
Definition: Instance.cs:431
+
404  {
405  await Task.WhenAll(
406  SetAutoUpdateInterval(metadata.AutoUpdateInterval.Value),
407  Configuration.StartAsync(cancellationToken),
408  ByondManager.StartAsync(cancellationToken),
409  Chat.StartAsync(cancellationToken),
410  dmbFactory.StartAsync(cancellationToken))
411  .ConfigureAwait(false);
412 
413  // dependent on so many things, its just safer this way
414  await Watchdog.StartAsync(cancellationToken).ConfigureAwait(false);
415 
416  await dmbFactory.CleanUnusedCompileJobs(cancellationToken).ConfigureAwait(false);
417  }
async Task SetAutoUpdateInterval(uint newInterval)
Change the Api.Models.Instance.AutoUpdateInterval for the IInstance
Definition: Instance.cs:433
async Task StartAsync(CancellationToken cancellationToken)
readonly Api.Models.Instance metadata
The Api.Models.Instance for the Instance
Definition: Instance.cs:70
StaticFiles.IConfiguration Configuration
Definition: Instance.cs:37
@@ -525,10 +525,10 @@ Here is the call graph for this function:

-

Definition at line 418 of file Instance.cs.

+

Definition at line 420 of file Instance.cs.

References Tgstation.Server.Api.Rights.Configuration, and Tgstation.Server.Host.Components.Byond.ByondManager.StopAsync().

-
419  {
420  await SetAutoUpdateInterval(0).ConfigureAwait(false);
421  await Watchdog.StopAsync(cancellationToken).ConfigureAwait(false);
422  await Task.WhenAll(
423  Configuration.StopAsync(cancellationToken),
424  ByondManager.StopAsync(cancellationToken),
425  Chat.StopAsync(cancellationToken),
426  dmbFactory.StopAsync(cancellationToken))
427  .ConfigureAwait(false);
428  }
async Task SetAutoUpdateInterval(uint newInterval)
Change the Api.Models.Instance.AutoUpdateInterval for the IInstance
Definition: Instance.cs:431
+
421  {
422  await SetAutoUpdateInterval(0).ConfigureAwait(false);
423  await Watchdog.StopAsync(cancellationToken).ConfigureAwait(false);
424  await Task.WhenAll(
425  Configuration.StopAsync(cancellationToken),
426  ByondManager.StopAsync(cancellationToken),
427  Chat.StopAsync(cancellationToken),
428  dmbFactory.StopAsync(cancellationToken))
429  .ConfigureAwait(false);
430  }
async Task SetAutoUpdateInterval(uint newInterval)
Change the Api.Models.Instance.AutoUpdateInterval for the IInstance
Definition: Instance.cs:433
StaticFiles.IConfiguration Configuration
Definition: Instance.cs:37
@@ -593,7 +593,7 @@ Here is the call graph for this function:

Definition at line 151 of file Instance.cs.

References Tgstation.Server.Host.Models.RevisionInformation.ActiveTestMerges, Tgstation.Server.Host.Models.User.CanonicalizeName(), Tgstation.Server.Api.Models.Internal.RevisionInformation.CommitSha, Tgstation.Server.Host.Components.Deployment.DreamMaker.DeploymentProcess(), Tgstation.Server.Api.Models.Instance.Id, Tgstation.Server.Host.Models.RevisionInformation.Instance, Tgstation.Server.Host.Components.Instance.Instance(), Tgstation.Server.Host.Components.Repository.RepositoryManager.LoadRepository(), Tgstation.Server.Api.Models.Internal.RevisionInformation.OriginCommitSha, and Tgstation.Server.Host.Components.Repository.Repository.Repository().

-
152  {
153  while (true)
154  try
155  {
156  await Task.Delay(TimeSpan.FromMinutes(minutes > Int32.MaxValue ? Int32.MaxValue : (int)minutes), cancellationToken).ConfigureAwait(false);
157  logger.LogInformation("Beginning auto update...");
158  await eventConsumer.HandleEvent(EventType.InstanceAutoUpdateStart, new List<string>(), cancellationToken).ConfigureAwait(false);
159  try
160  {
161  User user = null;
163  async (db) => user = await db
164  .Users
165  .AsQueryable()
166  .Where(x => x.CanonicalName == User.CanonicalizeName(Api.Models.User.AdminName))
167  .FirstAsync(cancellationToken)
168  .ConfigureAwait(false))
169  .ConfigureAwait(false);
170  var repositoryUpdateJob = new Job
171  {
172  Instance = new Models.Instance
173  {
174  Id = metadata.Id
175  },
176  Description = "Scheduled repository update",
177  CancelRightsType = RightsType.Repository,
178  CancelRight = (ulong)RepositoryRights.CancelPendingChanges,
179  StartedBy = user
180  };
181 
182  string deploySha = null;
183  await jobManager.RegisterOperation(repositoryUpdateJob, async (paramJob, databaseContextFactory, progressReporter, jobCancellationToken) =>
184  {
185  // assume 5 steps with synchronize
186  const int ProgressSections = 7;
187  const int ProgressStep = 100 / ProgressSections;
188  string repoHead = null;
189 
191  async databaseContext =>
192  {
193  var repositorySettingsTask = databaseContext
194  .RepositorySettings
195  .AsQueryable()
196  .Where(x => x.InstanceId == metadata.Id)
197  .FirstAsync(jobCancellationToken);
198 
199  const int NumSteps = 3;
200  var doneSteps = 0;
201 
202  Action<int> NextProgressReporter()
203  {
204  var tmpDoneSteps = doneSteps;
205  ++doneSteps;
206  return progress => progressReporter((progress + (100 * tmpDoneSteps)) / NumSteps);
207  }
208 
209  using var repo = await RepositoryManager.LoadRepository(jobCancellationToken).ConfigureAwait(false);
210  if (repo == null)
211  {
212  logger.LogTrace("Aborting repo update, no repository!");
213  return;
214  }
215 
216  var startSha = repo.Head;
217  if (!repo.Tracking)
218  {
219  logger.LogTrace("Aborting repo update, active ref not tracking any remote branch!");
220  deploySha = startSha;
221  return;
222  }
223 
224  var repositorySettings = await repositorySettingsTask.ConfigureAwait(false);
225 
226  // the main point of auto update is to pull the remote
227  await repo.FetchOrigin(repositorySettings.AccessUser, repositorySettings.AccessToken, NextProgressReporter(), jobCancellationToken).ConfigureAwait(false);
228 
229  RevisionInformation currentRevInfo = null;
230  bool hasDbChanges = false;
231 
232  Task<RevisionInformation> LoadRevInfo() => databaseContext.RevisionInformations
233  .AsQueryable()
234  .Where(x => x.CommitSha == startSha && x.Instance.Id == metadata.Id)
235  .Include(x => x.ActiveTestMerges).ThenInclude(x => x.TestMerge)
236  .FirstOrDefaultAsync(cancellationToken);
237 
238  async Task UpdateRevInfo(string currentHead, bool onOrigin)
239  {
240  if (currentRevInfo == null)
241  currentRevInfo = await LoadRevInfo().ConfigureAwait(false);
242 
243  if (currentRevInfo == default)
244  {
245  logger.LogWarning(Repository.Repository.OriginTrackingErrorTemplate, currentHead);
246  onOrigin = true;
247  }
248 
249  var attachedInstance = new Models.Instance
250  {
251  Id = metadata.Id
252  };
253  var oldRevInfo = currentRevInfo;
254  currentRevInfo = new RevisionInformation
255  {
256  CommitSha = currentHead,
257  OriginCommitSha = onOrigin ? currentHead : oldRevInfo.OriginCommitSha,
258  Instance = attachedInstance
259  };
260  if (!onOrigin)
261  currentRevInfo.ActiveTestMerges = new List<RevInfoTestMerge>(oldRevInfo.ActiveTestMerges);
262 
263  databaseContext.Instances.Attach(attachedInstance);
264  databaseContext.RevisionInformations.Add(currentRevInfo);
265  hasDbChanges = true;
266  }
267 
268  // take appropriate auto update actions
269  bool shouldSyncTracked;
270  if (repositorySettings.AutoUpdatesKeepTestMerges.Value)
271  {
272  logger.LogTrace("Preserving test merges...");
273 
274  var currentRevInfoTask = LoadRevInfo();
275 
276  var result = await repo.MergeOrigin(repositorySettings.CommitterName, repositorySettings.CommitterEmail, NextProgressReporter(), jobCancellationToken).ConfigureAwait(false);
277 
278  if (!result.HasValue)
279  throw new JobException(Api.Models.ErrorCode.InstanceUpdateTestMergeConflict);
280 
281  currentRevInfo = await currentRevInfoTask.ConfigureAwait(false);
282 
283  var lastRevInfoWasOriginCommit = currentRevInfo == default || currentRevInfo.CommitSha == currentRevInfo.OriginCommitSha;
284  var stillOnOrigin = result.Value && lastRevInfoWasOriginCommit;
285 
286  var currentHead = repo.Head;
287  if (currentHead != startSha)
288  {
289  await UpdateRevInfo(currentHead, stillOnOrigin).ConfigureAwait(false);
290  shouldSyncTracked = stillOnOrigin;
291  }
292  else
293  shouldSyncTracked = false;
294  }
295  else
296  {
297  logger.LogTrace("Not preserving test merges...");
298  await repo.ResetToOrigin(NextProgressReporter(), jobCancellationToken).ConfigureAwait(false);
299 
300  var currentHead = repo.Head;
301 
302  currentRevInfo = await databaseContext.RevisionInformations
303  .AsQueryable()
304  .Where(x => x.CommitSha == currentHead && x.Instance.Id == metadata.Id)
305  .FirstOrDefaultAsync(jobCancellationToken).ConfigureAwait(false);
306 
307  if (currentHead != startSha && currentRevInfo != default)
308  await UpdateRevInfo(currentHead, true).ConfigureAwait(false);
309 
310  shouldSyncTracked = true;
311  }
312 
313  // synch if necessary
314  if (repositorySettings.AutoUpdatesSynchronize.Value && startSha != repo.Head)
315  {
316  var pushedOrigin = await repo.Sychronize(repositorySettings.AccessUser, repositorySettings.AccessToken, repositorySettings.CommitterName, repositorySettings.CommitterEmail, NextProgressReporter(), shouldSyncTracked, jobCancellationToken).ConfigureAwait(false);
317  var currentHead = repo.Head;
318  if (currentHead != currentRevInfo.CommitSha)
319  await UpdateRevInfo(currentHead, pushedOrigin).ConfigureAwait(false);
320  }
321 
322  repoHead = repo.Head;
323 
324  if (hasDbChanges)
325  try
326  {
327  await databaseContext.Save(cancellationToken).ConfigureAwait(false);
328  }
329  catch
330  {
331  await repo.ResetToSha(startSha, progressReporter, default).ConfigureAwait(false);
332  throw;
333  }
334  })
335  .ConfigureAwait(false);
336 
337  progressReporter(5 * ProgressStep);
338  deploySha = repoHead;
339  }, cancellationToken).ConfigureAwait(false);
340 
341  await jobManager.WaitForJobCompletion(repositoryUpdateJob, user, cancellationToken, default).ConfigureAwait(false);
342 
343  if (deploySha == null)
344  {
345  logger.LogTrace("Aborting auto update, repository error!");
346  continue;
347  }
348 
350  {
351  logger.LogTrace("Aborting auto update, same revision as latest CompileJob");
352  continue;
353  }
354 
355  // finally set up the job
356  var compileProcessJob = new Job
357  {
358  StartedBy = user,
359  Instance = repositoryUpdateJob.Instance,
360  Description = "Scheduled code deployment",
361  CancelRightsType = RightsType.DreamMaker,
362  CancelRight = (ulong)DreamMakerRights.CancelCompile
363  };
364 
366  compileProcessJob,
368  cancellationToken).ConfigureAwait(false);
369 
370  await jobManager.WaitForJobCompletion(compileProcessJob, user, cancellationToken, default).ConfigureAwait(false);
371  }
372  catch (OperationCanceledException)
373  {
374  logger.LogDebug("Cancelled auto update job!");
375  throw;
376  }
377  catch (Exception e)
378  {
379  logger.LogWarning("Error in auto update loop! Exception: {0}", e);
380  continue;
381  }
382  }
383  catch (OperationCanceledException)
384  {
385  break;
386  }
387 
388  logger.LogTrace("Leaving auto update loop...");
389  }
CompileJob LatestCompileJob()
Gets the latest CompileJob.
+
152  {
153  logger.LogTrace("Entering auto-update loop");
154  while (true)
155  try
156  {
157  await Task.Delay(TimeSpan.FromMinutes(minutes > Int32.MaxValue ? Int32.MaxValue : (int)minutes), cancellationToken).ConfigureAwait(false);
158  logger.LogInformation("Beginning auto update...");
159  await eventConsumer.HandleEvent(EventType.InstanceAutoUpdateStart, new List<string>(), cancellationToken).ConfigureAwait(false);
160  try
161  {
162  User user = null;
164  async (db) => user = await db
165  .Users
166  .AsQueryable()
167  .Where(x => x.CanonicalName == User.CanonicalizeName(Api.Models.User.AdminName))
168  .FirstAsync(cancellationToken)
169  .ConfigureAwait(false))
170  .ConfigureAwait(false);
171  var repositoryUpdateJob = new Job
172  {
173  Instance = new Models.Instance
174  {
175  Id = metadata.Id
176  },
177  Description = "Scheduled repository update",
178  CancelRightsType = RightsType.Repository,
179  CancelRight = (ulong)RepositoryRights.CancelPendingChanges,
180  StartedBy = user
181  };
182 
183  string deploySha = null;
184  await jobManager.RegisterOperation(repositoryUpdateJob, async (paramJob, databaseContextFactory, progressReporter, jobCancellationToken) =>
185  {
186  // assume 5 steps with synchronize
187  const int ProgressSections = 7;
188  const int ProgressStep = 100 / ProgressSections;
189  string repoHead = null;
190 
192  async databaseContext =>
193  {
194  var repositorySettingsTask = databaseContext
195  .RepositorySettings
196  .AsQueryable()
197  .Where(x => x.InstanceId == metadata.Id)
198  .FirstAsync(jobCancellationToken);
199 
200  const int NumSteps = 3;
201  var doneSteps = 0;
202 
203  Action<int> NextProgressReporter()
204  {
205  var tmpDoneSteps = doneSteps;
206  ++doneSteps;
207  return progress => progressReporter((progress + (100 * tmpDoneSteps)) / NumSteps);
208  }
209 
210  using var repo = await RepositoryManager.LoadRepository(jobCancellationToken).ConfigureAwait(false);
211  if (repo == null)
212  {
213  logger.LogTrace("Aborting repo update, no repository!");
214  return;
215  }
216 
217  var startSha = repo.Head;
218  if (!repo.Tracking)
219  {
220  logger.LogTrace("Aborting repo update, active ref not tracking any remote branch!");
221  deploySha = startSha;
222  return;
223  }
224 
225  var repositorySettings = await repositorySettingsTask.ConfigureAwait(false);
226 
227  // the main point of auto update is to pull the remote
228  await repo.FetchOrigin(repositorySettings.AccessUser, repositorySettings.AccessToken, NextProgressReporter(), jobCancellationToken).ConfigureAwait(false);
229 
230  RevisionInformation currentRevInfo = null;
231  bool hasDbChanges = false;
232 
233  Task<RevisionInformation> LoadRevInfo() => databaseContext.RevisionInformations
234  .AsQueryable()
235  .Where(x => x.CommitSha == startSha && x.Instance.Id == metadata.Id)
236  .Include(x => x.ActiveTestMerges).ThenInclude(x => x.TestMerge)
237  .FirstOrDefaultAsync(jobCancellationToken);
238 
239  async Task UpdateRevInfo(string currentHead, bool onOrigin)
240  {
241  if (currentRevInfo == null)
242  currentRevInfo = await LoadRevInfo().ConfigureAwait(false);
243 
244  if (currentRevInfo == default)
245  {
246  logger.LogWarning(Repository.Repository.OriginTrackingErrorTemplate, currentHead);
247  onOrigin = true;
248  }
249 
250  var attachedInstance = new Models.Instance
251  {
252  Id = metadata.Id
253  };
254  var oldRevInfo = currentRevInfo;
255  currentRevInfo = new RevisionInformation
256  {
257  CommitSha = currentHead,
258  OriginCommitSha = onOrigin ? currentHead : oldRevInfo.OriginCommitSha,
259  Instance = attachedInstance
260  };
261  if (!onOrigin)
262  currentRevInfo.ActiveTestMerges = new List<RevInfoTestMerge>(oldRevInfo.ActiveTestMerges);
263 
264  databaseContext.Instances.Attach(attachedInstance);
265  databaseContext.RevisionInformations.Add(currentRevInfo);
266  hasDbChanges = true;
267  }
268 
269  // take appropriate auto update actions
270  bool shouldSyncTracked;
271  if (repositorySettings.AutoUpdatesKeepTestMerges.Value)
272  {
273  logger.LogTrace("Preserving test merges...");
274 
275  var currentRevInfoTask = LoadRevInfo();
276 
277  var result = await repo.MergeOrigin(repositorySettings.CommitterName, repositorySettings.CommitterEmail, NextProgressReporter(), jobCancellationToken).ConfigureAwait(false);
278 
279  if (!result.HasValue)
280  throw new JobException(Api.Models.ErrorCode.InstanceUpdateTestMergeConflict);
281 
282  currentRevInfo = await currentRevInfoTask.ConfigureAwait(false);
283 
284  var lastRevInfoWasOriginCommit = currentRevInfo == default || currentRevInfo.CommitSha == currentRevInfo.OriginCommitSha;
285  var stillOnOrigin = result.Value && lastRevInfoWasOriginCommit;
286 
287  var currentHead = repo.Head;
288  if (currentHead != startSha)
289  {
290  await UpdateRevInfo(currentHead, stillOnOrigin).ConfigureAwait(false);
291  shouldSyncTracked = stillOnOrigin;
292  }
293  else
294  shouldSyncTracked = false;
295  }
296  else
297  {
298  logger.LogTrace("Not preserving test merges...");
299  await repo.ResetToOrigin(NextProgressReporter(), jobCancellationToken).ConfigureAwait(false);
300 
301  var currentHead = repo.Head;
302 
303  currentRevInfo = await databaseContext.RevisionInformations
304  .AsQueryable()
305  .Where(x => x.CommitSha == currentHead && x.Instance.Id == metadata.Id)
306  .FirstOrDefaultAsync(jobCancellationToken)
307  .ConfigureAwait(false);
308 
309  if (currentHead != startSha && currentRevInfo == default)
310  await UpdateRevInfo(currentHead, true).ConfigureAwait(false);
311 
312  shouldSyncTracked = true;
313  }
314 
315  // synch if necessary
316  if (repositorySettings.AutoUpdatesSynchronize.Value && startSha != repo.Head)
317  {
318  var pushedOrigin = await repo.Sychronize(repositorySettings.AccessUser, repositorySettings.AccessToken, repositorySettings.CommitterName, repositorySettings.CommitterEmail, NextProgressReporter(), shouldSyncTracked, jobCancellationToken).ConfigureAwait(false);
319  var currentHead = repo.Head;
320  if (currentHead != currentRevInfo.CommitSha)
321  await UpdateRevInfo(currentHead, pushedOrigin).ConfigureAwait(false);
322  }
323 
324  repoHead = repo.Head;
325 
326  if (hasDbChanges)
327  try
328  {
329  await databaseContext.Save(jobCancellationToken).ConfigureAwait(false);
330  }
331  catch
332  {
333  await repo.ResetToSha(startSha, progressReporter, default).ConfigureAwait(false);
334  throw;
335  }
336  })
337  .ConfigureAwait(false);
338 
339  progressReporter(5 * ProgressStep);
340  deploySha = repoHead;
341  }, cancellationToken).ConfigureAwait(false);
342 
343  await jobManager.WaitForJobCompletion(repositoryUpdateJob, user, cancellationToken, default).ConfigureAwait(false);
344 
345  if (deploySha == null)
346  {
347  logger.LogTrace("Aborting auto update, repository error!");
348  continue;
349  }
350 
352  {
353  logger.LogTrace("Aborting auto update, same revision as latest CompileJob");
354  continue;
355  }
356 
357  // finally set up the job
358  var compileProcessJob = new Job
359  {
360  StartedBy = user,
361  Instance = repositoryUpdateJob.Instance,
362  Description = "Scheduled code deployment",
363  CancelRightsType = RightsType.DreamMaker,
364  CancelRight = (ulong)DreamMakerRights.CancelCompile
365  };
366 
368  compileProcessJob,
370  cancellationToken).ConfigureAwait(false);
371 
372  await jobManager.WaitForJobCompletion(compileProcessJob, user, default, cancellationToken).ConfigureAwait(false);
373  }
374  catch (OperationCanceledException)
375  {
376  logger.LogDebug("Cancelled auto update job!");
377  throw;
378  }
379  catch (Exception e)
380  {
381  logger.LogWarning("Error in auto update loop! Exception: {0}", e);
382  continue;
383  }
384  }
385  catch (OperationCanceledException)
386  {
387  break;
388  }
389 
390  logger.LogTrace("Leaving auto update loop...");
391  }
CompileJob LatestCompileJob()
Gets the latest CompileJob.
RightsType
The type of rights a model uses
Definition: RightsType.cs:6
async Task DeploymentProcess(Models.Job job, IDatabaseContextFactory databaseContextFactory, Action< int > progressReporter, CancellationToken cancellationToken)
Definition: DreamMaker.cs:467
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory-members.html index 51e1c3502d..ce187f9657 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory.html index 4fe9af3a09..91791d2b4c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager-members.html index 5e67964b79..fe4fdc9b3a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager.html index 6a91f378e5..96a33d9441 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters-members.html index 862e8e59ba..fb778d020c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters.html index 768c3245c0..6c22b1cf30 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -172,7 +172,7 @@ Properties

Definition at line 41 of file BridgeParameters.cs.

-

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

+

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

@@ -198,7 +198,7 @@ Properties

Definition at line 16 of file BridgeParameters.cs.

-

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

+

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

@@ -224,7 +224,7 @@ Properties

Definition at line 21 of file BridgeParameters.cs.

-

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

+

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

@@ -250,7 +250,7 @@ Properties

Definition at line 31 of file BridgeParameters.cs.

-

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

+

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

@@ -276,7 +276,7 @@ Properties

Definition at line 36 of file BridgeParameters.cs.

-

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

+

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

@@ -302,7 +302,7 @@ Properties

Definition at line 26 of file BridgeParameters.cs.

-

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

+

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration-members.html index 4096eb850f..26309156ef 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration.html index aeefd05fd0..76bdd50806 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response-members.html index 29e3038800..fa3f3c3095 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response.html index 6e765efd73..e31a8fa386 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information-members.html index 410de54994..d85f978a1a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information.html index 61e5cbde06..fc370f18f4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information-members.html index 4ccfd8e37b..acb7e1dedf 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information.html index 3d031303c4..a656880709 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message-members.html index 9956bee43a..a361eeb745 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message.html index d237596ac1..f2d45cb40a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -140,7 +140,7 @@ Properties

Definition at line 18 of file ChatMessage.cs.

-

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

+

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

@@ -166,7 +166,7 @@ Properties

Definition at line 13 of file ChatMessage.cs.

-

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

+

Referenced by Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest().

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update-members.html index 76a41a1632..9007e7ce1f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update.html index a79f7d26ee..d49e565b40 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter-members.html index 77595f8054..4925e062db 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter.html index bc5b7153e1..6d3855517c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter-members.html index 07724b4f8d..ca32f9628f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter.html index b7cb94cb49..38951bd6fd 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants-members.html index 5c7bf4639e..2cfcd4fc80 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html index e813615664..e8e442f357 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -209,7 +209,7 @@ Static Public Attributes

Definition at line 41 of file DMApiConstants.cs.

-

Referenced by Tgstation.Server.Host.Controllers.BridgeController.Process(), and Tgstation.Server.Host.Components.Session.SessionController.SendCommand().

+

Referenced by Tgstation.Server.Host.Controllers.BridgeController.Process(), and Tgstation.Server.Host.Components.Session.SessionController.SendCommand().

@@ -227,7 +227,7 @@ Static Public Attributes

Definition at line 31 of file DMApiConstants.cs.

-

Referenced by Tgstation.Server.Host.Components.Session.SessionController.SendCommand().

+

Referenced by Tgstation.Server.Host.Components.Session.SessionController.SendCommand().

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters-members.html index a69648e5d3..a79f5702dd 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters.html index 546520001f..c6a4801560 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -149,7 +149,7 @@ Properties

Definition at line 14 of file DMApiParameters.cs.

-

Referenced by Tgstation.Server.Host.Components.InstanceManager.ProcessBridgeRequest(), Tgstation.Server.Host.Components.Session.ReattachInfoHandler.ReattachInfoHandler(), Tgstation.Server.Host.Models.ReattachInformationBase.ReattachInformationBase(), Tgstation.Server.Host.Components.InstanceManager.RegisterHandler(), Tgstation.Server.Host.Components.Session.SessionController.SendCommand(), and Tgstation.Server.Host.Components.Session.SessionController.SessionController().

+

Referenced by Tgstation.Server.Host.Components.InstanceManager.ProcessBridgeRequest(), Tgstation.Server.Host.Components.Session.ReattachInfoHandler.ReattachInfoHandler(), Tgstation.Server.Host.Models.ReattachInformationBase.ReattachInformationBase(), Tgstation.Server.Host.Components.InstanceManager.RegisterHandler(), Tgstation.Server.Host.Components.Session.SessionController.SendCommand(), and Tgstation.Server.Host.Components.Session.SessionController.SessionController().

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response-members.html index 06b39876b9..e7c96a670c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response.html index 101be9fff7..4d45286c98 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command-members.html index cb4a13c37f..1026ab8d12 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command.html index 26353bcb22..a10c9c35d7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification-members.html index 640428d166..a9787a0bb5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification.html index 402e5f393c..d56b2eaffb 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters-members.html index b72d45d0b7..95564ae0d1 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters.html index 2f5fd1d94f..5cbb630340 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -539,7 +539,7 @@ Private Member Functions

Definition at line 15 of file TopicParameters.cs.

-

Referenced by Tgstation.Server.Host.Components.Session.SessionController.SendCommand().

+

Referenced by Tgstation.Server.Host.Components.Session.SessionController.SendCommand().

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response-members.html index b476b1fe68..3082b8a764 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response.html index f935ee18f3..a33ecb54c9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands-members.html index f3f491b745..7441cc0230 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands.html index 5036154cf7..c151250390 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory-members.html index 5bf1679fe7..41931e2c3d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory.html index 72b68973b2..8e9fef1dd3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository-members.html index eeb5849475..46c2d0801f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository.html index 2fc0302802..027a8798e2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager-members.html index 07002ce505..ee53a863a1 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager.html index 1556d20d4f..d778dcf3f6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response-members.html index 95ceda996d..5363e2704b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response.html index 6c7648f713..f170f677c3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dead_session_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dead_session_controller-members.html index aa0666d9e5..5149a622b5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dead_session_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dead_session_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dead_session_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dead_session_controller.html index 03e71488fb..df1949e8a0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dead_session_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dead_session_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dual_reattach_information-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dual_reattach_information-members.html index 7395be330f..0de4726fcf 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dual_reattach_information-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dual_reattach_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dual_reattach_information.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dual_reattach_information.html index c89c05e587..0d20473def 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dual_reattach_information.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_dual_reattach_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result-members.html index 29f05ba7a1..e589e247ae 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result.html index 0dedcbdf9b..59163922a6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_info_handler-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_info_handler-members.html index 04ae10b212..cb1a284b9f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_info_handler-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_info_handler-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_info_handler.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_info_handler.html index 0641c892e5..0ce906181b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_info_handler.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_info_handler.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information-members.html index b4c5cb4d22..9545a531ab 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html index f186256e93..7ea39086f9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller-members.html index e7c7e96144..05a9efed9e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html index 5f5303d698..d6a005589e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -440,7 +440,7 @@ Private Attributes

Definition at line 207 of file SessionController.cs.

References Tgstation.Server.Host.Components.Interop.DMApiParameters.AccessIdentifier, Tgstation.Server.Host.Components.Chat.IChatTrackingContext.Active, Tgstation.Server.Host.System.IProcessBase.Lifetime, Tgstation.Server.Host.Components.Interop.Bridge.IBridgeRegistrar.RegisterHandler(), and Tgstation.Server.Host.Components.Chat.IChatTrackingContext.SetChannelSink().

-
219  {
220  this.reattachInformation = reattachInformation ?? throw new ArgumentNullException(nameof(reattachInformation));
221  this.process = process ?? throw new ArgumentNullException(nameof(process));
222  this.byondLock = byondLock ?? throw new ArgumentNullException(nameof(byondLock));
223  this.byondTopicSender = byondTopicSender ?? throw new ArgumentNullException(nameof(byondTopicSender));
224  this.chatTrackingContext = chatTrackingContext ?? throw new ArgumentNullException(nameof(chatTrackingContext));
225  bridgeRegistration = bridgeRegistrar?.RegisterHandler(this) ?? throw new ArgumentNullException(nameof(bridgeRegistrar));
226  this.chat = chat ?? throw new ArgumentNullException(nameof(chat));
227  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
228 
229  this.chatTrackingContext.SetChannelSink(this);
230 
231  portClosedForReboot = false;
232  disposed = false;
233  apiValidationStatus = ApiValidationStatus.NeverValidated;
234  released = false;
235 
236  rebootTcs = new TaskCompletionSource<object>();
237  primeTcs = new TaskCompletionSource<object>();
238  reattachTopicCts = new CancellationTokenSource();
239  synchronizationLock = new object();
240 
241  _ = process.Lifetime.ContinueWith(
242  x =>
243  {
244  if (!disposed)
245  reattachTopicCts.Cancel();
246  chatTrackingContext.Active = false;
247  },
248  TaskScheduler.Current);
249 
251  assemblyInformationProvider,
252  startupTimeout,
253  reattached);
254 
255  logger.LogDebug("Created session controller. Primary: {0}, CommsKey: {1}, Port: {2}", IsPrimary, reattachInformation.AccessIdentifier, Port);
256  }
readonly CancellationTokenSource reattachTopicCts
A CancellationTokenSource used for the topic send operation made on reattaching.
+
219  {
220  this.reattachInformation = reattachInformation ?? throw new ArgumentNullException(nameof(reattachInformation));
221  this.process = process ?? throw new ArgumentNullException(nameof(process));
222  this.byondLock = byondLock ?? throw new ArgumentNullException(nameof(byondLock));
223  this.byondTopicSender = byondTopicSender ?? throw new ArgumentNullException(nameof(byondTopicSender));
224  this.chatTrackingContext = chatTrackingContext ?? throw new ArgumentNullException(nameof(chatTrackingContext));
225  bridgeRegistration = bridgeRegistrar?.RegisterHandler(this) ?? throw new ArgumentNullException(nameof(bridgeRegistrar));
226  this.chat = chat ?? throw new ArgumentNullException(nameof(chat));
227  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
228 
229  this.chatTrackingContext.SetChannelSink(this);
230 
231  portClosedForReboot = false;
232  disposed = false;
233  apiValidationStatus = ApiValidationStatus.NeverValidated;
234  released = false;
235 
236  rebootTcs = new TaskCompletionSource<object>();
237  primeTcs = new TaskCompletionSource<object>();
238  reattachTopicCts = new CancellationTokenSource();
239  synchronizationLock = new object();
240 
241  _ = process.Lifetime.ContinueWith(
242  x =>
243  {
244  lock (synchronizationLock)
245  if (!disposed)
246  reattachTopicCts.Cancel();
247  chatTrackingContext.Active = false;
248  },
249  TaskScheduler.Current);
250 
252  assemblyInformationProvider,
253  startupTimeout,
254  reattached);
255 
256  logger.LogDebug("Created session controller. Primary: {0}, CommsKey: {1}, Port: {2}", IsPrimary, reattachInformation.AccessIdentifier, Port);
257  }
readonly CancellationTokenSource reattachTopicCts
A CancellationTokenSource used for the topic send operation made on reattaching.
Task< int > Lifetime
The Task<TResult> resulting in the exit code of the process
Definition: IProcessBase.cs:14
readonly object synchronizationLock
object for port updates and disposed.
ApiValidationStatus apiValidationStatus
The ApiValidationStatus for the SessionController
@@ -450,15 +450,12 @@ Private Attributes
bool portClosedForReboot
If we know DreamDaemon currently has it&#39;s port closed
readonly IBridgeRegistration bridgeRegistration
The IBridgeRegistration for the SessionController
bool released
If process should be kept alive instead
- -
bool Active
If the CustomCommands should be used.
-
string AccessIdentifier
Used to identify and authenticate the DreamDaemon instance
readonly ILogger< SessionController > logger
The ILogger for the SessionController
readonly ITopicClient byondTopicSender
The ITopicClient for the SessionController
void SetChannelSink(IChannelSink channelSink)
Sets the channelSink for the IChatTrackingContext.
-
async Task< LaunchResult > GetLaunchResult(IAssemblyInformationProvider assemblyInformationProvider, uint?startupTimeout, bool reattached)
The Task<TResult> for LaunchResult.
+
async Task< LaunchResult > GetLaunchResult(IAssemblyInformationProvider assemblyInformationProvider, uint?startupTimeout, bool reattached)
The Task<TResult> for LaunchResult.
bool disposed
If the SessionController has been disposed
TaskCompletionSource< object > primeTcs
The TaskCompletionSource<TResult> that completes when DD tells us it&#39;s primed.
TaskCompletionSource< object > rebootTcs
The TaskCompletionSource<TResult> that completes when DD tells us about a reboot
@@ -526,8 +523,8 @@ Here is the call graph for this function:

Throws an ObjectDisposedException if Dispose(bool) has been called

-

Definition at line 505 of file SessionController.cs.

-
506  {
507  if (disposed)
508  throw new ObjectDisposedException(nameof(SessionController));
509  }
SessionController(ReattachInformation reattachInformation, IProcess process, IByondExecutableLock byondLock, ITopicClient byondTopicSender, IChatTrackingContext chatTrackingContext, IBridgeRegistrar bridgeRegistrar, IChatManager chat, IAssemblyInformationProvider assemblyInformationProvider, ILogger< SessionController > logger, uint?startupTimeout, bool reattached)
Construct a SessionController
+

Definition at line 507 of file SessionController.cs.

+
508  {
509  if (disposed)
510  throw new ObjectDisposedException(nameof(SessionController));
511  }
SessionController(ReattachInformation reattachInformation, IProcess process, IByondExecutableLock byondLock, ITopicClient byondTopicSender, IChatTrackingContext chatTrackingContext, IBridgeRegistrar bridgeRegistrar, IChatManager chat, IAssemblyInformationProvider assemblyInformationProvider, ILogger< SessionController > logger, uint?startupTimeout, bool reattached)
Construct a SessionController
bool disposed
If the SessionController has been disposed
@@ -547,8 +544,8 @@ Here is the call graph for this function:

-

Definition at line 267 of file SessionController.cs.

-
268  {
269  Dispose(true);
270  GC.SuppressFinalize(this);
271  }
+

Definition at line 268 of file SessionController.cs.

+
269  {
270  Dispose(true);
271  GC.SuppressFinalize(this);
272  }
@@ -582,13 +579,14 @@ Here is the call graph for this function: -

Definition at line 277 of file SessionController.cs.

-
278  {
279  lock (synchronizationLock)
280  {
281  if (disposed)
282  return;
283  if (disposing)
284  {
285  if (!released)
286  {
287  process.Terminate();
288  byondLock.Dispose();
289  }
290 
291  process.Dispose();
292  bridgeRegistration.Dispose();
293  Dmb?.Dispose(); // will be null when released
294  chatTrackingContext.Dispose();
295  reattachTopicCts.Dispose();
296  disposed = true;
297  }
298  else
299  {
300  if (logger != null)
301  logger.LogError("Being disposed via finalizer!");
302  if (!released)
303  if (process != null)
304  process.Terminate();
305  else if (logger != null)
306  logger.LogCritical("Unable to terminate active DreamDaemon session due to finalizer ordering!");
307  }
308  }
309  }
readonly CancellationTokenSource reattachTopicCts
A CancellationTokenSource used for the topic send operation made on reattaching.
+

Definition at line 278 of file SessionController.cs.

+
279  {
280  lock (synchronizationLock)
281  {
282  if (disposed)
283  return;
284  disposed = true;
285  logger.LogTrace("Disposing...");
286  if (disposing)
287  {
288  if (!released)
289  {
290  process.Terminate();
291  byondLock.Dispose();
292  }
293 
294  process.Dispose();
295  bridgeRegistration.Dispose();
296  reattachInformation.Dmb?.Dispose(); // will be null when released
297  chatTrackingContext.Dispose();
298  reattachTopicCts.Dispose();
299  }
300  else
301  {
302  if (logger != null)
303  logger.LogError("Being disposed via finalizer!");
304  if (!released)
305  if (process != null)
306  process.Terminate();
307  else if (logger != null)
308  logger.LogCritical("Unable to terminate active DreamDaemon session due to finalizer ordering!");
309  }
310  }
311  }
readonly CancellationTokenSource reattachTopicCts
A CancellationTokenSource used for the topic send operation made on reattaching.
readonly object synchronizationLock
object for port updates and disposed.
readonly IProcess process
The IProcess for the SessionController
- +
readonly ReattachInformation reattachInformation
The up to date ReattachInformation
readonly IBridgeRegistration bridgeRegistration
The IBridgeRegistration for the SessionController
bool released
If process should be kept alive instead
+
IDmbProvider Dmb
The IDmbProvider used by DreamDaemon
readonly IByondExecutableLock byondLock
The IByondExecutableLock for the SessionController
readonly ILogger< SessionController > logger
The ILogger for the SessionController
readonly IChatTrackingContext chatTrackingContext
The IChatTrackingContext for the SessionController
@@ -665,10 +663,10 @@ Here is the call graph for this function:
Returns
A Task<TResult> resulting in the Session.LaunchResult for the operation.
-

Definition at line 318 of file SessionController.cs.

+

Definition at line 320 of file SessionController.cs.

References Tgstation.Server.Host.System.IAssemblyInformationProvider.Version.

-
322  {
323  var startTime = DateTimeOffset.Now;
324  Task toAwait = process.Startup;
325 
326  if (startupTimeout.HasValue)
327  toAwait = Task.WhenAny(process.Startup, Task.Delay(startTime.AddSeconds(startupTimeout.Value) - startTime));
328 
329  await toAwait.ConfigureAwait(false);
330 
331  var result = new LaunchResult
332  {
333  ExitCode = process.Lifetime.IsCompleted ? (int?)await process.Lifetime.ConfigureAwait(false) : null,
334  StartupTime = process.Startup.IsCompleted ? (TimeSpan?)(DateTimeOffset.Now - startTime) : null
335  };
336 
337  logger.LogTrace("Launch result: {0}", result);
338 
339  if (!result.ExitCode.HasValue && reattached && !disposed)
340  {
341  var reattachResponse = await SendCommand(
342  new TopicParameters(
343  assemblyInformationProvider.Version,
345  reattachTopicCts.Token)
346  .ConfigureAwait(false);
347 
348  if (reattachResponse.InteropResponse?.CustomCommands != null)
349  chatTrackingContext.CustomCommands = reattachResponse.InteropResponse.CustomCommands;
350  else if (reattachResponse.InteropResponse != null)
351  logger.LogWarning(
352  "DMAPI v{0} isn't returning the TGS custom commands list. Functionality added in v5.2.0.",
353  Dmb.CompileJob.DMApiVersion.Semver());
354  }
355 
356  return result;
357  }
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:29
+
324  {
325  var startTime = DateTimeOffset.Now;
326  Task toAwait = process.Startup;
327 
328  if (startupTimeout.HasValue)
329  toAwait = Task.WhenAny(process.Startup, Task.Delay(startTime.AddSeconds(startupTimeout.Value) - startTime));
330 
331  await toAwait.ConfigureAwait(false);
332 
333  var result = new LaunchResult
334  {
335  ExitCode = process.Lifetime.IsCompleted ? (int?)await process.Lifetime.ConfigureAwait(false) : null,
336  StartupTime = process.Startup.IsCompleted ? (TimeSpan?)(DateTimeOffset.Now - startTime) : null
337  };
338 
339  logger.LogTrace("Launch result: {0}", result);
340 
341  if (!result.ExitCode.HasValue && reattached && !disposed)
342  {
343  var reattachResponse = await SendCommand(
344  new TopicParameters(
345  assemblyInformationProvider.Version,
347  reattachTopicCts.Token)
348  .ConfigureAwait(false);
349 
350  if (reattachResponse.InteropResponse?.CustomCommands != null)
351  chatTrackingContext.CustomCommands = reattachResponse.InteropResponse.CustomCommands;
352  else if (reattachResponse.InteropResponse != null)
353  logger.LogWarning(
354  "DMAPI v{0} isn't returning the TGS custom commands list. Functionality added in v5.2.0.",
355  Dmb.CompileJob.DMApiVersion.Semver());
356  }
357 
358  return result;
359  }
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:29
readonly CancellationTokenSource reattachTopicCts
A CancellationTokenSource used for the topic send operation made on reattaching.
Task< int > Lifetime
The Task<TResult> resulting in the exit code of the process
Definition: IProcessBase.cs:14
@@ -677,7 +675,7 @@ Here is the call graph for this function:
readonly ReattachInformation reattachInformation
The up to date ReattachInformation
-
async Task< CombinedTopicResponse > SendCommand(TopicParameters parameters, CancellationToken cancellationToken)
Sends a command to DreamDaemon through /world/Topic()
+
async Task< CombinedTopicResponse > SendCommand(TopicParameters parameters, CancellationToken cancellationToken)
Sends a command to DreamDaemon through /world/Topic()
virtual Version DMApiVersion
The DMAPI Version.
Definition: CompileJob.cs:40
readonly ILogger< SessionController > logger
The ILogger for the SessionController
@@ -747,10 +745,10 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Interop.Bridge.IBridgeDispatcher.

-

Definition at line 360 of file SessionController.cs.

+

Definition at line 362 of file SessionController.cs.

References Tgstation.Server.Host.Components.Interop.ChatMessage.ChannelIds, Tgstation.Server.Host.Components.Interop.Bridge.BridgeParameters.ChatMessage, Tgstation.Server.Host.Components.Interop.Bridge.BridgeParameters.CommandType, Tgstation.Server.Host.Components.Interop.Bridge.BridgeParameters.CurrentPort, Tgstation.Server.Host.Components.Interop.Bridge.BridgeParameters.CustomCommands, Tgstation.Server.Host.Components.Interop.Bridge.BridgeParameters.MinimumSecurityLevel, Tgstation.Server.Host.Components.Interop.ChatMessage.Text, and Tgstation.Server.Host.Components.Interop.Bridge.BridgeParameters.Version.

-
361  {
362  if (parameters == null)
363  throw new ArgumentNullException(nameof(parameters));
364 
365  var response = new BridgeResponse();
366  switch (parameters.CommandType)
367  {
368  case BridgeCommandType.ChatSend:
369  if (parameters.ChatMessage == null)
370  return new BridgeResponse
371  {
372  ErrorMessage = "Missing chatMessage field!"
373  };
374 
375  if (parameters.ChatMessage.ChannelIds == null)
376  return new BridgeResponse
377  {
378  ErrorMessage = "Missing channelIds field in chatMessage!"
379  };
380 
381  if(parameters.ChatMessage.ChannelIds.Any(channelIdString => !UInt64.TryParse(channelIdString, out var _)))
382  return new BridgeResponse
383  {
384  ErrorMessage = "Invalid channelIds in chatMessage!"
385  };
386 
387  if (parameters.ChatMessage.Text == null)
388  return new BridgeResponse
389  {
390  ErrorMessage = "Missing message field in chatMessage!"
391  };
392 
393  await chat.SendMessage(
394  parameters.ChatMessage.Text,
395  parameters.ChatMessage.ChannelIds.Select(UInt64.Parse),
396  cancellationToken).ConfigureAwait(false);
397  break;
398  case BridgeCommandType.Prime:
399  var oldPrimeTcs = primeTcs;
400  primeTcs = new TaskCompletionSource<object>();
401  oldPrimeTcs.SetResult(null);
402  break;
403  case BridgeCommandType.Kill:
404  logger.LogInformation("Bridge requested process termination!");
406  process.Terminate();
407  break;
408  case BridgeCommandType.PortUpdate:
409  lock (synchronizationLock)
410  {
411  if (!parameters.CurrentPort.HasValue)
412  {
414  logger.LogWarning("DreamDaemon sent new port command without providing it's own!");
415  return new BridgeResponse
416  {
417  ErrorMessage = "Missing stringified port as data parameter!"
418  };
419  }
420 
421  var currentPort = parameters.CurrentPort.Value;
422  if (!nextPort.HasValue)
423  reattachInformation.Port = parameters.CurrentPort.Value; // not ready yet, so what we'll do is accept the random port DD opened on for now and change it later when we decide to
424  else
425  {
426  // nextPort is ready, tell DD to switch to that
427  // if it fails it'll kill itself
428  response.NewPort = nextPort.Value;
430  nextPort = null;
431 
432  // we'll also get here from SetPort so complete that task
433  var tmpTcs = portAssignmentTcs;
434  portAssignmentTcs = null;
435  tmpTcs.SetResult(true);
436  }
437 
438  portClosedForReboot = false;
439  }
440 
441  break;
442  case BridgeCommandType.Startup:
443  apiValidationStatus = ApiValidationStatus.BadValidationRequest;
444  if (parameters.Version == null)
445  return new BridgeResponse
446  {
447  ErrorMessage = "Missing dmApiVersion field!"
448  };
449 
450  DMApiVersion = parameters.Version;
451  switch (parameters.MinimumSecurityLevel)
452  {
453  case DreamDaemonSecurity.Ultrasafe:
454  apiValidationStatus = ApiValidationStatus.RequiresUltrasafe;
455  break;
456  case DreamDaemonSecurity.Safe:
458  break;
459  case DreamDaemonSecurity.Trusted:
460  apiValidationStatus = ApiValidationStatus.RequiresTrusted;
461  break;
462  case null:
463  return new BridgeResponse
464  {
465  ErrorMessage = "Missing minimumSecurityLevel field!"
466  };
467  default:
468  return new BridgeResponse
469  {
470  ErrorMessage = "Invalid minimumSecurityLevel!"
471  };
472  }
473 
474  response.RuntimeInformation = reattachInformation.RuntimeInformation;
475 
476  // Load custom commands
478  break;
479  case BridgeCommandType.Reboot:
480  if (ClosePortOnReboot)
481  {
482  chatTrackingContext.Active = false;
483  response.NewPort = 0;
484  portClosedForReboot = true;
485  }
486 
487  var oldRebootTcs = rebootTcs;
488  rebootTcs = new TaskCompletionSource<object>();
489  oldRebootTcs.SetResult(null);
490  break;
491  case null:
492  response.ErrorMessage = "Missing commandType!";
493  break;
494  default:
495  response.ErrorMessage = "Requested commandType not supported!";
496  break;
497  }
498 
499  return response;
500  }
readonly IChatManager chat
The IChatManager for the SessionController
+
363  {
364  if (parameters == null)
365  throw new ArgumentNullException(nameof(parameters));
366 
367  var response = new BridgeResponse();
368  switch (parameters.CommandType)
369  {
370  case BridgeCommandType.ChatSend:
371  if (parameters.ChatMessage == null)
372  return new BridgeResponse
373  {
374  ErrorMessage = "Missing chatMessage field!"
375  };
376 
377  if (parameters.ChatMessage.ChannelIds == null)
378  return new BridgeResponse
379  {
380  ErrorMessage = "Missing channelIds field in chatMessage!"
381  };
382 
383  if(parameters.ChatMessage.ChannelIds.Any(channelIdString => !UInt64.TryParse(channelIdString, out var _)))
384  return new BridgeResponse
385  {
386  ErrorMessage = "Invalid channelIds in chatMessage!"
387  };
388 
389  if (parameters.ChatMessage.Text == null)
390  return new BridgeResponse
391  {
392  ErrorMessage = "Missing message field in chatMessage!"
393  };
394 
395  await chat.SendMessage(
396  parameters.ChatMessage.Text,
397  parameters.ChatMessage.ChannelIds.Select(UInt64.Parse),
398  cancellationToken).ConfigureAwait(false);
399  break;
400  case BridgeCommandType.Prime:
401  var oldPrimeTcs = primeTcs;
402  primeTcs = new TaskCompletionSource<object>();
403  oldPrimeTcs.SetResult(null);
404  break;
405  case BridgeCommandType.Kill:
406  logger.LogInformation("Bridge requested process termination!");
408  process.Terminate();
409  break;
410  case BridgeCommandType.PortUpdate:
411  lock (synchronizationLock)
412  {
413  if (!parameters.CurrentPort.HasValue)
414  {
416  logger.LogWarning("DreamDaemon sent new port command without providing it's own!");
417  return new BridgeResponse
418  {
419  ErrorMessage = "Missing stringified port as data parameter!"
420  };
421  }
422 
423  var currentPort = parameters.CurrentPort.Value;
424  if (!nextPort.HasValue)
425  reattachInformation.Port = parameters.CurrentPort.Value; // not ready yet, so what we'll do is accept the random port DD opened on for now and change it later when we decide to
426  else
427  {
428  // nextPort is ready, tell DD to switch to that
429  // if it fails it'll kill itself
430  response.NewPort = nextPort.Value;
432  nextPort = null;
433 
434  // we'll also get here from SetPort so complete that task
435  var tmpTcs = portAssignmentTcs;
436  portAssignmentTcs = null;
437  tmpTcs.SetResult(true);
438  }
439 
440  portClosedForReboot = false;
441  }
442 
443  break;
444  case BridgeCommandType.Startup:
445  apiValidationStatus = ApiValidationStatus.BadValidationRequest;
446  if (parameters.Version == null)
447  return new BridgeResponse
448  {
449  ErrorMessage = "Missing dmApiVersion field!"
450  };
451 
452  DMApiVersion = parameters.Version;
453  switch (parameters.MinimumSecurityLevel)
454  {
455  case DreamDaemonSecurity.Ultrasafe:
456  apiValidationStatus = ApiValidationStatus.RequiresUltrasafe;
457  break;
458  case DreamDaemonSecurity.Safe:
460  break;
461  case DreamDaemonSecurity.Trusted:
462  apiValidationStatus = ApiValidationStatus.RequiresTrusted;
463  break;
464  case null:
465  return new BridgeResponse
466  {
467  ErrorMessage = "Missing minimumSecurityLevel field!"
468  };
469  default:
470  return new BridgeResponse
471  {
472  ErrorMessage = "Invalid minimumSecurityLevel!"
473  };
474  }
475 
476  response.RuntimeInformation = reattachInformation.RuntimeInformation;
477 
478  // Load custom commands
480  break;
481  case BridgeCommandType.Reboot:
482  if (ClosePortOnReboot)
483  {
484  chatTrackingContext.Active = false;
485  response.NewPort = 0;
486  portClosedForReboot = true;
487  }
488 
489  var oldRebootTcs = rebootTcs;
490  rebootTcs = new TaskCompletionSource<object>();
491  oldRebootTcs.SetResult(null);
492  break;
493  case null:
494  response.ErrorMessage = "Missing commandType!";
495  break;
496  default:
497  response.ErrorMessage = "Requested commandType not supported!";
498  break;
499  }
500 
501  return response;
502  }
readonly IChatManager chat
The IChatManager for the SessionController
readonly object synchronizationLock
object for port updates and disposed.
ushort nextPort
The port to assign DreamDaemon when it queries for it
ApiValidationStatus apiValidationStatus
The ApiValidationStatus for the SessionController
@@ -804,10 +802,10 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Session.ISessionController.

-

Definition at line 515 of file SessionController.cs.

-
516  {
517  CheckDisposed();
518 
519  // we still don't want to dispose the dmb yet, even though we're keeping it alive
520  var tmpProvider = reattachInformation.Dmb;
521  reattachInformation.Dmb = null;
522  released = true;
523  Dispose();
525  tmpProvider.KeepAlive();
526  reattachInformation.Dmb = tmpProvider;
527  return reattachInformation;
528  }
void CheckDisposed()
Throws an ObjectDisposedException if Dispose(bool) has been called
+

Definition at line 517 of file SessionController.cs.

+
518  {
519  CheckDisposed();
520 
521  // we still don't want to dispose the dmb yet, even though we're keeping it alive
522  var tmpProvider = reattachInformation.Dmb;
523  reattachInformation.Dmb = null;
524  released = true;
525  Dispose();
527  tmpProvider.KeepAlive();
528  reattachInformation.Dmb = tmpProvider;
529  return reattachInformation;
530  }
void CheckDisposed()
Throws an ObjectDisposedException if Dispose(bool) has been called
readonly ReattachInformation reattachInformation
The up to date ReattachInformation
- +
bool released
If process should be kept alive instead
IDmbProvider Dmb
The IDmbProvider used by DreamDaemon
readonly IByondExecutableLock byondLock
The IByondExecutableLock for the SessionController
@@ -833,10 +831,10 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Session.ISessionController.

-

Definition at line 667 of file SessionController.cs.

+

Definition at line 669 of file SessionController.cs.

References Tgstation.Server.Host.Components.Interop.Topic.InstanceRenamed.

-
668  {
669  var oldDmb = reattachInformation.Dmb;
670  reattachInformation.Dmb = dmbProvider ?? throw new ArgumentNullException(nameof(dmbProvider));
671  oldDmb.Dispose();
672  }
readonly ReattachInformation reattachInformation
The up to date ReattachInformation
+
670  {
671  var oldDmb = reattachInformation.Dmb;
672  reattachInformation.Dmb = dmbProvider ?? throw new ArgumentNullException(nameof(dmbProvider));
673  oldDmb.Dispose();
674  }
readonly ReattachInformation reattachInformation
The up to date ReattachInformation
IDmbProvider Dmb
The IDmbProvider used by DreamDaemon
@@ -858,8 +856,8 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Session.ISessionController.

-

Definition at line 650 of file SessionController.cs.

-
651  {
652  CheckDisposed();
653  logger.LogTrace("Resetting reboot state...");
655  }
void CheckDisposed()
Throws an ObjectDisposedException if Dispose(bool) has been called
+

Definition at line 652 of file SessionController.cs.

+
653  {
654  CheckDisposed();
655  logger.LogTrace("Resetting reboot state...");
657  }
void CheckDisposed()
Throws an ObjectDisposedException if Dispose(bool) has been called
readonly ReattachInformation reattachInformation
The up to date ReattachInformation
readonly ILogger< SessionController > logger
The ILogger for the SessionController
@@ -914,10 +912,10 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Session.ISessionController.

-

Definition at line 531 of file SessionController.cs.

+

Definition at line 533 of file SessionController.cs.

References Tgstation.Server.Host.Components.Interop.DMApiParameters.AccessIdentifier, Tgstation.Server.Host.Components.Interop.Topic.TopicParameters.CommandType, Tgstation.Server.Host.Components.Interop.DMApiConstants.SerializerSettings, and Tgstation.Server.Host.Components.Interop.DMApiConstants.TopicData.

-
532  {
533  if (Lifetime.IsCompleted)
534  {
535  logger.LogWarning(
536  "Attempted to send a command to an inactive SessionController: {0}",
537  parameters.CommandType);
538  return null;
539  }
540 
542 
543  var json = JsonConvert.SerializeObject(parameters, DMApiConstants.SerializerSettings);
544  logger.LogTrace("Topic request: {0}", json);
545  try
546  {
547  var commandString = String.Format(CultureInfo.InvariantCulture,
548  "?{0}={1}",
549  byondTopicSender.SanitizeString(DMApiConstants.TopicData),
550  byondTopicSender.SanitizeString(json));
551 
552  var targetPort = reattachInformation.Port;
553 
554  var topicResponse = await byondTopicSender.SendTopic(
555  new IPEndPoint(IPAddress.Loopback, targetPort),
556  commandString,
557  cancellationToken).ConfigureAwait(false);
558 
559  var topicReturn = topicResponse.StringData;
560 
561  Interop.Topic.TopicResponse interopResponse = null;
562  if (topicReturn != null)
563  try
564  {
565  interopResponse = JsonConvert.DeserializeObject<Interop.Topic.TopicResponse>(topicReturn, DMApiConstants.SerializerSettings);
566  if (interopResponse.ErrorMessage != null)
567  {
568  logger.LogWarning("Errored topic response for command {0}: {1}", parameters.CommandType, interopResponse.ErrorMessage);
569  }
570 
571  logger.LogTrace("Interop response: {0}", topicReturn);
572  }
573  catch
574  {
575  logger.LogWarning("Invalid interop response: {0}", topicReturn);
576  }
577 
578  return new CombinedTopicResponse(topicResponse, interopResponse);
579  }
580  catch (OperationCanceledException)
581  {
582  logger.LogTrace(
583  "Topic request {0}!",
584  cancellationToken.IsCancellationRequested
585  ? "aborted"
586  : "timed out");
587  cancellationToken.ThrowIfCancellationRequested();
588  }
589  catch (Exception e)
590  {
591  logger.LogWarning("Send command exception:{0}{1}", Environment.NewLine, e);
592  }
593 
594  return null;
595  }
readonly ReattachInformation reattachInformation
The up to date ReattachInformation
+
534  {
535  if (Lifetime.IsCompleted)
536  {
537  logger.LogWarning(
538  "Attempted to send a command to an inactive SessionController: {0}",
539  parameters.CommandType);
540  return null;
541  }
542 
544 
545  var json = JsonConvert.SerializeObject(parameters, DMApiConstants.SerializerSettings);
546  logger.LogTrace("Topic request: {0}", json);
547  try
548  {
549  var commandString = String.Format(CultureInfo.InvariantCulture,
550  "?{0}={1}",
551  byondTopicSender.SanitizeString(DMApiConstants.TopicData),
552  byondTopicSender.SanitizeString(json));
553 
554  var targetPort = reattachInformation.Port;
555 
556  var topicResponse = await byondTopicSender.SendTopic(
557  new IPEndPoint(IPAddress.Loopback, targetPort),
558  commandString,
559  cancellationToken).ConfigureAwait(false);
560 
561  var topicReturn = topicResponse.StringData;
562 
563  Interop.Topic.TopicResponse interopResponse = null;
564  if (topicReturn != null)
565  try
566  {
567  interopResponse = JsonConvert.DeserializeObject<Interop.Topic.TopicResponse>(topicReturn, DMApiConstants.SerializerSettings);
568  if (interopResponse.ErrorMessage != null)
569  {
570  logger.LogWarning("Errored topic response for command {0}: {1}", parameters.CommandType, interopResponse.ErrorMessage);
571  }
572 
573  logger.LogTrace("Interop response: {0}", topicReturn);
574  }
575  catch
576  {
577  logger.LogWarning("Invalid interop response: {0}", topicReturn);
578  }
579 
580  return new CombinedTopicResponse(topicResponse, interopResponse);
581  }
582  catch (OperationCanceledException)
583  {
584  logger.LogTrace(
585  "Topic request {0}!",
586  cancellationToken.IsCancellationRequested
587  ? "aborted"
588  : "timed out");
589  cancellationToken.ThrowIfCancellationRequested();
590  }
591  catch (Exception e)
592  {
593  logger.LogWarning("Send command exception:{0}{1}", Environment.NewLine, e);
594  }
595 
596  return null;
597  }
readonly ReattachInformation reattachInformation
The up to date ReattachInformation
const string TopicData
Parameter json is encoded in for topic requests.
Constants used for communication with the DMAPI
@@ -977,14 +975,14 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Session.ISessionController.

-

Definition at line 598 of file SessionController.cs.

-
599  {
600  CheckDisposed();
601 
602  if (port == 0)
603  throw new ArgumentOutOfRangeException(nameof(port), port, "port must not be zero!");
604 
605  async Task<bool> ImmediateTopicPortChange()
606  {
607  var commandResult = await SendCommand(
608  new TopicParameters(port),
609  cancellationToken)
610  .ConfigureAwait(false);
611 
612  if (commandResult.InteropResponse?.ErrorMessage != null)
613  return false;
614 
615  reattachInformation.Port = port;
616  return true;
617  }
618 
619  lock (synchronizationLock)
621  {
622  if (portAssignmentTcs != null)
623  throw new InvalidOperationException("A port change operation is already in progress!");
624  nextPort = port;
625  portAssignmentTcs = new TaskCompletionSource<bool>();
626  return portAssignmentTcs.Task;
627  }
628  else
629  return ImmediateTopicPortChange();
630  }
readonly object synchronizationLock
object for port updates and disposed.
+

Definition at line 600 of file SessionController.cs.

+
601  {
602  CheckDisposed();
603 
604  if (port == 0)
605  throw new ArgumentOutOfRangeException(nameof(port), port, "port must not be zero!");
606 
607  async Task<bool> ImmediateTopicPortChange()
608  {
609  var commandResult = await SendCommand(
610  new TopicParameters(port),
611  cancellationToken)
612  .ConfigureAwait(false);
613 
614  if (commandResult.InteropResponse?.ErrorMessage != null)
615  return false;
616 
617  reattachInformation.Port = port;
618  return true;
619  }
620 
621  lock (synchronizationLock)
623  {
624  if (portAssignmentTcs != null)
625  throw new InvalidOperationException("A port change operation is already in progress!");
626  nextPort = port;
627  portAssignmentTcs = new TaskCompletionSource<bool>();
628  return portAssignmentTcs.Task;
629  }
630  else
631  return ImmediateTopicPortChange();
632  }
readonly object synchronizationLock
object for port updates and disposed.
ushort nextPort
The port to assign DreamDaemon when it queries for it
-
void CheckDisposed()
Throws an ObjectDisposedException if Dispose(bool) has been called
+
void CheckDisposed()
Throws an ObjectDisposedException if Dispose(bool) has been called
readonly ReattachInformation reattachInformation
The up to date ReattachInformation
TaskCompletionSource< bool > portAssignmentTcs
The TaskCompletionSource<TResult> SetPort(ushort, CancellationToken) waits on when DreamDaemon curren...
-
async Task< CombinedTopicResponse > SendCommand(TopicParameters parameters, CancellationToken cancellationToken)
Sends a command to DreamDaemon through /world/Topic()
+
async Task< CombinedTopicResponse > SendCommand(TopicParameters parameters, CancellationToken cancellationToken)
Sends a command to DreamDaemon through /world/Topic()
bool portClosedForReboot
If we know DreamDaemon currently has it&#39;s port closed
ushort Port
The port DreamDaemon was last listening on
@@ -1018,10 +1016,10 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Session.ISessionController.

-

Definition at line 633 of file SessionController.cs.

-
634  {
635  if (RebootState == newRebootState)
636  return true;
637 
638  logger.LogTrace("Changing reboot state to {0}", newRebootState);
639 
640  reattachInformation.RebootState = newRebootState;
641  var result = await SendCommand(
642  new TopicParameters(newRebootState),
643  cancellationToken)
644  .ConfigureAwait(false);
645 
646  return result?.InteropResponse != null && result.InteropResponse?.ErrorMessage == null;
647  }
+

Definition at line 635 of file SessionController.cs.

+
636  {
637  if (RebootState == newRebootState)
638  return true;
639 
640  logger.LogTrace("Changing reboot state to {0}", newRebootState);
641 
642  reattachInformation.RebootState = newRebootState;
643  var result = await SendCommand(
644  new TopicParameters(newRebootState),
645  cancellationToken)
646  .ConfigureAwait(false);
647 
648  return result?.InteropResponse != null && result.InteropResponse?.ErrorMessage == null;
649  }
readonly ReattachInformation reattachInformation
The up to date ReattachInformation
-
async Task< CombinedTopicResponse > SendCommand(TopicParameters parameters, CancellationToken cancellationToken)
Sends a command to DreamDaemon through /world/Topic()
+
async Task< CombinedTopicResponse > SendCommand(TopicParameters parameters, CancellationToken cancellationToken)
Sends a command to DreamDaemon through /world/Topic()
readonly ILogger< SessionController > logger
The ILogger for the SessionController
RebootState RebootState
The current DreamDaemon reboot state
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory-members.html index 964362a5bd..110c36b46c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html index 4de44a022a..aedba13aec 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration-members.html index 6e6882cd13..9ced6c6a6c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration.html index 263900ceab..e9e7054a3b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications-members.html index 48ee81f990..aebf74d2cc 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications.html index ac4b5e94d0..d55caa074b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog-members.html index 4000bd84aa..c5d91dce4b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog.html index a89acd45f6..992cb3f152 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -739,7 +739,7 @@ Here is the call graph for this function:

Definition at line 207 of file BasicWatchdog.cs.

-

References Tgstation.Server.Host.Components.Session.DualReattachInformation.Alpha, Tgstation.Server.Host.Components.Session.DualReattachInformation.Bravo, Tgstation.Server.Host.Components.Session.ISessionController.EnableCustomChatCommands(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.Reattach(), and Tgstation.Server.Host.System.IProcessBase.SetHighPriority().

+

References Tgstation.Server.Host.Components.Session.DualReattachInformation.Alpha, Tgstation.Server.Host.Components.Session.DualReattachInformation.Bravo, Tgstation.Server.Host.Components.Session.ISessionController.EnableCustomChatCommands(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.Reattach(), and Tgstation.Server.Host.System.IProcessBase.SetHighPriority().

208  {
209  var serverToReattach = reattachInfo?.Alpha ?? reattachInfo?.Bravo;
210  var serverToKill = reattachInfo?.Bravo ?? reattachInfo?.Alpha;
211 
212  // vice versa
213  if (serverToKill == serverToReattach)
214  serverToKill = null;
215 
216  if (reattachInfo?.AlphaIsActive == false)
217  {
218  var temp = serverToReattach;
219  serverToReattach = serverToKill;
220  serverToKill = temp;
221  }
222 
223  // don't need a new dmb if reattaching
224  var doesntNeedNewDmb = serverToReattach != null;
225  var dmbToUse = doesntNeedNewDmb ? null : DmbFactory.LockNextDmb(1);
226 
227  // if this try catches something, both servers are killed
228  bool inactiveServerWasKilled = false;
229  try
230  {
231  // start the alpha server task, either by launch a new process or attaching to an existing one
232  // The tasks returned are mainly for writing interop files to the directories among other things and should generally never fail
233  // The tasks pertaining to server startup times are in the ISessionControllers
234  Task<ISessionController> serverLaunchTask, inactiveReattachTask;
235  if (!doesntNeedNewDmb)
236  {
237  dmbToUse = await PrepServerForLaunch(dmbToUse, cancellationToken).ConfigureAwait(false);
238  serverLaunchTask = SessionControllerFactory.LaunchNew(
239  dmbToUse,
240  null,
242  true,
243  true,
244  false,
245  cancellationToken);
246  }
247  else
248  serverLaunchTask = SessionControllerFactory.Reattach(serverToReattach, cancellationToken);
249 
250  bool thereIsAnInactiveServerToKill = serverToKill != null;
251  if (thereIsAnInactiveServerToKill)
252  inactiveReattachTask = SessionControllerFactory.Reattach(serverToKill, cancellationToken);
253  else
254  inactiveReattachTask = Task.FromResult<ISessionController>(null);
255 
256  // retrieve the session controller
257  Server = await serverLaunchTask.ConfigureAwait(false);
258 
259  // failed reattaches will return null
260  Server?.SetHighPriority();
261 
262  var inactiveServerController = await inactiveReattachTask.ConfigureAwait(false);
263  inactiveServerController?.Dispose();
264  inactiveServerWasKilled = inactiveServerController != null;
265 
266  // possiblity of null servers due to failed reattaches
267  if (Server == null)
268  {
269  callBeforeRecurse();
270  await NotifyOfFailedReattach(thereIsAnInactiveServerToKill && !inactiveServerWasKilled, cancellationToken).ConfigureAwait(false);
271  return;
272  }
273 
274  await CheckLaunchResult(Server, "Server", cancellationToken).ConfigureAwait(false);
275 
276  Server.EnableCustomChatCommands();
277  }
278  catch
279  {
280  // kill the controllers
281  bool serverWasActive = Server != null;
283 
284  // server didn't get control of this dmb
285  if (dmbToUse != null && !serverWasActive)
286  dmbToUse.Dispose();
287 
288  if (serverToKill != null && !inactiveServerWasKilled)
289  serverToKill.Dmb.Dispose();
290  throw;
291  }
292  }
async Task< ISessionController > Reattach(ReattachInformation reattachInformation, CancellationToken cancellationToken)
Create a ISessionController from an existing DreamDaemon instance
void EnableCustomChatCommands()
Enables the reading of custom chat commands from the ISessionController
@@ -756,7 +756,7 @@ Here is the call graph for this function:
Handles communication with a DreamDaemon IProcess
async Task NotifyOfFailedReattach(bool inactiveReattachSuccess, CancellationToken cancellationToken)
Send a chat message and log about a failed reattach operation and attempts another call to LaunchImpl...
async Task CheckLaunchResult(ISessionController controller, string serverName, CancellationToken cancellationToken)
Check the LaunchResult of a given controller for errors and throw a JobException if any are detected...
-
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:150
+
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:153

Here is the call graph for this function:
@@ -850,7 +850,7 @@ Here is the call graph for this function:

Definition at line 324 of file BasicWatchdog.cs.

325  {
327  return base.ResetRebootState(cancellationToken);
328 
329  return Restart(true, cancellationToken);
330  }
bool gracefulRebootRequired
If the server is set to gracefully reboot due to a pending dmb or settings change.
-
async Task Restart(bool graceful, CancellationToken cancellationToken)
Restarts the watchdog
+
async Task Restart(bool graceful, CancellationToken cancellationToken)
Restarts the watchdog
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_experimental_watchdog-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_experimental_watchdog-members.html index c46b82fecf..1717e44943 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_experimental_watchdog-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_experimental_watchdog-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_experimental_watchdog.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_experimental_watchdog.html index 75ab7e7d26..064c6bc2a4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_experimental_watchdog.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_experimental_watchdog.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -586,7 +586,7 @@ Additional Inherited Members

Definition at line 98 of file ExperimentalWatchdog.cs.

-

References Tgstation.Server.Host.Components.Watchdog.MonitorState.ActiveServer, Tgstation.Server.Host.Components.Session.ISessionController.ClosePortOnReboot, Tgstation.Server.Host.Components.Deployment.IDmbProvider.CompileJob, Tgstation.Server.Host.Components.Session.ISessionController.Dmb, Tgstation.Server.Host.Components.Session.ISessionController.EnableCustomChatCommands(), Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob(), Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Components.Watchdog.MonitorState.InactiveServer, Tgstation.Server.Host.Components.Watchdog.MonitorState.InactiveServerCritFail, Tgstation.Server.Host.Components.Session.ISessionController.IsPrimary, Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Components.Watchdog.MonitorState.NextAction, Tgstation.Server.Host.Components.Watchdog.MonitorState.RebootingInactiveServer, Tgstation.Server.Host.Components.Session.ISessionController.RebootState, Tgstation.Server.Host.Components.Session.ISessionController.ResetRebootState(), Tgstation.Server.Host.System.IProcessBase.SetHighPriority(), Tgstation.Server.Host.Components.Session.ISessionController.SetPort(), and Tgstation.Server.Host.Components.Session.ISessionController.TerminationWasRequested.

+

References Tgstation.Server.Host.Components.Watchdog.MonitorState.ActiveServer, Tgstation.Server.Host.Components.Session.ISessionController.ClosePortOnReboot, Tgstation.Server.Host.Components.Deployment.IDmbProvider.CompileJob, Tgstation.Server.Host.Components.Session.ISessionController.Dmb, Tgstation.Server.Host.Components.Session.ISessionController.EnableCustomChatCommands(), Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob(), Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Components.Watchdog.MonitorState.InactiveServer, Tgstation.Server.Host.Components.Watchdog.MonitorState.InactiveServerCritFail, Tgstation.Server.Host.Components.Session.ISessionController.IsPrimary, Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Components.Watchdog.MonitorState.NextAction, Tgstation.Server.Host.Components.Watchdog.MonitorState.RebootingInactiveServer, Tgstation.Server.Host.Components.Session.ISessionController.RebootState, Tgstation.Server.Host.Components.Session.ISessionController.ResetRebootState(), Tgstation.Server.Host.System.IProcessBase.SetHighPriority(), Tgstation.Server.Host.Components.Session.ISessionController.SetPort(), and Tgstation.Server.Host.Components.Session.ISessionController.TerminationWasRequested.

99  {
100  Logger.LogDebug("Monitor activation. Reason: {0}", activationReason);
101 
102  // this is where the bulk of the watchdog handling code lives and is fraught with lambdas, sorry not sorry
103  // I'll do my best to walk you through it
104 
105  // returns true if the inactive server can't be used immediately
106  // also sets monitor to restart if the above holds
107  bool FullRestartDeadInactive()
108  {
109  if (monitorState.RebootingInactiveServer || monitorState.InactiveServerCritFail)
110  {
111  Logger.LogInformation("Inactive server is {0}! Restarting monitor...", monitorState.InactiveServerCritFail ? "critically failed" : "still rebooting");
112  monitorState.NextAction = MonitorAction.Restart; // will dispose server
113  return true;
114  }
115 
116  return false;
117  }
118 
119  // trys to set inactive server's port to the public game port
120  // doesn't handle closing active server's port
121  // returns true on success and swaps inactiveserver and activeserver also sets LastLaunchParameters to ActiveLaunchParameters
122  // on failure, sets monitor to restart
123  async Task<bool> MakeInactiveActive()
124  {
125  Logger.LogDebug("Setting inactive server to port {0}...", ActiveLaunchParameters.PrimaryPort.Value);
126  var result = await monitorState.InactiveServer.SetPort(ActiveLaunchParameters.PrimaryPort.Value, cancellationToken).ConfigureAwait(false);
127 
128  if (!result)
129  {
130  Logger.LogWarning("Failed to activate inactive server! Restarting monitor...");
131  monitorState.NextAction = MonitorAction.Restart; // will dispose server
132  return false;
133  }
134 
135  // inactive server should always be using active launch parameters
137 
138  var tmp = monitorState.ActiveServer;
139  monitorState.ActiveServer = monitorState.InactiveServer;
140  monitorState.InactiveServer = tmp;
142  monitorState.ActiveServer.EnableCustomChatCommands();
143  return true;
144  }
145 
146  // Kills and tries to launch inactive server with the latest dmb
147  // falls back to current dmb on failure
148  // Sets critfail on inactive server failing that
149  // returns false if the backup dmb was used successfully, true otherwise
150  async Task UpdateAndRestartInactiveServer(bool breakAfter)
151  {
152  ActiveParametersUpdated = new TaskCompletionSource<object>();
153  monitorState.InactiveServer.Dispose(); // kill or recycle it
154  var desiredNextAction = breakAfter ? MonitorAction.Break : MonitorAction.Continue;
155  monitorState.NextAction = desiredNextAction;
156 
157  Logger.LogInformation("Rebooting inactive server...");
158  var newDmb = DmbFactory.LockNextDmb(1);
159  try
160  {
161  monitorState.InactiveServer = await SessionControllerFactory.LaunchNew(
162  newDmb,
163  null,
165  false,
166  !monitorState.ActiveServer.IsPrimary,
167  false,
168  cancellationToken)
169  .ConfigureAwait(false);
170  monitorState.InactiveServer.SetHighPriority();
171  }
172  catch (OperationCanceledException)
173  {
174  throw;
175  }
176  catch (Exception e)
177  {
178  Logger.LogError("Error occurred while recreating server! Attempting backup strategy of running DMB of running server! Exception: {0}", e.ToString());
179 
180  // ahh jeez, what do we do here?
181  // this is our fault, so it should never happen but
182  // idk maybe a database error while handling the newest dmb?
183  // either way try to start it using the active server's dmb as a backup
184  try
185  {
186  var dmbBackup = await DmbFactory.FromCompileJob(monitorState.ActiveServer.Dmb.CompileJob, cancellationToken).ConfigureAwait(false);
187 
188  if (dmbBackup == null) // NANI!?
189  throw new InvalidOperationException("Watchdog double crit-fail!"); // just give up, if THAT compile job is failing then the ActiveServer is gonna crash soon too or already has
190 
191  monitorState.InactiveServer = await SessionControllerFactory.LaunchNew(
192  dmbBackup,
193  null,
195  false,
196  !monitorState.ActiveServer.IsPrimary,
197  false,
198  cancellationToken)
199  .ConfigureAwait(false);
200  monitorState.InactiveServer.SetHighPriority();
202  "Staging newest DMB on inactive server failed: {0} Falling back to previous dmb...",
203  false,
204  cancellationToken).ConfigureAwait(false);
205  }
206  catch (OperationCanceledException)
207  {
208  throw;
209  }
210  catch (Exception e2)
211  {
212  // fuuuuucckkk
213  Logger.LogError("Backup strategy failed! Monitor will restart when active server reboots! Exception: {0}", e2.ToString());
214  monitorState.InactiveServerCritFail = true;
216  "Attempted reboot of inactive server failed. Watchdog will reset when active server fails or exits",
217  false,
218  cancellationToken).ConfigureAwait(false);
219  return;
220  }
221  }
222 
223  Logger.LogInformation("Successfully relaunched inactive server!");
224  monitorState.RebootingInactiveServer = true;
225  }
226 
227  static string ExitWord(ISessionController controller) => controller.TerminationWasRequested ? "exited" : "crashed";
228 
229  // reason handling
230  switch (activationReason)
231  {
232  case MonitorActivationReason.ActiveServerCrashed:
233  if (monitorState.ActiveServer.RebootState == Session.RebootState.Shutdown)
234  {
235  // the time for graceful shutdown is now
237  String.Format(
238  CultureInfo.InvariantCulture,
239  "Active server {0}! Shutting down due to graceful termination request...",
240  ExitWord(monitorState.ActiveServer)),
241  false,
242  cancellationToken).ConfigureAwait(false);
243  monitorState.NextAction = MonitorAction.Exit;
244  break;
245  }
246 
247  if (FullRestartDeadInactive())
248  {
249  // tell chat about it and go ahead
251  String.Format(
252  CultureInfo.InvariantCulture,
253  "Active server {0}! Inactive server unable to online!",
254  ExitWord(monitorState.ActiveServer)),
255  false,
256  cancellationToken).ConfigureAwait(false);
257 
258  // we've already been set to restart
259  break;
260  }
261 
262  // tell chat about it
264  String.Format(
265  CultureInfo.InvariantCulture,
266  "Active server {0}! Onlining inactive server...",
267  ExitWord(monitorState.ActiveServer)),
268  false,
269  cancellationToken)
270  .ConfigureAwait(false);
271 
272  // try to activate the inactive server
273  if (!await MakeInactiveActive().ConfigureAwait(false))
274  break; // failing that, we've already been set to restart
275 
276  // bring up another inactive server
277  await UpdateAndRestartInactiveServer(true).ConfigureAwait(false);
278  break;
279  case MonitorActivationReason.InactiveServerCrashed:
280  // just announce and try to bring it back
282  String.Format(
283  CultureInfo.InvariantCulture,
284  "Inactive server {0}! Rebooting...",
285  ExitWord(monitorState.InactiveServer)),
286  false,
287  cancellationToken)
288  .ConfigureAwait(false);
289  await UpdateAndRestartInactiveServer(false).ConfigureAwait(false);
290  break;
291  case MonitorActivationReason.ActiveServerRebooted:
292  // ideal goal: active server just closed its port
293  // tell inactive server to open it's port and that's now the active server
294  var rebootState = monitorState.ActiveServer.RebootState;
295  monitorState.ActiveServer.ResetRebootState(); // the DMAPI has already done this internally
296 
297  if (FullRestartDeadInactive() && rebootState != Session.RebootState.Shutdown)
298  break; // full restart if the inactive server is being fucky
299 
300  // what matters here is the RebootState
301  var restartOnceSwapped = false;
302 
303  switch (rebootState)
304  {
305  case Session.RebootState.Normal:
306  // life as normal
307  break;
308  case Session.RebootState.Restart:
309  // reboot the current active server once the inactive one activates
310  restartOnceSwapped = true;
311  break;
312  case Session.RebootState.Shutdown:
313  // graceful shutdown time
315  "Active server rebooted! Shutting down due to graceful termination request...",
316  false,
317  cancellationToken)
318  .ConfigureAwait(false);
319  monitorState.NextAction = MonitorAction.Exit;
320  return;
321  default:
322  throw new InvalidOperationException($"Invalid reboot state: {rebootState}");
323  }
324 
325  // are both servers now running the same CompileJob?
326  var sameCompileJob = monitorState.InactiveServer.Dmb.CompileJob.Id == monitorState.ActiveServer.Dmb.CompileJob.Id;
327 
328  if (!sameCompileJob || ActiveLaunchParameters != LastLaunchParameters)
329  restartOnceSwapped = true; // need a new launch to update either settings or compile job
330 
331  if (restartOnceSwapped)
332  /*
333  * we need to manually restart active server
334  * just kill it here, easier that way
335  */
336  monitorState.ActiveServer.Dispose();
337 
338  var activeServerStillHasPortOpen = !restartOnceSwapped && !monitorState.ActiveServer.ClosePortOnReboot;
339 
340  if (activeServerStillHasPortOpen)
341  /* we didn't want active server to swap for some reason and it still has it's port open
342  * just continue as normal
343  */
344  break;
345 
346  if (!await MakeInactiveActive().ConfigureAwait(false))
347  break; // monitor will restart
348 
349  // servers now swapped
350  // enable this now if inactive server is not still valid
351  monitorState.ActiveServer.ClosePortOnReboot = restartOnceSwapped;
352 
353  if (!restartOnceSwapped)
354  /*
355  * now try to reopen it on the private port
356  * failing that, just reboot it
357  */
358  restartOnceSwapped = !await monitorState.InactiveServer.SetPort(ActiveLaunchParameters.SecondaryPort.Value, cancellationToken).ConfigureAwait(false);
359 
360  // break either way because any issues past this point would be solved by the reboot
361  if (restartOnceSwapped) // for one reason or another
362  await UpdateAndRestartInactiveServer(true).ConfigureAwait(false); // update and reboot
363  else
364  monitorState.NextAction = MonitorAction.Skip; // only skip checking inactive server rebooted, it's guaranteed InactiveServerStartup complete wouldn't fire this iteration
365  break;
366  case MonitorActivationReason.InactiveServerRebooted:
367  // just don't let the active server close it's port if the inactive server isn't ready
368  monitorState.RebootingInactiveServer = true;
369  monitorState.InactiveServer.ResetRebootState();
370  monitorState.ActiveServer.ClosePortOnReboot = false;
371  monitorState.NextAction = MonitorAction.Continue;
372  break;
373  case MonitorActivationReason.InactiveServerStartupComplete:
374  // opposite of above case
375  monitorState.RebootingInactiveServer = false;
376  monitorState.ActiveServer.ClosePortOnReboot = true;
377  monitorState.NextAction = MonitorAction.Continue;
378  break;
379  case MonitorActivationReason.NewDmbAvailable:
380  case MonitorActivationReason.ActiveLaunchParametersUpdated:
381  // just reload the inactive server and wait for a swap to apply the changes
382  await UpdateAndRestartInactiveServer(true).ConfigureAwait(false);
383  break;
384  case MonitorActivationReason.Heartbeat:
385  default:
386  throw new InvalidOperationException(
387  String.Format(
388  CultureInfo.InvariantCulture,
389  "Invalid monitor activation reason: {0}!",
390  activationReason));
391  }
392  }
@@ -600,10 +600,10 @@ Additional Inherited Members
MonitorActivationReason
Reasons for the monitor to wake up
Handles communication with a DreamDaemon IProcess
-
async Task< IDmbProvider > FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
Gets a IDmbProvider for a given CompileJob
Definition: DmbFactory.cs:193
+
async Task< IDmbProvider > FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
Gets a IDmbProvider for a given CompileJob
Definition: DmbFactory.cs:196
ILogger Logger
The ILogger for the WatchdogBase.
Definition: WatchdogBase.cs:68
MonitorAction
The action for the monitor loop to take when control is returned to it
Definition: MonitorAction.cs:6
-
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:150
+
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:153
ushort PrimaryPort
The first port DreamDaemon uses. This should be the publically advertised port

@@ -676,7 +676,7 @@ Here is the call graph for this function:

Definition at line 440 of file ExperimentalWatchdog.cs.

-

References Tgstation.Server.Host.Components.Session.DualReattachInformation.Alpha, Tgstation.Server.Host.Models.DualReattachInformationBase.AlphaIsActive, Tgstation.Server.Host.Components.Session.DualReattachInformation.Bravo, Tgstation.Server.Host.Components.Session.SessionControllerFactory.CreateDeadSession(), Tgstation.Server.Host.Core.AsyncDelayer.Delay(), Tgstation.Server.Host.Components.Session.ReattachInformation.Dmb, Tgstation.Server.Host.Components.Session.ISessionController.EnableCustomChatCommands(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.Reattach(), Tgstation.Server.Host.Components.Session.ISessionController.Release(), and Tgstation.Server.Host.System.IProcessBase.SetHighPriority().

+

References Tgstation.Server.Host.Components.Session.DualReattachInformation.Alpha, Tgstation.Server.Host.Models.DualReattachInformationBase.AlphaIsActive, Tgstation.Server.Host.Components.Session.DualReattachInformation.Bravo, Tgstation.Server.Host.Components.Session.SessionControllerFactory.CreateDeadSession(), Tgstation.Server.Host.Core.AsyncDelayer.Delay(), Tgstation.Server.Host.Components.Session.ReattachInformation.Dmb, Tgstation.Server.Host.Components.Session.ISessionController.EnableCustomChatCommands(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.Reattach(), Tgstation.Server.Host.Components.Session.ISessionController.Release(), and Tgstation.Server.Host.System.IProcessBase.SetHighPriority().

441  {
442  Debug.Assert(alphaServer == null && bravoServer == null, "Entered LaunchNoLock with one or more of the servers not being null!");
443 
444  // don't need a new dmb if reattaching
445  var doesntNeedNewDmb = reattachInfo?.Alpha != null && reattachInfo?.Bravo != null;
446  var dmbToUse = doesntNeedNewDmb ? null : DmbFactory.LockNextDmb(2);
447 
448  // if this try catches something, both servers are killed
449  try
450  {
451  // start the alpha server task, either by launch a new process or attaching to an existing one
452  // The tasks returned are mainly for writing interop files to the directories among other things and should generally never fail
453  // The tasks pertaining to server startup times are in the ISessionControllers
454  Task<ISessionController> alphaServerTask;
455  if (!doesntNeedNewDmb)
456  alphaServerTask = SessionControllerFactory.LaunchNew(
457  dmbToUse,
458  null,
460  true,
461  true,
462  false,
463  cancellationToken);
464  else
465  alphaServerTask = SessionControllerFactory.Reattach(reattachInfo.Alpha, cancellationToken);
466 
467  // retrieve the session controller
468  var startTime = DateTimeOffset.Now;
469  alphaServer = await alphaServerTask.ConfigureAwait(false);
470 
471  // failed reattaches will return null
473 
474  // extra delay for total ordering
475  var now = DateTimeOffset.Now;
476  var delay = now - startTime;
477 
478  // definitely not if reattaching though
479  if (reattachInfo == null && delay.TotalSeconds < AlphaBravoStartupSeperationInterval)
480  await AsyncDelayer.Delay(startTime.AddSeconds(AlphaBravoStartupSeperationInterval) - now, cancellationToken).ConfigureAwait(false);
481 
482  // now bring bravo up
483  if (!doesntNeedNewDmb)
485  dmbToUse,
486  null,
488  false,
489  false,
490  false,
491  cancellationToken)
492  .ConfigureAwait(false);
493  else
494  bravoServer = await SessionControllerFactory.Reattach(reattachInfo.Bravo, cancellationToken).ConfigureAwait(false);
495 
496  // failed reattaches will return null
498 
499  // possiblity of null servers due to failed reattaches
500  if (alphaServer == null || bravoServer == null)
501  {
502  await chatTask.ConfigureAwait(false);
503  var bothServersDead = alphaServer == null && bravoServer == null;
504  if (bothServersDead
505  || (alphaServer == null && reattachInfo.AlphaIsActive)
506  || (bravoServer == null && !reattachInfo.AlphaIsActive))
507  {
508  // we lost the active server, just restart entirely
510  const string FailReattachMessage = "Unable to properly reattach to active server! Restarting...";
511  Logger.LogWarning(FailReattachMessage);
512  Logger.LogDebug(bothServersDead ? "Also could not reattach to inactive server!" : "Inactive server was reattached successfully!");
513  chatTask = Chat.SendWatchdogMessage(FailReattachMessage, false, cancellationToken);
514  callBeforeRecurse();
515  await LaunchImplNoLock(true, false, null, cancellationToken).ConfigureAwait(false);
516  await chatTask.ConfigureAwait(false);
517  return;
518  }
519 
520  // we still have the active server but the other one is dead to us, hand it off to the monitor to restart
521  const string InactiveReattachFailureMessage = "Unable to reattach to inactive server. Leaving for monitor to reboot...";
522  chatTask = Chat.SendWatchdogMessage(InactiveReattachFailureMessage, false, cancellationToken);
523  Logger.LogWarning(InactiveReattachFailureMessage);
524 
525  if (reattachInfo.AlphaIsActive)
526  bravoServer = SessionControllerFactory.CreateDeadSession(reattachInfo.Bravo.Dmb);
527  else
529  }
530 
531  var alphaLrt = CheckLaunchResult(alphaServer, "Alpha", cancellationToken);
532  var bravoLrt = CheckLaunchResult(bravoServer, "Bravo", cancellationToken);
533 
534  // this task completes when both serers have finished booting
535  var allTask = Task.WhenAll(alphaLrt, bravoLrt);
536 
537  await allTask.ConfigureAwait(false);
538 
539  // both servers are now running, alpha is the active server(unless reattach), huzzah
540  alphaIsActive = reattachInfo?.AlphaIsActive ?? true;
541 
542  var activeServer = AlphaIsActive ? alphaServer : bravoServer;
543  activeServer.EnableCustomChatCommands();
544  activeServer.ClosePortOnReboot = true;
545  }
546  catch
547  {
548  if (dmbToUse != null)
549  {
550  // we locked 2 dmbs
551  if (bravoServer == null)
552  {
553  // bravo didn't get control of his
554  dmbToUse.Dispose();
555  if (alphaServer == null)
556  dmbToUse.Dispose(); // alpha didn't get control of his
557  }
558  }
559  else if (doesntNeedNewDmb) // we have reattachInfo
560  if (bravoServer == null)
561  {
562  // bravo didn't get control of his
563  reattachInfo.Bravo?.Dmb.Dispose();
564  if (alphaServer == null)
565  reattachInfo.Alpha?.Dmb.Dispose(); // alpha didn't get control of his
566  }
567 
568  // kill the controllers
570  throw;
571  }
572  }
async Task< ISessionController > Reattach(ReattachInformation reattachInformation, CancellationToken cancellationToken)
Create a ISessionController from an existing DreamDaemon instance
const int AlphaBravoStartupSeperationInterval
The time in seconds to wait from starting alphaServer to start bravoServer. Does not take responsiven...
@@ -702,7 +702,7 @@ Here is the call graph for this function:
async Task CheckLaunchResult(ISessionController controller, string serverName, CancellationToken cancellationToken)
Check the LaunchResult of a given controller for errors and throw a JobException if any are detected...
ILogger Logger
The ILogger for the WatchdogBase.
Definition: WatchdogBase.cs:68
ISessionController alphaServer
Server designation alpha
-
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:150
+
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:153

Here is the call graph for this function:
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_monitor_state-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_monitor_state-members.html index 60800bf190..bc89121020 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_monitor_state-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_monitor_state-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_monitor_state.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_monitor_state.html index 0c8d34453b..d9af27cc85 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_monitor_state.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_monitor_state.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base-members.html index 51c38ff8eb..5169efedbc 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html index d232099a6e..d58364ccb6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -511,12 +511,12 @@ Here is the call graph for this function:

Definition at line 742 of file WatchdogBase.cs.

-

References Tgstation.Server.Host.Core.SemaphoreSlimContext.Lock(), and Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.Match().

-
743  {
744  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
745  {
746  if (launchParameters.Match(ActiveLaunchParameters))
747  return;
748  ActiveLaunchParameters = launchParameters;
749  if (Running)
750  ActiveParametersUpdated.TrySetResult(null); // queue an update
751  }
752  }
+

References Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.CanApplyWithoutReboot(), and Tgstation.Server.Host.Core.SemaphoreSlimContext.Lock().

+
743  {
744  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
745  {
746  bool match = launchParameters.CanApplyWithoutReboot(ActiveLaunchParameters);
747  ActiveLaunchParameters = launchParameters;
748  if (match || !Running)
749  return;
750 
751  ActiveParametersUpdated.TrySetResult(null); // queue an update
752  ActiveParametersUpdated = new TaskCompletionSource<object>();
753  }
754  }
SemaphoreSlim Semaphore
The SemaphoreSlim for the WatchdogBase.
Definition: WatchdogBase.cs:63
+
bool CanApplyWithoutReboot(DreamDaemonLaunchParameters otherParameters)
Check if we match a given set of otherParameters . StartupTimeout is excluded.
TaskCompletionSource< object > ActiveParametersUpdated
TaskCompletionSource<TResult> that completes when ActiveLaunchParameters are changed and we are Runni...
Definition: WatchdogBase.cs:58
-
bool Match(DreamDaemonLaunchParameters otherParameters)
Check if we match a given set of otherParameters
static async Task< SemaphoreSlimContext > Lock(SemaphoreSlim semaphore, CancellationToken cancellationToken)
Asyncronously locks a semaphore
@@ -525,8 +525,8 @@ Here is the call graph for this function:
- - + +

@@ -804,10 +804,10 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Chat.ICustomCommandHandler.

-

Definition at line 789 of file WatchdogBase.cs.

+

Definition at line 791 of file WatchdogBase.cs.

References Tgstation.Server.Host.Core.SemaphoreSlimContext.Lock().

-
790  {
791  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
792  {
793  if (!Running)
794  return "ERROR: Server offline!";
795 
796  var commandObject = new ChatCommand(sender, commandName, arguments);
797 
798  var command = new TopicParameters(commandObject);
799 
800  var activeServer = GetActiveController();
801  var commandResult = await activeServer.SendCommand(command, cancellationToken).ConfigureAwait(false);
802 
803  if (commandResult == null)
804  return "TGS: Bad topic exchange!";
805 
806  if (commandResult.InteropResponse == null)
807  return "TGS: Bad topic response!";
808 
809  return commandResult.InteropResponse.CommandResponseMessage ??
810  "TGS: Command processed but no DMAPI response returned!";
811  }
812  }
+
792  {
793  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
794  {
795  if (!Running)
796  return "ERROR: Server offline!";
797 
798  var commandObject = new ChatCommand(sender, commandName, arguments);
799 
800  var command = new TopicParameters(commandObject);
801 
802  var activeServer = GetActiveController();
803  var commandResult = await activeServer.SendCommand(command, cancellationToken).ConfigureAwait(false);
804 
805  if (commandResult == null)
806  return "TGS: Bad topic exchange!";
807 
808  if (commandResult.InteropResponse == null)
809  return "TGS: Bad topic response!";
810 
811  return commandResult.InteropResponse.CommandResponseMessage ??
812  "TGS: Command processed but no DMAPI response returned!";
813  }
814  }
SemaphoreSlim Semaphore
The SemaphoreSlim for the WatchdogBase.
Definition: WatchdogBase.cs:63
Represents a chat command to be handled by DD
Definition: ChatCommand.cs:9
@@ -861,8 +861,8 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.IEventConsumer.

-

Definition at line 755 of file WatchdogBase.cs.

-
756  {
757  var activeServer = GetActiveController();
758 
759  // Server may have ended
760  if (activeServer == null)
761  return;
762 
763  var notification = new EventNotification(eventType, parameters);
764  var result = await activeServer.SendCommand(
765  new TopicParameters(notification),
766  cancellationToken)
767  .ConfigureAwait(false);
768 
769  if (result?.InteropResponse?.ChatResponses != null)
770  await Task.WhenAll(
771  result.InteropResponse.ChatResponses.Select(
772  x => Chat.SendMessage(
773  x.Text,
774  x.ChannelIds
775  .Select(channelIdString =>
776  {
777  if (UInt64.TryParse(channelIdString, out var channelId))
778  return (ulong?)channelId;
779 
780  return null;
781  })
782  .Where(nullableChannelId => nullableChannelId.HasValue)
783  .Select(nullableChannelId => nullableChannelId.Value),
784  cancellationToken)))
785  .ConfigureAwait(false);
786  }
+

Definition at line 757 of file WatchdogBase.cs.

+
758  {
759  var activeServer = GetActiveController();
760 
761  // Server may have ended
762  if (activeServer == null)
763  return;
764 
765  var notification = new EventNotification(eventType, parameters);
766  var result = await activeServer.SendCommand(
767  new TopicParameters(notification),
768  cancellationToken)
769  .ConfigureAwait(false);
770 
771  if (result?.InteropResponse?.ChatResponses != null)
772  await Task.WhenAll(
773  result.InteropResponse.ChatResponses.Select(
774  x => Chat.SendMessage(
775  x.Text,
776  x.ChannelIds
777  .Select(channelIdString =>
778  {
779  if (UInt64.TryParse(channelIdString, out var channelId))
780  return (ulong?)channelId;
781 
782  return null;
783  })
784  .Where(nullableChannelId => nullableChannelId.HasValue)
785  .Select(nullableChannelId => nullableChannelId.Value),
786  cancellationToken)))
787  .ConfigureAwait(false);
788  }
IChatManager Chat
The IChatManager for the WatchdogBase
Definition: WatchdogBase.cs:73
Data structure for TopicCommandType.EventNotification requests.
abstract ISessionController GetActiveController()
Get the active ISessionController.
@@ -1018,8 +1018,8 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Core.IRestartHandler.

-

Definition at line 923 of file WatchdogBase.cs.

-
924  {
925  releaseServers = true;
926  if (Running)
927  await Chat.SendWatchdogMessage("Detaching...", false, cancellationToken).ConfigureAwait(false);
928  }
+

Definition at line 920 of file WatchdogBase.cs.

+
921  {
922  releaseServers = true;
923  if (Running)
924  await Chat.SendWatchdogMessage("Detaching...", false, cancellationToken).ConfigureAwait(false);
925  }
IChatManager Chat
The IChatManager for the WatchdogBase
Definition: WatchdogBase.cs:73
Task SendWatchdogMessage(string message, bool adminOnly, CancellationToken cancellationToken)
Send a chat message to configured watchdog channels
bool releaseServers
If the servers should be released instead of shutdown
@@ -1104,10 +1104,10 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.

-

Definition at line 815 of file WatchdogBase.cs.

+

Definition at line 817 of file WatchdogBase.cs.

References Tgstation.Server.Host.Core.SemaphoreSlimContext.Lock().

-
816  {
817  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
818  await LaunchImplNoLock(true, true, null, cancellationToken).ConfigureAwait(false);
819  }
SemaphoreSlim Semaphore
The SemaphoreSlim for the WatchdogBase.
Definition: WatchdogBase.cs:63
+
818  {
819  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
820  await LaunchImplNoLock(true, true, null, cancellationToken).ConfigureAwait(false);
821  }
SemaphoreSlim Semaphore
The SemaphoreSlim for the WatchdogBase.
Definition: WatchdogBase.cs:63
async Task LaunchImplNoLock(bool startMonitor, bool announce, DualReattachInformation reattachInfo, CancellationToken cancellationToken)
Launches the watchdog.
static async Task< SemaphoreSlimContext > Lock(SemaphoreSlim semaphore, CancellationToken cancellationToken)
Asyncronously locks a semaphore
@@ -1234,7 +1234,7 @@ Here is the call graph for this function:

Definition at line 574 of file WatchdogBase.cs.

References Tgstation.Server.Host.Components.Watchdog.MonitorState.ActiveServer, Tgstation.Server.Host.Core.SemaphoreSlimContext.Lock(), Tgstation.Server.Host.Components.Watchdog.MonitorState.NextAction, and Tgstation.Server.Host.Components.Deployment.DmbFactory.OnNewerDmb.

-
575  {
576  Logger.LogTrace("Entered MonitorLifetimes");
577  using var _ = cancellationToken.Register(() => Logger.LogTrace("Monitor cancellationToken triggered"));
578 
579  // this function is responsible for calling HandlerMonitorWakeup when necessary and manitaining the MonitorState
580  var iteration = 1;
581  try
582  {
583  for (var monitorState = new MonitorState(); monitorState.NextAction != MonitorAction.Exit; ++iteration)
584  try
585  {
586  Logger.LogDebug("Iteration {0} of monitor loop", iteration);
587 
588  // load the activation tasks into local variables
589  var serverTasks = GetMonitoredServerTasks(monitorState);
590  if (serverTasks.Count != 5)
591  throw new InvalidOperationException("Expected 5 monitored server tasks!");
592 
593  var activeServerLifetime = serverTasks[MonitorActivationReason.ActiveServerCrashed];
594  var activeServerReboot = serverTasks[MonitorActivationReason.ActiveServerRebooted];
595  var inactiveServerLifetime = serverTasks[MonitorActivationReason.InactiveServerCrashed];
596  var inactiveServerReboot = serverTasks[MonitorActivationReason.InactiveServerRebooted];
597  var inactiveStartupComplete = serverTasks[MonitorActivationReason.InactiveServerStartupComplete];
598 
599  Task activeLaunchParametersChanged = ActiveParametersUpdated.Task;
600  var newDmbAvailable = DmbFactory.OnNewerDmb;
601 
602  var heartbeatSeconds = ActiveLaunchParameters.HeartbeatSeconds.Value;
603  var heartbeat = heartbeatSeconds == 0
604  ? Extensions.TaskExtensions.InfiniteTask()
605  : Task.Delay(TimeSpan.FromSeconds(heartbeatSeconds));
606 
607  // cancel waiting if requested
608  var cancelTcs = new TaskCompletionSource<object>();
609  using (cancellationToken.Register(() => cancelTcs.SetCanceled()))
610  {
611  var toWaitOn = Task.WhenAny(
612  activeServerLifetime,
613  activeServerReboot,
614  inactiveServerLifetime,
615  inactiveServerReboot,
616  inactiveStartupComplete,
617  heartbeat,
618  newDmbAvailable,
619  cancelTcs.Task,
620  activeLaunchParametersChanged);
621 
622  // wait for something to happen
623  await toWaitOn.ConfigureAwait(false);
624  cancellationToken.ThrowIfCancellationRequested();
625  }
626 
627  Logger.LogTrace("Monitor activated");
628 
629  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
630  {
631  // always run HandleMonitorWakeup from the context of the semaphore lock
632  // multiple things may have happened, handle them one at a time
633  for (var moreActivationsToProcess = true; moreActivationsToProcess && (monitorState.NextAction == MonitorAction.Continue || monitorState.NextAction == MonitorAction.Skip);)
634  {
635  MonitorActivationReason activationReason = default; // this will always be assigned before being used
636 
637  // process the tasks in this order and call HandlerMonitorWakup for each
638  bool CheckActivationReason(ref Task task, MonitorActivationReason testActivationReason)
639  {
640  var taskCompleted = task?.IsCompleted == true;
641  task = null;
642  if (monitorState.NextAction == MonitorAction.Skip)
643  monitorState.NextAction = MonitorAction.Continue;
644  else if (taskCompleted)
645  {
646  activationReason = testActivationReason;
647  return true;
648  }
649 
650  return false;
651  }
652 
653  var anyActivation = CheckActivationReason(ref activeServerLifetime, MonitorActivationReason.ActiveServerCrashed)
654  || CheckActivationReason(ref activeServerReboot, MonitorActivationReason.ActiveServerRebooted)
655  || CheckActivationReason(ref newDmbAvailable, MonitorActivationReason.NewDmbAvailable)
656  || CheckActivationReason(ref inactiveServerLifetime, MonitorActivationReason.InactiveServerCrashed)
657  || CheckActivationReason(ref inactiveServerReboot, MonitorActivationReason.InactiveServerRebooted)
658  || CheckActivationReason(ref inactiveStartupComplete, MonitorActivationReason.InactiveServerStartupComplete)
659  || CheckActivationReason(ref activeLaunchParametersChanged, MonitorActivationReason.ActiveLaunchParametersUpdated)
660  || CheckActivationReason(ref heartbeat, MonitorActivationReason.Heartbeat);
661 
662  if (!anyActivation)
663  moreActivationsToProcess = false;
664  else
665  {
666  Logger.LogTrace("Reason: {0}", activationReason);
667  if (activationReason == MonitorActivationReason.Heartbeat)
668  monitorState.NextAction = await HandleHeartbeat(
669  monitorState.ActiveServer,
670  cancellationToken)
671  .ConfigureAwait(false);
672  else
673  await HandleMonitorWakeup(
674  activationReason,
675  monitorState,
676  cancellationToken)
677  .ConfigureAwait(false);
678  }
679  }
680  }
681 
682  Logger.LogTrace("Next monitor action is to {0}", monitorState.NextAction);
683  if (monitorState.NextAction == MonitorAction.Restart)
684  monitorState = await MonitorRestart(cancellationToken).ConfigureAwait(false);
685  }
686  catch (OperationCanceledException)
687  {
688  throw;
689  }
690  catch (Exception e)
691  {
692  // really, this should NEVER happen
693  Logger.LogError(
694  "Monitor crashed! Iteration: {0}, Monitor State: {1}, Exception: {2}",
695  iteration,
696  JsonConvert.SerializeObject(monitorState),
697  e);
698 
699  var nextActionMessage = monitorState.NextAction != MonitorAction.Exit
700  ? "Restarting"
701  : "Shutting down";
702  var chatTask = Chat.SendWatchdogMessage(
703  $"Monitor crashed, this should NEVER happen! Please report this, full details in logs! {nextActionMessage}. Error: {e.Message}",
704  false,
705  cancellationToken);
706 
707  if (disposed)
708  monitorState.NextAction = MonitorAction.Exit;
709  else if (monitorState.NextAction != MonitorAction.Exit)
710  monitorState = await MonitorRestart(cancellationToken).ConfigureAwait(false);
711 
712  await chatTask.ConfigureAwait(false);
713  }
714  }
715  catch (OperationCanceledException)
716  {
717  Logger.LogDebug("Monitor cancelled");
718 
719  if (releaseServers)
720  {
721  Logger.LogTrace("Detaching servers...");
723  }
724  }
725 
727 
728  Logger.LogTrace("Monitor exiting...");
729  }
+
575  {
576  Logger.LogTrace("Entered MonitorLifetimes");
577  using var _ = cancellationToken.Register(() => Logger.LogTrace("Monitor cancellationToken triggered"));
578 
579  // this function is responsible for calling HandlerMonitorWakeup when necessary and manitaining the MonitorState
580  var iteration = 1;
581  try
582  {
583  for (var monitorState = new MonitorState(); monitorState.NextAction != MonitorAction.Exit; ++iteration)
584  try
585  {
586  Logger.LogDebug("Iteration {0} of monitor loop", iteration);
587 
588  // load the activation tasks into local variables
589  var serverTasks = GetMonitoredServerTasks(monitorState);
590  if (serverTasks.Count != 5)
591  throw new InvalidOperationException("Expected 5 monitored server tasks!");
592 
593  var activeServerLifetime = serverTasks[MonitorActivationReason.ActiveServerCrashed];
594  var activeServerReboot = serverTasks[MonitorActivationReason.ActiveServerRebooted];
595  var inactiveServerLifetime = serverTasks[MonitorActivationReason.InactiveServerCrashed];
596  var inactiveServerReboot = serverTasks[MonitorActivationReason.InactiveServerRebooted];
597  var inactiveStartupComplete = serverTasks[MonitorActivationReason.InactiveServerStartupComplete];
598 
599  Task activeLaunchParametersChanged = ActiveParametersUpdated.Task;
600  var newDmbAvailable = DmbFactory.OnNewerDmb;
601 
602  var heartbeatSeconds = ActiveLaunchParameters.HeartbeatSeconds.Value;
603  var heartbeat = heartbeatSeconds == 0
604  ? Extensions.TaskExtensions.InfiniteTask()
605  : Task.Delay(TimeSpan.FromSeconds(heartbeatSeconds));
606 
607  // cancel waiting if requested
608  var cancelTcs = new TaskCompletionSource<object>();
609  using (cancellationToken.Register(() => cancelTcs.SetCanceled()))
610  {
611  var toWaitOn = Task.WhenAny(
612  activeServerLifetime,
613  activeServerReboot,
614  inactiveServerLifetime,
615  inactiveServerReboot,
616  inactiveStartupComplete,
617  heartbeat,
618  newDmbAvailable,
619  cancelTcs.Task,
620  activeLaunchParametersChanged);
621 
622  // wait for something to happen
623  await toWaitOn.ConfigureAwait(false);
624  }
625 
626  cancellationToken.ThrowIfCancellationRequested();
627  Logger.LogTrace("Monitor activated");
628 
629  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
630  {
631  // always run HandleMonitorWakeup from the context of the semaphore lock
632  // multiple things may have happened, handle them one at a time
633  for (var moreActivationsToProcess = true; moreActivationsToProcess && (monitorState.NextAction == MonitorAction.Continue || monitorState.NextAction == MonitorAction.Skip);)
634  {
635  MonitorActivationReason activationReason = default; // this will always be assigned before being used
636 
637  // process the tasks in this order and call HandlerMonitorWakup for each
638  bool CheckActivationReason(ref Task task, MonitorActivationReason testActivationReason)
639  {
640  var taskCompleted = task?.IsCompleted == true;
641  task = null;
642  if (monitorState.NextAction == MonitorAction.Skip)
643  monitorState.NextAction = MonitorAction.Continue;
644  else if (taskCompleted)
645  {
646  activationReason = testActivationReason;
647  return true;
648  }
649 
650  return false;
651  }
652 
653  var anyActivation = CheckActivationReason(ref activeServerLifetime, MonitorActivationReason.ActiveServerCrashed)
654  || CheckActivationReason(ref activeServerReboot, MonitorActivationReason.ActiveServerRebooted)
655  || CheckActivationReason(ref newDmbAvailable, MonitorActivationReason.NewDmbAvailable)
656  || CheckActivationReason(ref inactiveServerLifetime, MonitorActivationReason.InactiveServerCrashed)
657  || CheckActivationReason(ref inactiveServerReboot, MonitorActivationReason.InactiveServerRebooted)
658  || CheckActivationReason(ref inactiveStartupComplete, MonitorActivationReason.InactiveServerStartupComplete)
659  || CheckActivationReason(ref activeLaunchParametersChanged, MonitorActivationReason.ActiveLaunchParametersUpdated)
660  || CheckActivationReason(ref heartbeat, MonitorActivationReason.Heartbeat);
661 
662  if (!anyActivation)
663  moreActivationsToProcess = false;
664  else
665  {
666  Logger.LogTrace("Reason: {0}", activationReason);
667  if (activationReason == MonitorActivationReason.Heartbeat)
668  monitorState.NextAction = await HandleHeartbeat(
669  monitorState.ActiveServer,
670  cancellationToken)
671  .ConfigureAwait(false);
672  else
673  await HandleMonitorWakeup(
674  activationReason,
675  monitorState,
676  cancellationToken)
677  .ConfigureAwait(false);
678  }
679  }
680  }
681 
682  Logger.LogTrace("Next monitor action is to {0}", monitorState.NextAction);
683  if (monitorState.NextAction == MonitorAction.Restart)
684  monitorState = await MonitorRestart(cancellationToken).ConfigureAwait(false);
685  }
686  catch (OperationCanceledException)
687  {
688  throw;
689  }
690  catch (Exception e)
691  {
692  // really, this should NEVER happen
693  Logger.LogError(
694  "Monitor crashed! Iteration: {0}, Monitor State: {1}, Exception: {2}",
695  iteration,
696  JsonConvert.SerializeObject(monitorState),
697  e);
698 
699  var nextActionMessage = monitorState.NextAction != MonitorAction.Exit
700  ? "Restarting"
701  : "Shutting down";
702  var chatTask = Chat.SendWatchdogMessage(
703  $"Monitor crashed, this should NEVER happen! Please report this, full details in logs! {nextActionMessage}. Error: {e.Message}",
704  false,
705  cancellationToken);
706 
707  if (disposed)
708  monitorState.NextAction = MonitorAction.Exit;
709  else if (monitorState.NextAction != MonitorAction.Exit)
710  monitorState = await MonitorRestart(cancellationToken).ConfigureAwait(false);
711 
712  await chatTask.ConfigureAwait(false);
713  }
714  }
715  catch (OperationCanceledException)
716  {
717  Logger.LogDebug("Monitor cancelled");
718 
719  if (releaseServers)
720  {
721  Logger.LogTrace("Detaching servers...");
723  }
724  }
725 
727 
728  Logger.LogTrace("Monitor exiting...");
729  }
SemaphoreSlim Semaphore
The SemaphoreSlim for the WatchdogBase.
Definition: WatchdogBase.cs:63
async Task< MonitorState > MonitorRestart(CancellationToken cancellationToken)
@@ -1398,10 +1398,10 @@ Here is the call graph for this function:

Reimplemented in Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.

-

Definition at line 822 of file WatchdogBase.cs.

+

Definition at line 824 of file WatchdogBase.cs.

References Tgstation.Server.Host.Core.SemaphoreSlimContext.Lock().

-
823  {
824  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
825  {
826  if (!Running)
827  return;
828  var toClear = GetActiveController();
829  if (toClear != null)
830  await toClear.SetRebootState(Session.RebootState.Normal, cancellationToken).ConfigureAwait(false);
831  }
832  }
+
825  {
826  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
827  {
828  if (!Running)
829  return;
830  var toClear = GetActiveController();
831  if (toClear != null)
832  await toClear.SetRebootState(Session.RebootState.Normal, cancellationToken).ConfigureAwait(false);
833  }
834  }
SemaphoreSlim Semaphore
The SemaphoreSlim for the WatchdogBase.
Definition: WatchdogBase.cs:63
abstract ISessionController GetActiveController()
Get the active ISessionController.
static async Task< SemaphoreSlimContext > Lock(SemaphoreSlim semaphore, CancellationToken cancellationToken)
Asyncronously locks a semaphore
@@ -1447,10 +1447,10 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.

-

Definition at line 835 of file WatchdogBase.cs.

+

Definition at line 837 of file WatchdogBase.cs.

References Tgstation.Server.Host.Core.SemaphoreSlimContext.Lock().

-
836  {
837  Logger.LogTrace("Begin Restart. Graceful: {0}", graceful);
838  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
839  {
840  if (!graceful || !Running)
841  {
842  Task chatTask;
843  if (Running)
844  {
845  chatTask = Chat.SendWatchdogMessage("Manual restart triggered...", false, cancellationToken);
846  await TerminateNoLock(false, false, cancellationToken).ConfigureAwait(false);
847  }
848  else
849  chatTask = Task.CompletedTask;
850  await LaunchImplNoLock(true, !Running, null, cancellationToken).ConfigureAwait(false);
851  await chatTask.ConfigureAwait(false);
852  }
853 
854  var toReboot = GetActiveController();
855  if (toReboot != null)
856  {
857  if (!await toReboot.SetRebootState(Session.RebootState.Restart, cancellationToken).ConfigureAwait(false))
858  Logger.LogWarning("Unable to send reboot state change event!");
859  }
860  }
861  }
+
838  {
839  Logger.LogTrace("Begin Restart. Graceful: {0}", graceful);
840  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
841  {
842  if (!graceful || !Running)
843  {
844  Task chatTask;
845  if (Running)
846  {
847  chatTask = Chat.SendWatchdogMessage("Manual restart triggered...", false, cancellationToken);
848  await TerminateNoLock(false, false, cancellationToken).ConfigureAwait(false);
849  }
850  else
851  chatTask = Task.CompletedTask;
852  await LaunchImplNoLock(true, !Running, null, cancellationToken).ConfigureAwait(false);
853  await chatTask.ConfigureAwait(false);
854  }
855 
856  var toReboot = GetActiveController();
857  if (toReboot != null)
858  {
859  if (!await toReboot.SetRebootState(Session.RebootState.Restart, cancellationToken).ConfigureAwait(false))
860  Logger.LogWarning("Unable to send reboot state change event!");
861  }
862  }
863  }
SemaphoreSlim Semaphore
The SemaphoreSlim for the WatchdogBase.
Definition: WatchdogBase.cs:63
async Task TerminateNoLock(bool graceful, bool announce, CancellationToken cancellationToken)
Implementation of Terminate(bool, CancellationToken). Does not lock Semaphore
IChatManager Chat
The IChatManager for the WatchdogBase
Definition: WatchdogBase.cs:73
@@ -1489,10 +1489,10 @@ Here is the call graph for this function:

-

Definition at line 864 of file WatchdogBase.cs.

+

Definition at line 866 of file WatchdogBase.cs.

References Tgstation.Server.Host.Components.Instance.Instance(), and Tgstation.Server.Host.Core.SemaphoreSlimContext.Lock().

-
865  {
866  var reattachInfo = await reattachInfoHandler.Load(cancellationToken).ConfigureAwait(false);
867  if (!autoStart && reattachInfo == null)
868  return;
869 
870  long? adminUserId = null;
871 
873  async db => adminUserId = await db
874  .Users
875  .AsQueryable()
876  .Where(x => x.CanonicalName == Models.User.CanonicalizeName(Api.Models.User.AdminName))
877  .Select(x => x.Id)
878  .FirstAsync(cancellationToken)
879  .ConfigureAwait(false))
880  .ConfigureAwait(false);
881  var job = new Models.Job
882  {
883  StartedBy = new Models.User
884  {
885  Id = adminUserId.Value
886  },
887  Instance = new Models.Instance
888  {
889  Id = instance.Id
890  },
891  Description = $"Instance startup watchdog {(reattachInfo != null ? "reattach" : "launch")}",
892  CancelRight = (ulong)DreamDaemonRights.Shutdown,
893  CancelRightsType = RightsType.DreamDaemon
894  };
895  await jobManager.RegisterOperation(job, async (j, databaseContextFactory, progressFunction, ct) =>
896  {
897  using (await SemaphoreSlimContext.Lock(Semaphore, ct).ConfigureAwait(false))
898  await LaunchImplNoLock(true, true, reattachInfo, ct).ConfigureAwait(false);
899  }, cancellationToken).ConfigureAwait(false);
900  }
readonly bool autoStart
If the WatchdogBase should LaunchImplNoLock(bool, bool, DualReattachInformation, CancellationToken) i...
+
867  {
868  var reattachInfo = await reattachInfoHandler.Load(cancellationToken).ConfigureAwait(false);
869  if (!autoStart && reattachInfo == null)
870  return;
871 
872  long? adminUserId = null;
873 
875  async db => adminUserId = await db
876  .Users
877  .AsQueryable()
878  .Where(x => x.CanonicalName == Models.User.CanonicalizeName(Api.Models.User.AdminName))
879  .Select(x => x.Id)
880  .FirstAsync(cancellationToken)
881  .ConfigureAwait(false))
882  .ConfigureAwait(false);
883  var job = new Models.Job
884  {
885  StartedBy = new Models.User
886  {
887  Id = adminUserId.Value
888  },
889  Instance = new Models.Instance
890  {
891  Id = instance.Id
892  },
893  Description = $"Instance startup watchdog {(reattachInfo != null ? "reattach" : "launch")}",
894  CancelRight = (ulong)DreamDaemonRights.Shutdown,
895  CancelRightsType = RightsType.DreamDaemon
896  };
897  await jobManager.RegisterOperation(job, async (j, databaseContextFactory, progressFunction, ct) =>
898  {
899  using (await SemaphoreSlimContext.Lock(Semaphore, ct).ConfigureAwait(false))
900  await LaunchImplNoLock(true, true, reattachInfo, ct).ConfigureAwait(false);
901  }, cancellationToken).ConfigureAwait(false);
902  }
readonly bool autoStart
If the WatchdogBase should LaunchImplNoLock(bool, bool, DualReattachInformation, CancellationToken) i...
RightsType
The type of rights a model uses
Definition: RightsType.cs:6
SemaphoreSlim Semaphore
The SemaphoreSlim for the WatchdogBase.
Definition: WatchdogBase.cs:63
readonly IJobManager jobManager
The IJobManager for the WatchdogBase.
@@ -1567,13 +1567,12 @@ Here is the call graph for this function:

-

Definition at line 903 of file WatchdogBase.cs.

-
904  {
905  if (releaseServers)
906  {
907  await StopMonitor().ConfigureAwait(false);
908  if (releasedReattachInformation != null)
909  await reattachInfoHandler.Save(releasedReattachInformation, cancellationToken).ConfigureAwait(false);
910  }
911 
912  await TerminateNoLock(false, !releaseServers, cancellationToken).ConfigureAwait(false);
913  }
Task Save(DualReattachInformation reattachInformation, CancellationToken cancellationToken)
Save some reattachInformation
+

Definition at line 905 of file WatchdogBase.cs.

+
906  {
907  await TerminateNoLock(false, !releaseServers, cancellationToken).ConfigureAwait(false);
908  if (releasedReattachInformation != null)
909  await reattachInfoHandler.Save(releasedReattachInformation, cancellationToken).ConfigureAwait(false);
910  }
Task Save(DualReattachInformation reattachInformation, CancellationToken cancellationToken)
Save some reattachInformation
async Task TerminateNoLock(bool graceful, bool announce, CancellationToken cancellationToken)
Implementation of Terminate(bool, CancellationToken). Does not lock Semaphore
readonly IReattachInfoHandler reattachInfoHandler
The IReattachInfoHandler for the WatchdogBase
Definition: WatchdogBase.cs:98
bool releaseServers
If the servers should be released instead of shutdown
DualReattachInformation releasedReattachInformation
Used when detaching servers.
-
async Task< bool > StopMonitor()
Stops MonitorLifetimes(CancellationToken). Doesn&#39;t kill the servers
@@ -1636,10 +1635,10 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Watchdog.IWatchdog.

-

Definition at line 916 of file WatchdogBase.cs.

+

Definition at line 913 of file WatchdogBase.cs.

References Tgstation.Server.Host.Core.SemaphoreSlimContext.Lock().

-
917  {
918  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
919  await TerminateNoLock(graceful, !releaseServers, cancellationToken).ConfigureAwait(false);
920  }
SemaphoreSlim Semaphore
The SemaphoreSlim for the WatchdogBase.
Definition: WatchdogBase.cs:63
+
914  {
915  using (await SemaphoreSlimContext.Lock(Semaphore, cancellationToken).ConfigureAwait(false))
916  await TerminateNoLock(graceful, !releaseServers, cancellationToken).ConfigureAwait(false);
917  }
SemaphoreSlim Semaphore
The SemaphoreSlim for the WatchdogBase.
Definition: WatchdogBase.cs:63
async Task TerminateNoLock(bool graceful, bool announce, CancellationToken cancellationToken)
Implementation of Terminate(bool, CancellationToken). Does not lock Semaphore
bool releaseServers
If the servers should be released instead of shutdown
static async Task< SemaphoreSlimContext > Lock(SemaphoreSlim semaphore, CancellationToken cancellationToken)
Asyncronously locks a semaphore
@@ -1709,7 +1708,7 @@ Here is the call graph for this function:

Definition at line 241 of file WatchdogBase.cs.

242  {
243  if (!Running)
244  return;
245  if (!graceful)
246  {
247  var eventTask = HandleEvent(releaseServers ? EventType.WatchdogDetach : EventType.WatchdogShutdown, null, cancellationToken);
248 
249  var chatTask = announce ? Chat.SendWatchdogMessage("Shutting down...", false, cancellationToken) : Task.CompletedTask;
250 
251  await eventTask.ConfigureAwait(false);
252 
253  await StopMonitor().ConfigureAwait(false);
254 
256 
257  LastLaunchParameters = null;
258 
259  await chatTask.ConfigureAwait(false);
260  return;
261  }
262 
263  // merely set the reboot state
264  var toKill = GetActiveController();
265  if (toKill != null)
266  {
267  await toKill.SetRebootState(Session.RebootState.Shutdown, cancellationToken).ConfigureAwait(false);
268  Logger.LogTrace("Graceful termination requested");
269  }
270  else
271  Logger.LogTrace("Could not gracefully terminate as there is no active controller!");
272  }
EventType
Types of events. Mirror in tgs.dm
Definition: EventType.cs:6
-
async Task HandleEvent(EventType eventType, IEnumerable< string > parameters, CancellationToken cancellationToken)
Handle a given eventType
+
async Task HandleEvent(EventType eventType, IEnumerable< string > parameters, CancellationToken cancellationToken)
Handle a given eventType
IChatManager Chat
The IChatManager for the WatchdogBase
Definition: WatchdogBase.cs:73
Task SendWatchdogMessage(string message, bool adminOnly, CancellationToken cancellationToken)
Send a chat message to configured watchdog channels
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base_a390fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.map b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base_a390fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.map index 6d13a28d8a..2cdbf34807 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base_a390fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.map +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base_a390fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.map @@ -1,4 +1,4 @@ - - + + diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base_a390fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.md5 b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base_a390fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.md5 index 3e0a3d1ba0..0344abf021 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base_a390fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.md5 +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base_a390fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.md5 @@ -1 +1 @@ -bd31b34d39a2f964791c71ba526c7ea5 \ No newline at end of file +2a5d7e5e616464ee3674cd974a5b6830 \ No newline at end of file diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base_a390fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.png b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base_a390fcde5ed6ed30d6e5b5b2ebc8273dc_cgraph.png index 3d2a7edc7a48f328ef085874a12a0ba796af3afb..58bcdf546d14289f2b25d3e23f0970fd0884797b 100644 GIT binary patch literal 12164 zcma)i1yohR*Y8CXQ9wXxr8@*^l$4MV3|hK71Sx4zkP<|MOP7Fvq;xk(iFCJgcf;G) z|M#u+)~of7E-uJ%&YYP&`xko$ym%&!bCc{Q0)fDhm623LAg+9X@84ryfv>U8;{)IW z!{Dj3B;peFC#m{-I08Y1kd=I_>=L&=@mBqg+Sr4w8&p?6(_fWo2=O=5UU5wxEJ>;w zoPQgkAjW2sgLTE&E=@JzW(FZ4o7AFDzr_OKRD*TRn_$HD2bE7=No5B|aQZN-n(j$wkTc~eHR`j?q;8Pi! z!4N*gn*ZxZd5Hlu_}97P-Nl)inTd&stXo&Tsin2GJ-QQw`S|!;Zp4wIKaiZLcH`&e zRT+4RctDVro<3RahE%^|+Je9~U+hj)bHqeoKV&0%ntt_nFpP#EeBVX_A1^qg{-+=P zh>mgD2y+l$Z@~=2ym*=x-&0SXQ)8m$Lr)Z~!_ymNA=jqgH$HxkfL;Nv$KYOOz`wzz3@@m zX4coWb#=YgM~l+o>VzT90zlz{<5l)Iy|GfwF3&ytdoPoKI93|l|fb~^`r z?|+^svcI?Y*S;JB17l-j1I9=l*zyet3HkgPPb9H>aaTfI{L!OFTQ>s&0$@EyM@P9$ zI+>W5K8NletdGGv6_%C`_4o5|a&GVJwEzCyqAHu#yR>Acsi{dz`)%NdT4{0dOjk>D z^D7OFpXzLP?u56rJgF-7^TVJB9U2}Uo-47i_-UIXdcJq(W8;mRH)rk3mzS4a9tJfB z1_aD(yJ)fVKX{N|Sg4eK%2i@D^3!=!=WHJKuheEjPKZ6#aA0JF6c5jvoMSfgp^EhD zo$CZu)DK9}5d=i!sV|{KCQl1X1e1>q@6}7B;rdwtrVg#~4IU4GV0hpkQTguFb{S@#;_>GPJL) z%^bGKd1Kt%))x87acjDMZEY<(JNwI*+X0fd@$ui~RXDB=QhJ@eOUd~DeX-}8^!Cm- z>Clst6MKO;iqZ(tLt*!$*Lr$XK2&%4tOOjE@azUY-Q~A`^JaHvCjmCgw40(At@W*o zOO^ZaPU)1V1Rfnsp{8bXVxqdWV6@upuR~}m}t_p!ecaqgrbH9 z*{(ApI)?U1u*=yIXNi`&x_@4AQBiPcC!14x ztiNBGK&m@laB+3@$Dfiig;>6}xNFvvRislNWHV|fgxz>}cxp~oSflM3Ok0LOuHJN%T=4d(2~P~3;Wk8gH$<{)lMxZA zs-P}HBBCd3UVBSnk~EL;uGR*$4G$k}&$YV5mz3~%cz9@QYbU=bb6VG^(n=>Q=$f9M z4*Yk)H)&6i2P71phvDJjeUNIUXkZ9tR@Si+>#^)th50HM7Z;X;*>BH|>`YBfA&Npn zam|(9EdI7OHArWyuN|g;K7$w4@<>ejd=?RNs>mD3*TItUmrj)?+`QYcL`tS1d z^JCX62~HO*vmPsvrMo?wqe+rgu(QA4e0clzZJ(jd0@~E;UwP>MsAZj00y=1TJmj{q zwbiY3y8p3}lb82XaPU1oD-u=Djq!)quV3ej6*lip&CX`a-l}_t4uiX34drUTdHtG% z&nhY+LdD%(NQYesN7u~O78f$lwu=x22NM%!?RemeMAEsA=;&x08=HH#K6aUmjgDem zz1lxCWcZ_^vT|;2PCAq#CoPTF^X#Yt$q~*MlwxLY|1%~=sJxZ$K#YDV_++FN;b8|a9C#T}z=pGn=6Rgbq5{GxV`K^jH+9V%QP()D!Q>|3FPmP30qcU0r(e3cwlq7fAd?=6#O@1&KLy?vaz{th`2$ z45Pwz@5yV_m7n#EWNVs?w+=N_9Rg9hd5i6J6~VP|PWbOh2B@^Uw6`d^r*3cqP76Bv zd)aUX*r=S65+}@-Ki@9iBm^?f{@p!hRn4wTI7!+0tW18zr_Kl)LGtGXL4;fygdpRy zI9TmO0lQgvuaA1z=$Hq^qo;?PrKP1_2P39gx4ze+aIg;3yj}db|08xEmLk0vokIRF zt+w_AJkH~Me<;y?r!9nBQ07pEkYs@3729AKt@M*%l4RHqoAI*Ci^E!GX6A2CJ~do{ z6lHK5U1g5vTa(du4_VfLZ_5G&WSp7w=5rA2`1tsPgM;^OEkbY{`R#>8#l|wy(HR*T z{gDBdF) z;QFn5QQW4_AWKO|G`3QD-6JCMQ`4++u`@QN_prRfApfhq-Szy$QAtTjPjC8rqNiL1 zah7=U3x84ZS0@=!#tnUn02w;K)4edf zP(8{}g084LryX0@A$7T5o*zOEV47|l%m5j_ zf{#>I!|&hE&PL+6+){4_n}os!x_rQ{M7-DWI1aP%vT7SPt1Y>o2^ zfB@yc>qJIINwHnckjqSXA!rSjK1zfE`2jX~3#lXDBHvD$PMm7-Ngo~rOTmPPiQ3bs z6lU_}|2#u@fj!kL(@aCQw@0aHPTpsk)4r+$C{ah`eYfKsdJnoL+Tm8(=GUF17l=d7 z^3*dU>_iCC6UhbIC#ef)o(BNRYi9nVI3~oj~JQ!Imrvh@-GOWy@EG5iJ>1$K9wK+LC+1XYT z6^_Csh4%C9Nl8h)y}d0hEr0&JpnuX^X`!6aQspdK*Z!P6bE%CNq4)a5ps@u!@MaqE zS1;KJy)bpk<3--*L_xgnM_bNQ9?r0MG-3W0#LDkDM`*jAoYu{(v)VJzBI`ds)Mgvp!b(TtdQds>Y-JW@tu9No4EXOlZ^-yr!-$99^QI zW(b7h;$o(mg>`;>zcZywPFR)8lc8Dw#RCQ>Im*UAXz(08JlBJ@Xuz$`Xl_a&mp{F| zUp{~S91}CTItcg-sbh9__V%4SX^NS*=bECTqB^5E=h`D!hdTf-Sk-c;1Mt|jD|p^4 z$gdrf*peRP!~!3e2XfXNNN6kSos16rzm95e9;u6Q?V9y?Sr5ei)2AIhJ@}&B>9Q9R z5oSwp*k@l0JbwHbxU8@+IR{XGPEJlCiqMXEAl*(*PQ6G&k)vt!SzQbup(Z9KfI8ow z#W%=#p04v}DxZwm*6MR8DJrVwY6ajaVpCtr^L%)bDw86+AsPHJ{S`K{W1{NqF6*jy|4`jQ`Ka4NP+|0~BAb?cVQ^<$vIxa=$@87@M+gX^I z!(`|nbMI-V2fizcWALjFZ7UQ9bdxfeRp2hfWBu{z%47fNS4(c2>o;+0w;FK|Sy}HI zTX4Bw8A7BbCsQX@izUeKQ1)7h($mv3FfgcFuCK4dXIfg?5rfM?s*leVg9ExOdnbo26H%vOE0exlMDxJHLn$S+|dxt_nz zxMGze=B{2rJ7_YANqv%vny0?id%`QPVi6?co@d+dqF-f*;rUz^{v0*4p8?u^sEA&bK!(eaBJ=Rhhn)*uvD=T7N5Yp1S+r~1N9ya7 zfBdjq?oHd?-d3M^e;t?MS=?|>52wwz0D)9%Fexoj5c$1(6hbakg%4FSxHwLu#&5VW zN5};Q1(|lm>^I_yCKbtkk~x$jL~k6%U_EYAe=m@2P;hjzzv}T^;|hYRd2ttH(m8(x z*1I~y`QpP*k~>4T4iXZYuC6++uAa`N%F@z(y^5Mjh5RF)7#|+KSx8Mw!{>NB2g#O( zhK60MOixem&-i%fyuJA-eo!+U8#Y$f!h(W&x%T#UpdSz|BUXGqRIu=yRlB!J#5xls zRYG1Bne_m;H#9b0ZeCt+(9>UIjT5k=@u31t2UUvcBk<@E107xdh*fr+|BQ5&x;-Ns zwgG(M2oDLlwbNZCpV|dF6J!#%>2J8VqO45))vL7c-{-zPmK-(CBFSj~IQ_lZi~4sb zK&Y~#00P^DjEv0ogkz(j;pVJ4XLGIIJF2D@hTtxW!FgJeQTNUxBD6?nvMPh3M~( z>8_b&UxmL$kqf#XUo#{qXwJTT%HxncFa=%>PH!u_R)>|1fx*sF5ACsiG;*xe*4fVP z?e=UlfW1j~!g({XuHO7+_2DEOB;9IP6%CCFvmP41E>~Aqh+o+1Kh4eaATq&tc>DJ4 z@LZR9g*+j;O1V7tdqQz9lktH8U#eeSvHVk`Zg&t8(oRkXFi=FV@|#`DpMIS5~rT8jD5F_s|XJ{32KlBW^zzH3AM75#c+*vVXE~ z$(DG#WCetTzP`SWj?R^LdVT2%dyLc{Z;^lLZd=;iq$DKt^%#Jo^e~+9d87=Th=>T_ z$wQrwS@*t!oVK;)*!4&@?ufJ=`PtmocH{A9T+y@qZ{G|@ej4wL*?`7a=!{lSP+(gB z^i0=%yE*c{X8N=EKq`MEatM-6!A?_C6R+jq+DPHY);a5m3c^b{LXSd_BR6nyYn?X} zfOl6`y1jZelJW9eN=nL7C2CO~Hs<1pT>cvUU~KoUjl`QDEjF06rn#upSyhF1pub32 zjenq@XQ-b?O@%i=vP(s!%h54sV!~^}-_jt()FR8)#N^lF-7S}sg@t<*&%Gup!gF#A zqA?0=gQB9Au3hbXRbo|9Qo>+ly&^~yB(zPg@~{Wk9B8r8O64ZKr10+1)W=G95nE4q z`D=4C&EFpX1Xt>KzJqACZKDI3GhBI`ufOu-Nrg}XTIhFCr|e^&Yj@-o_K)4sm6SZN zutIWkBi#$HyhF3&QdKfcW->4_DYJ?1+nML)<((j`P9^uST#4Vn+Ovd#ub^;J9EK;(cjgHQ9by(y{90*M=%kT zMt``hgzrN|MrNU{olz}p+vqp4v7yvIFjIcz+^3?V0yG7P=>Gm`fA3nL`gLQC2Il_F zU+m^OwY4T^b}wUW0IiFQc_Ye*-@K7nGn`{q%9fB2J()(oPS1DCKOq!{)#$U`esMz!Sf7ELIgq5mQipm;jKTV%|P*YT&e)&wvNx#@^rwl z*#d26>&4|M$il)RE-nuF?g~2k!+X!{?CdNoR=g9yG}L>cIBIMWAPH3C_3nZK4h{|n zM_y_womJNFt}X?6d4ik1_inXzciRHzA1>!T5LHD{pob5Sffs^_sgy21QfBuJP}iN; z{RAmPCo3!a>eVYupHAR5Km{B9a2i=a>A_DW1qF6s3C8kS|12(!2;k=6*o1@u8-wXX zLPqxJ;X{4hWeL2iQa#`l>DGEy=j2!qX1_}GI3PXvKyGTfh;x@utL$}hNy%Vc-E`$< zO<&*XYC;U?qWKPF;v+|kqpg{}vB7}>eKhWS^1ZjXNaa($ekE{rc0SuU<}_@Xo_do; z+6aWIsHkXkR09huC_g_R@;fA7@T}}%W}2lo#Xo;GWaVgLQVKtm+yz8tM~hol%ULw5q`3UyI}b>G6>{S3UP z&$UxeY$vM%o>QRY9%wlZc!`U%w}ysufBzcwT9m=tih5lLL1txU&MYe00}MaPay#50 z7joGGbq2O+@F)7WN%c(ucfdZ<1t+R=?$a@VI;Ds^$=$ndkaBW!bMG)doBnZew%biB z9WsvMSh%89uKO%H7m1f=Km(+nKhJBmj_z*aAvfZRk}NMTf3wi}(u^3>=L|*y`qNqg z21$vo*Euf(!vZ`O3~mNHnK$ zFLydPz!jXfFIVS!TBW6}T@4c|DChwPb9bRDb&NvP)4exURs&F=q9PIOKj0zDhmLbC zpOTWO?x3!4&+Y2@qG171^e zVk2x5D=JQWu3`Dp%f$wlYuPwD@*cc1fUi0Lc_>UwSpsVq|IVHF!WfbJ-BtI(!ot8g ziQ+W$160)1yn8The{8{Z3YPs7ywsmRdxwY1h|vnw+3wzrt*a9|qZWX-0U_Zol32u5 zv$nh({pHK-+L}8=6?pf)CC2_)sCk?1{B48Wk=k9deo8VM3!cziEbAy+S6SGXWwvE+ zgx|1LNo8ea);B2h_}}JG>W=1K1jfJr?*a^O=m69NBllp4|KgbitUtlc?MGl9NK1n+ z79^Q+etI}J&o$tGda@8}YXSM!(z5n=;cix_RKQmFZ^#T_<$^GS;9Xf+fukEjDN3PP z?6N%z{}Ic#0sg(WSMm6JqalF$D42rFz4XAe!SeDgp+7eu*+r$CSslZZPlsV1$AJ_nj8X zIxP4d_O14~U|}G#LPB4Msg_E?1wVz{2cntJW!0c9%1 zy~si!GU5!v?UaN)>@CoLPduWLElr7U1z&5XwJ!U7u(xfCk@X(Ks zk1>7v2L`|hhI&D~zDN@|@8BeWT@^3v7U>cZ!P7Gd8kUuX0#ksU068ZWcI8nOC*u zJEZQz2cgd97d@`j7au;?;UkjRs*e-40gewgCSY};eDet6Zg5Z)_*PgL9K3fAet%Tg z)U>p*Vb^^YBaoMy8xj?Tnk)d@pe?oqnn~Av$4}4OCWk>7ux#6?$YflJ}C}gke>mC2UJmdVGzG6SA9? zy!sf#ebkpPT(*-!R)mf2{y+eNLPO!b0RHIHwdm$&XT{}*KO&X>MVJ5CuH}97QsOem zK1D@50B9%qvPw9;sT@XMK7`#=!B);dttiJARBUCTVoN3hmK8xT(9x<7dYO)%UcYY` zxFBno%vNv-1h=c3TWMd)JzE3<_dco@ptKYmkDz7)QBl#82@j|}-?(uD4vwmt+Tp=L zi)~7>+^}>+x80w;D~W7SU2XxJ(-b%LW-QMDRrsDSYG+?Gi}_~7D$nfG+(_?y`Azmw z=6~<4EuF7HEtkN~!&@Obdl{F`g&g?eH=!9I;_<0KXMI?=-Rr#+>GRsyb5U_bop*X? zw!(S)^shw$0oR^y7gJpql+*}4vAbu;Otd9NFtTWAogE$gKjJ8Dp(Nv7A$ zZ8^Z(gH_MUwIK@7U}3%c=8dn4ih{wm?!%^{VqQ=>Z-qcWeeUL;-o@$cdYGPmVq${P z(&DCsKq)Mvyre{h<$Se}4jr9*)||&l)%u?d&G^n3``0jOX=6j@r%@Z! z=2XZrNp4qFRppza@A1RnNv>804=gQni+S4&>*&91`1z^Pyu>wY(`2npeBuAv^grn{q9i1&@642JK-l9H1j z%d2A{UeNRw(Rk?VB^l}^%}tB#T-^)_$&HCIu~Kchh(Hc4&Q~AJBO?O?TQ+Q%C$9`l z7%6+9Jy6z}^iEj64p?2W7GY9AgtAMD0vrtu;sz0}!=gz5>ZuAxsO(GXjFJ>v=t zL{BX&Vk|9Ueq_bu`+_-}k`mL|*;-tDUt8Nt`-G3Hci#Tv9EaVoq>fVG**p?CH_N4( z=jqi&#>hY&rZcYU5Mm^d)2^)4E@3isG`jN#ns`|GxJ^b=fMz5M*PX;T~*HKJnOO4ZfXP}IoP zt~9Z>o){l@hkTZikx?p2T1yUXJD`t7tKPoR(z+Mg>IV9=#^Y3vYXjfi9v$)G3NJ4a zI3ji_1LNg$syVJ+lU3WoHVp;^I@Pz4$W>k*vqPKjV1R*s(PBq-FSa%{O*8%h1On>` zL@lW0hfZrGJBQ`GLCp=TLLMjmeSP5_^JF9>WtEjf0|Q~Ijl|II0Vj|G7=;#3C>G84kR84he<}w&%5buJh7Y~e&pvCl|dK$@g0}~UL zor!~kpPwJfFN`^UW5t$gVBXBO~j6R7(e8%KQoDns`L<#i4KQNB2u!zGXs78VYr5Dr9A3cEu69N9RtSC*s9 zaw?04ll9L{fbJ+jQI;aCXm9fq-Y7VYNmjZZj$OU>-^B0?Oo$B3Ng41ysH=Yf21doQ z(%vmf%)?hQ!;55l1qtuAUsrpT@h1|_S!iS!w%6CEt{Lp@a{rPz^8peKtyEF0c;7p9~U@77FOjsISQJZu|?-V2dhpuDy{h3pcMwZ6blQB2Gvg# z!W9`An3}nnnFS>!EwLUKXAeuxjw%uKB<#qHPRoq3W*fU5BOeFlUGrBHEn z4wt{dHQ5x+`Gh4xr`k25d(n`iAhz~3tR8sz*?D=JD=S%fd99@pnJs@iqZq^$A*R7P z82rj)0F@(}nH;kgC^e#+;Hfu4e- zjnIyVn4f#?&>D^$YOD*YKYlDaZqV45bupSuH9qUS3@V z3V74Eq1bY079~Tip+chu6)k1utJkk9d9cZSn40?g_pbw(Lr^#hlL2oEJQ+UAK{l(1 z+Sai61VdhCZ3z zj)&$Gy~2@j1_hW$!%f_K0(wy8Dt)~^%6t9#N4N>rt+}-oC8)Q2VF<8tC_-E3wtakj zwmNb!_oF#$;($#rEVRtL2Hg&3o|u@Jhlg-UR%NB2h=}LjQV$qHbFHCJc;hlJWC~

4RPO%GAJiM6cp?@gjx;5hz;!(nEYk(v1rO0HPM>`Xkc7bz<~;wS6T+umor z6bQXPTRS`Ac&VGr1khy$9@NvPPb2UNNQ%Dh@1{GvjwVAq@b>-R8cxJG>hF|6MK0?9 z&~LItkE#lztN(Yu2_h+PnhPa0r`M zR09%(-p+#BCnQW;N&331;DFa*A^^r6)EM=;v1Jt$ROE`pj+M`)Okpcqwy3c|V7S;{ zBL(jZ6eRRO-n)gel%P+ep&kF~L-(V6DAA{#zRDlL3Clk6%ptF+PD`WwH z2PPLB9K5%`4_F5d$#&P_#soCZSr{1+;Nku0>3N5wd}!YUHiRXks3;{XaZoep(&0Pz zecr#{{%AsrdHe2NOMU%!!s1_8G-7Vi*gs#_8|H-*1nIt)&pah!Gyd%B=EljIBTbrt9CQo;UB0ee|r0h8j6yNt>tv zQu+kA&dJI3LqpE>KG%@!+H&A<{`he^b$PDqo3I>#l<<9nbZ@J{tkpHR^Z<@)`kT?rk5aU0q!K#Kw(PS$wb zWi9ymlg4Cxbz?&{<1sLPLRM7*Vq(K`f`Hh$=M~_F^YZh5w{7k0#Lm;z(vr`9US(R= zYBn!8Yzg5g`}C<2kA@;wsj$-iELf%>1e>5RhDS`S2KQE2hh`WQ78Ny((V==wp#%d6 z|NW27$=!ePE;dz&radfE&Vj^SQ=aYw_67qQ-!3nM)nL}4pMS* zy1*iX{s`Dv(74dZ+aPk8-c~9T$Wju)ss@b>uu%~B5JR*3_u1HNpacP}ezS`w=-p$2 zH?AWP53xD!9tdMm4?NA%3j8(Ytn}tzr`zm#OX~U_rzn-e^{`2u^e3lrU3gy1;i%|< zwmDJPJ*FCKE2}l|Xa53(`k#H3B-8|NZ86cyMqj^v=Cy&Lp>a%BZY~A4iM){!o!pNp zope8fK-jXCQs(u1TN)5hNk-=fi#Vv&M<7`KHJ1EWs~X})*%O>e2Gn}|Us}4M!y88h zW>2yLy;RVCbqyuWK0uvUT|*=5(aqbaG^E_t&@kKJi#7a>1mS{Z(ixS!f+tf)YXW0J gpLqBGYw&{0>l&jLPJ`Gu)~LH>rJhOVitG9O4<$YP#{d8T literal 14020 zcmc(GbyQVtx9>I(M8cp`P!SO6lu`jHkr0rsEz+TMqjaNyl%#-kNVlSFl$7ogM7lfg zT)f{o_tYKZ-oGxduR3tE*ILi>%sGFx0~DS};^R`_qEIM&X(@3f6zXga{M`=c0{m`L znCS<9TriN86i1yP|0UOcia?>Rqolw8g;GfFt_FN{2~gzB}|sDUG3|0iS*&ePFs7%U_05d zu`wwbnfXQbDylJc!(fg+)+Y(~e1u)LZSBe6pX*PK1^e=~hX?g-rE7}e0=e3T&!5}c z;{@9Yl9Q9;5E8DykKR1}QRI$D*i^}pn^22x3{pA0uRg;ygQ(M6v{SE9gDYS*!=-K} zP@hE;3ZLHS0@2j~@s(#TJ)<;+{+Vq>vrpC41K<{azm=qUotJm_Lqft83W~swl4160 z@fL>0TEk}gR;I$ytlACU7q4B9Zqc`}2>I%TJ(W{XXBthW*57b?<%Bo>-fY?hw6>Fz zlM2jH{I;`~nVFfb_tp)?B_#9*KN}`cYeer1Th-Iuym?+;^oYAXLC`Ndn>j5bW8KZ2 zR^jws`)>92_UgBP5D0Jiv%0$aC0iv&yxLMSjHWU9ftMZ{ea^$f!+flU{ELUfOo@Yu z$I;fa#~=8wysD%M4Gkp|br&MS_4&%#R$q{lBj)NV1YZ-AldpGo9ea9v1J*4^Dy|$K z9~TxCeJ#}g79Jm;Q|@v5$%ikulU&~F2kK%+UV#)NkF_Zxg5r4}6-6XV~|@Njy1 zdSY>~`0f}@5~m^Vn9GW=va<5T_ke4=YfZFgk{h2`L`3VllXrG@GBPtaY%TOp{`unr zJ4eCNJt9f#=6#8jbz*a_o8N7pyFE!X>`zN{&^ndCtMh|{g9?m9WLz)sUUVepm3z?9 z(ZvYZFg!^V3W$rNNN{==5%D%5AtX1KMXT}^mT4(P5GfnU9|8A6e)s*k+n28}Jo(@+ z7tb5e#b+_(oteq_<2h&XyqURq4`nq62GcxJ*=@f$t0?~HQ5n;PWJ6s!a@xL&{%{1% zuw8bR)BBFqJ5^ZO*~8b@*S-5mS+y?z*;rdkiHszwazCn)-ZII_&An-5W#wfUM|%km zFAbgor@-dbt4#SMk<^;T#>NJ-C>aS}Ufv7Cx+TU}gpYTpZbr#4!5hwWB*_yK6F*Fx zn9!@ToqM-hm6qmxcz7sop;K)y=a>*3Em>Drm!_H%;4hV@8c|;_N=!mhmMx+^r9a!! zQ)Id@qOPv4C?^;4RVbr1+Fmy#L|)RgrK95`S%rN@KP%bNbMb#-ts*jBz}c z%ZQPiJ97G!02UTj=j1m({Jx!y4$7_7 zW!J!fRApr)x5W^*^I9XR&lEh(T@r5+5|Y$?N=ixzyAX0N-|fXgF>&!~hn0-X%uL>1 zBU6u7@;f$vpTt*J3u;%sYSg27IwM6>!;;~kpdc|t z#Vdh~X=!>(L#0qr z54E+ak!Bol?RFfM7i&f^;kZlrHQS*KR_N{6GA_Co6rMg6<1%W$8TG`Thc0*lY@Z>+6Pwh8IoD`f}-R-@dI_>qkJH>VCAZ7)B%fqrX2|Nl8h3 zuBw^)q%I@F7n;M*(b0sF(NQK|Ue!(B;(QTfTC?N*+0Ku!5|21zgVU6lu+E=Xu(jo8 zijtuVd-M^h8(abc1~W4=3U)n|+eRDTh2fj@GV=1bFI~EH@71*btfSd{Hy@4fIyohB ze4Y)%il-G8vcG!uDm78qrEB7=m&tgY8$(la4jTs3G(c8@rF$XynXmUOU1bV2JSsud z+qbWw`w~>k&+l#gg<&xC`xOd9bDsKWqdR12ss)*BcIp=|USwoqdZ4dQH`AUF^y}BJ zc7gy7`y_QcdlU?v7!l~SWI~SYuooPbBm6fR80_t(f{PA<|2Z4E6&3v78yoFl>J>ft z9({%#hS!Vv>?E9(?3coLj*Ef>r<1J+`!ZYNfY+PTAG#-JXn2c+Rm)$J#_4=nS(&xH z{Uc*z#!wpJp}`b8ftgSh7uW2=u5{TLcKx$Zqq%u`9FD7cu3Np&Eb_~xUDz_^vcgE$ zMhQ>f+AeN&)tWI%hU%Uz4s?+U*FDbE)YL-r!O!gkc`cRW=&k=etZoY#>vbdwQ+Lsz zo$cl=bYSiZvuoHqwSfxG&dg+wk^I>C>$73YkMZ%O=bYqnNg@f$Bb7JO&Lww<90Z>| zdp6UkBeAF6!()Hak9HQi#wVCL?_|=sZD$plTUxF)Yt^~NGCYpC-`?InJuz`#UteEY zRh1#z=1+6f^vuj7_%;zWwVa)uUFs%2C2x3AQj&tllP96!I+~iYFJHcFz@MA?{X4U) zOjTKgi7B9_wpN<{ZA_2+Qw*-N<-~X#2NY83_wV9fOR-(@Zd2#)Z}xuw#owAJ9A9QR z${eWQ^8PNj%eHy#7CFTYn}d(4IVPQ{64MI{vQM5oDRJI1P1s5laf_>|sbLfl7@XMU zX(Gh>b;rvA!5;z2&-#D2u$}nmx>pi}WE6=F<6gY@wKbOO<@&UAPfyQmYs7~S!HbLL z&kYSHo1^Y1q=@;gjyjA_!UXjX3~V?#>^PbD^7`EF_OMlo0^@3zESo;G z#fQiL z>-|lW4;+z*8j9f{0XBK4NY?2zX)TVVXHf`i1Ygh$35rG%+98WIAnpuPbwe3 z_7{(4A*1jEyh1cwW+C?I(FK&=%2@60?;y7DckfcmMQq3xI^c=cz7dLEzjNmjj0NZ< zrizj;UNFGryEOwFnFzxxdg)o6cpF|5hWf zQ!}4OP%J7cs>HaH-uZB?Nt!uINl)*3Tau`5i5D3a)nmY5S9PKzBayvdr9h3=I6ZaD zQ_8|Y5tEVzg$@o3kOhAm9@bR;3(xD_4-=>7lRT|rRm%RkbLS-fz)aPMthZl^W4wSq z;x^3H(=+NF;rRUd^Ht$QWzwhnCYku!e}jr%LRF`DdZIK6_0Ax@M_M}I>wXD&Gdfq) z?O>aDDcP()J}yqC)@3K->8B^;A!3v(x$})-ngBH!-p9L~^Eg^Coh%inf1RF=MM1$G zF5{xNs^=keU@nSB*@qn_x_s$Qj*C@S>DJ4);@*HXen-fQyndK+A65+YrLV87@ky$W z4;D8?$mJyacuZ&l?Ac1)0V@I**VkX6Jk!%}QBY8L*YNQ0gv+F(JYhNmAfY3GdL0-@ zuBjQ(+rwZUb^5slBfDx!<5jmJM}32kknnIp_vE3To?g&)d`y?Tn8mCNpCOgV?!-A3 z?J6RebeI~a4ZLmX_!J?`{>OxTZ7W#&hHu|A7g^)q(3WSDidq6#i;2m}sh#Dyl9Dnx z_AsSPHN@kXi#Eyi6&YLYCexcYBzj$G9fg*oI~DeM6c&3U`Qr2sPL7Y>!tuX$`w32y zo15Fqt$CHnC2jhyN>46Haq;sRa`DIz=H}+UpQT)uS)81Ff3r3^I{N3<&hn_HvWTc? zy@b<}e0qGhyc@bV@lgnc53D^!D_TYrzjN!SD|%{m#p8rhv)r<=U)Lj~)U2OgRCHX= zZHB#%7QPf+hC<<_!`4m0LYq9Ldi+lZ7N1_%xo|Rj?MlzQOTT(wZx+<5m0Hp7%kLs= zCZ{(^i-(|wAHac^k(EtR%|Y&(MXeC^&5w|D9V#2!s%Gs1AUXwI-LMZIsKmv^OY&__ zQvT~Czq@|(=FJIA2xY~~sS8)HUR`azQxK!&@%;JC-@kt=C@XuXrqaV0Ag?{{Ruh#Y z&)MFD=170*78by42^jwK^Yhm8Jxl=di{y^X+Z!9PoSd9e(Y}}m=}P*|kxT=XHn$rZ z8UW5;cpS$qJ+RlKLaVn=->2rGT=Z1_BLj1s;S7Z%6NKvOCytXWkio1eF$iTB;)yLKZS{kh_9_x8#hPF^^~s&HrVB0>RerC z-WIF~#j)#SscQ_y6E}5!lw@LI35ISDqaPOsCwX?(Scy66Ax+35F(xJ^A}HCuzCLcf zFR1;Qcq?yPZI9+)YC&K|&=$g+H)kIJJdJ$!uIo2NM@ID-IK^>XMo)s|D=D+<|3L>n z@=;9~Okn;=kIERbK6jQxN(_Vj{aJNtq+mV(VGsxEm;dJU-WCsP{sqs@|=~&0i~0ROT=S_k7;Q)6D){G zNxPw2%E(5uT6B82?Z&Cp!v7dD7loc)p8F}8kEErEBb!Yl->Xjc<(V=@?SwKBIan{K z5?hXDKeWixU^LRFd#yEgiIuf>VtES0&m%jn=zUq3(WM7Qn1c7l(xS-CYq@7^&h ztBy&Sn5YyN$SAA!;fzN|seCM2tM{0NK@U6+hmQ}NUto})f8bn)@D9$%DD~v>GD=dC zvZ7ir)xqla=Bz%G>BgUE(e6sM(!z=z`|SAmb7QVHH&au68~VzOng~$n#gsmSBIn&z z{l_uvDO?8n!5nJp>JRc%DLV$*di%2NSoz~gQi+KjULsFD!YC>B&11#R)WQPm_HE71 zHydvyh2Y7ry9(SJLasP4Tz>fdbC&at{hRc3AL}HQJ9lKcxs8977YL?)l%!`_l%8Y- zu+;ZfgGDvoa`@%qK+ypW9(r-|Jr_nT zu-p^SeDB^+AjyZix>t^l{9oGIQU;eZ@kd6emRpM3;+Jvs0EUKST>0jUMbEpGx(Pau5%r>UF0a z>yQr>Jz~0VW~97hmpuA2l1U!DIB@%V#GoChAVq#u2m&Jv9?~dn$1;+T2r0bdj4bF_ zuBXP)IN{svMH8&pR@IUT^D2U#&dx^z)LWaj-d;qk#r0`B50sjb zKKa1^8t53JE`$khlVQSW!yb5Duv4qH(Em4WrN2P8X{IfHt%a>VIV0nO+y3SQ=#Ysn z%ay!MzqExHPb%q^raC2s>7uc}wzZvsTMTbmnw*=%A&u6V9o$IS6}2zl{3LpG@yeAe zu1S^{jjv5j*x!8d7eFgY<2~uKI+onhKfF=>{O8q*>S}ajATc7YBnUdJ!WH!nwwJW+ zi-uH)h>7V$L}=hW`~w1BKV}efcNYQlwV}YKN^8%<6TR9g>00o28SpJFu+-&6b}}?! z48eFRpgAcyxyB-N6C61o=?Dh8yLaW(dVp(?Q1V%d13`cWnejOG4XLiH;y{tbemRo| zwDzv<1FLVME@F??1uRMga4?@j9bRpAX~WyMrgNl<#zKir4YoCnh7?d^U2=1uV*V&VfuXlw#n z5xgiFA80I7dF5kol$nW#T!A$eS&fTCMn!$??7X7uzISVJY02kac1{k5-Mq5-cpY`E z^A=~Nh|fd1%~Bp4BjZy&2N2-5-L)wRD{_(j*^j9Q<{;#(t*s4IJFqo3H%}}rg;d)7 z{SCtonM#(URX%W+zX9I*6ciLFynx1xypo#&9~t2=DWJ2&j%1|Re2?7gd!{o!Fh^+y z=X3Ev|0Lh`!FmguqJ~Cbhv*5_+}s?$%}g+(+ur)07$GN4PA;yu@7}!u=yY~>g?0|z z6dFJxNb9I{CKmP)Q5`OGL3wJrXi9oB`9^b^o1Xbe%b9BY{9=b#aq=~tkfc?)C!G>AycdZU>vyW|{d{;1i%&;)A+SbG*O6Z#N(LbIo;U)WJU_#3v``4ybrnC@F(h>Q8hc zZ`0A8p`oDxSP4RFlU4muMtNOh5b3x6e$t;mf07B>vmgxd<PK!f-<}a zkBmSf&=N2AUZbSE1UH33IB4D84CQ1MTgW3XkHaZi$Gtz%nkq@GHy#E5+B0ldixqSj z%FfQl!x+opq1Zi+T{o9UDV4H_04RPRt#&|ULq}(4+$L7-s+-Kn+me!!R#a46XJEK+ zvg2`Lq#Ezre&y**(+3+o;{!D=I6I>%en91wnc<$8YAlb1QNX$lpu7>f0t$;KEE66% zr?{0Hkflc&8Wigr8;aW6_$W{Z+}iS}!=j@}K|o~;D=scxtt~Ar9ix7VDl9E+gni*~ z+qb=Z1^3dWBBKr(My*>P~fZ zutT~YqnX6&E27u?ec<$|si>$lN>bV)_e|?1O3TVF=(!Ta_YZ=QrI=tLEcrN=)~1~! zc?sQyfU{@Rb!t&9e;8R=N%Bcq;P-TFEG$G%zD|F**)6YDYD&DlGESKMht?6LR%OeC zz-j$&zF*th37DgB;e--*g$Q$1Gtr2OilV-RQ1VUu{@s-!!fQ1QeT;*H19qA;w7RlV zzc*V2x+1$;StZ=P0n|Df3<-Gau-)BV-rjzSf0RyM<6qYi78~_U$HWdVueYZC_iqEZ zZHw;6Jr42y0dk6einwnw`b;nd4{nm%HhHAXE%?<}pvxwsTV_rUi|A8c6MvFoZ)*$P zF@@2?!s4#Eg#}%d3{vvFInRQ+?4mkDjYg~N81LK>Q&%U4iugwWbD*7?nnJ`{phCbH zk}E360N*uuo;l|&G=&NIHs710sHWx*l}bcJq&L@gKI>DmQkM0^moozc1J@ZD zGv&6(s~TfO{&}F#DX4OUIox$Ee4M8`1@g)6gcsrC(3Dc8r%!=}Co3?9$HfH#)-BhJ z&x=i(u?Cc z-i~>9OE!7SEPw+u@XbsYDiVcS=r3qm8ZJk+7oa~H^va!&>QJzN{n|#O|B^U6I_klw zg-J>#;>xe%vQ&D|$%6PgWD7IPEe3Yryu`4-rcL@$b)oJ&Vn8j3EVmeG9*AW{Wm7(apylP~$_4cX2I6}A_yCFx3T4wMk=m@PtD^z-05UVX zny$mq$GyTZv5ltEP%43|Q%zw_pkXPfs`i<1XxF<_!<50m6kUt1Kg5Dgj_@bJyEHag z%FJn>KB0kuIZpbJvfD4J)tnq3@Vjj1{)fg;3fNF_L&J3IMHm40VQx=OPxri^sbZn=bGej=j1-VRVGQ^M1zmc7SF?|)=wHAD z>7hkV8!xCtT**N1`qA7xAL*!p{`u|}fW8LMe!^p817MZWo3ot*b#5+3e#i=sKC?LX z?7hTR;|bLD26#^>Fn%u4Ba+Z6^pA6>x}$B)U`jp$IGM=sff1hEX}mfeA#X5N<791X zOJwgFcWg1V)M?BO?<$DAe5BTe6gl&0(h=UB|dMm9D{&{a90k)J<*9)$vt z0;wBtRbbEuG@tR*$b+66SLjbJ@apD^wm2UeVP~AVtgI}4`^6Xq5x`7;pAdz86TTX7 z9{enjR*2m)+ZB?|AePWT#mgJeHs~ULvKuxN)j&T-q39bzsRgZps=zS9qZOgDs@)<< zQ!)wKKBI>;FH!fJ%%m`pea81J>h#S<#;w7Pg3ywIj?dn;GH(sunmgRv7^wFUU0hs5 zjT{gvN=f-!yOZaL^*g1ljF`HQ50-7W{1QT(&AiSTGgZ*B19d%)R2JO1?E{;@Q150F}$}VS&tUXcKtZPaUKP0xuF(itQ_XTEu^ZPY< zy{-A)A8l2yZF5+3qoBEma$x{n0-TI8j$sh`iwUWdYhYZ!JOCyMsQ|CGp%-i zJ_mjV3xybPF!4R3qKM1P2j9Fthm9D4_V)IUM_c`xEFVhT4wlLt7xKz~!TcK-9=>t! zoJF9#LCCb%9D(n~tBGxuG-$38Ko5s`o z=id>Gis~pPrc+7ofejOuFe- zMNIbHBTnuxr1zMWw79A2I!99ou6mMyfwW|6z>|snQlcMmYyBicv?J%V*^SAj5jGGyJCpys! zv&6e76p00r1@LpCid*SXQC8N2>qtpUU$Orayd}WFaRrV+6Yz~Q*x1;x8hSs%>HZz9 z^dySYcM6ga5D?ro=xhA-AD;5_{~7Br^mb}k%tfa-J%A<2R1&1H#D7^_2xSafBGBMYA|G!TsHeR-%3ratb_ps zgd-KN<(I#anHQvv{@+_S?4}AO=>%RqY2v7)X~s zAe&S(YDwTh;EmwPq+gXuS27wNDnIM2)|65Sser}NYEq!V9F-klONar5gsF^LOEn#- zcnO#1fnM18>zC)7H)lb+RaUOs6RLrF+udI%_!q5%VfXJyhKgfqjRK9dJSL#GV1^@| zT1@O*U{FwzNjC!?8T*&%d$tLZRiULu^>}SJkf}_uv|Z5)kO$7GoLU;k^1e{#qr z3Xwyr2Xu0Qr@BpNTap1eYN4{riTF4tZsJI2(}i08@nno@#Px%8Q)q z#q3f+c{$&^ckc=fTSyR23wJX+T+T*MPyd*P3;nM(F&Qc`;kTYZ!Rr*BJ;MevMJMJP z!^2wDenY#dRXrlvkxe_LF)-kp*{?nWqewf9P0wPzE}#v}7Z}>0uH?13I+L}_7#~x^Fds!cjox8nwJ$mO&kStq8r2vp_on0N)6)X@wD=G)YSXX=! zg@?Bn@^W)=-@hj@Hm)d_jRS*(%gFr<$V6;BdRnAD6)Tz9b*U^vv=yfwe7> z#|o%J*x2zTMQLfSVQFbMG7GFOQ%6hPEG!KFGBkwy_N^GQ4Ky@6iROKq2N8(B`hw{j3_Vckg5vqnH_qdMjKj&)1*0 zYgU}UpOmrbh3)aRUpGm@y6}ecHuoVrE`XGo$wp?7Z_%K|vaylZ)I4|I@b*bh&deN1 z+ed6DshdAqay%otgO-RH&`VFi8g-2g6mTM6klI=KSPCT{0#9PWKHA)T_Ug}C(b=PY zC%u{0zpEI^uZ(ww-IM5RM0dXuEQK{ia%{|ws<*Yb*M&hjkO87-Y$te-tT1w=cDeK0 zS$zB*``EMRv^fmK*%O@@aK!vBG<0^7e5obGx!fB+;+rBNtLadpQG6#O=dt8+u8OMa z@2N0R%<<8IqO$V&EagDalf4dPybDVd+}Q^hT4+7_FjuYUEXWaM>W26sS>p6xX^&U2 z!4nQ_C!~J}gYRv0bW?T0VoJ9`(L4G^Ex>vD*KzJ^;HD7zkq;A%cZ2T2IA)#ME0UH7Jz4I`azMR z7ZNK5peQ2v4dOzGHle0gGENx~d4*jh`=MK}smfSTTb$)Yv zyknE5pd7FD0({e+A>Ev+=H9-(E&#PZ2M1#z`d|Y7cB(4^VDPEiLj7~_ z^KT)w1KzR{*yCd&U<)cpNcenx2?)N#e2{Z}XXiE~IKU41BUw^Fv4$kXeutK{{ZBSRPui>^H&x!TsBTn4bOF%2%YSSjCO>RBzsIo2m`JG*oMDT>r>O-y`z<&FGv-7vD>KLVC}i$3*ll1C!1#ZXUbZqeQ> z9LJ!|nbX7JiyRKGlmrzduc;zc%5MM#KT zkSq}k3yb&`A1`mYN!N@Xc40sMkMlcHNyb4+!ysZ2c{?BH#HIFoku?nkqrVmWUtWS>B+j@x{IoxaK; z@9$u-(Xg^^M25EV(mF8C)KS%?gkH!B#?%(eh?f{N;zE!iHB9ta&8VtUFbA>^sq1;< zm$c!qEWIv(q-~KUBPZuo091_tw_k3|$U!o#Tw))TBXGCR+}{ka1$lM)&!2$x9A##H ze*P~YAo}?DKu|J+QTrMB()NEctm!y8yK+T%>ZzYfN#TGdq@baJ3qS=@1O{KP4>o3~@kmDiio`1$ip0#+)EJU=HzR%mD-C(isx2ezym`6H0rvW6 zf9pn;vJBiv8t?`>i?%o(xY?W8JHJxIdJ1$!A>)RBNGTK5j!*9-_xUDZl1e3 zw=poF);Zi-wV&*kySD&|VI^qLKc90#s)^|G<@*p+O;cv}5uyn31?tVn&mRM5#pH|U znawu7aWeA=e@0>91UP}Su+JdVWfjZ~Je3zt-&q1N{%D08qFZzx-J>XQkJ@6nJ~e7z z+YAXP+GzT)XIvF8-o5v6!4j1b>XTyA7Fj{gh56N<4H35LB3h80!h?hHfaW+194U1` z686_G1pukGQb)ONLcu$&hPioohsPsLNa{?D^nG}^=eu`Tfy@{{UJC~we`zrsY?!*P zg9;>3ozMX~u@^SsBR4l;uy*`_O(H=z%<`Sn>Lev0CG`W&)=uCR`jfRZk-lB(-groZo z_@}A1(mV7I(dZkNV>JQLSyRDHL|h#x*S^7&xt`JAZe*9Q_~XFYd;saxG3SN6c7iNT z(D)_5!85XF)GvLdl<=RYqkAib_#L|k2j4K53jhGbEG_fH`!=mMw8J1}14aNn zoK?_n5oV*z9F^G)`ICmGCP~Nn@DzL01nA0*5MZW@Zke2&^#}1#EJYz^lorew2xDG` z_!Sd~ojf2C|IpLI>>IGKf|v{8w(IQdmmxW^J4Jiq?{U15G*D(iN#itqC8Yo&P@IA~ zXp4AG!WoR}vuAz~?uIYGoaexb%go8S)@x!+gU?~eQpzLxB6kUta2A~!GIw|P@So4s zieH3evOb;KUSEG`YRU|Pr@^a{p}#7UANYJ{s)apNA*2}y=ImE^R){YS)HoHlzcgKM z7hKUpKnnWKvwZV4B5pBsD%(f8E9hS8eV_!~TI-#;3TmCI-qWK85SLL$93R;H3 z(P_{WC&b z+;(w*0~Z&UKIGAjz$~7P@%I8eJ}I}=PCtw=B<;eY3UOYae&(n^b8~Z8l&k+G&X(B< z2S=mCB$L_#5Z?6Ck_9^f+GJ~MD^;>_KCnei_i?}iSma0+yf>Spm$;y)OfDAN2L0a> z%11Bgnnh`qK03(ZJR{{|ty$is1_2Upsln_bP!+B&i!&!3)_ z_6wj2{&tpAJeUv2s?yUtAMgEz*tDE8+SH)=u-x#8+*c$xQB636E;6;O3JJkKbJx(_%TE>BvNG)YqUtT3&ZlP8al|O$bc=f=WKUY1okro{iDCq+UoN zD?s%1=bu-w=Bc1;muEh!ZUaobzPXtOj>OwfpKb%pF7wagL3f>QMI*B=@_CX`@B9Uv ze@mgAV-i0f@(5k>feuXn7+wp+5CmNXm98|H`ozWpK4<|wotG@SsLobgD+6PeYw>jE zs}`is9zA&Qdi5Tp$#ryeEV7FOijG051XcW*qqdTgf$9+$F+Vywtn6In&|nA!f@1px zKG=~~@%sH~v0-MaYu!~5p$ZYra&z$@?bR4e&J~P#0iP`?A9KD0(yxS;78T43&1nu^ zhN|CI3m?j`kPep{Z~gM+109{j*?|uNHbBp;uCuWb!a@1*^XCJIp~Vj=W+_`+TYDxX zP{Uc}u$g)6wYPQG7uZJ-On)TdfVjdS(&6`^bJ=DvhOA<+AJsQzV5VOMUja#iLp%Y- z{bh3U!Hj$Hknn`$TmTfdSh~_AU=whr-m7obLqz~jlK@K{JmMRgi;L{i;klF=ZFP)D8 zUGLJmN8V5Dp*hn-g`_$q2 vJO5l+W$junatok%{GUHQ1()eN!Dj0pH(5yGz6l>oLrF_K5zl|9_vU{AIzzZ* diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory-members.html index fedceab04d..60444a9cf0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory-members.html @@ -25,7 +25,7 @@ Logo

tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory.html index af48e63bb0..063d57dc98 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog-members.html index 7de5a140e7..6f73f15a4c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog.html index 1b807adca2..e790ac53a8 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -530,10 +530,10 @@ Here is the call graph for this function:

Reimplemented from Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.

-

Definition at line 136 of file WindowsWatchdog.cs.

+

Definition at line 134 of file WindowsWatchdog.cs.

-

References Tgstation.Server.Host.Components.Deployment.IDmbProvider.CompileJob, Tgstation.Server.Host.Components.Deployment.WindowsSwappableDmbProvider.CompileJob, Tgstation.Server.Host.Components.Deployment.WindowsSwappableDmbProvider.Dispose(), Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), and Tgstation.Server.Host.Components.Deployment.WindowsSwappableDmbProvider.MakeActive().

-
137  {
138  IDmbProvider compileJobProvider = DmbFactory.LockNextDmb(1);
139  if (compileJobProvider.CompileJob.ByondVersion != ActiveCompileJob.ByondVersion)
140  {
141  // have to do a graceful restart
142  Logger.LogDebug(
143  "Not swapping to new compile job {0} as it uses a different BYOND version ({1}) than what is currently active {2}. Queueing graceful restart instead...",
144  compileJobProvider.CompileJob.Id,
145  compileJobProvider.CompileJob.ByondVersion,
146  ActiveCompileJob.ByondVersion);
147  compileJobProvider.Dispose();
148  await base.HandleNewDmbAvailable(cancellationToken).ConfigureAwait(false);
149  return;
150  }
151 
152  WindowsSwappableDmbProvider windowsProvider = null;
153  bool suspended = false;
154  try
155  {
156  windowsProvider = new WindowsSwappableDmbProvider(compileJobProvider, ioManager, symlinkFactory);
157 
158  Logger.LogDebug("Swapping to compile job {0}...", windowsProvider.CompileJob.Id);
159  try
160  {
161  Server.Suspend();
162  suspended = true;
163  }
164  catch (Exception ex)
165  {
166  Logger.LogWarning("Exception while suspending server: {0}", ex);
167  }
168 
169  await windowsProvider.MakeActive(cancellationToken).ConfigureAwait(false);
170  }
171  catch(Exception ex)
172  {
173  Logger.LogError("Exception while swapping: {0}", ex);
174  IDmbProvider providerToDispose = windowsProvider ?? compileJobProvider;
175  providerToDispose.Dispose();
176  throw;
177  }
178 
179  // Let this throw hard if it fails
180  if (suspended)
181  Server.Resume();
182 
184  pendingSwappable = windowsProvider;
185  }
async Task MakeActive(CancellationToken cancellationToken)
Make the WindowsSwappableDmbProvider active by replacing the live link with our CompileJob.
+

References Tgstation.Server.Host.Components.Deployment.IDmbProvider.CompileJob, Tgstation.Server.Host.Components.Deployment.WindowsSwappableDmbProvider.CompileJob, Tgstation.Server.Host.Components.Deployment.WindowsSwappableDmbProvider.Dispose(), Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), and Tgstation.Server.Host.Components.Deployment.WindowsSwappableDmbProvider.MakeActive().

+
135  {
136  IDmbProvider compileJobProvider = DmbFactory.LockNextDmb(1);
137  if (compileJobProvider.CompileJob.ByondVersion != ActiveCompileJob.ByondVersion)
138  {
139  // have to do a graceful restart
140  Logger.LogDebug(
141  "Not swapping to new compile job {0} as it uses a different BYOND version ({1}) than what is currently active {2}. Queueing graceful restart instead...",
142  compileJobProvider.CompileJob.Id,
143  compileJobProvider.CompileJob.ByondVersion,
144  ActiveCompileJob.ByondVersion);
145  compileJobProvider.Dispose();
146  await base.HandleNewDmbAvailable(cancellationToken).ConfigureAwait(false);
147  return;
148  }
149 
150  WindowsSwappableDmbProvider windowsProvider = null;
151  bool suspended = false;
152  try
153  {
154  windowsProvider = new WindowsSwappableDmbProvider(compileJobProvider, ioManager, symlinkFactory);
155 
156  Logger.LogDebug("Swapping to compile job {0}...", windowsProvider.CompileJob.Id);
157  try
158  {
159  Server.Suspend();
160  suspended = true;
161  }
162  catch (Exception ex)
163  {
164  Logger.LogWarning("Exception while suspending server: {0}", ex);
165  }
166 
167  await windowsProvider.MakeActive(cancellationToken).ConfigureAwait(false);
168  }
169  catch(Exception ex)
170  {
171  Logger.LogError("Exception while swapping: {0}", ex);
172  IDmbProvider providerToDispose = windowsProvider ?? compileJobProvider;
173  providerToDispose.Dispose();
174  throw;
175  }
176 
177  // Let this throw hard if it fails
178  if (suspended)
179  Server.Resume();
180 
182  pendingSwappable = windowsProvider;
183  }
async Task MakeActive(CancellationToken cancellationToken)
Make the WindowsSwappableDmbProvider active by replacing the live link with our CompileJob.
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:29
long Id
The ID of the entity.
Definition: EntityId.cs:11
@@ -548,7 +548,7 @@ Here is the call graph for this function:
ILogger Logger
The ILogger for the WatchdogBase.
Definition: WatchdogBase.cs:68
Provides absolute paths to the latest compiled .dmbs
Definition: IDmbProvider.cs:9
readonly IIOManager ioManager
The IIOManager for the WindowsWatchdog.
-
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:150
+
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:153
readonly ISymlinkFactory symlinkFactory
The ISymlinkFactory for the WindowsWatchdog.

@@ -591,7 +591,7 @@ Here is the call graph for this function:

Reimplemented from Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.

Definition at line 118 of file WindowsWatchdog.cs.

-
119  {
120  if (activeSwappable == null)
121  throw new InvalidOperationException("Expected activeSwappable to not be null!");
122  if (pendingSwappable != null)
123  {
124  Logger.LogTrace("Replacing activeSwappable with pendingSwappable...");
127  pendingSwappable = null;
128  }
129  else
130  Logger.LogTrace("Nothing to do as pendingSwappable is null.");
131 
132  return MonitorAction.Continue;
133  }
WindowsSwappableDmbProvider pendingSwappable
The active WindowsSwappableDmbProvider for WatchdogBase.ActiveLaunchParameters.
+
119  {
120  if (pendingSwappable != null)
121  {
122  Logger.LogTrace("Replacing activeSwappable with pendingSwappable...");
125  pendingSwappable = null;
126  }
127  else
128  Logger.LogTrace("Nothing to do as pendingSwappable is null.");
129 
130  return MonitorAction.Continue;
131  }
WindowsSwappableDmbProvider pendingSwappable
The active WindowsSwappableDmbProvider for WatchdogBase.ActiveLaunchParameters.
WindowsSwappableDmbProvider activeSwappable
The WindowsSwappableDmbProvider for WatchdogBase.LastLaunchParameters.
void ReplaceDmbProvider(IDmbProvider newProvider)
Replace Dmb with a given newProvider , disposing the old one.
ISessionController Server
The single ISessionController.
@@ -636,16 +636,16 @@ Here is the call graph for this function:

Reimplemented from Tgstation.Server.Host.Components.Watchdog.BasicWatchdog.

-

Definition at line 188 of file WindowsWatchdog.cs.

+

Definition at line 186 of file WindowsWatchdog.cs.

-

References Tgstation.Server.Host.Components.Deployment.IDmbProvider.CompileJob, Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob(), and Tgstation.Server.Host.Components.Deployment.WindowsSwappableDmbProvider.MakeActive().

-
189  {
190  if(activeSwappable != null)
191  throw new InvalidOperationException("Expected activeSwappable to be null!");
192  if(startupDmbProvider != null)
193  throw new InvalidOperationException("Expected startupDmbProvider to be null!");
194 
195  Logger.LogTrace("Prep for server launch. pendingSwappable is {0}available", pendingSwappable == null ? "not " : String.Empty);
196 
197  // Add another lock to the startup DMB because it'll be used throughout the lifetime of the watchdog
198  startupDmbProvider = await DmbFactory.FromCompileJob(dmbToUse.CompileJob, cancellationToken).ConfigureAwait(false);
199 
201  pendingSwappable = null;
202 
203  try
204  {
205  await activeSwappable.MakeActive(cancellationToken).ConfigureAwait(false);
206  }
207  catch
208  {
209  // We won't worry about disposing activeSwappable here as we can't dispose dmbToUse here.
210  activeSwappable = null;
211  throw;
212  }
213 
214  return activeSwappable;
215  }
async Task MakeActive(CancellationToken cancellationToken)
Make the WindowsSwappableDmbProvider active by replacing the live link with our CompileJob.
+

References Tgstation.Server.Host.Components.Deployment.IDmbProvider.CompileJob, Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob(), and Tgstation.Server.Host.Components.Deployment.WindowsSwappableDmbProvider.MakeActive().

+
187  {
188  if(activeSwappable != null)
189  throw new InvalidOperationException("Expected activeSwappable to be null!");
190  if(startupDmbProvider != null)
191  throw new InvalidOperationException("Expected startupDmbProvider to be null!");
192 
193  Logger.LogTrace("Prep for server launch. pendingSwappable is {0}available", pendingSwappable == null ? "not " : String.Empty);
194 
195  // Add another lock to the startup DMB because it'll be used throughout the lifetime of the watchdog
196  startupDmbProvider = await DmbFactory.FromCompileJob(dmbToUse.CompileJob, cancellationToken).ConfigureAwait(false);
197 
199  pendingSwappable = null;
200 
201  try
202  {
203  await activeSwappable.MakeActive(cancellationToken).ConfigureAwait(false);
204  }
205  catch
206  {
207  // We won't worry about disposing activeSwappable here as we can't dispose dmbToUse here.
208  activeSwappable = null;
209  throw;
210  }
211 
212  return activeSwappable;
213  }
async Task MakeActive(CancellationToken cancellationToken)
Make the WindowsSwappableDmbProvider active by replacing the live link with our CompileJob.
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:29
WindowsSwappableDmbProvider pendingSwappable
The active WindowsSwappableDmbProvider for WatchdogBase.ActiveLaunchParameters.
WindowsSwappableDmbProvider activeSwappable
The WindowsSwappableDmbProvider for WatchdogBase.LastLaunchParameters.
-
async Task< IDmbProvider > FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
Gets a IDmbProvider for a given CompileJob
Definition: DmbFactory.cs:193
+
async Task< IDmbProvider > FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
Gets a IDmbProvider for a given CompileJob
Definition: DmbFactory.cs:196
ILogger Logger
The ILogger for the WatchdogBase.
Definition: WatchdogBase.cs:68
readonly IIOManager ioManager
The IIOManager for the WindowsWatchdog.
IDmbProvider startupDmbProvider
The IDmbProvider the WindowsWatchdog was started with.
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory-members.html index 06e1420ca9..409a04f752 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory.html index 08159a19e4..aa7694ff80 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration-members.html index 416c7110ca..82844dd1bb 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration.html index 11d04b8106..c3e1a3c50c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration-members.html index 6c68ccb5bc..8f22e18834 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration.html index cad5ea6899..220f534f10 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration-members.html index 735bfd3ccf..6db4df4506 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration.html index 062442d1e5..c1fab92444 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration-members.html index b9660ec668..2c26216ceb 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration.html index 28389b095d..10a91ef334 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration-members.html index b749777655..899c036f8a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration.html index 4d8376fbc1..e48d1e714a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program-members.html b/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program-members.html index 4150394549..6ee8152b55 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program.html b/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program.html index f64eb4d7ba..1d17bd1531 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller-members.html index f7c37e6c07..bea133cb5e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller.html index 9b0a4df870..7a37bc06d6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller-members.html index ec7982b812..3f1439c75a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller.html index ba2beadb14..098bc5d60d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller-members.html index 5d20231b39..c3386a248f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller.html index 9154d2d919..ffbe0bcb39 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller-members.html index bb722524a1..419d254641 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller.html index b621474044..31541b6d17 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller-members.html index 47f38ea7d8..6d2e32eecb 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller.html index 20d8d16aa3..d3c45bad91 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller-members.html index 7caeaacb59..587eacac86 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller.html index dd44d6f16f..69a48f172d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller-members.html index dda7fefa0b..ae4048ac70 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller.html index 012c962b71..2e48c504ee 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller-members.html index 32de6efbb8..c0b4807ef5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller.html index 59b6ba2a0d..514c408ec3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller-members.html index ae32a8d5c4..7e583356ec 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller.html index 51f511d284..7a4f13a8ce 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller-members.html index 756417be0f..c2d3737817 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller.html index 0e8764f84d..589576ac38 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller-members.html index 96df9ae3d3..56e3d4ac00 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller.html index 1326e86334..2d188f3710 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller-members.html index 3dbaf51fb7..57c444d1e2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller.html index 99a0e75bd4..bbaa75e61b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller-members.html index 994f2900be..65a172b1cf 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller.html index 41aa0acdb6..cba73d3e41 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute-members.html index 3a5eb00996..5642ca1103 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute.html index d2f1972d50..0a48eaea01 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller-members.html index cddf089ce9..60ae519fe7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller.html index b6674ebbfd..662989c45f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application-members.html index f46e02142a..09be24a0ee 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html index e36c47e90f..3b691dd23b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -295,7 +295,7 @@ Additional Inherited Members

Definition at line 320 of file Application.cs.

References Tgstation.Server.Host.Core.IServerControl.Die(), Tgstation.Server.Api.Models.Limits.MaximumStringLength, Tgstation.Server.Host.Components.IInstanceManager.Ready, Tgstation.Server.Host.Core.IServerControl.Restart(), and Tgstation.Server.Host.Core.IServerControl.WatchdogPresent.

-
328  {
329  if (applicationBuilder == null)
330  throw new ArgumentNullException(nameof(applicationBuilder));
331  if (serverControl == null)
332  throw new ArgumentNullException(nameof(serverControl));
333 
334  this.tokenFactory = tokenFactory ?? throw new ArgumentNullException(nameof(tokenFactory));
335 
336  var controlPanelConfiguration = controlPanelConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(controlPanelConfigurationOptions));
337  var generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
338 
339  if (logger == null)
340  throw new ArgumentNullException(nameof(logger));
341 
342  logger.LogDebug("Content Root: {0}", hostingEnvironment.ContentRootPath);
343  logger.LogTrace("Web Root: {0}", hostingEnvironment.WebRootPath);
344 
345  if (generalConfiguration.MinimumPasswordLength > Limits.MaximumStringLength)
346  {
347  logger.LogCritical("Configured minimum password length ({0}) is greater than the maximum database string length ({1})!");
348  serverControl.Die(new InvalidOperationException("Minimum password length greater than database limit!"));
349  return;
350  }
351 
352  // attempt to restart the server if the configuration changes
353  if (serverControl.WatchdogPresent)
354  ChangeToken.OnChange(Configuration.GetReloadToken, () => serverControl.Restart());
355 
356  // setup the HTTP request pipeline
357  // Final point where we wrap exceptions in a 500 (ErrorMessage) response
358  applicationBuilder.UseServerErrorHandling();
359 
360  applicationBuilder.UseRequestCounting();
361 
362  // 503 requests made while the application is starting
363  applicationBuilder.UseAsyncInitialization(async (cancellationToken) =>
364  {
365  var tcs = new TaskCompletionSource<object>();
366  using (cancellationToken.Register(() => tcs.SetCanceled()))
367  await Task.WhenAny(tcs.Task, instanceManager.Ready).ConfigureAwait(false);
368  });
369 
370  // suppress OperationCancelledExceptions, they are just aborted HTTP requests
371  applicationBuilder.UseCancelledRequestSuppression();
372 
373  if (hostingEnvironment.IsDevelopment())
374  {
375  applicationBuilder.UseSwagger();
376  applicationBuilder.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "TGS API V4"));
377  logger.LogTrace("Swagger API generation enabled");
378  }
379 
380  // Set up CORS based on configuration if necessary
381  Action<CorsPolicyBuilder> corsBuilder = null;
382  if (controlPanelConfiguration.AllowAnyOrigin)
383  {
384  logger.LogTrace("Access-Control-Allow-Origin: *");
385  corsBuilder = builder => builder.AllowAnyOrigin();
386  }
387  else if (controlPanelConfiguration.AllowedOrigins?.Count > 0)
388  {
389  logger.LogTrace("Access-Control-Allow-Origin: ", String.Join(',', controlPanelConfiguration.AllowedOrigins));
390  corsBuilder = builder => builder.WithOrigins(controlPanelConfiguration.AllowedOrigins.ToArray());
391  }
392 
393  var originalBuilder = corsBuilder;
394  corsBuilder = builder =>
395  {
396  builder.AllowAnyHeader().AllowAnyMethod();
397  originalBuilder?.Invoke(builder);
398  };
399  applicationBuilder.UseCors(corsBuilder);
400 
401  // spa loading if necessary
402  if (controlPanelConfiguration.Enable)
403  {
404  logger.LogWarning("Web control panel enabled. This is a highly WIP feature!");
405  applicationBuilder.UseStaticFiles();
406  }
407  else
408  logger.LogDebug("Web control panel disabled!");
409 
410  // authenticate JWT tokens using our security pipeline if present, returns 401 if bad
411  applicationBuilder.UseAuthentication();
412 
413  // suppress and log database exceptions
414  applicationBuilder.UseDbConflictHandling();
415 
416  // majority of handling is done in the controllers
417  applicationBuilder.UseMvc();
418 
419  // 404 anything that gets this far
420  }
const int MaximumStringLength
Length limit for strings in fields.
Definition: Limits.cs:11
+
328  {
329  if (applicationBuilder == null)
330  throw new ArgumentNullException(nameof(applicationBuilder));
331  if (serverControl == null)
332  throw new ArgumentNullException(nameof(serverControl));
333 
334  this.tokenFactory = tokenFactory ?? throw new ArgumentNullException(nameof(tokenFactory));
335 
336  var controlPanelConfiguration = controlPanelConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(controlPanelConfigurationOptions));
337  var generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
338 
339  if (logger == null)
340  throw new ArgumentNullException(nameof(logger));
341 
342  logger.LogDebug("Content Root: {0}", hostingEnvironment.ContentRootPath);
343  logger.LogTrace("Web Root: {0}", hostingEnvironment.WebRootPath);
344 
345  if (generalConfiguration.MinimumPasswordLength > Limits.MaximumStringLength)
346  {
347  logger.LogCritical("Configured minimum password length ({0}) is greater than the maximum database string length ({1})!");
348  serverControl.Die(new InvalidOperationException("Minimum password length greater than database limit!"));
349  return;
350  }
351 
352  // attempt to restart the server if the configuration changes
353  if (serverControl.WatchdogPresent)
354  ChangeToken.OnChange(Configuration.GetReloadToken, () => serverControl.Restart());
355 
356  // setup the HTTP request pipeline
357  // Final point where we wrap exceptions in a 500 (ErrorMessage) response
358  applicationBuilder.UseServerErrorHandling();
359 
360  // 503 requests made while the application is starting
361  applicationBuilder.UseAsyncInitialization(async (cancellationToken) =>
362  {
363  var tcs = new TaskCompletionSource<object>();
364  using (cancellationToken.Register(() => tcs.SetCanceled()))
365  await Task.WhenAny(tcs.Task, instanceManager.Ready).ConfigureAwait(false);
366  });
367 
368  // suppress OperationCancelledExceptions, they are just aborted HTTP requests
369  applicationBuilder.UseCancelledRequestSuppression();
370 
371  if (hostingEnvironment.IsDevelopment())
372  {
373  applicationBuilder.UseSwagger();
374  applicationBuilder.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "TGS API V4"));
375  logger.LogTrace("Swagger API generation enabled");
376  }
377 
378  // Set up CORS based on configuration if necessary
379  Action<CorsPolicyBuilder> corsBuilder = null;
380  if (controlPanelConfiguration.AllowAnyOrigin)
381  {
382  logger.LogTrace("Access-Control-Allow-Origin: *");
383  corsBuilder = builder => builder.AllowAnyOrigin();
384  }
385  else if (controlPanelConfiguration.AllowedOrigins?.Count > 0)
386  {
387  logger.LogTrace("Access-Control-Allow-Origin: ", String.Join(',', controlPanelConfiguration.AllowedOrigins));
388  corsBuilder = builder => builder.WithOrigins(controlPanelConfiguration.AllowedOrigins.ToArray());
389  }
390 
391  var originalBuilder = corsBuilder;
392  corsBuilder = builder =>
393  {
394  builder.AllowAnyHeader().AllowAnyMethod();
395  originalBuilder?.Invoke(builder);
396  };
397  applicationBuilder.UseCors(corsBuilder);
398 
399  // spa loading if necessary
400  if (controlPanelConfiguration.Enable)
401  {
402  logger.LogWarning("Web control panel enabled. This is a highly WIP feature!");
403  applicationBuilder.UseStaticFiles();
404  }
405  else
406  logger.LogDebug("Web control panel disabled!");
407 
408  // authenticate JWT tokens using our security pipeline if present, returns 401 if bad
409  applicationBuilder.UseAuthentication();
410 
411  // suppress and log database exceptions
412  applicationBuilder.UseDbConflictHandling();
413 
414  // majority of handling is done in the controllers
415  applicationBuilder.UseMvc();
416 
417  // 404 anything that gets this far
418  }
const int MaximumStringLength
Length limit for strings in fields.
Definition: Limits.cs:11
Sanity limits to prevent users from overloading
Definition: Limits.cs:6
Task Ready
Task that completes when the IInstanceManager finishes initializing.
readonly IWebHostEnvironment hostingEnvironment
The IWebHostEnvironment for the Application.
Definition: Application.cs:52
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer-members.html index 9004dedece..731da302c4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer.html index 672b533ade..01fb7f944a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory-members.html index 49428db306..8569ab0ada 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory.html index e09a6576c9..c2ca4016db 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension-members.html index efdcd28f80..3a5e170660 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension.html index 8d5d1e3d33..393ae1de7a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration-members.html index 7565b4d108..a8e4238731 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration.html index e52332bff0..2038aff391 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context-members.html index b3fa6b57ba..12bcb80427 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context.html index 098cca7ba5..7cd2a3a439 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -289,7 +289,7 @@ Private Attributes

Definition at line 18 of file SemaphoreSlimContext.cs.

-

Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Byond.ByondManager.ChangeVersion(), Tgstation.Server.Host.Components.Repository.RepositoryManager.CloneRepository(), Tgstation.Server.Host.Components.StaticFiles.Configuration.CopyDMFilesTo(), Tgstation.Server.Host.Components.StaticFiles.Configuration.CreateDirectory(), Tgstation.Server.Host.Components.StaticFiles.Configuration.DeleteDirectory(), Tgstation.Server.Host.Components.Repository.RepositoryManager.DeleteRepository(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), Tgstation.Server.Host.Components.StaticFiles.Configuration.HandleEvent(), Tgstation.Server.Host.Components.Byond.WindowsByondInstaller.InstallByond(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Launch(), Tgstation.Server.Host.Components.StaticFiles.Configuration.ListDirectory(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.StaticFiles.Configuration.Read(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ResetRebootState(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), Tgstation.Server.Host.Components.StaticFiles.Configuration.SymlinkStaticFilesTo(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Terminate(), Tgstation.Server.Host.Components.Byond.ByondExecutableLock.TrustDmbPath(), and Tgstation.Server.Host.Components.StaticFiles.Configuration.Write().

+

Referenced by Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ChangeSettings(), Tgstation.Server.Host.Components.Byond.ByondManager.ChangeVersion(), Tgstation.Server.Host.Components.Repository.RepositoryManager.CloneRepository(), Tgstation.Server.Host.Components.StaticFiles.Configuration.CopyDMFilesTo(), Tgstation.Server.Host.Components.StaticFiles.Configuration.CreateDirectory(), Tgstation.Server.Host.Components.StaticFiles.Configuration.DeleteDirectory(), Tgstation.Server.Host.Components.Repository.RepositoryManager.DeleteRepository(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.HandleChatCommand(), Tgstation.Server.Host.Components.StaticFiles.Configuration.HandleEvent(), Tgstation.Server.Host.Components.Byond.WindowsByondInstaller.InstallByond(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Launch(), Tgstation.Server.Host.Components.StaticFiles.Configuration.ListDirectory(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorLifetimes(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.MonitorRestart(), Tgstation.Server.Host.Components.StaticFiles.Configuration.Read(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.ResetRebootState(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Restart(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.StartAsync(), Tgstation.Server.Host.Components.StaticFiles.Configuration.SymlinkStaticFilesTo(), Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Terminate(), Tgstation.Server.Host.Components.Byond.ByondExecutableLock.TrustDmbPath(), and Tgstation.Server.Host.Components.StaticFiles.Configuration.Write().

19  {
20  if (semaphore == null)
21  throw new ArgumentNullException(nameof(semaphore));
22  cancellationToken.ThrowIfCancellationRequested();
23  await semaphore.WaitAsync(cancellationToken).ConfigureAwait(false);
24  return new SemaphoreSlimContext(semaphore);
25  }
SemaphoreSlimContext(SemaphoreSlim lockedSemaphore)
Construct a SemaphoreSlimContext

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder-members.html index 42f3987bee..316d5b1146 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder.html index ff81195969..4a77f86696 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration-members.html index b1eb26ad1f..1a7303f75e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration.html index 2ca8099d96..1a4613f810 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection-members.html index 85ccc344ff..05d4b7729d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection.html index 82a1392ed7..d82acd5646 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory-members.html index f92384fc06..6394a5c16a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory.html index 6d94482d12..5e9f19776c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context-members.html index 70869e5569..8e34fea56a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context.html index fd0c69aee1..581001839f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_factory-members.html index 93859820a8..494925d79e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_factory.html index 238752baf1..900682bead 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder-members.html index 6bbc27e9be..6224a83ab8 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder.html index 7a08621a0a..6ca66dc889 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_design_time_db_context_factory_helpers-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_design_time_db_context_factory_helpers-members.html index 0f0fb4331d..07c514b975 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_design_time_db_context_factory_helpers-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_design_time_db_context_factory_helpers-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_design_time_db_context_factory_helpers.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_design_time_db_context_factory_helpers.html index aac50dbb88..a45311d947 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_design_time_db_context_factory_helpers.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_design_time_db_context_factory_helpers.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_my_sql_design_time_db_context_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_my_sql_design_time_db_context_factory-members.html index 30f4234a18..7748a053b3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_my_sql_design_time_db_context_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_my_sql_design_time_db_context_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_my_sql_design_time_db_context_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_my_sql_design_time_db_context_factory.html index 796c2552c3..221e08068a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_my_sql_design_time_db_context_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_my_sql_design_time_db_context_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_postgres_sql_design_time_db_context_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_postgres_sql_design_time_db_context_factory-members.html index 3230092e82..e96443d110 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_postgres_sql_design_time_db_context_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_postgres_sql_design_time_db_context_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_postgres_sql_design_time_db_context_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_postgres_sql_design_time_db_context_factory.html index b570330904..8cad64048c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_postgres_sql_design_time_db_context_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_postgres_sql_design_time_db_context_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sql_server_design_time_db_context_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sql_server_design_time_db_context_factory-members.html index 3b0ef354b4..aebb2e5bdd 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sql_server_design_time_db_context_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sql_server_design_time_db_context_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sql_server_design_time_db_context_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sql_server_design_time_db_context_factory.html index c283b50929..367686aae3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sql_server_design_time_db_context_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sql_server_design_time_db_context_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sqlite_design_time_db_context_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sqlite_design_time_db_context_factory-members.html index dd1717e13c..adc85124ee 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sqlite_design_time_db_context_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sqlite_design_time_db_context_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sqlite_design_time_db_context_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sqlite_design_time_db_context_factory.html index 491047f587..483737a6ca 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sqlite_design_time_db_context_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_design_1_1_sqlite_design_time_db_context_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_chat_bot_reconnection_interval-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_chat_bot_reconnection_interval-members.html index 96fd62398c..06b50d7a0b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_chat_bot_reconnection_interval-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_chat_bot_reconnection_interval-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_chat_bot_reconnection_interval.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_chat_bot_reconnection_interval.html index cd02674b1a..a388cdee16 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_chat_bot_reconnection_interval.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_chat_bot_reconnection_interval.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_compile_job_d_m_api_version-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_compile_job_d_m_api_version-members.html index 48f8adbc92..7e34d19e74 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_compile_job_d_m_api_version-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_compile_job_d_m_api_version-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_compile_job_d_m_api_version.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_compile_job_d_m_api_version.html index 23aed0ca62..3fdbcf51f7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_compile_job_d_m_api_version.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_compile_job_d_m_api_version.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_heartbeat-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_heartbeat-members.html index a5cc0e9441..3f940ac3bf 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_heartbeat-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_heartbeat-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_heartbeat.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_heartbeat.html index e9cf57a140..cf2d4c4582 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_heartbeat.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_heartbeat.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_job_error_codes-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_job_error_codes-members.html index cbd52241f1..0268362644 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_job_error_codes-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_job_error_codes-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_job_error_codes.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_job_error_codes.html index 75f990465a..4cf8ed5138 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_job_error_codes.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_job_error_codes.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_minimum_security-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_minimum_security-members.html index c2764d00f9..a839037ba4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_minimum_security-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_minimum_security-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_minimum_security.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_minimum_security.html index b5d6a89002..dde61da88b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_minimum_security.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_add_minimum_security.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_checkpoint_rebuild-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_checkpoint_rebuild-members.html index 3c24aa15c0..b27301a534 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_checkpoint_rebuild-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_checkpoint_rebuild-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_checkpoint_rebuild.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_checkpoint_rebuild.html index 7260893b73..9a42f49b4d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_checkpoint_rebuild.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_checkpoint_rebuild.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_cascading_delete-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_cascading_delete-members.html index 083fa71fec..15befeec7a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_cascading_delete-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_cascading_delete-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_cascading_delete.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_cascading_delete.html index 56ac8947ab..ce02c715e3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_cascading_delete.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_cascading_delete.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_rev_info_index-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_rev_info_index-members.html index 7526af49cd..e41607663e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_rev_info_index-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_rev_info_index-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_rev_info_index.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_rev_info_index.html index 66989c98d8..0757def9d7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_rev_info_index.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_fix_rev_info_index.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_initial_create-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_initial_create-members.html index 14bd1a5b69..a5908cf22f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_initial_create-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_initial_create-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_initial_create.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_initial_create.html index 100666bd1d..f34c2ff7d9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_initial_create.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_initial_create.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_kill_jsons_add_d_m_api_version-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_kill_jsons_add_d_m_api_version-members.html index 99a802bd31..bf8faf51c0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_kill_jsons_add_d_m_api_version-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_kill_jsons_add_d_m_api_version-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_kill_jsons_add_d_m_api_version.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_kill_jsons_add_d_m_api_version.html index 401760be68..256a088679 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_kill_jsons_add_d_m_api_version.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_kill_jsons_add_d_m_api_version.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_limits_on_chat-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_limits_on_chat-members.html index ba1d1ffc31..9276323dcf 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_limits_on_chat-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_limits_on_chat-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_limits_on_chat.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_limits_on_chat.html index 136cf5fc17..064c35e184 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_limits_on_chat.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_limits_on_chat.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_nullable_and_foreign_key_cleanup-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_nullable_and_foreign_key_cleanup-members.html index 2b1227f1f6..d68b10b281 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_nullable_and_foreign_key_cleanup-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_nullable_and_foreign_key_cleanup-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_nullable_and_foreign_key_cleanup.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_nullable_and_foreign_key_cleanup.html index 94c88bb1ff..98a3215272 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_nullable_and_foreign_key_cleanup.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_nullable_and_foreign_key_cleanup.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_reattach_compile_job_required-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_reattach_compile_job_required-members.html index a113aa311c..6f6718be2a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_reattach_compile_job_required-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_reattach_compile_job_required-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_reattach_compile_job_required.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_reattach_compile_job_required.html index 74ca2734ab..800f668732 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_reattach_compile_job_required.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_reattach_compile_job_required.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_remove_soft_columns-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_remove_soft_columns-members.html index 47b2223635..da499e3a7a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_remove_soft_columns-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_remove_soft_columns-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_remove_soft_columns.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_remove_soft_columns.html index 8624a9f8c0..1c1266f757 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_remove_soft_columns.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_remove_soft_columns.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_toggle_testmerge_comments-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_toggle_testmerge_comments-members.html index fbe594a423..451e814619 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_toggle_testmerge_comments-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_toggle_testmerge_comments-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_toggle_testmerge_comments.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_toggle_testmerge_comments.html index 854dacbf0f..cc34ac56ee 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_toggle_testmerge_comments.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_toggle_testmerge_comments.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_tons_of_validation-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_tons_of_validation-members.html index 2f278cbd53..818858d17c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_tons_of_validation-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_tons_of_validation-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_tons_of_validation.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_tons_of_validation.html index 3647826711..28c0d5899c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_tons_of_validation.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_s_tons_of_validation.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_chat_bot_reconnection_interval-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_chat_bot_reconnection_interval-members.html index 09ee4965cd..897dcffc79 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_chat_bot_reconnection_interval-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_chat_bot_reconnection_interval-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_chat_bot_reconnection_interval.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_chat_bot_reconnection_interval.html index becc97feae..902ca863a2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_chat_bot_reconnection_interval.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_chat_bot_reconnection_interval.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_compile_job_d_m_api_version-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_compile_job_d_m_api_version-members.html index a95f88d5f8..71ee4a2e49 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_compile_job_d_m_api_version-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_compile_job_d_m_api_version-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_compile_job_d_m_api_version.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_compile_job_d_m_api_version.html index 33318d69e0..80ef3c7fa1 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_compile_job_d_m_api_version.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_compile_job_d_m_api_version.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_heartbeat-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_heartbeat-members.html index 22875fbf44..d0062c72cb 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_heartbeat-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_heartbeat-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_heartbeat.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_heartbeat.html index 286af2783a..7b8531eab3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_heartbeat.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_heartbeat.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_job_error_codes-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_job_error_codes-members.html index 3322bda241..ea14b46a17 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_job_error_codes-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_job_error_codes-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_job_error_codes.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_job_error_codes.html index 5748e2cee4..e05aedb05a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_job_error_codes.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_job_error_codes.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_minimum_security-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_minimum_security-members.html index 781d4ac735..48a51018cb 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_minimum_security-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_minimum_security-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_minimum_security.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_minimum_security.html index 1598252d13..9ef32b5161 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_minimum_security.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_add_minimum_security.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_checkpoint_rebuild-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_checkpoint_rebuild-members.html index 7e7a647c5d..1986986e32 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_checkpoint_rebuild-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_checkpoint_rebuild-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_checkpoint_rebuild.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_checkpoint_rebuild.html index 1cee1113cc..abbe669cc1 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_checkpoint_rebuild.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_checkpoint_rebuild.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_cascading_delete-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_cascading_delete-members.html index e93d2f8ff5..ee71a0f492 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_cascading_delete-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_cascading_delete-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_cascading_delete.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_cascading_delete.html index 2304aba387..348d4a17d4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_cascading_delete.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_cascading_delete.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_rev_info_index-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_rev_info_index-members.html index 6cb75be934..7a66ae5fef 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_rev_info_index-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_rev_info_index-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_rev_info_index.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_rev_info_index.html index 229ed352cd..83766a63c2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_rev_info_index.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_fix_rev_info_index.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_initial_create-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_initial_create-members.html index a032cc5c59..1fdd7306fc 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_initial_create-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_initial_create-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_initial_create.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_initial_create.html index b297efbd63..df81164c03 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_initial_create.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_initial_create.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_kill_jsons_add_d_m_api_version-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_kill_jsons_add_d_m_api_version-members.html index 6ff0152d14..d706fe38fa 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_kill_jsons_add_d_m_api_version-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_kill_jsons_add_d_m_api_version-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_kill_jsons_add_d_m_api_version.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_kill_jsons_add_d_m_api_version.html index 7ef8dea8bc..e208b9bf53 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_kill_jsons_add_d_m_api_version.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_kill_jsons_add_d_m_api_version.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_limits_on_chat-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_limits_on_chat-members.html index 2ed01a502c..63eb42067d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_limits_on_chat-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_limits_on_chat-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_limits_on_chat.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_limits_on_chat.html index 59d98f40fc..bd6bd948be 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_limits_on_chat.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_limits_on_chat.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_nullable_and_foreign_key_cleanup-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_nullable_and_foreign_key_cleanup-members.html index 19a873be4f..9b7e6064b9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_nullable_and_foreign_key_cleanup-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_nullable_and_foreign_key_cleanup-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_nullable_and_foreign_key_cleanup.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_nullable_and_foreign_key_cleanup.html index a32860b26a..990979f96d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_nullable_and_foreign_key_cleanup.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_nullable_and_foreign_key_cleanup.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_reattach_compile_job_required-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_reattach_compile_job_required-members.html index 211b178a82..fdf4e67fd6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_reattach_compile_job_required-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_reattach_compile_job_required-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_reattach_compile_job_required.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_reattach_compile_job_required.html index abc81e3ba5..623f7d9995 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_reattach_compile_job_required.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_reattach_compile_job_required.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_remove_soft_columns-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_remove_soft_columns-members.html index 58f29e3cb2..b5a0421366 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_remove_soft_columns-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_remove_soft_columns-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_remove_soft_columns.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_remove_soft_columns.html index 2762b53ba2..2802a2c2cb 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_remove_soft_columns.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_remove_soft_columns.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_toggle_testmerge_comments-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_toggle_testmerge_comments-members.html index a49da315ce..67d6563b91 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_toggle_testmerge_comments-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_toggle_testmerge_comments-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_toggle_testmerge_comments.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_toggle_testmerge_comments.html index 944df7e001..9461eddd94 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_toggle_testmerge_comments.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_toggle_testmerge_comments.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_tons_of_validation-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_tons_of_validation-members.html index 183627eb23..6303359719 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_tons_of_validation-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_tons_of_validation-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_tons_of_validation.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_tons_of_validation.html index d20ea5ca70..0e3c463c43 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_tons_of_validation.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_m_y_tons_of_validation.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_my_sql_database_context_model_snapshot-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_my_sql_database_context_model_snapshot-members.html index 5119beea60..8471ae7160 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_my_sql_database_context_model_snapshot-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_my_sql_database_context_model_snapshot-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_my_sql_database_context_model_snapshot.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_my_sql_database_context_model_snapshot.html index 8ee97eb052..8c9062c427 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_my_sql_database_context_model_snapshot.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_my_sql_database_context_model_snapshot.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_p_g_create-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_p_g_create-members.html index f882983164..802f8e52c8 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_p_g_create-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_p_g_create-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_p_g_create.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_p_g_create.html index 11b2fef0b8..2561edff8e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_p_g_create.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_p_g_create.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_add_heartbeat-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_add_heartbeat-members.html index e97249ae4e..2e9eec3cce 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_add_heartbeat-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_add_heartbeat-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_add_heartbeat.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_add_heartbeat.html index bda93a4f48..2d0abb2fc5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_add_heartbeat.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_add_heartbeat.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_rebuild-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_rebuild-members.html index f7e20ff44d..8917e95794 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_rebuild-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_rebuild-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_rebuild.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_rebuild.html index fdbb9a2b43..7a74f5bf1c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_rebuild.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_rebuild.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_remove_soft_columns-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_remove_soft_columns-members.html index 1278c3b011..0773948f3b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_remove_soft_columns-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_remove_soft_columns-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_remove_soft_columns.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_remove_soft_columns.html index 4c9c738bc9..510d54dcc4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_remove_soft_columns.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_s_l_remove_soft_columns.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sql_server_database_context_model_snapshot-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sql_server_database_context_model_snapshot-members.html index d7d8890d24..c0c025a7fc 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sql_server_database_context_model_snapshot-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sql_server_database_context_model_snapshot-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sql_server_database_context_model_snapshot.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sql_server_database_context_model_snapshot.html index 3b75d57dd5..a40b7ec6a6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sql_server_database_context_model_snapshot.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sql_server_database_context_model_snapshot.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sqlite_database_context_model_snapshot-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sqlite_database_context_model_snapshot-members.html index d09d555f48..13fd158fd3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sqlite_database_context_model_snapshot-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sqlite_database_context_model_snapshot-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sqlite_database_context_model_snapshot.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sqlite_database_context_model_snapshot.html index 5529d7d40b..6924f98685 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sqlite_database_context_model_snapshot.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations_1_1_sqlite_database_context_model_snapshot.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_my_sql_database_context-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_my_sql_database_context-members.html index 8380375c66..c00723ab24 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_my_sql_database_context-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_my_sql_database_context-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_my_sql_database_context.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_my_sql_database_context.html index 31c864d550..0c17a7eb1b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_my_sql_database_context.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_my_sql_database_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_postgres_sql_database_context-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_postgres_sql_database_context-members.html index fc1e3dd512..49ce05ecd7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_postgres_sql_database_context-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_postgres_sql_database_context-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_postgres_sql_database_context.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_postgres_sql_database_context.html index 4cfee139ff..6582f3b461 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_postgres_sql_database_context.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_postgres_sql_database_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sql_server_database_context-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sql_server_database_context-members.html index 0edc63e191..60ba27e341 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sql_server_database_context-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sql_server_database_context-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sql_server_database_context.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sql_server_database_context.html index 82c5f9e7c9..dee1bf7831 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sql_server_database_context.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sql_server_database_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sqlite_database_context-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sqlite_database_context-members.html index 0633352efc..eb3c79eff5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sqlite_database_context-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sqlite_database_context-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sqlite_database_context.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sqlite_database_context.html index a531b1f7bb..f132b9520d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sqlite_database_context.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_sqlite_database_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_application_builder_extensions-members.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_application_builder_extensions-members.html index a1e3bf458d..99c19c8592 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_application_builder_extensions-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_application_builder_extensions-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -103,8 +103,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); GetLogger(HttpContext httpContext)Tgstation.Server.Host.Extensions.ApplicationBuilderExtensionsprivatestatic UseCancelledRequestSuppression(this IApplicationBuilder applicationBuilder)Tgstation.Server.Host.Extensions.ApplicationBuilderExtensionsstatic UseDbConflictHandling(this IApplicationBuilder applicationBuilder)Tgstation.Server.Host.Extensions.ApplicationBuilderExtensionsstatic - UseRequestCounting(this IApplicationBuilder applicationBuilder)Tgstation.Server.Host.Extensions.ApplicationBuilderExtensionsstatic - UseServerErrorHandling(this IApplicationBuilder applicationBuilder)Tgstation.Server.Host.Extensions.ApplicationBuilderExtensionsstatic + UseServerErrorHandling(this IApplicationBuilder applicationBuilder)Tgstation.Server.Host.Extensions.ApplicationBuilderExtensionsstatic
- -

Add middleware for logging the request number.

-
Parameters
- - -
applicationBuilderThe IApplicationBuilder to configure.
-
-
- -

Definition at line 115 of file ApplicationBuilderExtensions.cs.

-
116  {
117  if (applicationBuilder == null)
118  throw new ArgumentNullException(nameof(applicationBuilder));
119 
120  ulong requestCounter = 0;
121 
122  applicationBuilder.Use(async (context, next) =>
123  {
124  var logger = GetLogger(context);
125  var requestNumber = ++requestCounter;
126  logger.LogTrace("Starting request #{0}...", requestNumber);
127  try
128  {
129  await next().ConfigureAwait(false);
130  }
131  finally
132  {
133  logger.LogTrace("Finished request #{0}", requestNumber);
134  }
135  });
136  }
static ILogger GetLogger(HttpContext httpContext)
Gets a ILogger from a given httpContext
-
-
-
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_chat_channel_extensions-members.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_chat_channel_extensions-members.html index ee0da31fde..4173fa13b5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_chat_channel_extensions-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_chat_channel_extensions-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_chat_channel_extensions.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_chat_channel_extensions.html index 94c810496c..2777015c6c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_chat_channel_extensions.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_chat_channel_extensions.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_database_context_extensions-members.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_database_context_extensions-members.html index 89e24abddc..45146d96ea 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_database_context_extensions-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_database_context_extensions-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_database_context_extensions.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_database_context_extensions.html index dbeb17224b..3b24424b29 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_database_context_extensions.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_database_context_extensions.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_host_builder_extensions-members.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_host_builder_extensions-members.html index bd4458e42d..b3a1319d44 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_host_builder_extensions-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_host_builder_extensions-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_host_builder_extensions.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_host_builder_extensions.html index 83f8247049..07a9cfed4e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_host_builder_extensions.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_host_builder_extensions.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions-members.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions-members.html index f0081e5172..5b08f4e449 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions.html index 71fd5cfde0..da33a7a431 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_service_collection_extensions.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_task_extensions-members.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_task_extensions-members.html index 6f6bcb87ee..4c23f9342b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_task_extensions-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_task_extensions-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_task_extensions.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_task_extensions.html index 3aa6aa2a92..86260abf00 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_task_extensions.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_task_extensions.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_web_host_builder_extensions-members.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_web_host_builder_extensions-members.html index 057dc0a1c0..bd2611e664 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_web_host_builder_extensions-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_web_host_builder_extensions-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_web_host_builder_extensions.html b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_web_host_builder_extensions.html index a642fdbfec..558f080b35 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_web_host_builder_extensions.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_web_host_builder_extensions.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_console-members.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_console-members.html index 7994c97cf6..716defb378 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_console-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_console-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_console.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_console.html index b1a382311c..b95c2a123a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_console.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_console.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_default_i_o_manager-members.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_default_i_o_manager-members.html index 56b8655cd0..6ca9e47b0e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_default_i_o_manager-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_default_i_o_manager-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_default_i_o_manager.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_default_i_o_manager.html index 74a0176a48..003fd049cc 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_default_i_o_manager.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_default_i_o_manager.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_post_write_handler-members.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_post_write_handler-members.html index ada336e419..152a0a98d0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_post_write_handler-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_post_write_handler-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_post_write_handler.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_post_write_handler.html index 2a910614fb..fa0d42e49b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_post_write_handler.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_post_write_handler.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_symlink_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_symlink_factory-members.html index e477af80c1..016f523c14 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_symlink_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_symlink_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_symlink_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_symlink_factory.html index 93b5aa018b..657def248c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_symlink_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_posix_symlink_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_resolving_i_o_manager-members.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_resolving_i_o_manager-members.html index 3d2e897c56..de610b7e02 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_resolving_i_o_manager-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_resolving_i_o_manager-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_resolving_i_o_manager.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_resolving_i_o_manager.html index 4a80cbecbe..85ea3da29d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_resolving_i_o_manager.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_resolving_i_o_manager.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_synchronous_i_o_manager-members.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_synchronous_i_o_manager-members.html index a203c2aa46..0c6fd185c8 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_synchronous_i_o_manager-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_synchronous_i_o_manager-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_synchronous_i_o_manager.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_synchronous_i_o_manager.html index 184578f736..b6a7d67918 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_synchronous_i_o_manager.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_synchronous_i_o_manager.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_post_write_handler-members.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_post_write_handler-members.html index 0ac6ba43dc..fe285396d2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_post_write_handler-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_post_write_handler-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_post_write_handler.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_post_write_handler.html index 6b5f266dd3..08cb21018d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_post_write_handler.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_post_write_handler.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_symlink_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_symlink_factory-members.html index dbbe88b873..e927f15596 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_symlink_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_symlink_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_symlink_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_symlink_factory.html index 35d266d08c..810d00c2d0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_symlink_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_windows_symlink_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_exception-members.html b/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_exception-members.html index 482f2fa357..61dc106f84 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_exception-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_exception.html b/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_exception.html index f3af17d4a4..a3e65ab1fe 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_exception.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_handler-members.html b/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_handler-members.html index 3b77e0d618..065a23156b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_handler-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_handler-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_handler.html b/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_handler.html index 49f63b346d..29beb3b9a9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_handler.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_handler.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager-members.html b/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager-members.html index 55ef873753..9b0c0dd9c6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager.html b/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager.html index 6203588e38..a99853405f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_migrations_1_1_postgres_sql_database_context_model_snapshot-members.html b/class_tgstation_1_1_server_1_1_host_1_1_migrations_1_1_postgres_sql_database_context_model_snapshot-members.html index 2c7bdfa7a9..98e0d49321 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_migrations_1_1_postgres_sql_database_context_model_snapshot-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_migrations_1_1_postgres_sql_database_context_model_snapshot-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_migrations_1_1_postgres_sql_database_context_model_snapshot.html b/class_tgstation_1_1_server_1_1_host_1_1_migrations_1_1_postgres_sql_database_context_model_snapshot.html index 133bbe802b..1fd84ae46f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_migrations_1_1_postgres_sql_database_context_model_snapshot.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_migrations_1_1_postgres_sql_database_context_model_snapshot.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_bot-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_bot-members.html index bec0730252..27ec13d3e4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_bot-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_bot-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_bot.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_bot.html index 4f6eeb1af5..c9d6288d19 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_bot.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_bot.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_channel-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_channel-members.html index 476fe0cfdb..d4da6a3ca6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_channel-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_channel-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_channel.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_channel.html index 01443c2756..123507d5ec 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_channel.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_chat_channel.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_compile_job-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_compile_job-members.html index e35961f837..a667d03459 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_compile_job-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_compile_job-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_compile_job.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_compile_job.html index e74fe20575..525d272154 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_compile_job.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_compile_job.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -340,7 +340,7 @@ Properties

Definition at line 13 of file CompileJob.cs.

-

Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob().

+

Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.FromCompileJob().

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_daemon_settings-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_daemon_settings-members.html index 6756115c31..4124bd7849 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_daemon_settings-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_daemon_settings-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -102,11 +102,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); - - - - - + + + + + diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_daemon_settings.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_daemon_settings.html index e1ffce6b54..73d2383c2f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_daemon_settings.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_daemon_settings.html @@ -25,7 +25,7 @@ @@ -160,9 +160,9 @@ Properties - - - + + +
AllowWebClientTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
AutoStartTgstation.Server.Api.Models.Internal.DreamDaemonSettings
HeartbeatSecondsTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
IdTgstation.Server.Host.Models.DreamDaemonSettings
InstanceTgstation.Server.Host.Models.DreamDaemonSettings
InstanceIdTgstation.Server.Host.Models.DreamDaemonSettings
Match(DreamDaemonLaunchParameters otherParameters)Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
CanApplyWithoutReboot(DreamDaemonLaunchParameters otherParameters)Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
HeartbeatSecondsTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
IdTgstation.Server.Host.Models.DreamDaemonSettings
InstanceTgstation.Server.Host.Models.DreamDaemonSettings
InstanceIdTgstation.Server.Host.Models.DreamDaemonSettings
PrimaryPortTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
SecondaryPortTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
SecurityLevelTgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite

Additional Inherited Members

- Public Member Functions inherited from Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters
bool Match (DreamDaemonLaunchParameters otherParameters)
 Check if we match a given set of otherParameters More...
 
bool CanApplyWithoutReboot (DreamDaemonLaunchParameters otherParameters)
 Check if we match a given set of otherParameters . StartupTimeout is excluded. More...
 

Detailed Description

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_maker_settings-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_maker_settings-members.html index dcc59a1b60..24299a6045 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_maker_settings-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_maker_settings-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_maker_settings.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_maker_settings.html index 3055fd2f37..eec92ffd09 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_maker_settings.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dream_maker_settings.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information-members.html index 2fbaf63fca..1f18a46cf4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information.html index ba2166f608..a4b692984f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information_base-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information_base-members.html index 394fb231b2..cebe715593 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information_base-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information_base-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information_base.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information_base.html index 2c99569d58..0fe15dc523 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information_base.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_dual_reattach_information_base.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance-members.html index bc7bc00292..6bb4a8816f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance.html index 39c303929f..3932e50426 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance_user-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance_user-members.html index da7e716fa0..f18c296166 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance_user-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance_user-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance_user.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance_user.html index fc2b1451ad..303239c165 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance_user.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_instance_user.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_job-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_job-members.html index 45d998173a..ffc21c4ec9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_job-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_job-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_job.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_job.html index d05be6c711..72d598638a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_job.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_job.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information-members.html index 8f00de5418..889d7722fc 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information.html index 58dd99a10c..35427ddca6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base-members.html index dc90611074..718f28fc44 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base.html index b22142bd41..907f7cd097 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_repository_settings-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_repository_settings-members.html index 4a197ebc93..b5d3920516 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_repository_settings-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_repository_settings-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_repository_settings.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_repository_settings.html index 56c86e261a..e3ac607f5c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_repository_settings.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_repository_settings.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_rev_info_test_merge-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_rev_info_test_merge-members.html index 28097961a8..a5847cf8e6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_rev_info_test_merge-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_rev_info_test_merge-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_rev_info_test_merge.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_rev_info_test_merge.html index 89ac0bd77d..81b5a97cf9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_rev_info_test_merge.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_rev_info_test_merge.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_revision_information-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_revision_information-members.html index cb9f508c5c..20bf0cb7ef 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_revision_information-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_revision_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_revision_information.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_revision_information.html index f70e530e66..1d6e3991f5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_revision_information.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_revision_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_test_merge-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_test_merge-members.html index 5be9f34672..3761ec7662 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_test_merge-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_test_merge-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_test_merge.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_test_merge.html index bb45eb5fa3..b709d20159 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_test_merge.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_test_merge.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_user-members.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_user-members.html index adbde2fb56..1e66120bba 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_user-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_user-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_user.html b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_user.html index b9b39a01e2..dea0ad65a5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_user.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_models_1_1_user.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_native_methods-members.html b/class_tgstation_1_1_server_1_1_host_1_1_native_methods-members.html index 64ba5c9ac2..a146a8d95a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_native_methods-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_native_methods-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_native_methods.html b/class_tgstation_1_1_server_1_1_host_1_1_native_methods.html index 0f702f4b6a..0c81ac5657 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_native_methods.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_native_methods.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_program-members.html b/class_tgstation_1_1_server_1_1_host_1_1_program-members.html index ed45b4c9d8..71f238067a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_program-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_program-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_program.html b/class_tgstation_1_1_server_1_1_host_1_1_program.html index 71dedb3aed..dbe4478954 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_program.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_program.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context-members.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context-members.html index cf6c28471b..92e8ff7b31 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context.html index 1ee5472de9..6154a2655f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context_factory-members.html index db7b223c29..41c7a520d9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context_factory.html index 8b04e836b6..235f1da4ee 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_claims_injector-members.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_claims_injector-members.html index a42c0bc1ef..f9d92ad70e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_claims_injector-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_claims_injector-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_claims_injector.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_claims_injector.html index c4896ee5c1..a2d32a738d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_claims_injector.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_claims_injector.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_cryptography_suite-members.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_cryptography_suite-members.html index e9ffc70ca8..4e3c2b5093 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_cryptography_suite-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_cryptography_suite-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_cryptography_suite.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_cryptography_suite.html index dc273fe9b8..443ce82236 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_cryptography_suite.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_cryptography_suite.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache-members.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache-members.html index 1e57e4b204..ab692eb78f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache.html index 0290d2e910..7aa0cadacd 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache_object-members.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache_object-members.html index 4482e9b9c3..a09b1948e2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache_object-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache_object-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache_object.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache_object.html index 84dc887bfa..7aba3ffb2c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache_object.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache_object.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity-members.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity-members.html index b11d0ae391..9b53d6b028 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity.html index e97f798d89..a74a1b9a5a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity_factory-members.html index 87f5c14e74..09d23ece7a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity_factory.html index b882840df2..d491b6dbf6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory-members.html index 24c2e9bb7a..820d23ac78 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory.html index 0477e444aa..30a7c2a66d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity-members.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity-members.html index ab6e74706a..419a510332 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity.html index fc08c005d8..8cc9cfb689 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity_factory-members.html index 16f42567b4..e54444e4a6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity_factory.html index 7cddd251e6..89be07a4ae 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_server-members.html b/class_tgstation_1_1_server_1_1_host_1_1_server-members.html index 9363a2fc39..c5c94eeda8 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_server-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_server-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_server.html b/class_tgstation_1_1_server_1_1_host_1_1_server.html index ac74a51823..dae07a7a2c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_server.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_server.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_server_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_server_factory-members.html index 2ccc11abe6..12bd77f8cf 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_server_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_server_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_server_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_server_factory.html index 4e53e66bc1..e7cbc5aa25 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_server_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_server_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_program-members.html b/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_program-members.html index a3914b1c37..374285fe95 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_program-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_program-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_program.html b/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_program.html index 241fc0570b..7b874ddd1f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_program.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_program.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_server_service-members.html b/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_server_service-members.html index 670bb80111..b652f29b5c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_server_service-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_server_service-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_server_service.html b/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_server_service.html index a3fc2f0370..92418cb817 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_server_service.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_service_1_1_server_service.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_post_setup_services-members.html b/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_post_setup_services-members.html index 6246292f39..326ec6422a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_post_setup_services-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_post_setup_services-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_post_setup_services.html b/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_post_setup_services.html index 03d5da8fdb..0d07c92232 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_post_setup_services.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_post_setup_services.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_application-members.html b/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_application-members.html index 3123ca3240..c341f2ac9f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_application-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_application-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_application.html b/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_application.html index 92ffd10228..65833b1f80 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_application.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_application.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_wizard-members.html b/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_wizard-members.html index 1241be2507..573d8b8119 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_wizard-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_wizard-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_wizard.html b/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_wizard.html index 00ff80f5b7..81e3268fb1 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_wizard.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_wizard.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_assembly_information_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_assembly_information_provider-members.html index 16a47470a0..17061ef4fa 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_assembly_information_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_assembly_information_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_assembly_information_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_assembly_information_provider.html index b787cb6eaf..df8170efce 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_assembly_information_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_assembly_information_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_platform_identifier-members.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_platform_identifier-members.html index c0b2e9920d..2ab392485c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_platform_identifier-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_platform_identifier-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_platform_identifier.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_platform_identifier.html index 805335d836..616d19f96b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_platform_identifier.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_platform_identifier.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_network_prompt_reaper-members.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_network_prompt_reaper-members.html index a288aad222..35a6e6bdff 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_network_prompt_reaper-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_network_prompt_reaper-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_network_prompt_reaper.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_network_prompt_reaper.html index 76ba832ae8..0b989f0897 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_network_prompt_reaper.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_network_prompt_reaper.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_process_features-members.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_process_features-members.html index c6e7208f47..d08cf52dc5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_process_features-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_process_features-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_process_features.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_process_features.html index e05b27e364..db87d12329 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_process_features.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_posix_process_features.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process-members.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process-members.html index 7228889a78..4e72360ec0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process.html index dde3f5f0bc..245054cbf7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor-members.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor-members.html index 646475cd8a..ea919ed460 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor.html index 1310bcaf67..bd3e1f4f90 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_program_shutdown_token_source-members.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_program_shutdown_token_source-members.html index 7cc9c2064e..ce796b3d10 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_program_shutdown_token_source-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_program_shutdown_token_source-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_program_shutdown_token_source.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_program_shutdown_token_source.html index 10ac21c2ba..ff99d5d73e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_program_shutdown_token_source.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_program_shutdown_token_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper-members.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper-members.html index 0703149073..a8089cf8ae 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper.html index f4e0a6f8c6..9f52bf5c64 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_process_features-members.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_process_features-members.html index 309160be62..fbc89a7ae6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_process_features-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_process_features-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_process_features.html b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_process_features.html index 7a498edac6..5083f3d2f7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_process_features.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_process_features.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog-members.html b/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog-members.html index 2b288a3914..7ce0ecc2da 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog.html b/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog.html index f90b94e8aa..116869895f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog_factory-members.html index ca1b4cdd1e..5728c08cea 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog_factory.html index 93890b6759..a05eb640b2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/classes.html b/classes.html index bdc2fad143..e9eb883d5b 100644 --- a/classes.html +++ b/classes.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_02f69155ced6ccca99a24744a5273903.html b/dir_02f69155ced6ccca99a24744a5273903.html index e9e14b1184..e21d17e740 100644 --- a/dir_02f69155ced6ccca99a24744a5273903.html +++ b/dir_02f69155ced6ccca99a24744a5273903.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_08963d262fa9e27215dce7b7c6e97f1b.html b/dir_08963d262fa9e27215dce7b7c6e97f1b.html index 28162ce2f8..5ebed637e1 100644 --- a/dir_08963d262fa9e27215dce7b7c6e97f1b.html +++ b/dir_08963d262fa9e27215dce7b7c6e97f1b.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_0de875c2ee7edd4009e892c5045f7b3a.html b/dir_0de875c2ee7edd4009e892c5045f7b3a.html index 3ac36baf4b..df585cedd8 100644 --- a/dir_0de875c2ee7edd4009e892c5045f7b3a.html +++ b/dir_0de875c2ee7edd4009e892c5045f7b3a.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_0f5073360b9ba6d1522457c65eebe36a.html b/dir_0f5073360b9ba6d1522457c65eebe36a.html index 351202c2d7..07e4df8fde 100644 --- a/dir_0f5073360b9ba6d1522457c65eebe36a.html +++ b/dir_0f5073360b9ba6d1522457c65eebe36a.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_1cebbc1bce26b60bfb2ee26c80f86b02.html b/dir_1cebbc1bce26b60bfb2ee26c80f86b02.html index eaa4a16747..6ed685f241 100644 --- a/dir_1cebbc1bce26b60bfb2ee26c80f86b02.html +++ b/dir_1cebbc1bce26b60bfb2ee26c80f86b02.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_222f69c34ae6290dff005cdc719e0a43.html b/dir_222f69c34ae6290dff005cdc719e0a43.html index 91882eb7cf..837cde6ce0 100644 --- a/dir_222f69c34ae6290dff005cdc719e0a43.html +++ b/dir_222f69c34ae6290dff005cdc719e0a43.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_27a421f75b087b80bd0b7a1dbec733b4.html b/dir_27a421f75b087b80bd0b7a1dbec733b4.html index f24c94a0a1..01264571a7 100644 --- a/dir_27a421f75b087b80bd0b7a1dbec733b4.html +++ b/dir_27a421f75b087b80bd0b7a1dbec733b4.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_2ea2465064f3ff030c6dd6700a328d91.html b/dir_2ea2465064f3ff030c6dd6700a328d91.html index c50996f17b..ec58541656 100644 --- a/dir_2ea2465064f3ff030c6dd6700a328d91.html +++ b/dir_2ea2465064f3ff030c6dd6700a328d91.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_34761767c1c3cd212f9d2f80ea0828a8.html b/dir_34761767c1c3cd212f9d2f80ea0828a8.html index 41ec8b8731..1a092389cb 100644 --- a/dir_34761767c1c3cd212f9d2f80ea0828a8.html +++ b/dir_34761767c1c3cd212f9d2f80ea0828a8.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_38cec1532eaed7aa1de0b599a76e3e80.html b/dir_38cec1532eaed7aa1de0b599a76e3e80.html index 40e5b0d9b5..1703c45244 100644 --- a/dir_38cec1532eaed7aa1de0b599a76e3e80.html +++ b/dir_38cec1532eaed7aa1de0b599a76e3e80.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_3a3ab2f663730d5bed7026cf41734e8a.html b/dir_3a3ab2f663730d5bed7026cf41734e8a.html index 43220ed2c8..4a1a4fcce4 100644 --- a/dir_3a3ab2f663730d5bed7026cf41734e8a.html +++ b/dir_3a3ab2f663730d5bed7026cf41734e8a.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_3d220027e29e19c608b6d51ce3029c32.html b/dir_3d220027e29e19c608b6d51ce3029c32.html index 348ae5ffcc..eb00bc4a3c 100644 --- a/dir_3d220027e29e19c608b6d51ce3029c32.html +++ b/dir_3d220027e29e19c608b6d51ce3029c32.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_4ddbd20a555bd1f3bf9569744c8989cc.html b/dir_4ddbd20a555bd1f3bf9569744c8989cc.html index 98fef69d96..c08171225f 100644 --- a/dir_4ddbd20a555bd1f3bf9569744c8989cc.html +++ b/dir_4ddbd20a555bd1f3bf9569744c8989cc.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_5ae0a4770cfe9bc511dad7df7deabb23.html b/dir_5ae0a4770cfe9bc511dad7df7deabb23.html index 9bf1905fac..8ec7af1990 100644 --- a/dir_5ae0a4770cfe9bc511dad7df7deabb23.html +++ b/dir_5ae0a4770cfe9bc511dad7df7deabb23.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_5d46d0c3fd1cac5ce1ea23751ad25792.html b/dir_5d46d0c3fd1cac5ce1ea23751ad25792.html index 45d210404f..6757149603 100644 --- a/dir_5d46d0c3fd1cac5ce1ea23751ad25792.html +++ b/dir_5d46d0c3fd1cac5ce1ea23751ad25792.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_5e0b464d3b4be546c63c5188ffeb96e4.html b/dir_5e0b464d3b4be546c63c5188ffeb96e4.html index 9d1a719197..9d0e94591c 100644 --- a/dir_5e0b464d3b4be546c63c5188ffeb96e4.html +++ b/dir_5e0b464d3b4be546c63c5188ffeb96e4.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_61d7974a657c30011f457b376d274ee7.html b/dir_61d7974a657c30011f457b376d274ee7.html index c34e159b41..7afc13bdd5 100644 --- a/dir_61d7974a657c30011f457b376d274ee7.html +++ b/dir_61d7974a657c30011f457b376d274ee7.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html index d6649913d0..e7f5b56090 100644 --- a/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_6a8d19239e99965ecc1391ebd049009a.html b/dir_6a8d19239e99965ecc1391ebd049009a.html index 10cc2318f1..0c4c9478d9 100644 --- a/dir_6a8d19239e99965ecc1391ebd049009a.html +++ b/dir_6a8d19239e99965ecc1391ebd049009a.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_6c60df807dd2523776d391746c262b4d.html b/dir_6c60df807dd2523776d391746c262b4d.html index 9137932ce9..fe77e447a1 100644 --- a/dir_6c60df807dd2523776d391746c262b4d.html +++ b/dir_6c60df807dd2523776d391746c262b4d.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_6d5d151b7baf54e07e6b0a3941fbad55.html b/dir_6d5d151b7baf54e07e6b0a3941fbad55.html index ed5bc0c826..040eb69d7e 100644 --- a/dir_6d5d151b7baf54e07e6b0a3941fbad55.html +++ b/dir_6d5d151b7baf54e07e6b0a3941fbad55.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_7a3fd032a1362a6005a1fc9227a8dd86.html b/dir_7a3fd032a1362a6005a1fc9227a8dd86.html index 8bb2144c23..f56f40835c 100644 --- a/dir_7a3fd032a1362a6005a1fc9227a8dd86.html +++ b/dir_7a3fd032a1362a6005a1fc9227a8dd86.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_7cd79c49f3850abc2141fa4adfdd1950.html b/dir_7cd79c49f3850abc2141fa4adfdd1950.html index 5f5f368338..98b3210dd6 100644 --- a/dir_7cd79c49f3850abc2141fa4adfdd1950.html +++ b/dir_7cd79c49f3850abc2141fa4adfdd1950.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_860acef72838dce8d3d54c8f98bc464b.html b/dir_860acef72838dce8d3d54c8f98bc464b.html index e444f12788..c4e956b280 100644 --- a/dir_860acef72838dce8d3d54c8f98bc464b.html +++ b/dir_860acef72838dce8d3d54c8f98bc464b.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_935188fa6520fafdbdb4920911a885bd.html b/dir_935188fa6520fafdbdb4920911a885bd.html index 953f26ad26..1da55faf90 100644 --- a/dir_935188fa6520fafdbdb4920911a885bd.html +++ b/dir_935188fa6520fafdbdb4920911a885bd.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_9826fb2d31585a830723e6d7089b5d0e.html b/dir_9826fb2d31585a830723e6d7089b5d0e.html index fd267b421d..248b521a60 100644 --- a/dir_9826fb2d31585a830723e6d7089b5d0e.html +++ b/dir_9826fb2d31585a830723e6d7089b5d0e.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_a01d946a2e1b048dc542232ffcdcf572.html b/dir_a01d946a2e1b048dc542232ffcdcf572.html index ddce6f51f7..8ecd5a358b 100644 --- a/dir_a01d946a2e1b048dc542232ffcdcf572.html +++ b/dir_a01d946a2e1b048dc542232ffcdcf572.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_a44a562b5a12ef1c8495ac1a63e915ea.html b/dir_a44a562b5a12ef1c8495ac1a63e915ea.html index 7c71c6e907..84e9ee3b19 100644 --- a/dir_a44a562b5a12ef1c8495ac1a63e915ea.html +++ b/dir_a44a562b5a12ef1c8495ac1a63e915ea.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_a536e49cdf631f66733cf2c9791144ce.html b/dir_a536e49cdf631f66733cf2c9791144ce.html index 295932d6bb..6f6f1f4751 100644 --- a/dir_a536e49cdf631f66733cf2c9791144ce.html +++ b/dir_a536e49cdf631f66733cf2c9791144ce.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_af336dd70489e812a924e1a8fba73854.html b/dir_af336dd70489e812a924e1a8fba73854.html index 41c666a06a..ae330a4ddb 100644 --- a/dir_af336dd70489e812a924e1a8fba73854.html +++ b/dir_af336dd70489e812a924e1a8fba73854.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_b6324197f7ac56e30d6189c3a45eec56.html b/dir_b6324197f7ac56e30d6189c3a45eec56.html index a509570f9c..d728920005 100644 --- a/dir_b6324197f7ac56e30d6189c3a45eec56.html +++ b/dir_b6324197f7ac56e30d6189c3a45eec56.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_be6161819238d55fa660c07ade960e53.html b/dir_be6161819238d55fa660c07ade960e53.html index d3db4b663a..df4c7d57d0 100644 --- a/dir_be6161819238d55fa660c07ade960e53.html +++ b/dir_be6161819238d55fa660c07ade960e53.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_c2c4d4ee47e55233c6ea5db8b96422c6.html b/dir_c2c4d4ee47e55233c6ea5db8b96422c6.html index 97538bd6d3..8fdfa99953 100644 --- a/dir_c2c4d4ee47e55233c6ea5db8b96422c6.html +++ b/dir_c2c4d4ee47e55233c6ea5db8b96422c6.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_c5451d9d233744a5b09a29938f0cda9a.html b/dir_c5451d9d233744a5b09a29938f0cda9a.html index 97fde75291..08353e9001 100644 --- a/dir_c5451d9d233744a5b09a29938f0cda9a.html +++ b/dir_c5451d9d233744a5b09a29938f0cda9a.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_d822dd0b4e53d3dc95c9c470fa54d3d2.html b/dir_d822dd0b4e53d3dc95c9c470fa54d3d2.html index 8203f7ed4b..2337e27ca0 100644 --- a/dir_d822dd0b4e53d3dc95c9c470fa54d3d2.html +++ b/dir_d822dd0b4e53d3dc95c9c470fa54d3d2.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_e2f0549e5ba528b36fd9348e214a8e4f.html b/dir_e2f0549e5ba528b36fd9348e214a8e4f.html index a7f2ea07ec..d4f2d4085a 100644 --- a/dir_e2f0549e5ba528b36fd9348e214a8e4f.html +++ b/dir_e2f0549e5ba528b36fd9348e214a8e4f.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_f0d41009ce252337feb2b68822c4cfba.html b/dir_f0d41009ce252337feb2b68822c4cfba.html index d8c3c2003e..792784f624 100644 --- a/dir_f0d41009ce252337feb2b68822c4cfba.html +++ b/dir_f0d41009ce252337feb2b68822c4cfba.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_f2a82faa4c4beef364292694cefca86d.html b/dir_f2a82faa4c4beef364292694cefca86d.html index 42398dc94b..5edf9e5be0 100644 --- a/dir_f2a82faa4c4beef364292694cefca86d.html +++ b/dir_f2a82faa4c4beef364292694cefca86d.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_f5938f3ae6ef69fa99e4683082cea79c.html b/dir_f5938f3ae6ef69fa99e4683082cea79c.html index 13fa8724ab..ace40065b5 100644 --- a/dir_f5938f3ae6ef69fa99e4683082cea79c.html +++ b/dir_f5938f3ae6ef69fa99e4683082cea79c.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/dir_f90d62caf45952f011371f45080cf0bd.html b/dir_f90d62caf45952f011371f45080cf0bd.html index 96f62d46d2..7a68e5aa15 100644 --- a/dir_f90d62caf45952f011371f45080cf0bd.html +++ b/dir_f90d62caf45952f011371f45080cf0bd.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/features.html b/features.html index 3d52a40737..66dce23af5 100644 --- a/features.html +++ b/features.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/files.html b/files.html index 71ab7a17df..16ed0315f7 100644 --- a/files.html +++ b/files.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/functions.html b/functions.html index 852abc4ac1..0a6f884450 100644 --- a/functions.html +++ b/functions.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/functions_0x7e.html b/functions_0x7e.html index 507743c894..2b23f30daa 100644 --- a/functions_0x7e.html +++ b/functions_0x7e.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/functions_b.html b/functions_b.html index 29362b60a8..9783838030 100644 --- a/functions_b.html +++ b/functions_b.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
diff --git a/functions_c.html b/functions_c.html index 038360eaa6..e072268854 100644 --- a/functions_c.html +++ b/functions_c.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.3.0 +  4.3.1
The /tg/station 13 server suite
@@ -146,6 +146,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • CalculateExpectedDeploymentTime() : Tgstation.Server.Host.Components.Deployment.DreamMaker
  • +
  • CanApplyWithoutReboot() +: Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters +
  • Cancel() : Tgstation.Server.Client.Components.IJobsClient , Tgstation.Server.Client.Components.JobsClient @@ -190,11 +193,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • CanCreateSymlinks : Tgstation.Server.Host.Security.ISystemIdentity , Tgstation.Server.Host.Security.PosixSystemIdentity -, Tgstation.Server.Host.Security.WindowsSystemIdentity
  • canCreateSymlinks : Tgstation.Server.Host.Security.WindowsSystemIdentity
  • +
  • CanCreateSymlinks +: Tgstation.Server.Host.Security.WindowsSystemIdentity +
  • CanonicalizeName() : Tgstation.Server.Host.Models.User
  • @@ -556,7 +561,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • ConfigurationFile : Tgstation.Server.Api.Routes -, Tgstation.Server.Client.Components.ConfigurationClient +, Tgstation.Server.Client.Components.ConfigurationClient
  • ConfigurationRights : Tgstation.Server.Api.Models.InstanceUser @@ -590,7 +595,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , Tgstation.Server.Host.Setup.SetupApplication
  • ConflictException() -: Tgstation.Server.Client.ConflictException +: Tgstation.Server.Client.ConflictException
  • Connect() : Tgstation.Server.Host.Components.Chat.Providers.DiscordProvider @@ -669,12 +674,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , Tgstation.Server.Host.Controllers.UserController
  • Create< TBody, TResult >() -: Tgstation.Server.Client.ApiClient +: Tgstation.Server.Client.ApiClient , Tgstation.Server.Client.IApiClient
  • Create< TResult >() : Tgstation.Server.Client.ApiClient -, Tgstation.Server.Client.IApiClient +, Tgstation.Server.Client.IApiClient
  • CreateApiClient() : Tgstation.Server.Client.ApiClientFactory @@ -694,7 +699,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • CreateClient() : Tgstation.Server.Client.IInstanceManagerClient , Tgstation.Server.Client.InstanceManagerClient -, Tgstation.Server.Host.Core.GitHubClientFactory +, Tgstation.Server.Host.Core.GitHubClientFactory , Tgstation.Server.Host.Core.IGitHubClientFactory
  • CreateConnection() @@ -794,8 +799,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : Tgstation.Server.Host.NativeMethods
  • CreateSystemIdentity() -: Tgstation.Server.Host.Security.ISystemIdentityFactory -, Tgstation.Server.Host.Security.PosixSystemIdentityFactory +: Tgstation.Server.Host.Security.ISystemIdentityFactory +, Tgstation.Server.Host.Security.PosixSystemIdentityFactory , Tgstation.Server.Host.Security.WindowsSystemIdentityFactory
  • CreateToken() @@ -853,12 +858,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : Tgstation.Server.Host.Components.Chat.ChatManager , Tgstation.Server.Host.Components.Chat.ChatTrackingContext
  • +
  • CustomCommands +: Tgstation.Server.Host.Components.Chat.ChatTrackingContext +
  • customCommands : Tgstation.Server.Host.Components.Chat.ChatTrackingContext
  • CustomCommands -: Tgstation.Server.Host.Components.Chat.ChatTrackingContext -, Tgstation.Server.Host.Components.Chat.IChatTrackingContext +: Tgstation.Server.Host.Components.Chat.IChatTrackingContext , Tgstation.Server.Host.Components.Interop.Bridge.BridgeParameters , Tgstation.Server.Host.Components.Interop.Topic.TopicResponse
  • diff --git a/functions_d.html b/functions_d.html index 5e2e74a333..77e2e6cdd4 100644 --- a/functions_d.html +++ b/functions_d.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_e.html b/functions_e.html index 3ab5613807..a09d13bb02 100644 --- a/functions_e.html +++ b/functions_e.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_enum.html b/functions_enum.html index 895081caf8..95fb598384 100644 --- a/functions_enum.html +++ b/functions_enum.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_f.html b/functions_f.html index 1328c0cae9..a7bb43d772 100644 --- a/functions_f.html +++ b/functions_f.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func.html b/functions_func.html index 3913a31d93..2d4ea71790 100644 --- a/functions_func.html +++ b/functions_func.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_0x7e.html b/functions_func_0x7e.html index 8149170f31..982ddca345 100644 --- a/functions_func_0x7e.html +++ b/functions_func_0x7e.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_b.html b/functions_func_b.html index 25fdf719e7..24869e0c2b 100644 --- a/functions_func_b.html +++ b/functions_func_b.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_c.html b/functions_func_c.html index 14d67dda5e..995701e21d 100644 --- a/functions_func_c.html +++ b/functions_func_c.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    @@ -136,6 +136,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • CalculateExpectedDeploymentTime() : Tgstation.Server.Host.Components.Deployment.DreamMaker
  • +
  • CanApplyWithoutReboot() +: Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters +
  • Cancel() : Tgstation.Server.Client.Components.IJobsClient , Tgstation.Server.Client.Components.JobsClient @@ -272,7 +275,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : Tgstation.Server.Host.Components.Chat.Providers.IrcProvider
  • ClientException() -: Tgstation.Server.Client.ClientException +: Tgstation.Server.Client.ClientException
  • Clone() : Tgstation.Server.Client.Components.IRepositoryClient @@ -402,7 +405,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , Tgstation.Server.Client.IApiClient
  • Create< TResult >() -: Tgstation.Server.Client.ApiClient +: Tgstation.Server.Client.ApiClient , Tgstation.Server.Client.IApiClient
  • CreateApiClient() @@ -424,7 +427,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : Tgstation.Server.Client.IInstanceManagerClient , Tgstation.Server.Client.InstanceManagerClient , Tgstation.Server.Host.Core.GitHubClientFactory -, Tgstation.Server.Host.Core.IGitHubClientFactory +, Tgstation.Server.Host.Core.IGitHubClientFactory
  • CreateConnection() : Tgstation.Server.Host.Database.DatabaseConnectionFactory @@ -512,7 +515,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • CreateSystemIdentity() : Tgstation.Server.Host.Security.ISystemIdentityFactory , Tgstation.Server.Host.Security.PosixSystemIdentityFactory -, Tgstation.Server.Host.Security.WindowsSystemIdentityFactory +, Tgstation.Server.Host.Security.WindowsSystemIdentityFactory
  • CreateToken() : Tgstation.Server.Host.Controllers.HomeController diff --git a/functions_func_d.html b/functions_func_d.html index a88e43e33e..683cd5781d 100644 --- a/functions_func_d.html +++ b/functions_func_d.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_e.html b/functions_func_e.html index e2165bba71..c3a2b5152e 100644 --- a/functions_func_e.html +++ b/functions_func_e.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_f.html b/functions_func_f.html index f8ded0edc8..1ea7717c35 100644 --- a/functions_func_f.html +++ b/functions_func_f.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_g.html b/functions_func_g.html index d809238c44..7ff90523fc 100644 --- a/functions_func_g.html +++ b/functions_func_g.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_h.html b/functions_func_h.html index 91b31b5a58..f78a03d8a9 100644 --- a/functions_func_h.html +++ b/functions_func_h.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_i.html b/functions_func_i.html index 7d63439486..8975b34e3e 100644 --- a/functions_func_i.html +++ b/functions_func_i.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_j.html b/functions_func_j.html index 74ad2ba164..682e0fbfa7 100644 --- a/functions_func_j.html +++ b/functions_func_j.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_k.html b/functions_func_k.html index 5626055bbb..d635bcad56 100644 --- a/functions_func_k.html +++ b/functions_func_k.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_l.html b/functions_func_l.html index cdeeeee828..c8c72bddb9 100644 --- a/functions_func_l.html +++ b/functions_func_l.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_m.html b/functions_func_m.html index 3ec6ce38d1..c34ff659a7 100644 --- a/functions_func_m.html +++ b/functions_func_m.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    @@ -142,9 +142,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , Tgstation.Server.Host.Components.Chat.Providers.IrcProvider , Tgstation.Server.Host.Components.Chat.Providers.Provider
  • -
  • Match() -: Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters -
  • MergeOrigin() : Tgstation.Server.Host.Components.Repository.IRepository , Tgstation.Server.Host.Components.Repository.Repository diff --git a/functions_func_n.html b/functions_func_n.html index 8f13ad8b3b..6ee9e71ce9 100644 --- a/functions_func_n.html +++ b/functions_func_n.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_o.html b/functions_func_o.html index c3e80ae7a7..f6b0531c76 100644 --- a/functions_func_o.html +++ b/functions_func_o.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_p.html b/functions_func_p.html index f3b49f573d..33bd9161be 100644 --- a/functions_func_p.html +++ b/functions_func_p.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_r.html b/functions_func_r.html index 77f14fe385..b2d23aff07 100644 --- a/functions_func_r.html +++ b/functions_func_r.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_s.html b/functions_func_s.html index 00e1d46f75..32a9fa2c43 100644 --- a/functions_func_s.html +++ b/functions_func_s.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_t.html b/functions_func_t.html index 06093a37d7..4342501085 100644 --- a/functions_func_t.html +++ b/functions_func_t.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_u.html b/functions_func_u.html index 9260f9b2a2..47c7c4a3d2 100644 --- a/functions_func_u.html +++ b/functions_func_u.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    @@ -206,8 +206,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , Tgstation.Server.Client.IApiClient
  • Update< TBody, TResult >() -: Tgstation.Server.Client.ApiClient -, Tgstation.Server.Client.IApiClient +: Tgstation.Server.Client.ApiClient +, Tgstation.Server.Client.IApiClient
  • Update< TResult >() : Tgstation.Server.Client.ApiClient @@ -241,9 +241,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • UserController() : Tgstation.Server.Host.Controllers.UserController
  • -
  • UseRequestCounting() -: Tgstation.Server.Host.Extensions.ApplicationBuilderExtensions -
  • UsersClient() : Tgstation.Server.Client.UsersClient
  • diff --git a/functions_func_v.html b/functions_func_v.html index 586238ac49..6969e6bf32 100644 --- a/functions_func_v.html +++ b/functions_func_v.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_w.html b/functions_func_w.html index ed675322a0..5da79da002 100644 --- a/functions_func_w.html +++ b/functions_func_w.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_func_z.html b/functions_func_z.html index b781312092..7eba09adfb 100644 --- a/functions_func_z.html +++ b/functions_func_z.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_g.html b/functions_g.html index 524b4b689d..4b9d7b8e5a 100644 --- a/functions_g.html +++ b/functions_g.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_h.html b/functions_h.html index 15f6e58442..5f35b991bc 100644 --- a/functions_h.html +++ b/functions_h.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_i.html b/functions_i.html index 4fd9b19239..8d6b2aba4d 100644 --- a/functions_i.html +++ b/functions_i.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_j.html b/functions_j.html index fe2cff49bd..bd357c8a68 100644 --- a/functions_j.html +++ b/functions_j.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_k.html b/functions_k.html index a8c9903f9b..d7ba1e8454 100644 --- a/functions_k.html +++ b/functions_k.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_l.html b/functions_l.html index 56f111a406..41d119ce1c 100644 --- a/functions_l.html +++ b/functions_l.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_m.html b/functions_m.html index f81ffa338b..89bc4bbf29 100644 --- a/functions_m.html +++ b/functions_m.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    @@ -147,9 +147,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : Tgstation.Server.Host.Components.Chat.ChatManager , Tgstation.Server.Host.Components.Chat.Providers.DiscordProvider -
  • Match() -: Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters -
  • MaximumIndexableStringLength : Tgstation.Server.Api.Models.Limits
  • diff --git a/functions_n.html b/functions_n.html index 19af5c56f1..e1c64e18cf 100644 --- a/functions_n.html +++ b/functions_n.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_o.html b/functions_o.html index f419a21892..0012bac4fc 100644 --- a/functions_o.html +++ b/functions_o.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_p.html b/functions_p.html index b433515cf3..a78d3f4f76 100644 --- a/functions_p.html +++ b/functions_p.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop.html b/functions_prop.html index 46ecfc3454..93da2c227b 100644 --- a/functions_prop.html +++ b/functions_prop.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_b.html b/functions_prop_b.html index eb807a1611..3381da1d70 100644 --- a/functions_prop_b.html +++ b/functions_prop_b.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_c.html b/functions_prop_c.html index 78c86f37ef..3c4ddb4480 100644 --- a/functions_prop_c.html +++ b/functions_prop_c.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_d.html b/functions_prop_d.html index 211131a394..76895f1711 100644 --- a/functions_prop_d.html +++ b/functions_prop_d.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_e.html b/functions_prop_e.html index 30f8af088e..62f829d1dd 100644 --- a/functions_prop_e.html +++ b/functions_prop_e.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_f.html b/functions_prop_f.html index 92ed46b213..72eff1fb67 100644 --- a/functions_prop_f.html +++ b/functions_prop_f.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_g.html b/functions_prop_g.html index 1fd9208e65..f276585a8c 100644 --- a/functions_prop_g.html +++ b/functions_prop_g.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_h.html b/functions_prop_h.html index b51025c819..2fd6861348 100644 --- a/functions_prop_h.html +++ b/functions_prop_h.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_i.html b/functions_prop_i.html index f1f792302b..87cb2a4d74 100644 --- a/functions_prop_i.html +++ b/functions_prop_i.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_j.html b/functions_prop_j.html index aaec2b44de..31df3c79f9 100644 --- a/functions_prop_j.html +++ b/functions_prop_j.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_l.html b/functions_prop_l.html index 458383ebbb..1f3f727f18 100644 --- a/functions_prop_l.html +++ b/functions_prop_l.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_m.html b/functions_prop_m.html index 678e4047e6..e44bdfa100 100644 --- a/functions_prop_m.html +++ b/functions_prop_m.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_n.html b/functions_prop_n.html index d2a1522728..adba4bfa88 100644 --- a/functions_prop_n.html +++ b/functions_prop_n.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_o.html b/functions_prop_o.html index 2c9ad5bf90..8795ccda44 100644 --- a/functions_prop_o.html +++ b/functions_prop_o.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_p.html b/functions_prop_p.html index 371bf8dad3..ba0959fdab 100644 --- a/functions_prop_p.html +++ b/functions_prop_p.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_r.html b/functions_prop_r.html index c91af0c871..14bccf1098 100644 --- a/functions_prop_r.html +++ b/functions_prop_r.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_s.html b/functions_prop_s.html index f72b691a5a..cbb0777397 100644 --- a/functions_prop_s.html +++ b/functions_prop_s.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_t.html b/functions_prop_t.html index 83c6ea0acd..23de35fd68 100644 --- a/functions_prop_t.html +++ b/functions_prop_t.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_u.html b/functions_prop_u.html index 73f623bdd2..05c956a48d 100644 --- a/functions_prop_u.html +++ b/functions_prop_u.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_v.html b/functions_prop_v.html index 49a13a270e..484e0f10a3 100644 --- a/functions_prop_v.html +++ b/functions_prop_v.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_prop_w.html b/functions_prop_w.html index 2f7e487c2e..521265cf8b 100644 --- a/functions_prop_w.html +++ b/functions_prop_w.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_q.html b/functions_q.html index 5f16d18ec8..0f184cb78d 100644 --- a/functions_q.html +++ b/functions_q.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_r.html b/functions_r.html index a315d7b000..d627635d1f 100644 --- a/functions_r.html +++ b/functions_r.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    @@ -539,13 +539,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • Running : Tgstation.Server.Api.Models.DreamDaemon , Tgstation.Server.Host.Components.Watchdog.IWatchdog +, Tgstation.Server.Host.Components.Watchdog.WatchdogBase
  • running : Tgstation.Server.Host.Components.Watchdog.WatchdogBase
  • -
  • Running -: Tgstation.Server.Host.Components.Watchdog.WatchdogBase -
  • RunRequest< TResult >() : Tgstation.Server.Client.ApiClient
  • diff --git a/functions_s.html b/functions_s.html index a582fbcd91..be82622ae5 100644 --- a/functions_s.html +++ b/functions_s.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_t.html b/functions_t.html index d5f3c8aa48..2a51c66803 100644 --- a/functions_t.html +++ b/functions_t.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_u.html b/functions_u.html index 4b14e8a410..14ce71e115 100644 --- a/functions_u.html +++ b/functions_u.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    @@ -289,9 +289,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • UserController() : Tgstation.Server.Host.Controllers.UserController
  • -
  • UseRequestCounting() -: Tgstation.Server.Host.Extensions.ApplicationBuilderExtensions -
  • UserId : Tgstation.Server.Api.Models.InstanceUser
  • @@ -315,7 +312,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , Tgstation.Server.Client.Components.InstanceClient , Tgstation.Server.Client.IServerClient , Tgstation.Server.Client.ServerClient -, Tgstation.Server.Host.Database.DatabaseContext +, Tgstation.Server.Host.Database.DatabaseContext , Tgstation.Server.Host.Database.IDatabaseContext
  • UsersClient() diff --git a/functions_v.html b/functions_v.html index bff15279f6..0106739479 100644 --- a/functions_v.html +++ b/functions_v.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars.html b/functions_vars.html index a6f9e7bef3..2e212ff38f 100644 --- a/functions_vars.html +++ b/functions_vars.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_b.html b/functions_vars_b.html index 55655a61db..79e0d5e641 100644 --- a/functions_vars_b.html +++ b/functions_vars_b.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_c.html b/functions_vars_c.html index b59acad620..8457846e8b 100644 --- a/functions_vars_c.html +++ b/functions_vars_c.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_d.html b/functions_vars_d.html index 6b877e18d0..5461f90c47 100644 --- a/functions_vars_d.html +++ b/functions_vars_d.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_e.html b/functions_vars_e.html index b2efe0577e..c41e3868f2 100644 --- a/functions_vars_e.html +++ b/functions_vars_e.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_f.html b/functions_vars_f.html index be98b972a8..ca19bd41e5 100644 --- a/functions_vars_f.html +++ b/functions_vars_f.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_g.html b/functions_vars_g.html index 7ff64dffad..da0b117c8e 100644 --- a/functions_vars_g.html +++ b/functions_vars_g.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_h.html b/functions_vars_h.html index 64ed170e25..4a216ce2a9 100644 --- a/functions_vars_h.html +++ b/functions_vars_h.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_i.html b/functions_vars_i.html index 1785f5c496..dc50edf23a 100644 --- a/functions_vars_i.html +++ b/functions_vars_i.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_j.html b/functions_vars_j.html index 33b63f45ee..21f1542471 100644 --- a/functions_vars_j.html +++ b/functions_vars_j.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_k.html b/functions_vars_k.html index b1007e531f..4796dc3abb 100644 --- a/functions_vars_k.html +++ b/functions_vars_k.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_l.html b/functions_vars_l.html index d31f4c04fe..f2a76608ba 100644 --- a/functions_vars_l.html +++ b/functions_vars_l.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_m.html b/functions_vars_m.html index 0b25cd0c16..3843c32cc1 100644 --- a/functions_vars_m.html +++ b/functions_vars_m.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_n.html b/functions_vars_n.html index eb85c816f3..0bdd1cbb43 100644 --- a/functions_vars_n.html +++ b/functions_vars_n.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_o.html b/functions_vars_o.html index 26a1016c0d..2cbe0c2d58 100644 --- a/functions_vars_o.html +++ b/functions_vars_o.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_p.html b/functions_vars_p.html index 4f953487c8..b9b7f9e7aa 100644 --- a/functions_vars_p.html +++ b/functions_vars_p.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_q.html b/functions_vars_q.html index a9f2a559fe..d70c18e326 100644 --- a/functions_vars_q.html +++ b/functions_vars_q.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_r.html b/functions_vars_r.html index 56fc00f885..32ef5b0d19 100644 --- a/functions_vars_r.html +++ b/functions_vars_r.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_s.html b/functions_vars_s.html index 34da0d2d44..7b2e9724aa 100644 --- a/functions_vars_s.html +++ b/functions_vars_s.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_t.html b/functions_vars_t.html index 0480a25af5..cfbb1ddfd4 100644 --- a/functions_vars_t.html +++ b/functions_vars_t.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_u.html b/functions_vars_u.html index 8e1a49825d..8ac44490d3 100644 --- a/functions_vars_u.html +++ b/functions_vars_u.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_v.html b/functions_vars_v.html index 03107f6466..e2975a7cad 100644 --- a/functions_vars_v.html +++ b/functions_vars_v.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_vars_w.html b/functions_vars_w.html index 0997dfc351..c24a500973 100644 --- a/functions_vars_w.html +++ b/functions_vars_w.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_w.html b/functions_w.html index 4f8831aa3c..c81412cfdf 100644 --- a/functions_w.html +++ b/functions_w.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/functions_z.html b/functions_z.html index 266ded3360..48b17ea26c 100644 --- a/functions_z.html +++ b/functions_z.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/graph_legend.html b/graph_legend.html index 0f8eb1d9f1..35d6778889 100644 --- a/graph_legend.html +++ b/graph_legend.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/hierarchy.html b/hierarchy.html index 82a02cdd12..1e0d9c8bb4 100644 --- a/hierarchy.html +++ b/hierarchy.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/index.html b/index.html index 6342b7ce82..a51eaa303e 100644 --- a/index.html +++ b/index.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/inherits.html b/inherits.html index 113642c864..f2765e1854 100644 --- a/inherits.html +++ b/inherits.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_byond_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_byond_client-members.html index f12bb256b7..d7e2013ac5 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_byond_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_byond_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_byond_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_byond_client.html index 7de1f9ab5d..01bbcae714 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_byond_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_byond_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_chat_bots_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_chat_bots_client-members.html index 0a01d126d1..e852af8b08 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_chat_bots_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_chat_bots_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_chat_bots_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_chat_bots_client.html index 6da2911424..2d6188c249 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_chat_bots_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_chat_bots_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_configuration_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_configuration_client-members.html index 4e1d0b3cd4..fddc29ca2a 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_configuration_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_configuration_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_configuration_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_configuration_client.html index e59111d286..8a9a015ee0 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_configuration_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_configuration_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_daemon_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_daemon_client-members.html index 385c4bbd12..ebc0a04e92 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_daemon_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_daemon_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_daemon_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_daemon_client.html index cbf6ec00f4..7e9dc19d2e 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_daemon_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_daemon_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_maker_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_maker_client-members.html index b92981649b..db68c27d9c 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_maker_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_maker_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_maker_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_maker_client.html index 32c144b489..57c58352b6 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_maker_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_dream_maker_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_client-members.html index b074526ef4..bfd01a9888 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_client.html index 5b3032598d..ac54f473da 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_user_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_user_client-members.html index a8bce5ebb0..770cd742fb 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_user_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_user_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_user_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_user_client.html index 341f27bda7..f51a075c1c 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_user_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_user_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_jobs_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_jobs_client-members.html index 5c228cc394..36f56e4964 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_jobs_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_jobs_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_jobs_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_jobs_client.html index baa6308b01..a18a2cba18 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_jobs_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_jobs_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_repository_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_repository_client-members.html index 4b2dd9fe71..f2f9f5dd33 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_repository_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_repository_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_repository_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_repository_client.html index aa48953ef3..8cc8297b0d 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_repository_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_repository_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_administration_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_administration_client-members.html index 043099c3f4..bf9b8640b4 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_administration_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_administration_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_administration_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_administration_client.html index 72daccbbd6..509c44f355 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_administration_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_administration_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client-members.html index 2f1800e0b1..5d40e8085e 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client.html index 7f9037ddcb..5df0e4d0ce 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client_factory-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client_factory-members.html index 342202eec7..6d8e0fbc2e 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client_factory.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client_factory.html index ed7988f243..f3372125e5 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client_factory.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_api_client_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_http_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_http_client-members.html index 0ddc48c3ae..a08b3de62b 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_http_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_http_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_http_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_http_client.html index 3027ab23fd..34b2a3bfed 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_http_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_http_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_instance_manager_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_instance_manager_client-members.html index 450a4e4a7a..915b05162a 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_instance_manager_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_instance_manager_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_instance_manager_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_instance_manager_client.html index 220437b67c..70741fbaa8 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_instance_manager_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_instance_manager_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_request_logger-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_request_logger-members.html index 4ebf1fcb4e..cf621b0fdf 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_request_logger-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_request_logger-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_request_logger.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_request_logger.html index c02f493869..7d7b324321 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_request_logger.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_request_logger.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client-members.html index 13a9cddea0..40783b6cd5 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client.html index aff990def2..00f456373f 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client_factory-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client_factory-members.html index adab868196..eb19c37f26 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client_factory.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client_factory.html index 3548d6eaf6..b0c36b1647 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client_factory.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_server_client_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_users_client-members.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_users_client-members.html index ff0c0def99..c3e37c5be6 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_users_client-members.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_users_client-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_client_1_1_i_users_client.html b/interface_tgstation_1_1_server_1_1_client_1_1_i_users_client.html index 889de18a4c..07908a4c65 100644 --- a/interface_tgstation_1_1_server_1_1_client_1_1_i_users_client.html +++ b/interface_tgstation_1_1_server_1_1_client_1_1_i_users_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_executable_lock-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_executable_lock-members.html index 26a159162e..e53237c262 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_executable_lock-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_executable_lock-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_executable_lock.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_executable_lock.html index 274b415c03..f93246c3b5 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_executable_lock.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_executable_lock.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_installer-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_installer-members.html index 93d80c23a2..4e5a4d5358 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_installer-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_installer-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_installer.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_installer.html index 38776faaae..b4b4d02253 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_installer.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_installer.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_manager-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_manager-members.html index d55504851f..c64f95ec2a 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_manager-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_manager-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_manager.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_manager.html index 09a536e87f..4f29ac8b6d 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_manager.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_manager.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command-members.html index df04bec74f..1760946159 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command.html index 6705c12c1c..a4f203f11e 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command_factory-members.html index eee986bf1f..8822f42ef7 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command_factory.html index 8808d62f82..2dce1c0fc8 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_i_command_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_channel_sink-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_channel_sink-members.html index d4036fe527..b055b161a7 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_channel_sink-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_channel_sink-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_channel_sink.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_channel_sink.html index a2d0a378ae..e55530a525 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_channel_sink.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_channel_sink.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager-members.html index e77d92ef6f..178bc4a431 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html index 2179897e46..aa815f43fc 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager_factory-members.html index 40a285083d..0df79cb75e 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager_factory.html index 51c04c847a..29879c629a 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_tracking_context-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_tracking_context-members.html index 7ca5ae9275..0e49c92ca8 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_tracking_context-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_tracking_context-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_tracking_context.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_tracking_context.html index ca63aac447..07e30f45d0 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_tracking_context.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_tracking_context.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_custom_command_handler-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_custom_command_handler-members.html index 7c54fbf7f0..111e11b441 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_custom_command_handler-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_custom_command_handler-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_custom_command_handler.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_custom_command_handler.html index 08b135b498..7886c0a412 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_custom_command_handler.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_custom_command_handler.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider-members.html index fa6accd545..af02f01312 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider.html index 8ba22c1381..92f05959df 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider_factory-members.html index ebd6730d02..63a2771fb0 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider_factory.html index 9c42b894e0..aa66f5d632 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_compile_job_sink-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_compile_job_sink-members.html index af48677905..b4498e8c5a 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_compile_job_sink-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_compile_job_sink-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_compile_job_sink.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_compile_job_sink.html index b5c7721df5..42821e6348 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_compile_job_sink.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_compile_job_sink.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_factory-members.html index 8638eefe13..1f9ffcc114 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_factory.html index a1b183a93d..7ba5a73e0b 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider-members.html index d01825ae49..937640298a 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html index 6b7bf8a04f..7726f56304 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    @@ -192,7 +192,7 @@ Properties

    Definition at line 29 of file IDmbProvider.cs.

    -

    Referenced by Tgstation.Server.Host.Components.Session.SessionControllerFactory.CreateRuntimeInformation(), Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.GetMonitoredServerTasks(), Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.PrepServerForLaunch(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.Reattach(), and Tgstation.Server.Host.Components.Session.ReattachInfoHandler.ReattachInfoHandler().

    +

    Referenced by Tgstation.Server.Host.Components.Session.SessionControllerFactory.CreateRuntimeInformation(), Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.GetMonitoredServerTasks(), Tgstation.Server.Host.Components.Watchdog.ExperimentalWatchdog.HandleMonitorWakeup(), Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.HandleNewDmbAvailable(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Components.Deployment.DmbFactory.LockNextDmb(), Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.PrepServerForLaunch(), Tgstation.Server.Host.Components.Session.SessionControllerFactory.Reattach(), and Tgstation.Server.Host.Components.Session.ReattachInfoHandler.ReattachInfoHandler().

  • diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dream_maker-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dream_maker-members.html index cdf86e1217..a222c0c322 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dream_maker-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dream_maker-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dream_maker.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dream_maker.html index 6fce5eaf2f..0416227b0b 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dream_maker.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dream_maker.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_latest_compile_job_provider-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_latest_compile_job_provider-members.html index 37e0c0295f..9857e417b9 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_latest_compile_job_provider-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_latest_compile_job_provider-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_latest_compile_job_provider.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_latest_compile_job_provider.html index fdeefedf16..889b08e594 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_latest_compile_job_provider.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_latest_compile_job_provider.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_event_consumer-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_event_consumer-members.html index f4f3630896..c95d658f91 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_event_consumer-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_event_consumer-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_event_consumer.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_event_consumer.html index 92e5f8cceb..56ffe71c86 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_event_consumer.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_event_consumer.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance-members.html index 9cf3829b22..45e5284a12 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance.html index c404cbde7d..a538c6ff78 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_factory-members.html index 4952ab5a54..604a6a3dfe 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_factory.html index 01ac0939dc..2b2603c149 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_manager-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_manager-members.html index 887c943d2b..5df460a571 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_manager-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_manager-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_manager.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_manager.html index 842fbe4377..fec59ead00 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_manager.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance_manager.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_dispatcher-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_dispatcher-members.html index e219d9bb65..8aabd86253 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_dispatcher-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_dispatcher-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_dispatcher.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_dispatcher.html index a269794afd..ddfaf6a5ee 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_dispatcher.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_dispatcher.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_handler-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_handler-members.html index b6a32ef79b..265c11c7bf 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_handler-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_handler-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_handler.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_handler.html index a81120dc0f..1cc402a83d 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_handler.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_handler.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registrar-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registrar-members.html index 18cb07786a..b177e290d3 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registrar-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registrar-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registrar.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registrar.html index 04de194c3c..8509b516b3 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registrar.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registrar.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registration.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registration.html index d43f575c81..b41cf72333 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registration.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registration.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_credentials_provider-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_credentials_provider-members.html index d79e2b769d..67777797b6 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_credentials_provider-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_credentials_provider-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_credentials_provider.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_credentials_provider.html index ad13c42a06..c245cb6db9 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_credentials_provider.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_credentials_provider.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_commands-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_commands-members.html index 6dabab3a2a..cb97c69c3b 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_commands-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_commands-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_commands.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_commands.html index 0b329390a9..c5c441ae57 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_commands.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_commands.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_repository_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_repository_factory-members.html index a6d61e2818..758d6d4274 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_repository_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_repository_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_repository_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_repository_factory.html index b6caf3a497..18e9877b81 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_repository_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_lib_git2_repository_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository-members.html index 8c017561ff..c0f8bf5bad 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository.html index e83b1f3acb..bfabbcf1d0 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository_manager-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository_manager-members.html index bec0542206..b487f86739 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository_manager-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository_manager-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository_manager.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository_manager.html index 43604dcd64..61d4138f3a 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository_manager.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository_manager.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_reattach_info_handler-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_reattach_info_handler-members.html index 43772b24b9..eb98c675ae 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_reattach_info_handler-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_reattach_info_handler-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_reattach_info_handler.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_reattach_info_handler.html index 343fede18d..396b0d3b97 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_reattach_info_handler.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_reattach_info_handler.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller-members.html index e6d5c448eb..849dfb41c8 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller.html index 55d72d65b2..b76ccdff2d 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller_factory-members.html index 422ffe7725..dac753ab60 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller_factory.html index c31cbbaea3..3f16720bce 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_i_configuration-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_i_configuration-members.html index e60df942aa..57530e7766 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_i_configuration-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_i_configuration-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_i_configuration.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_i_configuration.html index 3c92f24b73..9bd9236a32 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_i_configuration.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_i_configuration.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog-members.html index 2f20bbd5b0..066ca906ce 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog.html index cba2a1e902..6dbe52f789 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog_factory-members.html index b7f45c845c..19113a11d4 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog_factory.html index 6ebe7fb72e..5b06676793 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_async_delayer-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_async_delayer-members.html index 7e2f4b8ee3..4281bd5a8c 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_async_delayer-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_async_delayer-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_async_delayer.html b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_async_delayer.html index b89fe4e6c1..ce1cba17f0 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_async_delayer.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_async_delayer.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_git_hub_client_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_git_hub_client_factory-members.html index 60e1fbcc6a..d155ccfe20 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_git_hub_client_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_git_hub_client_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_git_hub_client_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_git_hub_client_factory.html index f27894cdaf..7e0091f64f 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_git_hub_client_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_git_hub_client_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_restart_handler-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_restart_handler-members.html index 97f5536d05..6d5a5b74e3 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_restart_handler-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_restart_handler-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_restart_handler.html b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_restart_handler.html index 65d7ce8d69..5e4b35b64a 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_restart_handler.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_restart_handler.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_restart_registration.html b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_restart_registration.html index fb7c210862..c6f62e0dba 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_restart_registration.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_restart_registration.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_control-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_control-members.html index dd6f6a8f29..1d4a7d7755 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_control-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_control-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_control.html b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_control.html index e8b794a12b..2b628f7645 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_control.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_control.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider-members.html index d88632544e..ffb3491523 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider.html b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider.html index d731be7f86..e9209fb9e7 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_collection-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_collection-members.html index e3b8e15684..baebe968db 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_collection-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_collection-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_collection.html b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_collection.html index 66212e7297..6ae2d2af22 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_collection.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_collection.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_connection_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_connection_factory-members.html index efd34e9555..23eb23f8b5 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_connection_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_connection_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_connection_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_connection_factory.html index 0c000aadf3..3e644229b7 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_connection_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_connection_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context-members.html index fdf3235b59..3b0d35804b 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context.html b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context.html index 015dfcd2c3..6ba2b833de 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context_factory-members.html index 56cf7d2d29..262355ac25 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context_factory.html index f4fd9b1090..a2aca5e000 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_context_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_seeder-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_seeder-members.html index 7f5995fb93..0f803e2db4 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_seeder-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_seeder-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_seeder.html b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_seeder.html index 765955b7f1..6d2e797f12 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_seeder.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_database_1_1_i_database_seeder.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_console-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_console-members.html index 4f19a029f3..8b56449df2 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_console-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_console-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_console.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_console.html index 2a7c6431a6..2587e9eaf1 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_console.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_console.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager-members.html index f56726448d..a734cbafd0 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html index 518e15c58b..825b94b8e7 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_post_write_handler-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_post_write_handler-members.html index 23f2e9a08c..f397abd4db 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_post_write_handler-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_post_write_handler-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_post_write_handler.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_post_write_handler.html index f3d205a6cc..56e36f493c 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_post_write_handler.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_post_write_handler.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_symlink_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_symlink_factory-members.html index 81e166d013..03d4bce287 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_symlink_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_symlink_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_symlink_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_symlink_factory.html index a14276d5a8..7b4eadd827 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_symlink_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_symlink_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_synchronous_i_o_manager-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_synchronous_i_o_manager-members.html index e715c150fa..1cec637886 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_synchronous_i_o_manager-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_synchronous_i_o_manager-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_synchronous_i_o_manager.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_synchronous_i_o_manager.html index 0150489bf7..5d742e494a 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_synchronous_i_o_manager.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_synchronous_i_o_manager.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_server-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_server-members.html index 664b2fa104..2526b493b9 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_server-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_server-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_server.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_server.html index 2bbfe5b64d..01aaced032 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_server.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_server.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_server_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_server_factory-members.html index 5b1b9d7e49..d7ecf60a77 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_server_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_server_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_i_server_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_i_server_factory.html index 1589e7ff26..01dee1efe6 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_i_server_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_i_server_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager-members.html index 3fc72f1674..5b91bd688c 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html b/interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html index 6aba7eaa6a..033f103680 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context-members.html index f826a94c9b..835e51df3d 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context.html index eda40cdfc6..9edf65dab0 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context_factory-members.html index d06d1452b8..51ee63c429 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context_factory.html index 1ed3c75c1e..5c395f5483 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_claims_injector-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_claims_injector-members.html index 54c2ed0c89..d5e7f09877 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_claims_injector-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_claims_injector-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_claims_injector.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_claims_injector.html index 7bf0966bf9..967ce59b6d 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_claims_injector.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_claims_injector.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite-members.html index f7a583c2f9..2851c702d5 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite.html index acc5aa2068..7085f88dcd 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_identity_cache-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_identity_cache-members.html index b2b3a5fdee..10582cfd02 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_identity_cache-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_identity_cache-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_identity_cache.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_identity_cache.html index 1034d5ca31..08c0dad4a7 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_identity_cache.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_identity_cache.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity-members.html index 2742d23124..2256a2e47f 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity.html index e5855bb3c9..15e1d804e2 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity_factory-members.html index 9fd8b60cd5..7193ce9a42 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity_factory.html index b9580c9a7a..5cae4f70ce 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_token_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_token_factory-members.html index 9a0f46cd30..4d220caea4 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_token_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_token_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_token_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_token_factory.html index 3d587dde4d..d05ac3e659 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_token_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_token_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_setup_1_1_i_post_setup_services-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_setup_1_1_i_post_setup_services-members.html index f36796c55e..939ca54cd1 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_setup_1_1_i_post_setup_services-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_setup_1_1_i_post_setup_services-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_setup_1_1_i_post_setup_services.html b/interface_tgstation_1_1_server_1_1_host_1_1_setup_1_1_i_post_setup_services.html index 74cf2edecc..e415ac233e 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_setup_1_1_i_post_setup_services.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_setup_1_1_i_post_setup_services.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider-members.html index 5b2f1b4a4b..3f982e059d 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider.html index 4a3dfafc2c..a6fc13c4e8 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    @@ -209,7 +209,7 @@ Properties

    Definition at line 34 of file IAssemblyInformationProvider.cs.

    -

    Referenced by Tgstation.Server.Host.Components.Session.SessionController.GetLaunchResult(), and Tgstation.Server.Host.Components.Interop.Bridge.RuntimeInformation.RuntimeInformation().

    +

    Referenced by Tgstation.Server.Host.Components.Session.SessionController.GetLaunchResult(), and Tgstation.Server.Host.Components.Interop.Bridge.RuntimeInformation.RuntimeInformation().

    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper-members.html index b836af165c..cfd84c5735 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper.html index 12935130ae..6a8db4dc43 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier-members.html index 2f7a9ae6bd..3f55435528 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier.html index dd0f11203c..41caae3035 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process-members.html index 2cdf644390..70e2b56689 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process.html index b3ccf3f953..a55d3c5016 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_base-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_base-members.html index 3c57b3caa4..84d9b27a87 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_base-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_base-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_base.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_base.html index b64784ab30..1871fa4b03 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_base.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_base.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor-members.html index 5b5adb6561..e68dcca19f 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor.html index 630bf9fc6b..b8ef0b8261 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_features-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_features-members.html index 84234d8139..d4d34739e0 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_features-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_features-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_features.html b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_features.html index ec14f7eb6d..5d3f7616f9 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_features.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_features.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog-members.html index 92122e6ac8..e2bd4894aa 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog.html b/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog.html index 24a9717960..fe6e46ee79 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog_factory-members.html b/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog_factory-members.html index 0890ad6e52..89f707a362 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog_factory-members.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog_factory-members.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog_factory.html b/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog_factory.html index 17c0699343..b809f5aedc 100644 --- a/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog_factory.html +++ b/interface_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_i_watchdog_factory.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation.html b/namespace_tgstation.html index 4f02be07f2..fcd82cc7fa 100644 --- a/namespace_tgstation.html +++ b/namespace_tgstation.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server.html b/namespace_tgstation_1_1_server.html index 29515f55ac..7b38423948 100644 --- a/namespace_tgstation_1_1_server.html +++ b/namespace_tgstation_1_1_server.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_api.html b/namespace_tgstation_1_1_server_1_1_api.html index 4dde0dceca..39a53b67d2 100644 --- a/namespace_tgstation_1_1_server_1_1_api.html +++ b/namespace_tgstation_1_1_server_1_1_api.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_api_1_1_models.html b/namespace_tgstation_1_1_server_1_1_api_1_1_models.html index 10437a60e9..aef4a39fd9 100644 --- a/namespace_tgstation_1_1_server_1_1_api_1_1_models.html +++ b/namespace_tgstation_1_1_server_1_1_api_1_1_models.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal.html b/namespace_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal.html index 10f2172467..5bdd1bef7f 100644 --- a/namespace_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal.html +++ b/namespace_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_api_1_1_rights.html b/namespace_tgstation_1_1_server_1_1_api_1_1_rights.html index 71d381eaeb..2019a37153 100644 --- a/namespace_tgstation_1_1_server_1_1_api_1_1_rights.html +++ b/namespace_tgstation_1_1_server_1_1_api_1_1_rights.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_client.html b/namespace_tgstation_1_1_server_1_1_client.html index 8db462ab03..6168c74550 100644 --- a/namespace_tgstation_1_1_server_1_1_client.html +++ b/namespace_tgstation_1_1_server_1_1_client.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_client_1_1_components.html b/namespace_tgstation_1_1_server_1_1_client_1_1_components.html index 66321d4ac4..74440dc658 100644 --- a/namespace_tgstation_1_1_server_1_1_client_1_1_components.html +++ b/namespace_tgstation_1_1_server_1_1_client_1_1_components.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host.html b/namespace_tgstation_1_1_server_1_1_host.html index db951fd925..25081317b5 100644 --- a/namespace_tgstation_1_1_server_1_1_host.html +++ b/namespace_tgstation_1_1_server_1_1_host.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components.html index d990f1329e..cc1c9d799c 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond.html index d6c1dc2552..e868a86c19 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat.html index 78c728216f..27cc4c9dfb 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands.html index 1f51d3ea1f..698dd3f3f9 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers.html index d1582dc161..62f82ffb08 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment.html index 554c2595a4..d7ea8cd792 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop.html index 5d8f5a801c..5be05610ae 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge.html index 61ba95f781..e1931638db 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters.html index b822ad2e66..58c4a02c43 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic.html index 9f52014511..7500af6601 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository.html index 1faded261f..7f73be0b65 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_session.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_session.html index 4c99efbca6..bbedcce407 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_session.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_session.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files.html index 4914bf4c91..596db45abf 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog.html b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog.html index 8ff633656f..8c4d8b9504 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_configuration.html b/namespace_tgstation_1_1_server_1_1_host_1_1_configuration.html index 869da989e5..c7bf78b0ad 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_configuration.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_configuration.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_console.html b/namespace_tgstation_1_1_server_1_1_host_1_1_console.html index f3a0d9e127..851c9e6690 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_console.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_console.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_controllers.html b/namespace_tgstation_1_1_server_1_1_host_1_1_controllers.html index 6bf802a0cb..0bf9e5ed89 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_controllers.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_controllers.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_core.html b/namespace_tgstation_1_1_server_1_1_host_1_1_core.html index 38979f037c..a3bcbb5047 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_core.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_core.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_database.html b/namespace_tgstation_1_1_server_1_1_host_1_1_database.html index 3798a51ddc..98a07fd2be 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_database.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_database.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_database_1_1_design.html b/namespace_tgstation_1_1_server_1_1_host_1_1_database_1_1_design.html index f2afe9ea88..53b1ef903b 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_database_1_1_design.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_database_1_1_design.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations.html b/namespace_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations.html index 5b5c8e2721..de0eeb429a 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_database_1_1_migrations.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_extensions.html b/namespace_tgstation_1_1_server_1_1_host_1_1_extensions.html index 3fba849060..e06d9bf220 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_extensions.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_extensions.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_i_o.html b/namespace_tgstation_1_1_server_1_1_host_1_1_i_o.html index ae5488032a..a389390dd7 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_i_o.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_i_o.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_jobs.html b/namespace_tgstation_1_1_server_1_1_host_1_1_jobs.html index c8fbaa2ef1..72aa3be04f 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_jobs.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_jobs.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_migrations.html b/namespace_tgstation_1_1_server_1_1_host_1_1_migrations.html index 176d695f68..3cdb0f3b15 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_migrations.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_migrations.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_models.html b/namespace_tgstation_1_1_server_1_1_host_1_1_models.html index 7279697b06..62167bd26f 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_models.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_models.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_security.html b/namespace_tgstation_1_1_server_1_1_host_1_1_security.html index 8a218e28b9..77b095becd 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_security.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_security.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_service.html b/namespace_tgstation_1_1_server_1_1_host_1_1_service.html index 693aa5dbea..067b3bd852 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_service.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_service.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_setup.html b/namespace_tgstation_1_1_server_1_1_host_1_1_setup.html index 8c1998b95e..702b59255c 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_setup.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_setup.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_system.html b/namespace_tgstation_1_1_server_1_1_host_1_1_system.html index 3cf3d8b66d..2b7b64f792 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_system.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_system.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespace_tgstation_1_1_server_1_1_host_1_1_watchdog.html b/namespace_tgstation_1_1_server_1_1_host_1_1_watchdog.html index 9ea251fdfb..5e93a1e068 100644 --- a/namespace_tgstation_1_1_server_1_1_host_1_1_watchdog.html +++ b/namespace_tgstation_1_1_server_1_1_host_1_1_watchdog.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespacemembers.html b/namespacemembers.html index 624d97ad7d..6cbde2df5b 100644 --- a/namespacemembers.html +++ b/namespacemembers.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespacemembers_enum.html b/namespacemembers_enum.html index 9b4f1c1708..0b3eda1804 100644 --- a/namespacemembers_enum.html +++ b/namespacemembers_enum.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/namespaces.html b/namespaces.html index 6ba56e87ec..ebb2ba8030 100644 --- a/namespaces.html +++ b/namespaces.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/search/all_10.js b/search/all_10.js index fbb9dfa764..06a969042f 100644 --- a/search/all_10.js +++ b/search/all_10.js @@ -10,7 +10,7 @@ var searchData= ['passwordhash',['PasswordHash',['../class_tgstation_1_1_server_1_1_host_1_1_models_1_1_user.html#ab5648b7f95630ff37ad8b0ddd72c1f54',1,'Tgstation::Server::Host::Models::User']]], ['passwordhasher',['passwordHasher',['../class_tgstation_1_1_server_1_1_host_1_1_security_1_1_cryptography_suite.html#ad519d6aa46f39a52f9a7b50e0f181fd9',1,'Tgstation::Server::Host::Security::CryptographySuite']]], ['passwordsecurityschemeid',['PasswordSecuritySchemeId',['../class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration.html#aea41db6a784ee697f5507a6e3ee5990b',1,'Tgstation::Server::Host::Core::SwaggerConfiguration']]], - ['passwordtype',['passwordType',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html#af7860cda8ac8b343eeb747780cb22422',1,'Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.passwordType()'],['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder.html#af86c9cd8964c7cc3e74142f74012b501',1,'Tgstation.Server.Api.Models.IrcConnectionStringBuilder.PasswordType()']]], + ['passwordtype',['PasswordType',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder.html#af86c9cd8964c7cc3e74142f74012b501',1,'Tgstation.Server.Api.Models.IrcConnectionStringBuilder.PasswordType()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html#af7860cda8ac8b343eeb747780cb22422',1,'Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.passwordType()']]], ['patch_3c_20tresult_20_3e',['Patch< TResult >',['../class_tgstation_1_1_server_1_1_client_1_1_api_client.html#a2c706947515724ff353a3b1422815ff8',1,'Tgstation.Server.Client.ApiClient.Patch< TResult >()'],['../interface_tgstation_1_1_server_1_1_client_1_1_i_api_client.html#a28294924cb1336289469fbfa5de2f61f',1,'Tgstation.Server.Client.IApiClient.Patch< TResult >()']]], ['path',['Path',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file.html#aefbf190e4363fe3095963d1d40a36fd1',1,'Tgstation.Server.Api.Models.ConfigurationFile.Path()'],['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance.html#ae390e04ad03e5f6daaefcfa96ed9a6d2',1,'Tgstation.Server.Api.Models.Instance.Path()'],['../class_tgstation_1_1_server_1_1_host_1_1_system_1_1_assembly_information_provider.html#a4ee4d18b244ceb1e969256a6de69ee74',1,'Tgstation.Server.Host.System.AssemblyInformationProvider.Path()'],['../interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider.html#a49dad396bc16dcecc22c246e1706966a',1,'Tgstation.Server.Host.System.IAssemblyInformationProvider.Path()']]], ['pathcontainsparentaccess',['PathContainsParentAccess',['../class_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_default_i_o_manager.html#aa2dfcb05f73420f251547ae0108b3222',1,'Tgstation.Server.Host.IO.DefaultIOManager.PathContainsParentAccess()'],['../interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#af05931d02f5f5d95b87a56c0cc60d855',1,'Tgstation.Server.Host.IO.IIOManager.PathContainsParentAccess()']]], @@ -67,11 +67,11 @@ var searchData= ['primarytestmerge',['PrimaryTestMerge',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information.html#a628bb81ae3a0621e5e3ad472d0dab742',1,'Tgstation.Server.Api.Models.RevisionInformation.PrimaryTestMerge()'],['../class_tgstation_1_1_server_1_1_host_1_1_models_1_1_revision_information.html#adbe03f25ff741698ab92816bf7b511c5',1,'Tgstation.Server.Host.Models.RevisionInformation.PrimaryTestMerge()']]], ['prime',['Prime',['../namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge.html#a50ede689312259c6ba4fe6595f8ad91dabe7938e9a87618a98a7b6b47e12aa44b',1,'Tgstation::Server::Host::Components::Interop::Bridge']]], ['primetcs',['primeTcs',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html#a524400c2981d28ac310a509e2c6d9732',1,'Tgstation::Server::Host::Components::Session::SessionController']]], - ['process',['process',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html#af72f0ef89d2933aacb840b4371a5d55c',1,'Tgstation.Server.Host.Components.Session.SessionController.process()'],['../class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller.html#a1dd8fca5d57be939d8d04d4723788639',1,'Tgstation.Server.Host.Controllers.BridgeController.Process()'],['../class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process.html#a6359ddbc29f1f67ae3e9fc1446a0207e',1,'Tgstation.Server.Host.System.Process.Process()']]], + ['process',['Process',['../class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller.html#a1dd8fca5d57be939d8d04d4723788639',1,'Tgstation.Server.Host.Controllers.BridgeController.Process()'],['../class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process.html#a6359ddbc29f1f67ae3e9fc1446a0207e',1,'Tgstation.Server.Host.System.Process.Process()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html#af72f0ef89d2933aacb840b4371a5d55c',1,'Tgstation.Server.Host.Components.Session.SessionController.process()']]], ['process',['Process',['../class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process.html',1,'Tgstation::Server::Host::System']]], ['process_2ecs',['Process.cs',['../_process_8cs.html',1,'']]], ['processbridgerequest',['ProcessBridgeRequest',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager.html#abd9eb0f8c590b9983279300be002d40e',1,'Tgstation.Server.Host.Components.InstanceManager.ProcessBridgeRequest()'],['../interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_dispatcher.html#aedd0ce59a5bb9d3692f73e92715798c3',1,'Tgstation.Server.Host.Components.Interop.Bridge.IBridgeDispatcher.ProcessBridgeRequest()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html#addf10bdb560585e28933161df7e31fef',1,'Tgstation.Server.Host.Components.Session.SessionController.ProcessBridgeRequest()']]], - ['processexecutor',['ProcessExecutor',['../class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor.html#a391667cca8308cb0adb27851434cb3fe',1,'Tgstation.Server.Host.System.ProcessExecutor.ProcessExecutor()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer.html#a9ddafa8d405709ae20f157c9041b4b01',1,'Tgstation.Server.Host.Components.Byond.WindowsByondInstaller.processExecutor()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html#a8d40fb1d02610364e59b9feedb4e75d9',1,'Tgstation.Server.Host.Components.Deployment.DreamMaker.processExecutor()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory.html#a5fdcd121985cce7d20f2d61e0ea5eca4',1,'Tgstation.Server.Host.Components.InstanceFactory.processExecutor()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1e5abb3512c946d17d762285046b6e56',1,'Tgstation.Server.Host.Components.Session.SessionControllerFactory.processExecutor()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration.html#a0eb31611253abc0c887ec46f1e9b8611',1,'Tgstation.Server.Host.Components.StaticFiles.Configuration.processExecutor()']]], + ['processexecutor',['processExecutor',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer.html#a9ddafa8d405709ae20f157c9041b4b01',1,'Tgstation.Server.Host.Components.Byond.WindowsByondInstaller.processExecutor()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html#a8d40fb1d02610364e59b9feedb4e75d9',1,'Tgstation.Server.Host.Components.Deployment.DreamMaker.processExecutor()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory.html#a5fdcd121985cce7d20f2d61e0ea5eca4',1,'Tgstation.Server.Host.Components.InstanceFactory.processExecutor()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1e5abb3512c946d17d762285046b6e56',1,'Tgstation.Server.Host.Components.Session.SessionControllerFactory.processExecutor()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration.html#a0eb31611253abc0c887ec46f1e9b8611',1,'Tgstation.Server.Host.Components.StaticFiles.Configuration.processExecutor()'],['../class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor.html#a391667cca8308cb0adb27851434cb3fe',1,'Tgstation.Server.Host.System.ProcessExecutor.ProcessExecutor()']]], ['processexecutor',['ProcessExecutor',['../class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor.html',1,'Tgstation::Server::Host::System']]], ['processexecutor_2ecs',['ProcessExecutor.cs',['../_process_executor_8cs.html',1,'']]], ['processfeatures',['processFeatures',['../class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process.html#ab37b740e7d72723a6e5fce40acf040c9',1,'Tgstation.Server.Host.System.Process.processFeatures()'],['../class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor.html#a53a69845e62419a4db84ef86445d1eba',1,'Tgstation.Server.Host.System.ProcessExecutor.processFeatures()']]], diff --git a/search/all_12.js b/search/all_12.js index 25ea026d98..d89a19d305 100644 --- a/search/all_12.js +++ b/search/all_12.js @@ -44,7 +44,7 @@ var searchData= ['reattachinfohandler',['reattachInfoHandler',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html#a72ff0b6fb336a2d931cf64d795d8a542',1,'Tgstation.Server.Host.Components.Watchdog.WatchdogBase.reattachInfoHandler()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_info_handler.html#a4edd70e178d63423a29b5a1eba88f402',1,'Tgstation.Server.Host.Components.Session.ReattachInfoHandler.ReattachInfoHandler()']]], ['reattachinfohandler_2ecs',['ReattachInfoHandler.cs',['../_reattach_info_handler_8cs.html',1,'']]], ['reattachinformation',['ReattachInformation',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html',1,'Tgstation::Server::Host::Components::Session']]], - ['reattachinformation',['reattachInformation',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html#a2f27422dea8fc27fb0c7f1964f455319',1,'Tgstation.Server.Host.Components.Session.SessionController.reattachInformation()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html#af91a1e36e4a5bbac1057167f4e4ee830',1,'Tgstation.Server.Host.Components.Session.ReattachInformation.ReattachInformation()']]], + ['reattachinformation',['ReattachInformation',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html#af91a1e36e4a5bbac1057167f4e4ee830',1,'Tgstation.Server.Host.Components.Session.ReattachInformation.ReattachInformation()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html#a2f27422dea8fc27fb0c7f1964f455319',1,'Tgstation.Server.Host.Components.Session.SessionController.reattachInformation()']]], ['reattachinformation',['ReattachInformation',['../class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information.html',1,'Tgstation::Server::Host::Models']]], ['reattachinformation_2ecs',['ReattachInformation.cs',['../_components_2_session_2_reattach_information_8cs.html',1,'']]], ['reattachinformation_2ecs',['ReattachInformation.cs',['../_models_2_reattach_information_8cs.html',1,'']]], @@ -157,7 +157,7 @@ var searchData= ['restarthandlers',['restartHandlers',['../class_tgstation_1_1_server_1_1_host_1_1_server.html#a6fd99785ffec475ce3d3835c1206505f',1,'Tgstation::Server::Host::Server']]], ['restarthost',['RestartHost',['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#affda1440f9c5e2dfcca65138d2f89a21a4ebebe34711c9ddafa1eff5faa9a377e',1,'Tgstation::Server::Api::Rights']]], ['restartlock',['restartLock',['../class_tgstation_1_1_server_1_1_host_1_1_server.html#abf1047eeb7fc9f915460a1bacc58666e',1,'Tgstation::Server::Host::Server']]], - ['restartregistration',['restartRegistration',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager.html#ac3dec357800cfc9a526c82d61fe99803',1,'Tgstation.Server.Host.Components.Chat.ChatManager.restartRegistration()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html#aefe25fd33c4a6dfb4ea27b583a2286ea',1,'Tgstation.Server.Host.Components.Watchdog.WatchdogBase.restartRegistration()'],['../class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration.html#a4391d21de43d098a833168620dc24dc4',1,'Tgstation.Server.Host.Core.RestartRegistration.RestartRegistration()']]], + ['restartregistration',['RestartRegistration',['../class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration.html#a4391d21de43d098a833168620dc24dc4',1,'Tgstation.Server.Host.Core.RestartRegistration.RestartRegistration()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager.html#ac3dec357800cfc9a526c82d61fe99803',1,'Tgstation.Server.Host.Components.Chat.ChatManager.restartRegistration()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html#aefe25fd33c4a6dfb4ea27b583a2286ea',1,'Tgstation.Server.Host.Components.Watchdog.WatchdogBase.restartRegistration()']]], ['restartregistration',['RestartRegistration',['../class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration.html',1,'Tgstation::Server::Host::Core']]], ['restartregistration_2ecs',['RestartRegistration.cs',['../_restart_registration_8cs.html',1,'']]], ['restartrequested',['RestartRequested',['../interface_tgstation_1_1_server_1_1_host_1_1_i_server.html#ac87902a08c496cd40add682a2ec6c616',1,'Tgstation.Server.Host.IServer.RestartRequested()'],['../class_tgstation_1_1_server_1_1_host_1_1_server.html#add86891cdb4011d078e94671466ef14e',1,'Tgstation.Server.Host.Server.RestartRequested()']]], @@ -199,7 +199,7 @@ var searchData= ['rundreammaker',['RunDreamMaker',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html#a2c7d7d0048942b67b6c275cd4a643296',1,'Tgstation::Server::Host::Components::Deployment::DreamMaker']]], ['runimpersonated',['RunImpersonated',['../interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_system_identity.html#a9b525a56c704424ce14e78edcb7d003e',1,'Tgstation.Server.Host.Security.ISystemIdentity.RunImpersonated()'],['../class_tgstation_1_1_server_1_1_host_1_1_security_1_1_posix_system_identity.html#ad8b0bb1cd74b0bc433afeb4dcc322594',1,'Tgstation.Server.Host.Security.PosixSystemIdentity.RunImpersonated()'],['../class_tgstation_1_1_server_1_1_host_1_1_security_1_1_windows_system_identity.html#aaa070f717bb19b6d85f0253d7820bc75',1,'Tgstation.Server.Host.Security.WindowsSystemIdentity.RunImpersonated()']]], ['runjob',['RunJob',['../class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager.html#a6836fc87ae58cab85a16f3018d485eb1',1,'Tgstation::Server::Host::Jobs::JobManager']]], - ['running',['Running',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon.html#ae0b56fabcaa54dd916f95949914543ef',1,'Tgstation.Server.Api.Models.DreamDaemon.Running()'],['../interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog.html#a26fc404928f808be57119b4dcd5edbb2',1,'Tgstation.Server.Host.Components.Watchdog.IWatchdog.Running()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html#a27e3ca033079704cca1f215e31f4cc0b',1,'Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Running()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html#aed7531909b8a809544b643c0d74933aa',1,'Tgstation.Server.Host.Components.Watchdog.WatchdogBase.running()']]], + ['running',['running',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html#aed7531909b8a809544b643c0d74933aa',1,'Tgstation.Server.Host.Components.Watchdog.WatchdogBase.running()'],['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon.html#ae0b56fabcaa54dd916f95949914543ef',1,'Tgstation.Server.Api.Models.DreamDaemon.Running()'],['../interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_i_watchdog.html#a26fc404928f808be57119b4dcd5edbb2',1,'Tgstation.Server.Host.Components.Watchdog.IWatchdog.Running()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html#a27e3ca033079704cca1f215e31f4cc0b',1,'Tgstation.Server.Host.Components.Watchdog.WatchdogBase.Running()']]], ['runrequest_3c_20tresult_20_3e',['RunRequest< TResult >',['../class_tgstation_1_1_server_1_1_client_1_1_api_client.html#a5ff438a63f0eaf323c7cf6adc8532cba',1,'Tgstation::Server::Client::ApiClient']]], ['runtask',['runTask',['../class_tgstation_1_1_server_1_1_host_1_1_system_1_1_windows_network_prompt_reaper.html#afb100cbab0aa9560e4831bee360f9c0f',1,'Tgstation::Server::Host::System::WindowsNetworkPromptReaper']]], ['runtimeinformation',['RuntimeInformation',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information.html',1,'Tgstation::Server::Host::Components::Interop::Bridge']]], diff --git a/search/all_14.js b/search/all_14.js index 7666eba83b..ebd2563a42 100644 --- a/search/all_14.js +++ b/search/all_14.js @@ -85,7 +85,7 @@ var searchData= ['token_2ecs',['Token.cs',['../_token_8cs.html',1,'']]], ['tokenclockskewminutes',['TokenClockSkewMinutes',['../class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory.html#abbf0169740f418e6ffd4f8c783fdff50',1,'Tgstation::Server::Host::Security::TokenFactory']]], ['tokenexpiryminutes',['TokenExpiryMinutes',['../class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory.html#a0cea7772b1f5107da73c23e821e76b43',1,'Tgstation::Server::Host::Security::TokenFactory']]], - ['tokenfactory',['tokenFactory',['../class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller.html#afd05899e85f5a8a6b8c8e374364872f8',1,'Tgstation.Server.Host.Controllers.HomeController.tokenFactory()'],['../class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html#a93cb446fc8d8f84ea595abe709265398',1,'Tgstation.Server.Host.Core.Application.tokenFactory()'],['../class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory.html#a6ed83527beb343b96506ad417a91ca94',1,'Tgstation.Server.Host.Security.TokenFactory.TokenFactory()']]], + ['tokenfactory',['TokenFactory',['../class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory.html#a6ed83527beb343b96506ad417a91ca94',1,'Tgstation.Server.Host.Security.TokenFactory.TokenFactory()'],['../class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller.html#afd05899e85f5a8a6b8c8e374364872f8',1,'Tgstation.Server.Host.Controllers.HomeController.tokenFactory()'],['../class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html#a93cb446fc8d8f84ea595abe709265398',1,'Tgstation.Server.Host.Core.Application.tokenFactory()']]], ['tokenfactory',['TokenFactory',['../class_tgstation_1_1_server_1_1_host_1_1_security_1_1_token_factory.html',1,'Tgstation::Server::Host::Security']]], ['tokenfactory_2ecs',['TokenFactory.cs',['../_token_factory_8cs.html',1,'']]], ['tokenrefreshheaders',['tokenRefreshHeaders',['../class_tgstation_1_1_server_1_1_client_1_1_api_client.html#a5292a281f3ab688eecbf3df7feec400c',1,'Tgstation::Server::Client::ApiClient']]], diff --git a/search/all_15.js b/search/all_15.js index a13c85c1b1..2a2c54b043 100644 --- a/search/all_15.js +++ b/search/all_15.js @@ -21,8 +21,8 @@ var searchData= ['updatefromorigin',['UpdateFromOrigin',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository.html#a990818be38def1a4d88216f8bec19106',1,'Tgstation::Server::Api::Models::Repository']]], ['updatepackageassetname',['UpdatePackageAssetName',['../class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration.html#a7f5697f355392923d10aa77a8e94dc91',1,'Tgstation::Server::Host::Configuration::UpdatesConfiguration']]], ['updatepath',['updatePath',['../class_tgstation_1_1_server_1_1_host_1_1_server.html#a4e10711e91a3025a08ab98e9024e90ad',1,'Tgstation::Server::Host::Server']]], - ['updatesconfiguration',['updatesConfiguration',['../class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller.html#afa09210575a84b625e234e7e0b19fa08',1,'Tgstation::Server::Host::Controllers::AdministrationController']]], ['updatesconfiguration',['UpdatesConfiguration',['../class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration.html',1,'Tgstation::Server::Host::Configuration']]], + ['updatesconfiguration',['updatesConfiguration',['../class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller.html#afa09210575a84b625e234e7e0b19fa08',1,'Tgstation::Server::Host::Controllers::AdministrationController']]], ['updatesconfiguration_2ecs',['UpdatesConfiguration.cs',['../_updates_configuration_8cs.html',1,'']]], ['updating',['updating',['../class_tgstation_1_1_server_1_1_host_1_1_server.html#a3a4cc72abe0c0a1e8caddeab4a210324',1,'Tgstation::Server::Host::Server']]], ['url',['Url',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base.html#ab40be7f3d663eaea7b465ca203957629',1,'Tgstation.Server.Api.Models.Internal.TestMergeBase.Url()'],['../class_tgstation_1_1_server_1_1_client_1_1_api_client.html#a33675bc7469cf1e0dd8f1a21dbaa71a2',1,'Tgstation.Server.Client.ApiClient.Url()'],['../interface_tgstation_1_1_server_1_1_client_1_1_i_api_client.html#a0efbf73e1dfbee520ceafa593ee2ec51',1,'Tgstation.Server.Client.IApiClient.Url()'],['../interface_tgstation_1_1_server_1_1_client_1_1_i_server_client.html#a2c34434ebb4af540cbd3ec67fc116396',1,'Tgstation.Server.Client.IServerClient.Url()'],['../class_tgstation_1_1_server_1_1_client_1_1_server_client.html#a7dcb54f317c73bd5a54f7856f0ef79fc',1,'Tgstation.Server.Client.ServerClient.Url()']]], @@ -33,8 +33,8 @@ var searchData= ['usedbconflicthandling',['UseDbConflictHandling',['../class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_application_builder_extensions.html#a9fb7c6b75b76c45a6102bec991a311c4',1,'Tgstation::Server::Host::Extensions::ApplicationBuilderExtensions']]], ['useexecutables',['UseExecutables',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager.html#a3767b16e9f00578e385dcca6b7e6b816',1,'Tgstation.Server.Host.Components.Byond.ByondManager.UseExecutables()'],['../interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_manager.html#ae897f63dc75160c7378292be017a50b1',1,'Tgstation.Server.Host.Components.Byond.IByondManager.UseExecutables()']]], ['useexperimentalwatchdog',['UseExperimentalWatchdog',['../class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration.html#aba344f151bae43f8f48c4c8ca2f483f7',1,'Tgstation::Server::Host::Configuration::GeneralConfiguration']]], - ['user',['User',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user.html',1,'Tgstation::Server::Api::Models']]], ['user',['User',['../class_tgstation_1_1_server_1_1_host_1_1_models_1_1_user.html',1,'Tgstation::Server::Host::Models']]], + ['user',['User',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user.html',1,'Tgstation::Server::Api::Models']]], ['user',['User',['../class_tgstation_1_1_server_1_1_api_1_1_routes.html#a12784e8b5b7ac25c0684c9d4c7c59178',1,'Tgstation.Server.Api.Routes.User()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message.html#a92a51d88c16a6182343cb66e36f3bf89',1,'Tgstation.Server.Host.Components.Chat.Providers.Message.User()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command.html#a4bc35ef53e296ec237216b3d0312f5da',1,'Tgstation.Server.Host.Components.Interop.Topic.ChatCommand.User()'],['../class_tgstation_1_1_server_1_1_host_1_1_security_1_1_authentication_context.html#a0846ac9679599a99923987863edb0d5c',1,'Tgstation.Server.Host.Security.AuthenticationContext.User()'],['../interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_authentication_context.html#ae2e7c0c04d2797b9a24a9776277ec77b',1,'Tgstation.Server.Host.Security.IAuthenticationContext.User()'],['../class_tgstation_1_1_server_1_1_client_1_1_users_client.html#a67aaaea73d5c7a55860fb55f783f0534',1,'Tgstation.Server.Client.UsersClient.User(Routes.User, user??throw new ArgumentNullException(nameof(user)), cancellationToken)'],['../class_tgstation_1_1_server_1_1_client_1_1_users_client.html#a67aaaea73d5c7a55860fb55f783f0534',1,'Tgstation.Server.Client.UsersClient.User(Routes.User, user??throw new ArgumentNullException(nameof(user)), cancellationToken)']]], ['user',['User',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user.html',1,'Tgstation::Server::Api::Models::Internal']]], ['user_2ecs',['User.cs',['../_tgstation_8_server_8_api_2_models_2_internal_2_user_8cs.html',1,'']]], @@ -45,7 +45,6 @@ var searchData= ['usercontroller',['UserController',['../class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller.html#a972194803b6ad32f7be555b9ea93e961',1,'Tgstation::Server::Host::Controllers::UserController']]], ['usercontroller',['UserController',['../class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller.html',1,'Tgstation::Server::Host::Controllers']]], ['usercontroller_2ecs',['UserController.cs',['../_user_controller_8cs.html',1,'']]], - ['userequestcounting',['UseRequestCounting',['../class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_application_builder_extensions.html#a096bd3ec1c710bbff6eb56d52252ed2f',1,'Tgstation::Server::Host::Extensions::ApplicationBuilderExtensions']]], ['userid',['UserId',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user.html#ab931666b8099bf3f765545912f07246c',1,'Tgstation::Server::Api::Models::InstanceUser']]], ['userlimit',['UserLimit',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information.html#a74a84ae6531a78ce51038f22e081bd04',1,'Tgstation::Server::Api::Models::Internal::ServerInformation']]], ['usermismatchnamesid',['UserMismatchNameSid',['../namespace_tgstation_1_1_server_1_1_api_1_1_models.html#a1a6adb59dd51244efabf4e548e7075c8ab254802c60656270a5f21f42da04bc0e',1,'Tgstation::Server::Api::Models']]], diff --git a/search/all_17.js b/search/all_17.js index f83be9cbfb..6829bc99c6 100644 --- a/search/all_17.js +++ b/search/all_17.js @@ -2,7 +2,7 @@ var searchData= [ ['wait',['Wait',['../class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_handler.html#aa3f314a623eb4800fbf6cd88685b54d7',1,'Tgstation::Server::Host::Jobs::JobHandler']]], ['waitforjobcompletion',['WaitForJobCompletion',['../interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html#a04ad7543ef9c8863c1d8d0b46d17f522',1,'Tgstation.Server.Host.Jobs.IJobManager.WaitForJobCompletion()'],['../class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager.html#a91cb1783409dd1e5cd4ec7670851f05f',1,'Tgstation.Server.Host.Jobs.JobManager.WaitForJobCompletion()']]], - ['watchdog',['watchdog',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command.html#a90292e2c1149c3d0e92a79d98968be44',1,'Tgstation.Server.Host.Components.Chat.Commands.ByondCommand.watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory.html#aec51431b45d46994bbe24550640833d0',1,'Tgstation.Server.Host.Components.Chat.Commands.CommandFactory.watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command.html#a75363c8266024cf66cb86d1c44545bdc',1,'Tgstation.Server.Host.Components.Chat.Commands.PullRequestsCommand.watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command.html#aeabbea7c18623b8fb74c64a3b90aa453',1,'Tgstation.Server.Host.Components.Chat.Commands.RevisionCommand.watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_event_consumer.html#ac460374f4a77377ed95d0474e93dac22',1,'Tgstation.Server.Host.Components.EventConsumer.watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_service_1_1_server_service.html#a92f39be2b47f571fe439f78ccadd2acc',1,'Tgstation.Server.Host.Service.ServerService.watchdog()'],['../interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance.html#ae03ea9eb9252aed389443f3bc038cfb2',1,'Tgstation.Server.Host.Components.IInstance.Watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html#a902e9a3917553cae8ec372948e98d6ec',1,'Tgstation.Server.Host.Components.Instance.Watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog.html#ada6c36ef01a0cdaf67ea13a350c3f073',1,'Tgstation.Server.Host.Watchdog.Watchdog.Watchdog()']]], + ['watchdog',['Watchdog',['../interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance.html#ae03ea9eb9252aed389443f3bc038cfb2',1,'Tgstation.Server.Host.Components.IInstance.Watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html#a902e9a3917553cae8ec372948e98d6ec',1,'Tgstation.Server.Host.Components.Instance.Watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog.html#ada6c36ef01a0cdaf67ea13a350c3f073',1,'Tgstation.Server.Host.Watchdog.Watchdog.Watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command.html#a90292e2c1149c3d0e92a79d98968be44',1,'Tgstation.Server.Host.Components.Chat.Commands.ByondCommand.watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory.html#aec51431b45d46994bbe24550640833d0',1,'Tgstation.Server.Host.Components.Chat.Commands.CommandFactory.watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command.html#a75363c8266024cf66cb86d1c44545bdc',1,'Tgstation.Server.Host.Components.Chat.Commands.PullRequestsCommand.watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command.html#aeabbea7c18623b8fb74c64a3b90aa453',1,'Tgstation.Server.Host.Components.Chat.Commands.RevisionCommand.watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_event_consumer.html#ac460374f4a77377ed95d0474e93dac22',1,'Tgstation.Server.Host.Components.EventConsumer.watchdog()'],['../class_tgstation_1_1_server_1_1_host_1_1_service_1_1_server_service.html#a92f39be2b47f571fe439f78ccadd2acc',1,'Tgstation.Server.Host.Service.ServerService.watchdog()']]], ['watchdog',['Watchdog',['../class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog.html',1,'Tgstation::Server::Host::Watchdog']]], ['watchdog_2ecs',['Watchdog.cs',['../_watchdog_8cs.html',1,'']]], ['watchdogbase',['WatchdogBase',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html',1,'Tgstation::Server::Host::Components::Watchdog']]], @@ -11,7 +11,7 @@ var searchData= ['watchdogcompilejobcorrupted',['WatchdogCompileJobCorrupted',['../namespace_tgstation_1_1_server_1_1_api_1_1_models.html#a1a6adb59dd51244efabf4e548e7075c8a5bf519a63341001be4c5c6c4e940f160',1,'Tgstation::Server::Api::Models']]], ['watchdogdetach',['WatchdogDetach',['../namespace_tgstation_1_1_server_1_1_host_1_1_components.html#a67a04fc5ffb3b43b0f887df8796d6381a3eac9672e6db27cac6717a7a58577359',1,'Tgstation::Server::Host::Components']]], ['watchdogfactory',['WatchdogFactory',['../class_tgstation_1_1_server_1_1_host_1_1_watchdog_1_1_watchdog_factory.html',1,'Tgstation::Server::Host::Watchdog']]], - ['watchdogfactory',['watchdogFactory',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory.html#ab5bda9a81248be0498e668f2b148aa82',1,'Tgstation.Server.Host.Components.InstanceFactory.watchdogFactory()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory.html#aab0326100c3cf0f68e7345990d30b308',1,'Tgstation.Server.Host.Components.Watchdog.WatchdogFactory.WatchdogFactory()']]], + ['watchdogfactory',['WatchdogFactory',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory.html#aab0326100c3cf0f68e7345990d30b308',1,'Tgstation.Server.Host.Components.Watchdog.WatchdogFactory.WatchdogFactory()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory.html#ab5bda9a81248be0498e668f2b148aa82',1,'Tgstation.Server.Host.Components.InstanceFactory.watchdogFactory()']]], ['watchdogfactory',['WatchdogFactory',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory.html',1,'Tgstation::Server::Host::Components::Watchdog']]], ['watchdogfactory_2ecs',['WatchdogFactory.cs',['../_components_2_watchdog_2_watchdog_factory_8cs.html',1,'']]], ['watchdogfactory_2ecs',['WatchdogFactory.cs',['../_watchdog_2_watchdog_factory_8cs.html',1,'']]], diff --git a/search/all_3.js b/search/all_3.js index 319efba53c..78f37a0cf3 100644 --- a/search/all_3.js +++ b/search/all_3.js @@ -5,6 +5,7 @@ var searchData= ['cachedirectoryname',['CacheDirectoryName',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base.html#a4f8d03c61dfdd7c1a60c6b495288806f',1,'Tgstation::Server::Host::Components::Byond::ByondInstallerBase']]], ['cachesystemidentity',['CacheSystemIdentity',['../class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache.html#acbbad46e8e5ac5cae600edce613f9cf5',1,'Tgstation.Server.Host.Security.IdentityCache.CacheSystemIdentity()'],['../interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_identity_cache.html#a40f3695ec18d3df1bea7b230b75dabbb',1,'Tgstation.Server.Host.Security.IIdentityCache.CacheSystemIdentity()']]], ['calculateexpecteddeploymenttime',['CalculateExpectedDeploymentTime',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html#a2365f1b05cb4cea83027efaea9580f83',1,'Tgstation::Server::Host::Components::Deployment::DreamMaker']]], + ['canapplywithoutreboot',['CanApplyWithoutReboot',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#ad1c56d38c1a48c110765c99a72619e13',1,'Tgstation::Server::Api::Models::Internal::DreamDaemonLaunchParameters']]], ['cancel',['Cancel',['../interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_jobs_client.html#a060a731a0c221146d5d81d7890e1cd42',1,'Tgstation.Server.Client.Components.IJobsClient.Cancel()'],['../class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client.html#a50456aace539b2c54afc8f8218278c49',1,'Tgstation.Server.Client.Components.JobsClient.Cancel()'],['../class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_handler.html#a674342b0dc8050c0ab42a299aa4a7762',1,'Tgstation.Server.Host.Jobs.JobHandler.Cancel()']]], ['cancelclone',['CancelClone',['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#a95336db3db40dbae9701ef6e51240f39a8863765f0ecf9b3004e8051a28251d6a',1,'Tgstation::Server::Api::Rights']]], ['cancelcompile',['CancelCompile',['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#a6aac419b6a793fe07657d96ac48dee5daadc2d374d8bb5ae840bbb0145868fc1f',1,'Tgstation::Server::Api::Rights']]], @@ -186,11 +187,11 @@ var searchData= ['configuration',['configuration',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html#a2fe7ecccab0b5b1be9fdda8cbf097d9b',1,'Tgstation.Server.Host.Components.Deployment.DreamMaker.configuration()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_event_consumer.html#acf0b5b1529168e0c66003f571a4edb6e',1,'Tgstation.Server.Host.Components.EventConsumer.configuration()'],['../class_tgstation_1_1_server_1_1_api_1_1_routes.html#a8aaca6b84ee519e26c8351c2b5929c18',1,'Tgstation.Server.Api.Routes.Configuration()'],['../interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_instance_client.html#a16626c6a13892319d3f24e0c57dd9394',1,'Tgstation.Server.Client.Components.IInstanceClient.Configuration()'],['../class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client.html#a32339ec5eab6e79b673bed2aca4dbceb',1,'Tgstation.Server.Client.Components.InstanceClient.Configuration()'],['../interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_i_instance.html#a223522ccf4c8fa14c528d55065134f42',1,'Tgstation.Server.Host.Components.IInstance.Configuration()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html#a49c2073606768819b91a401c21fe3555',1,'Tgstation.Server.Host.Components.Instance.Configuration()'],['../class_tgstation_1_1_server_1_1_host_1_1_setup_1_1_setup_application.html#abecd5329f7937e822959734f3c5272d1',1,'Tgstation.Server.Host.Setup.SetupApplication.Configuration()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration.html#ae5932bea40716ebcc3145ccfd2c48aa3',1,'Tgstation.Server.Host.Components.StaticFiles.Configuration.Configuration()'],['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#a7b02c8c3dadd90810a9eaa24712a0a20a254f642527b45bc260048e30704edb39',1,'Tgstation.Server.Api.Rights.Configuration()']]], ['configuration',['Configuration',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration.html',1,'Tgstation::Server::Host::Components::StaticFiles']]], ['configuration_2ecs',['Configuration.cs',['../_configuration_8cs.html',1,'']]], - ['configurationclient',['ConfigurationClient',['../class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html#aed092908af675dfdec16528492815010',1,'Tgstation::Server::Client::Components::ConfigurationClient']]], ['configurationclient',['ConfigurationClient',['../class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html',1,'Tgstation::Server::Client::Components']]], + ['configurationclient',['ConfigurationClient',['../class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html#aed092908af675dfdec16528492815010',1,'Tgstation::Server::Client::Components::ConfigurationClient']]], ['configurationclient_2ecs',['ConfigurationClient.cs',['../_configuration_client_8cs.html',1,'']]], - ['configurationcontroller',['ConfigurationController',['../class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller.html',1,'Tgstation::Server::Host::Controllers']]], ['configurationcontroller',['ConfigurationController',['../class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller.html#a9ed3e9d430a0a4dbe5b2a3e3298089ca',1,'Tgstation::Server::Host::Controllers::ConfigurationController']]], + ['configurationcontroller',['ConfigurationController',['../class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller.html',1,'Tgstation::Server::Host::Controllers']]], ['configurationcontroller_2ecs',['ConfigurationController.cs',['../_configuration_controller_8cs.html',1,'']]], ['configurationdirectorynotempty',['ConfigurationDirectoryNotEmpty',['../namespace_tgstation_1_1_server_1_1_api_1_1_models.html#a1a6adb59dd51244efabf4e548e7075c8ab6aac8a71757f5fdf164188595806e72',1,'Tgstation::Server::Api::Models']]], ['configurationfile',['ConfigurationFile',['../class_tgstation_1_1_server_1_1_api_1_1_routes.html#aa983574bbb6d05042ad2f96d30ffa824',1,'Tgstation.Server.Api.Routes.ConfigurationFile()'],['../class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html#a60002e47d604a7189fea03b3a4720787',1,'Tgstation.Server.Client.Components.ConfigurationClient.ConfigurationFile(Routes.Configuration, directory, instance.Id, cancellationToken)'],['../class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html#af2423b817b8e4de1892e915b0c4e3e17',1,'Tgstation.Server.Client.Components.ConfigurationClient.ConfigurationFile(Routes.Configuration, file??throw new ArgumentNullException(nameof(file)), instance.Id, cancellationToken)']]], diff --git a/search/all_d.js b/search/all_d.js index 413f0ea1bb..a4d1b0edc2 100644 --- a/search/all_d.js +++ b/search/all_d.js @@ -5,7 +5,6 @@ var searchData= ['mapchannels',['MapChannels',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider.html#a8f3c3fbf096a7118ad96f94838852028',1,'Tgstation.Server.Host.Components.Chat.Providers.DiscordProvider.MapChannels()'],['../interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider.html#acb8970c1062c37761b832ea9aa4f3254',1,'Tgstation.Server.Host.Components.Chat.Providers.IProvider.MapChannels()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html#a11c9e7a1c9b6ec1fdeb711f1ab519713',1,'Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.MapChannels()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider.html#ac08fc8e6866dc5659c16a28840674cdc',1,'Tgstation.Server.Host.Components.Chat.Providers.Provider.MapChannels()']]], ['mappedchannels',['mappedChannels',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager.html#a556af78ef77307e5bff2d79daa628bcb',1,'Tgstation.Server.Host.Components.Chat.ChatManager.mappedChannels()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider.html#a044ae95d278a4ed4a6a02449e24e8146',1,'Tgstation.Server.Host.Components.Chat.Providers.DiscordProvider.mappedChannels()']]], ['mariadb',['MariaDB',['../namespace_tgstation_1_1_server_1_1_host_1_1_configuration.html#acda8f6ee23a9ee8ac298f7b4a7d5617ca7f9733e208088b1ce6df3d4be1765396',1,'Tgstation::Server::Host::Configuration']]], - ['match',['Match',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#acf0f8c66b9e3cfa5af8240d0efac2e36',1,'Tgstation::Server::Api::Models::Internal::DreamDaemonLaunchParameters']]], ['maximumindexablestringlength',['MaximumIndexableStringLength',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits.html#aefd2529f2213c4bfdc9ba41812ef108b',1,'Tgstation::Server::Api::Models::Limits']]], ['maximumstringlength',['MaximumStringLength',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits.html#aceff5849fdb5c12fd9573b1e9ce0e609',1,'Tgstation::Server::Api::Models::Limits']]], ['mention',['Mention',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user.html#a2e61afea61b8aaee53d0ada74b214c46',1,'Tgstation::Server::Host::Components::Chat::ChatUser']]], diff --git a/search/all_e.js b/search/all_e.js index 0f471b3d15..881b3127d2 100644 --- a/search/all_e.js +++ b/search/all_e.js @@ -18,7 +18,7 @@ var searchData= ['nextdmbprovider',['nextDmbProvider',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html#affbfb8dd410addc55b47b5c08143a509',1,'Tgstation::Server::Host::Components::Deployment::DmbFactory']]], ['nextmessage',['nextMessage',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider.html#ac27feec8aca499fa963dd6f6b557b818',1,'Tgstation.Server.Host.Components.Chat.Providers.Provider.nextMessage()'],['../interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider.html#ab6cd020395b652aa9d79c00497b739fb',1,'Tgstation.Server.Host.Components.Chat.Providers.IProvider.NextMessage()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider.html#a962a3510e617d6754d8e21a237d4b933',1,'Tgstation.Server.Host.Components.Chat.Providers.Provider.NextMessage()']]], ['nextport',['nextPort',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html#ae72efdb3c73ce549d24c16ae8fa6cd59',1,'Tgstation::Server::Host::Components::Session::SessionController']]], - ['nickname',['nickname',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html#a75457eda73c1935c8784dc7fadf9e0ba',1,'Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.nickname()'],['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder.html#a95d8cce20205d05b7bfbda1d088af791',1,'Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Nickname()']]], + ['nickname',['Nickname',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder.html#a95d8cce20205d05b7bfbda1d088af791',1,'Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Nickname()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html#a75457eda73c1935c8784dc7fadf9e0ba',1,'Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.nickname()']]], ['nickserv',['NickServ',['../namespace_tgstation_1_1_server_1_1_api_1_1_models.html#a0a41c646f859c99d437373d8e6e0545ba1d351e780172667f7ac246f762907249',1,'Tgstation::Server::Api::Models']]], ['none',['None',['../class_tgstation_1_1_server_1_1_host_1_1_native_methods.html#afecbde132584de6ed7e41c8c7535f556a6adf97f83acf6453d4a6a4b1070f3754',1,'Tgstation.Server.Host.NativeMethods.None()'],['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#affda1440f9c5e2dfcca65138d2f89a21a6adf97f83acf6453d4a6a4b1070f3754',1,'Tgstation.Server.Api.Rights.None()'],['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#a2a217a19e652f117e2324fb79ed838b9a6adf97f83acf6453d4a6a4b1070f3754',1,'Tgstation.Server.Api.Rights.None()'],['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#a580a36a11165b2590be342b45c31ec72a6adf97f83acf6453d4a6a4b1070f3754',1,'Tgstation.Server.Api.Rights.None()'],['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#a691a59767073bc7dff0f17b809d07b0ca6adf97f83acf6453d4a6a4b1070f3754',1,'Tgstation.Server.Api.Rights.None()'],['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#acf2642afce6567c03b79876139a10a49a6adf97f83acf6453d4a6a4b1070f3754',1,'Tgstation.Server.Api.Rights.None()'],['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#a6aac419b6a793fe07657d96ac48dee5da6adf97f83acf6453d4a6a4b1070f3754',1,'Tgstation.Server.Api.Rights.None()'],['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#af199a84ed6fe6ca557db9de91070ad79a6adf97f83acf6453d4a6a4b1070f3754',1,'Tgstation.Server.Api.Rights.None()'],['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#a5f1b5a9225190982810802d7a85bb601a6adf97f83acf6453d4a6a4b1070f3754',1,'Tgstation.Server.Api.Rights.None()'],['../namespace_tgstation_1_1_server_1_1_api_1_1_rights.html#a95336db3db40dbae9701ef6e51240f39a6adf97f83acf6453d4a6a4b1070f3754',1,'Tgstation.Server.Api.Rights.None()']]], ['normal',['Normal',['../namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_session.html#a3a9adb69be732dbd67aef59559f830c2a960b44c579bc2f6818d2daaf9e4c16f0',1,'Tgstation::Server::Host::Components::Session']]], diff --git a/search/functions_13.js b/search/functions_13.js index fa68de24fb..7483e29481 100644 --- a/search/functions_13.js +++ b/search/functions_13.js @@ -15,7 +15,6 @@ var searchData= ['useexecutables',['UseExecutables',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager.html#a3767b16e9f00578e385dcca6b7e6b816',1,'Tgstation.Server.Host.Components.Byond.ByondManager.UseExecutables()'],['../interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_i_byond_manager.html#ae897f63dc75160c7378292be017a50b1',1,'Tgstation.Server.Host.Components.Byond.IByondManager.UseExecutables()']]], ['user',['User',['../class_tgstation_1_1_server_1_1_client_1_1_users_client.html#a67aaaea73d5c7a55860fb55f783f0534',1,'Tgstation.Server.Client.UsersClient.User(Routes.User, user??throw new ArgumentNullException(nameof(user)), cancellationToken)'],['../class_tgstation_1_1_server_1_1_client_1_1_users_client.html#a67aaaea73d5c7a55860fb55f783f0534',1,'Tgstation.Server.Client.UsersClient.User(Routes.User, user??throw new ArgumentNullException(nameof(user)), cancellationToken)']]], ['usercontroller',['UserController',['../class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller.html#a972194803b6ad32f7be555b9ea93e961',1,'Tgstation::Server::Host::Controllers::UserController']]], - ['userequestcounting',['UseRequestCounting',['../class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_application_builder_extensions.html#a096bd3ec1c710bbff6eb56d52252ed2f',1,'Tgstation::Server::Host::Extensions::ApplicationBuilderExtensions']]], ['usersclient',['UsersClient',['../class_tgstation_1_1_server_1_1_client_1_1_users_client.html#aa7e771fad86b68de8483944e9f34a88e',1,'Tgstation::Server::Client::UsersClient']]], ['useservererrorhandling',['UseServerErrorHandling',['../class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_application_builder_extensions.html#a879c6c603a37c9aebf25174e7aee4b2d',1,'Tgstation::Server::Host::Extensions::ApplicationBuilderExtensions']]], ['usesetupapplication',['UseSetupApplication',['../class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_host_builder_extensions.html#ae797b26258b28c3540df4af88ff850fe',1,'Tgstation::Server::Host::Extensions::HostBuilderExtensions']]], diff --git a/search/functions_2.js b/search/functions_2.js index d072eef919..1f18cfc47c 100644 --- a/search/functions_2.js +++ b/search/functions_2.js @@ -2,6 +2,7 @@ var searchData= [ ['cachesystemidentity',['CacheSystemIdentity',['../class_tgstation_1_1_server_1_1_host_1_1_security_1_1_identity_cache.html#acbbad46e8e5ac5cae600edce613f9cf5',1,'Tgstation.Server.Host.Security.IdentityCache.CacheSystemIdentity()'],['../interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_identity_cache.html#a40f3695ec18d3df1bea7b230b75dabbb',1,'Tgstation.Server.Host.Security.IIdentityCache.CacheSystemIdentity()']]], ['calculateexpecteddeploymenttime',['CalculateExpectedDeploymentTime',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html#a2365f1b05cb4cea83027efaea9580f83',1,'Tgstation::Server::Host::Components::Deployment::DreamMaker']]], + ['canapplywithoutreboot',['CanApplyWithoutReboot',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#ad1c56d38c1a48c110765c99a72619e13',1,'Tgstation::Server::Api::Models::Internal::DreamDaemonLaunchParameters']]], ['cancel',['Cancel',['../interface_tgstation_1_1_server_1_1_client_1_1_components_1_1_i_jobs_client.html#a060a731a0c221146d5d81d7890e1cd42',1,'Tgstation.Server.Client.Components.IJobsClient.Cancel()'],['../class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client.html#a50456aace539b2c54afc8f8218278c49',1,'Tgstation.Server.Client.Components.JobsClient.Cancel()'],['../class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_handler.html#a674342b0dc8050c0ab42a299aa4a7762',1,'Tgstation.Server.Host.Jobs.JobHandler.Cancel()']]], ['canceljob',['CancelJob',['../interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html#a02ff92fbece1f77bc9d34216d1ffa7ce',1,'Tgstation.Server.Host.Jobs.IJobManager.CancelJob()'],['../class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_manager.html#afab851d16b36dadeb5d7afdc40e7a740',1,'Tgstation.Server.Host.Jobs.JobManager.CancelJob()']]], ['canconvert',['CanConvert',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter.html#a06799ee353b6539298ae9157a94447d7',1,'Tgstation.Server.Host.Components.Interop.Converters.BoolConverter.CanConvert()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter.html#a4179b3dce37ebd3e673c0d3326c08624',1,'Tgstation.Server.Host.Components.Interop.Converters.VersionConverter.CanConvert()']]], diff --git a/search/functions_c.js b/search/functions_c.js index bd703771e2..46041a983e 100644 --- a/search/functions_c.js +++ b/search/functions_c.js @@ -3,7 +3,6 @@ var searchData= ['main',['Main',['../class_tgstation_1_1_server_1_1_host_1_1_program.html#ad9df0f26f38c75cf0c376910caef770c',1,'Tgstation.Server.Host.Program.Main()'],['../class_tgstation_1_1_server_1_1_host_1_1_service_1_1_program.html#a626a9a4670edb87ce05328762d46cf8f',1,'Tgstation.Server.Host.Service.Program.Main()']]], ['makeactive',['MakeActive',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_windows_swappable_dmb_provider.html#a4ba71a695224e90495acdd9fc9e18292',1,'Tgstation::Server::Host::Components::Deployment::WindowsSwappableDmbProvider']]], ['mapchannels',['MapChannels',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider.html#a8f3c3fbf096a7118ad96f94838852028',1,'Tgstation.Server.Host.Components.Chat.Providers.DiscordProvider.MapChannels()'],['../interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_i_provider.html#acb8970c1062c37761b832ea9aa4f3254',1,'Tgstation.Server.Host.Components.Chat.Providers.IProvider.MapChannels()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html#a11c9e7a1c9b6ec1fdeb711f1ab519713',1,'Tgstation.Server.Host.Components.Chat.Providers.IrcProvider.MapChannels()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider.html#ac08fc8e6866dc5659c16a28840674cdc',1,'Tgstation.Server.Host.Components.Chat.Providers.Provider.MapChannels()']]], - ['match',['Match',['../class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#acf0f8c66b9e3cfa5af8240d0efac2e36',1,'Tgstation::Server::Api::Models::Internal::DreamDaemonLaunchParameters']]], ['mergeorigin',['MergeOrigin',['../interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_i_repository.html#a2911d39fd36e857c0d77503fc5c41a94',1,'Tgstation.Server.Host.Components.Repository.IRepository.MergeOrigin()'],['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository.html#aa2437784b303f5c523a6638d717919eb',1,'Tgstation.Server.Host.Components.Repository.Repository.MergeOrigin()']]], ['methodnotsupportedexception',['MethodNotSupportedException',['../class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception.html#ac6795b4ca2ddafd8cf3d9eb94e1e65b3',1,'Tgstation.Server.Client.MethodNotSupportedException.MethodNotSupportedException(ErrorMessage?errorMessage, HttpResponseMessage responseMessage)'],['../class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception.html#a37543ec8aabe8b8fa96a15243d02e318',1,'Tgstation.Server.Client.MethodNotSupportedException.MethodNotSupportedException(string message)'],['../class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception.html#a5b0a4306e368279a8b18f50a7ad6bb63',1,'Tgstation.Server.Client.MethodNotSupportedException.MethodNotSupportedException(string message, Exception innerException)']]], ['modifydme',['ModifyDme',['../class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html#a1f48709bfdc0a2d5f675a2a2862755aa',1,'Tgstation::Server::Host::Components::Deployment::DreamMaker']]], diff --git a/src_2_d_m_a_p_i_2tgs_2_r_e_a_d_m_e_8md.html b/src_2_d_m_a_p_i_2tgs_2_r_e_a_d_m_e_8md.html index b723c1977f..fcbdf432ca 100644 --- a/src_2_d_m_a_p_i_2tgs_2_r_e_a_d_m_e_8md.html +++ b/src_2_d_m_a_p_i_2tgs_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_d_m_a_p_i_2tgs_2_r_e_a_d_m_e_8md_source.html b/src_2_d_m_a_p_i_2tgs_2_r_e_a_d_m_e_8md_source.html index 1f0e2f73f3..d446ae9f88 100644 --- a/src_2_d_m_a_p_i_2tgs_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_d_m_a_p_i_2tgs_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_d_m_a_p_i_2tgs_2core_2_r_e_a_d_m_e_8md.html b/src_2_d_m_a_p_i_2tgs_2core_2_r_e_a_d_m_e_8md.html index c2c4f468d9..0adbaface9 100644 --- a/src_2_d_m_a_p_i_2tgs_2core_2_r_e_a_d_m_e_8md.html +++ b/src_2_d_m_a_p_i_2tgs_2core_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_d_m_a_p_i_2tgs_2core_2_r_e_a_d_m_e_8md_source.html b/src_2_d_m_a_p_i_2tgs_2core_2_r_e_a_d_m_e_8md_source.html index 3aec117cc6..1d3fda57a6 100644 --- a/src_2_d_m_a_p_i_2tgs_2core_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_d_m_a_p_i_2tgs_2core_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_d_m_a_p_i_2tgs_2v3210_2_r_e_a_d_m_e_8md.html b/src_2_d_m_a_p_i_2tgs_2v3210_2_r_e_a_d_m_e_8md.html index 30e954c8d1..44cc70b3ff 100644 --- a/src_2_d_m_a_p_i_2tgs_2v3210_2_r_e_a_d_m_e_8md.html +++ b/src_2_d_m_a_p_i_2tgs_2v3210_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_d_m_a_p_i_2tgs_2v3210_2_r_e_a_d_m_e_8md_source.html b/src_2_d_m_a_p_i_2tgs_2v3210_2_r_e_a_d_m_e_8md_source.html index 96c9377831..b09afb7ef8 100644 --- a/src_2_d_m_a_p_i_2tgs_2v3210_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_d_m_a_p_i_2tgs_2v3210_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_d_m_a_p_i_2tgs_2v4_2_r_e_a_d_m_e_8md.html b/src_2_d_m_a_p_i_2tgs_2v4_2_r_e_a_d_m_e_8md.html index 3f82efcd78..95696541f7 100644 --- a/src_2_d_m_a_p_i_2tgs_2v4_2_r_e_a_d_m_e_8md.html +++ b/src_2_d_m_a_p_i_2tgs_2v4_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_d_m_a_p_i_2tgs_2v4_2_r_e_a_d_m_e_8md_source.html b/src_2_d_m_a_p_i_2tgs_2v4_2_r_e_a_d_m_e_8md_source.html index 91576ac52d..78399946cc 100644 --- a/src_2_d_m_a_p_i_2tgs_2v4_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_d_m_a_p_i_2tgs_2v4_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_r_e_a_d_m_e_8md.html b/src_2_r_e_a_d_m_e_8md.html index a42e019258..55b7c28755 100644 --- a/src_2_r_e_a_d_m_e_8md.html +++ b/src_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_r_e_a_d_m_e_8md_source.html b/src_2_r_e_a_d_m_e_8md_source.html index fb79264846..e5ab43a138 100644 --- a/src_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_api_2_r_e_a_d_m_e_8md.html b/src_2_tgstation_8_server_8_api_2_r_e_a_d_m_e_8md.html index fb1ff3dd71..39cf652982 100644 --- a/src_2_tgstation_8_server_8_api_2_r_e_a_d_m_e_8md.html +++ b/src_2_tgstation_8_server_8_api_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_api_2_r_e_a_d_m_e_8md_source.html b/src_2_tgstation_8_server_8_api_2_r_e_a_d_m_e_8md_source.html index d2ff2b4b26..da3baedb59 100644 --- a/src_2_tgstation_8_server_8_api_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_tgstation_8_server_8_api_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_client_app_2_r_e_a_d_m_e_8md.html b/src_2_tgstation_8_server_8_host_2_client_app_2_r_e_a_d_m_e_8md.html index 69b0954a70..bab3dd0e12 100644 --- a/src_2_tgstation_8_server_8_host_2_client_app_2_r_e_a_d_m_e_8md.html +++ b/src_2_tgstation_8_server_8_host_2_client_app_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_client_app_2_r_e_a_d_m_e_8md_source.html b/src_2_tgstation_8_server_8_host_2_client_app_2_r_e_a_d_m_e_8md_source.html index 57e7c07875..4875f761fe 100644 --- a/src_2_tgstation_8_server_8_host_2_client_app_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_tgstation_8_server_8_host_2_client_app_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_components_2_r_e_a_d_m_e_8md.html b/src_2_tgstation_8_server_8_host_2_components_2_r_e_a_d_m_e_8md.html index 09fead04d0..efc65fdfa3 100644 --- a/src_2_tgstation_8_server_8_host_2_components_2_r_e_a_d_m_e_8md.html +++ b/src_2_tgstation_8_server_8_host_2_components_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_components_2_r_e_a_d_m_e_8md_source.html b/src_2_tgstation_8_server_8_host_2_components_2_r_e_a_d_m_e_8md_source.html index 719369fd4c..9e4c06a468 100644 --- a/src_2_tgstation_8_server_8_host_2_components_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_tgstation_8_server_8_host_2_components_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_controllers_2_r_e_a_d_m_e_8md.html b/src_2_tgstation_8_server_8_host_2_controllers_2_r_e_a_d_m_e_8md.html index 04f190558b..21fa94604b 100644 --- a/src_2_tgstation_8_server_8_host_2_controllers_2_r_e_a_d_m_e_8md.html +++ b/src_2_tgstation_8_server_8_host_2_controllers_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_controllers_2_r_e_a_d_m_e_8md_source.html b/src_2_tgstation_8_server_8_host_2_controllers_2_r_e_a_d_m_e_8md_source.html index 08193e5e99..6cb53a744a 100644 --- a/src_2_tgstation_8_server_8_host_2_controllers_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_tgstation_8_server_8_host_2_controllers_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_core_2_r_e_a_d_m_e_8md.html b/src_2_tgstation_8_server_8_host_2_core_2_r_e_a_d_m_e_8md.html index 7798ddf6c8..f6333f397c 100644 --- a/src_2_tgstation_8_server_8_host_2_core_2_r_e_a_d_m_e_8md.html +++ b/src_2_tgstation_8_server_8_host_2_core_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_core_2_r_e_a_d_m_e_8md_source.html b/src_2_tgstation_8_server_8_host_2_core_2_r_e_a_d_m_e_8md_source.html index a7422dfecc..56d3aa7738 100644 --- a/src_2_tgstation_8_server_8_host_2_core_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_tgstation_8_server_8_host_2_core_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_database_2_r_e_a_d_m_e_8md.html b/src_2_tgstation_8_server_8_host_2_database_2_r_e_a_d_m_e_8md.html index 348e815f15..d7931bafb6 100644 --- a/src_2_tgstation_8_server_8_host_2_database_2_r_e_a_d_m_e_8md.html +++ b/src_2_tgstation_8_server_8_host_2_database_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_database_2_r_e_a_d_m_e_8md_source.html b/src_2_tgstation_8_server_8_host_2_database_2_r_e_a_d_m_e_8md_source.html index 441282a810..28c8598ffe 100644 --- a/src_2_tgstation_8_server_8_host_2_database_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_tgstation_8_server_8_host_2_database_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_i_o_2_r_e_a_d_m_e_8md.html b/src_2_tgstation_8_server_8_host_2_i_o_2_r_e_a_d_m_e_8md.html index cce2276df7..6acdc6398d 100644 --- a/src_2_tgstation_8_server_8_host_2_i_o_2_r_e_a_d_m_e_8md.html +++ b/src_2_tgstation_8_server_8_host_2_i_o_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_i_o_2_r_e_a_d_m_e_8md_source.html b/src_2_tgstation_8_server_8_host_2_i_o_2_r_e_a_d_m_e_8md_source.html index bb437c6fcc..fe8027c62c 100644 --- a/src_2_tgstation_8_server_8_host_2_i_o_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_tgstation_8_server_8_host_2_i_o_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_jobs_2_r_e_a_d_m_e_8md.html b/src_2_tgstation_8_server_8_host_2_jobs_2_r_e_a_d_m_e_8md.html index 955b1d8ec4..9d57c8d3c1 100644 --- a/src_2_tgstation_8_server_8_host_2_jobs_2_r_e_a_d_m_e_8md.html +++ b/src_2_tgstation_8_server_8_host_2_jobs_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_jobs_2_r_e_a_d_m_e_8md_source.html b/src_2_tgstation_8_server_8_host_2_jobs_2_r_e_a_d_m_e_8md_source.html index b9ed5b4f0e..5185f8e2a3 100644 --- a/src_2_tgstation_8_server_8_host_2_jobs_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_tgstation_8_server_8_host_2_jobs_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_r_e_a_d_m_e_8md.html b/src_2_tgstation_8_server_8_host_2_r_e_a_d_m_e_8md.html index 857b89ee51..ab9e833046 100644 --- a/src_2_tgstation_8_server_8_host_2_r_e_a_d_m_e_8md.html +++ b/src_2_tgstation_8_server_8_host_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_r_e_a_d_m_e_8md_source.html b/src_2_tgstation_8_server_8_host_2_r_e_a_d_m_e_8md_source.html index 6e8aa8b9c4..8de7399514 100644 --- a/src_2_tgstation_8_server_8_host_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_tgstation_8_server_8_host_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_security_2_r_e_a_d_m_e_8md.html b/src_2_tgstation_8_server_8_host_2_security_2_r_e_a_d_m_e_8md.html index 9a8b2677a5..efb397a6d2 100644 --- a/src_2_tgstation_8_server_8_host_2_security_2_r_e_a_d_m_e_8md.html +++ b/src_2_tgstation_8_server_8_host_2_security_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_security_2_r_e_a_d_m_e_8md_source.html b/src_2_tgstation_8_server_8_host_2_security_2_r_e_a_d_m_e_8md_source.html index e5c6c68f57..bce9d62eda 100644 --- a/src_2_tgstation_8_server_8_host_2_security_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_tgstation_8_server_8_host_2_security_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_setup_2_r_e_a_d_m_e_8md.html b/src_2_tgstation_8_server_8_host_2_setup_2_r_e_a_d_m_e_8md.html index 01afd89489..bb1dc0f5ce 100644 --- a/src_2_tgstation_8_server_8_host_2_setup_2_r_e_a_d_m_e_8md.html +++ b/src_2_tgstation_8_server_8_host_2_setup_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_setup_2_r_e_a_d_m_e_8md_source.html b/src_2_tgstation_8_server_8_host_2_setup_2_r_e_a_d_m_e_8md_source.html index 37a487b2a6..a628e0b094 100644 --- a/src_2_tgstation_8_server_8_host_2_setup_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_tgstation_8_server_8_host_2_setup_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_system_2_r_e_a_d_m_e_8md.html b/src_2_tgstation_8_server_8_host_2_system_2_r_e_a_d_m_e_8md.html index b69152040c..9aa71b8b1a 100644 --- a/src_2_tgstation_8_server_8_host_2_system_2_r_e_a_d_m_e_8md.html +++ b/src_2_tgstation_8_server_8_host_2_system_2_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite
    diff --git a/src_2_tgstation_8_server_8_host_2_system_2_r_e_a_d_m_e_8md_source.html b/src_2_tgstation_8_server_8_host_2_system_2_r_e_a_d_m_e_8md_source.html index f681c743a8..2b79609907 100644 --- a/src_2_tgstation_8_server_8_host_2_system_2_r_e_a_d_m_e_8md_source.html +++ b/src_2_tgstation_8_server_8_host_2_system_2_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
    tgstation-server -  4.3.0 +  4.3.1
    The /tg/station 13 server suite