mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Merge branch 'tor-github/pr/1311'
This commit is contained in:
commit
049705fc1c
5
changes/bug31615
Normal file
5
changes/bug31615
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
o Minor bugfixes (subsystems):
|
||||||
|
- Make the subsystem init order match the subsystem module dependencies.
|
||||||
|
Call windows process security APIs as early as possible. Init log before
|
||||||
|
network and time, so that network and time can use logging.
|
||||||
|
Fixes bug 31615; bugfix on 0.4.0.1-alpha.
|
@ -33,33 +33,38 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Global list of the subsystems in Tor, in the order of their initialization.
|
* Global list of the subsystems in Tor, in the order of their initialization.
|
||||||
|
* Want to know the exact level numbers?
|
||||||
|
* We'll implement a level dump command in #31614.
|
||||||
**/
|
**/
|
||||||
const subsys_fns_t *tor_subsystems[] = {
|
const subsys_fns_t *tor_subsystems[] = {
|
||||||
&sys_winprocess, /* -100 */
|
&sys_winprocess,
|
||||||
&sys_torerr, /* -100 */
|
&sys_torerr,
|
||||||
&sys_wallclock, /* -99 */
|
|
||||||
&sys_threads, /* -95 */
|
|
||||||
&sys_logging, /* -90 */
|
|
||||||
&sys_time, /* -90 */
|
|
||||||
&sys_network, /* -90 */
|
|
||||||
&sys_compress, /* -70 */
|
|
||||||
&sys_crypto, /* -60 */
|
|
||||||
&sys_tortls, /* -50 */
|
|
||||||
&sys_process, /* -35 */
|
|
||||||
|
|
||||||
&sys_orconn_event, /* -33 */
|
&sys_wallclock,
|
||||||
&sys_ocirc_event, /* -32 */
|
&sys_threads,
|
||||||
&sys_btrack, /* -30 */
|
&sys_logging,
|
||||||
|
|
||||||
&sys_evloop, /* -20 */
|
&sys_time,
|
||||||
|
&sys_network,
|
||||||
|
|
||||||
&sys_mainloop, /* 5 */
|
&sys_compress,
|
||||||
&sys_or, /* 20 */
|
&sys_crypto,
|
||||||
|
&sys_tortls,
|
||||||
|
&sys_process,
|
||||||
|
|
||||||
&sys_relay, /* 50 */
|
&sys_orconn_event,
|
||||||
|
&sys_ocirc_event,
|
||||||
|
&sys_btrack,
|
||||||
|
|
||||||
|
&sys_evloop,
|
||||||
|
|
||||||
|
&sys_mainloop,
|
||||||
|
&sys_or,
|
||||||
|
|
||||||
|
&sys_relay,
|
||||||
|
|
||||||
#ifdef HAVE_MODULE_DIRAUTH
|
#ifdef HAVE_MODULE_DIRAUTH
|
||||||
&sys_dirauth, /* 70 */
|
&sys_dirauth,
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -33,7 +33,10 @@ subsys_torerr_shutdown(void)
|
|||||||
|
|
||||||
const subsys_fns_t sys_torerr = {
|
const subsys_fns_t sys_torerr = {
|
||||||
.name = "err",
|
.name = "err",
|
||||||
.level = -100,
|
/* Low-level error handling is a diagnostic feature, we want it to init
|
||||||
|
* right after windows process security, and shutdown last.
|
||||||
|
* (Security never shuts down.) */
|
||||||
|
.level = -99,
|
||||||
.supported = true,
|
.supported = true,
|
||||||
.initialize = subsys_torerr_initialize,
|
.initialize = subsys_torerr_initialize,
|
||||||
.shutdown = subsys_torerr_shutdown
|
.shutdown = subsys_torerr_shutdown
|
||||||
|
@ -29,6 +29,8 @@ subsys_logging_shutdown(void)
|
|||||||
const subsys_fns_t sys_logging = {
|
const subsys_fns_t sys_logging = {
|
||||||
.name = "log",
|
.name = "log",
|
||||||
.supported = true,
|
.supported = true,
|
||||||
|
/* Logging depends on threads, approx time, raw logging, and security.
|
||||||
|
* Most other lib modules depend on logging. */
|
||||||
.level = -90,
|
.level = -90,
|
||||||
.initialize = subsys_logging_initialize,
|
.initialize = subsys_logging_initialize,
|
||||||
.shutdown = subsys_logging_shutdown,
|
.shutdown = subsys_logging_shutdown,
|
||||||
|
@ -37,7 +37,9 @@ subsys_network_shutdown(void)
|
|||||||
|
|
||||||
const subsys_fns_t sys_network = {
|
const subsys_fns_t sys_network = {
|
||||||
.name = "network",
|
.name = "network",
|
||||||
.level = -90,
|
/* Network depends on logging, and a lot of other modules depend on network.
|
||||||
|
*/
|
||||||
|
.level = -80,
|
||||||
.supported = true,
|
.supported = true,
|
||||||
.initialize = subsys_network_initialize,
|
.initialize = subsys_network_initialize,
|
||||||
.shutdown = subsys_network_shutdown,
|
.shutdown = subsys_network_shutdown,
|
||||||
|
@ -58,6 +58,8 @@ subsys_winprocess_initialize(void)
|
|||||||
|
|
||||||
const subsys_fns_t sys_winprocess = {
|
const subsys_fns_t sys_winprocess = {
|
||||||
.name = "winprocess",
|
.name = "winprocess",
|
||||||
|
/* HeapEnableTerminationOnCorruption and setdeppolicy() are security
|
||||||
|
* features, we want them to run first. */
|
||||||
.level = -100,
|
.level = -100,
|
||||||
.supported = WINPROCESS_SYS_ENABLED,
|
.supported = WINPROCESS_SYS_ENABLED,
|
||||||
.initialize = subsys_winprocess_initialize,
|
.initialize = subsys_winprocess_initialize,
|
||||||
|
@ -122,6 +122,8 @@ subsys_threads_initialize(void)
|
|||||||
const subsys_fns_t sys_threads = {
|
const subsys_fns_t sys_threads = {
|
||||||
.name = "threads",
|
.name = "threads",
|
||||||
.supported = true,
|
.supported = true,
|
||||||
|
/* Threads is used by logging, which is a diagnostic feature, we want it to
|
||||||
|
* init right after low-level error handling and approx time. */
|
||||||
.level = -95,
|
.level = -95,
|
||||||
.initialize = subsys_threads_initialize,
|
.initialize = subsys_threads_initialize,
|
||||||
};
|
};
|
||||||
|
@ -20,7 +20,9 @@ subsys_time_initialize(void)
|
|||||||
|
|
||||||
const subsys_fns_t sys_time = {
|
const subsys_fns_t sys_time = {
|
||||||
.name = "time",
|
.name = "time",
|
||||||
.level = -90,
|
/* Monotonic time depends on logging, and a lot of other modules depend on
|
||||||
|
* monotonic time. */
|
||||||
|
.level = -80,
|
||||||
.supported = true,
|
.supported = true,
|
||||||
.initialize = subsys_time_initialize,
|
.initialize = subsys_time_initialize,
|
||||||
};
|
};
|
||||||
|
@ -54,6 +54,8 @@ subsys_wallclock_initialize(void)
|
|||||||
const subsys_fns_t sys_wallclock = {
|
const subsys_fns_t sys_wallclock = {
|
||||||
.name = "wallclock",
|
.name = "wallclock",
|
||||||
.supported = true,
|
.supported = true,
|
||||||
.level = -99,
|
/* Approximate time is a diagnostic feature, we want it to init right after
|
||||||
|
* low-level error handling. */
|
||||||
|
.level = -98,
|
||||||
.initialize = subsys_wallclock_initialize,
|
.initialize = subsys_wallclock_initialize,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user