torerr_sys.c 800 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /* Copyright (c) 2018, The Tor Project, Inc. */
  2. /* See LICENSE for licensing information */
  3. /**
  4. * \file torerr_sys.c
  5. * \brief Subsystem object for the error handling subsystem.
  6. **/
  7. #include "orconfig.h"
  8. #include "lib/err/backtrace.h"
  9. #include "lib/err/torerr.h"
  10. #include "lib/err/torerr_sys.h"
  11. #include "lib/subsys/subsys.h"
  12. #include "lib/version/torversion.h"
  13. #include <stddef.h>
  14. static int
  15. torerr_subsys_init(void)
  16. {
  17. configure_backtrace_handler(get_version());
  18. tor_log_reset_sigsafe_err_fds();
  19. return 0;
  20. }
  21. static void
  22. torerr_subsys_shutdown(void)
  23. {
  24. tor_log_reset_sigsafe_err_fds();
  25. clean_up_backtrace_handler();
  26. }
  27. const subsys_fns_t sys_torerr = {
  28. .name = "err",
  29. .level = -100,
  30. .supported = true,
  31. .initialize = torerr_subsys_init,
  32. .shutdown = torerr_subsys_shutdown
  33. };