}
/*
- * Log an Event Log entry (used in SSH packet logging mode).
+ * Log an Event Log entry. Used in SSH packet logging mode; this is
+ * also as convenient a place as any to put the output of Event Log
+ * entries to stderr when a command-line tool is in verbose mode.
+ * (In particular, this is a better place to put it than in the
+ * front ends, because it only has to be done once for all
+ * platforms. Platforms which don't have a meaningful stderr can
+ * just avoid defining FLAG_STDERR.
*/
void log_eventlog(void *handle, char *event)
{
struct LogContext *ctx = (struct LogContext *)handle;
+ if ((flags & FLAG_STDERR) && (flags & FLAG_VERBOSE)) {
+ fprintf(stderr, "%s\n", event);
+ fflush(stderr);
+ }
if (cfg.logtype != LGTYP_PACKETS)
return;
if (!ctx->lgfp)
int (*s_rdpkt) (Ssh ssh, unsigned char **data, int *datalen);
};
-#define logevent(s) do { \
- logevent(ssh->frontend, s); \
- if ((flags & FLAG_STDERR) && (flags & FLAG_VERBOSE)) { \
- fprintf(stderr, "%s\n", s); \
- fflush(stderr); \
- } \
-} while (0)
+#define logevent(s) logevent(ssh->frontend, s)
/* logevent, only printf-formatted. */
void logeventf(Ssh ssh, char *fmt, ...)