Re: [msysGit] [PATCH/RFC 03/11] mingw: implement syslog
From: Erik Faye-Lund <hidden>
Date: 2016-06-15 22:47:51
On Fri, Nov 27, 2009 at 8:23 PM, Johannes Sixt [off-list ref] wrote:
On Freitag, 27. November 2009, Erik Faye-Lund wrote:quoted
On Thu, Nov 26, 2009 at 10:23 PM, Johannes Sixt [off-list ref] wrote:quoted
I would const char* arg; if (strcmp(fmt, "%s")) die("format string of syslog() not implemented") va_start(va, fmt); arg = va_arg(va, char*); va_end(va); because we have exactly one invocation of syslog(), which passes "%s" as format string. Then strbuf_vaddf is not needed. Or even simpler: declare the function as void syslog(int priority, const char *fmt, const char*arg);After reading this again, I agree that this is the best solution. I'll update for the next iteration.Except that you shouldn't die like I proposed because here we are already in the die_routine, no?
Might be. Either way, I think loosing a log-entry is better than taking down the server. I'm just doing a warning() and return. If we're lucky, the warning gets somewhere. If not, well, something happened and no one was around to see it.
quoted
quoted
"Note that the string that you log cannot contain %n, where n is an integer value (for example, %1) because the event viewer treats it as an insertion string. ..." How are the chances that this condition applies to our use of the function?Ugh, increasingly high since we're adding IPv6 support, I guess. Perhaps some form of escaping needs to be done?I think so, but actually I have no clue.
Bah, according to Microsoft Support (1), there's no simple way to escape this. I'm tempted to leave this bug in, and rather try to fix the symptoms when/if they start popping up. Unless someone else comes up with something better, that is. (1) http://support.microsoft.com/kb/934640 -- Erik "kusma" Faye-Lund