upstream: avoid expensive channel_open_message() calls; ok djm@

OpenBSD-Commit-ID: aea3b5512ad681cd8710367d743e8a753d4425d9
diff --git a/channels.c b/channels.c
index 1de63c2..e90f7fe 100644
--- a/channels.c
+++ b/channels.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: channels.c,v 1.383 2018/07/11 18:53:29 markus Exp $ */
+/* $OpenBSD: channels.c,v 1.384 2018/07/27 12:03:17 markus Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -608,9 +608,11 @@
 	if (c->type == SSH_CHANNEL_MUX_CLIENT)
 		mux_remove_remote_forwardings(ssh, c);
 
-	s = channel_open_message(ssh);
-	debug3("channel %d: status: %s", c->self, s);
-	free(s);
+	if (log_level_get() >= SYSLOG_LEVEL_DEBUG3) {
+		s = channel_open_message(ssh);
+		debug3("channel %d: status: %s", c->self, s);
+		free(s);
+	}
 
 	channel_close_fds(ssh, c);
 	sshbuf_free(c->input);
diff --git a/log.c b/log.c
index 99450dd..d9c2d13 100644
--- a/log.c
+++ b/log.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: log.c,v 1.50 2017/05/17 01:24:17 djm Exp $ */
+/* $OpenBSD: log.c,v 1.51 2018/07/27 12:03:17 markus Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -105,6 +105,12 @@
 	{ NULL,		SYSLOG_LEVEL_NOT_SET }
 };
 
+LogLevel
+log_level_get(void)
+{
+	return log_level;
+}
+
 SyslogFacility
 log_facility_number(char *name)
 {
diff --git a/log.h b/log.h
index 7822104..ef7bea7 100644
--- a/log.h
+++ b/log.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: log.h,v 1.22 2017/05/17 01:24:17 djm Exp $ */
+/* $OpenBSD: log.h,v 1.23 2018/07/27 12:03:17 markus Exp $ */
 
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -49,6 +49,7 @@
 typedef void (log_handler_fn)(LogLevel, const char *, void *);
 
 void     log_init(char *, LogLevel, SyslogFacility, int);
+LogLevel log_level_get(void);
 int      log_change_level(LogLevel);
 int      log_is_on_stderr(void);
 void     log_redirect_stderr_to(const char *);