summaryrefslogtreecommitdiff
path: root/clientloop.h
diff options
context:
space:
mode:
authorAlistair Delva <adelva@google.com>2020-08-21 00:00:13 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2020-08-21 00:00:13 +0000
commited358b3546c776c1c677fd88eb8f716cf6187510 (patch)
tree3c6134bcb2cda4b9dccc57b4a8b997a945aab62d /clientloop.h
parent22246b08952d746a7cc5a292570636cf4277598f (diff)
parent44a1065de8a58c51a021243a28bfa01e87822e4f (diff)
Merge changes I934c73d4,I28cdc9a0,I9e734da9,I3c079d86
* changes: UPSTREAM: depend UPSTREAM: upstream: avoid possible NULL deref; from Pedro Martelletto Revert "upstream: fix compilation with DEBUG_KEXDH; bz#3160 ok dtucker@" Merge upstream-master into master
Diffstat (limited to 'clientloop.h')
-rw-r--r--clientloop.h35
1 files changed, 20 insertions, 15 deletions
diff --git a/clientloop.h b/clientloop.h
index 338d4518..31630551 100644
--- a/clientloop.h
+++ b/clientloop.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: clientloop.h,v 1.31 2013/06/02 23:36:29 dtucker Exp $ */
+/* $OpenBSD: clientloop.h,v 1.37 2020/04/03 02:40:32 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -37,28 +37,32 @@
#include <termios.h>
+struct ssh;
+
/* Client side main loop for the interactive session. */
-int client_loop(int, int, int);
-void client_x11_get_proto(const char *, const char *, u_int, u_int,
- char **, char **);
+int client_loop(struct ssh *, int, int, int);
+int client_x11_get_proto(struct ssh *, const char *, const char *,
+ u_int, u_int, char **, char **);
void client_global_request_reply_fwd(int, u_int32_t, void *);
-void client_session2_setup(int, int, int, const char *, struct termios *,
- int, Buffer *, char **);
-int client_request_tun_fwd(int, int, int);
+void client_session2_setup(struct ssh *, int, int, int,
+ const char *, struct termios *, int, struct sshbuf *, char **);
+char *client_request_tun_fwd(struct ssh *, int, int, int,
+ channel_open_fn *, void *);
void client_stop_mux(void);
/* Escape filter for protocol 2 sessions */
void *client_new_escape_filter_ctx(int);
-void client_filter_cleanup(int, void *);
-int client_simple_escape_filter(Channel *, char *, int);
+void client_filter_cleanup(struct ssh *, int, void *);
+int client_simple_escape_filter(struct ssh *, Channel *, char *, int);
/* Global request confirmation callbacks */
-typedef void global_confirm_cb(int, u_int32_t seq, void *);
+typedef void global_confirm_cb(struct ssh *, int, u_int32_t, void *);
void client_register_global_confirm(global_confirm_cb *, void *);
/* Channel request confirmation callbacks */
enum confirm_action { CONFIRM_WARN = 0, CONFIRM_CLOSE, CONFIRM_TTY };
-void client_expect_confirm(int, const char *, enum confirm_action);
+void client_expect_confirm(struct ssh *, int, const char *,
+ enum confirm_action);
/* Multiplexing protocol version */
#define SSHMUX_VER 4
@@ -71,9 +75,10 @@ void client_expect_confirm(int, const char *, enum confirm_action);
#define SSHMUX_COMMAND_FORWARD 5 /* Forward only, no command */
#define SSHMUX_COMMAND_STOP 6 /* Disable mux but not conn */
#define SSHMUX_COMMAND_CANCEL_FWD 7 /* Cancel forwarding(s) */
+#define SSHMUX_COMMAND_PROXY 8 /* Open new connection */
-void muxserver_listen(void);
-void muxclient(const char *);
-void mux_exit_message(Channel *, int);
-void mux_tty_alloc_failed(Channel *);
+void muxserver_listen(struct ssh *);
+int muxclient(const char *);
+void mux_exit_message(struct ssh *, Channel *, int);
+void mux_tty_alloc_failed(struct ssh *ssh, Channel *);