aboutsummaryrefslogtreecommitdiff
path: root/crypto/openssh/channels.h
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/openssh/channels.h')
-rw-r--r--crypto/openssh/channels.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/crypto/openssh/channels.h b/crypto/openssh/channels.h
index 134528d59c72..df7c7f364d22 100644
--- a/crypto/openssh/channels.h
+++ b/crypto/openssh/channels.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: channels.h,v 1.158 2024/10/13 22:20:06 djm Exp $ */
+/* $OpenBSD: channels.h,v 1.161 2025/09/25 06:33:19 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -82,6 +82,10 @@
#define FORWARD_ADM 0x100
#define FORWARD_USER 0x101
+/* default pattern-lists used to classify channel types as bulk */
+#define CHANNEL_BULK_TTY ""
+#define CHANNEL_BULK_NOTTY "direct-*,forwarded-*,tun-*,x11-*,session*"
+
struct ssh;
struct Channel;
typedef struct Channel Channel;
@@ -180,6 +184,7 @@ struct Channel {
char *ctype; /* const type - NB. not freed on channel_free */
char *xctype; /* extended type */
+ int bulk; /* channel is non-interactive */
/* callback */
channel_open_fn *open_confirm;
@@ -277,8 +282,9 @@ struct Channel {
c->efd != -1 && (!(c->flags & (CHAN_EOF_RCVD|CHAN_CLOSE_RCVD)) || \
sshbuf_len(c->extended) > 0))
-/* Add channel management structures to SSH transport instance */
+/* Add/remove channel management structures to/from SSH transport instance */
void channel_init_channels(struct ssh *ssh);
+void channel_free_channels(struct ssh *ssh);
/* channel management */
@@ -289,6 +295,7 @@ Channel *channel_new(struct ssh *, char *, int, int, int, int,
u_int, u_int, int, const char *, int);
void channel_set_fds(struct ssh *, int, int, int, int, int,
int, int, u_int);
+void channel_set_tty(struct ssh *, Channel *);
void channel_free(struct ssh *, Channel *);
void channel_free_all(struct ssh *);
void channel_stop_listening(struct ssh *);
@@ -308,6 +315,7 @@ void channel_register_status_confirm(struct ssh *, int,
void channel_cancel_cleanup(struct ssh *, int);
int channel_close_fd(struct ssh *, Channel *, int *);
void channel_send_window_changes(struct ssh *);
+int channel_has_bulk(struct ssh *);
/* channel inactivity timeouts */
void channel_add_timeout(struct ssh *, const char *, int);
@@ -344,6 +352,7 @@ int channel_still_open(struct ssh *);
int channel_tty_open(struct ssh *);
const char *channel_format_extended_usage(const Channel *);
char *channel_open_message(struct ssh *);
+void channel_report_open(struct ssh *, int);
int channel_find_open(struct ssh *);
/* tcp forwarding */