Portable build framework for OpenNTPD
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
2.6 KiB

9 years ago
  1. From 7720c6cbb7ff30abc1c4d85aada869294cc3db47 Mon Sep 17 00:00:00 2001
  2. From: Brent Cook <busterb@gmail.com>
  3. Date: Sun, 4 Jan 2015 22:19:51 -0600
  4. Subject: [PATCH 01/12] make fatal/fatalx variadic like the other logging
  5. functions
  6. this factors out the guts of log_warn and adds logerr
  7. ---
  8. src/usr.sbin/ntpd/log.c | 54 +++++++++++++++++++++++++++---------------------
  9. src/usr.sbin/ntpd/ntpd.h | 4 ++--
  10. 2 files changed, 32 insertions(+), 26 deletions(-)
  11. diff --git a/src/usr.sbin/ntpd/log.c b/src/usr.sbin/ntpd/log.c
  12. index 618f4cc..e92924e 100644
  13. --- a/src/usr.sbin/ntpd/log.c
  14. +++ b/src/usr.sbin/ntpd/log.c
  15. @@ -71,29 +71,33 @@ vlog(int pri, const char *fmt, va_list ap)
  16. vsyslog(pri, fmt, ap);
  17. }
  18. -
  19. void
  20. -log_warn(const char *emsg, ...)
  21. +vlogerr(int pri, const char *fmt, va_list ap)
  22. {
  23. char *nfmt;
  24. - va_list ap;
  25. /* best effort to even work in out of memory situations */
  26. - if (emsg == NULL)
  27. - logit(LOG_CRIT, "%s", strerror(errno));
  28. - else {
  29. - va_start(ap, emsg);
  30. -
  31. - if (asprintf(&nfmt, "%s: %s", emsg, strerror(errno)) == -1) {
  32. + if (fmt) {
  33. + if (asprintf(&nfmt, "%s: %s", fmt, strerror(errno)) == -1) {
  34. /* we tried it... */
  35. - vlog(LOG_CRIT, emsg, ap);
  36. + vlog(LOG_CRIT, fmt, ap);
  37. logit(LOG_CRIT, "%s", strerror(errno));
  38. } else {
  39. vlog(LOG_CRIT, nfmt, ap);
  40. free(nfmt);
  41. }
  42. - va_end(ap);
  43. - }
  44. + } else
  45. + logit(LOG_CRIT, "%s", strerror(errno));
  46. +}
  47. +
  48. +void
  49. +log_warn(const char *emsg, ...)
  50. +{
  51. + va_list ap;
  52. +
  53. + va_start(ap, emsg);
  54. + vlogerr(LOG_CRIT, emsg, ap);
  55. + va_end(ap);
  56. }
  57. void
  58. @@ -129,25 +133,27 @@ log_debug(const char *emsg, ...)
  59. }
  60. void
  61. -fatal(const char *emsg)
  62. +fatal(const char *emsg, ...)
  63. {
  64. - if (emsg == NULL)
  65. - logit(LOG_CRIT, "fatal: %s", strerror(errno));
  66. - else
  67. - if (errno)
  68. - logit(LOG_CRIT, "fatal: %s: %s",
  69. - emsg, strerror(errno));
  70. - else
  71. - logit(LOG_CRIT, "fatal: %s", emsg);
  72. + va_list ap;
  73. +
  74. + va_start(ap, emsg);
  75. + vlogerr(LOG_CRIT, emsg, ap);
  76. + va_end(ap);
  77. exit(1);
  78. }
  79. void
  80. -fatalx(const char *emsg)
  81. +fatalx(const char *emsg, ...)
  82. {
  83. - errno = 0;
  84. - fatal(emsg);
  85. + va_list ap;
  86. +
  87. + va_start(ap, emsg);
  88. + vlog(LOG_CRIT, emsg, ap);
  89. + va_end(ap);
  90. +
  91. + exit(1);
  92. }
  93. const char *
  94. diff --git a/src/usr.sbin/ntpd/ntpd.h b/src/usr.sbin/ntpd/ntpd.h
  95. index 4a768d8..31bc5a0 100644
  96. --- a/src/usr.sbin/ntpd/ntpd.h
  97. +++ b/src/usr.sbin/ntpd/ntpd.h
  98. @@ -269,8 +269,8 @@ void log_warn(const char *, ...);
  99. void log_warnx(const char *, ...);
  100. void log_info(const char *, ...);
  101. void log_debug(const char *, ...);
  102. -void fatal(const char *);
  103. -void fatalx(const char *);
  104. +void fatal(const char *, ...);
  105. +void fatalx(const char *, ...);
  106. const char *log_sockaddr(struct sockaddr *);
  107. /* ntp.c */
  108. --
  109. 1.9.1