local timezone.
* [Bug 1751] Support for Atari FreeMiNT OS.
* [Bug 1754] --version output should be more verbose.
+* [Bug 1757] oncore snprintf("%m") doesn't expand %m.
* Upgrade to libopts 33.5.8 from AutoGen 5.11.6pre3.
* Suppress ntp-keygen OpenSSL version display for --help, --version,
display both build and runtime OpenSSL versions when they differ.
# endif
#endif
-extern void msyslog (int, const char *, ...)
+extern size_t mvsnprintf(char *, size_t, const char *, va_list);
+extern size_t msnprintf(char *, size_t, const char *, ...)
+ __attribute__((__format__(__printf__, 3, 4)));
+extern void msyslog(int, const char *, ...)
__attribute__((__format__(__printf__, 2, 3)));
/*
*n = '\0';
}
-#if defined(__STDC__) || defined(HAVE_STDARG_H)
-void msyslog(int level, const char *fmt, ...)
-#else /* defined(__STDC__) || defined(HAVE_STDARG_H) */
- /*VARARGS*/
- void msyslog(va_alist)
- va_dcl
-#endif /* defined(__STDC__) || defined(HAVE_STDARG_H) */
+
+size_t
+mvsnprintf(
+ char * buf,
+ size_t bufsiz,
+ const char * fmt,
+ va_list ap
+ )
{
-#if defined(__STDC__) || defined(HAVE_STDARG_H)
-#else
- int level;
- const char *fmt;
-#endif
- va_list ap;
- char buf[1025], nfmt[256];
- int errval;
+ char nfmt[256];
+ int errval;
/*
* Save the error value as soon as possible
errval = errno;
#endif /* SYS_WINNT */
-#if defined(__STDC__) || defined(HAVE_STDARG_H)
+ format_errmsg(nfmt, sizeof(nfmt), fmt, errval);
+
+ return vsnprintf(buf, bufsiz, nfmt, ap);
+}
+
+size_t
+msnprintf(
+ char * buf,
+ size_t bufsiz,
+ const char * fmt,
+ ...
+ )
+{
+ va_list ap;
+ size_t rc;
+
va_start(ap, fmt);
-#else
- va_start(ap);
+ rc = mvsnprintf(buf, bufsiz, fmt, ap);
+ va_end(ap);
- level = va_arg(ap, int);
- fmt = va_arg(ap, char *);
-#endif
- format_errmsg(nfmt, sizeof(nfmt), fmt, errval);
+ return rc;
+}
+
+
+void
+msyslog(
+ int level,
+ const char * fmt,
+ ...
+ )
+{
+ char buf[1024];
+ va_list ap;
- vsnprintf(buf, sizeof(buf), nfmt, ap);
+ va_start(ap, fmt);
+ mvsnprintf(buf, sizeof(buf), fmt, ap);
va_end(ap);
addto_syslog(level, buf);
}
*/
if (IS_IPV4(addr))
one_ep = wildipv4;
- else if (IS_IPV6(addr))
+ else
one_ep = wildipv6;
for (ep = ep_list; ep != NULL; ep = ep->elink) {
if (ep->ignore_packets || AF(&ep->sin) != AF(addr) ||
char *cp, Msg[160];
if (time_pps_getcap(instance->pps_h, &cap) < 0) {
- snprintf(Msg, sizeof(Msg), "time_pps_getcap failed: %m");
+ msnprintf(Msg, sizeof(Msg), "time_pps_getcap failed: %m");
oncore_log(instance, LOG_ERR, Msg);
return (0);
}
if (time_pps_getparams(instance->pps_h, &instance->pps_p) < 0) {
- snprintf(Msg, sizeof(Msg), "time_pps_getparams failed: %m");
+ msnprintf(Msg, sizeof(Msg), "time_pps_getparams failed: %m");
oncore_log(instance, LOG_ERR, Msg);
return (0);
}
if (time_pps_kcbind(instance->pps_h, PPS_KC_HARDPPS, i,
PPS_TSFMT_TSPEC) < 0) {
- snprintf(Msg, sizeof(Msg), "time_pps_kcbind failed: %m");
+ msnprintf(Msg, sizeof(Msg), "time_pps_kcbind failed: %m");
oncore_log(instance, LOG_ERR, Msg);
oncore_log(instance, LOG_ERR, "HARDPPS failed, abort...");
return (0);
*/
if (time_pps_getcap(instance->pps_h, ¤t_mode) < 0) {
- snprintf(Msg, sizeof(Msg), "time_pps_getcap failed: %m");
+ msnprintf(Msg, sizeof(Msg), "time_pps_getcap failed: %m");
oncore_log(instance, LOG_ERR, Msg);
peer->flags &= ~FLAG_PPS;
return;
}
if (time_pps_getparams(instance->pps_h, ¤t_params) < 0) {
- snprintf(Msg, sizeof(Msg), "time_pps_getparams failed: %m");
+ msnprintf(Msg, sizeof(Msg), "time_pps_getparams failed: %m");
oncore_log(instance, LOG_ERR, Msg);
peer->flags &= ~FLAG_PPS;
return;