upstream commit
refactor channels.c
Move static state to a "struct ssh_channels" that is allocated at
runtime and tracked as a member of struct ssh.
Explicitly pass "struct ssh" to all channels functions.
Replace use of the legacy packet APIs in channels.c.
Rework sshd_config PermitOpen handling: previously the configuration
parser would call directly into the channels layer. After the refactor
this is not possible, as the channels structures are allocated at
connection time and aren't available when the configuration is parsed.
The server config parser now tracks PermitOpen itself and explicitly
configures the channels code later.
ok markus@
Upstream-ID: 11828f161656b965cc306576422613614bea2d8f
diff --git a/session.h b/session.h
index 74c557d..54dd1f0 100644
--- a/session.h
+++ b/session.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: session.h,v 1.34 2017/08/18 05:36:45 djm Exp $ */
+/* $OpenBSD: session.h,v 1.35 2017/09/12 06:32:07 djm Exp $ */
/*
* Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
@@ -62,20 +62,20 @@
} *env;
};
-void do_authenticated(Authctxt *);
-void do_cleanup(Authctxt *);
+void do_authenticated(struct ssh *, Authctxt *);
+void do_cleanup(struct ssh *, Authctxt *);
int session_open(Authctxt *, int);
void session_unused(int);
-int session_input_channel_req(Channel *, const char *);
-void session_close_by_pid(pid_t, int);
-void session_close_by_channel(int, void *);
-void session_destroy_all(void (*)(Session *));
+int session_input_channel_req(struct ssh *, Channel *, const char *);
+void session_close_by_pid(struct ssh *ssh, pid_t, int);
+void session_close_by_channel(struct ssh *, int, void *);
+void session_destroy_all(struct ssh *, void (*)(Session *));
void session_pty_cleanup2(Session *);
Session *session_new(void);
Session *session_by_tty(char *);
-void session_close(Session *);
+void session_close(struct ssh *, Session *);
void do_setusercontext(struct passwd *);
const char *session_get_remote_name_or_ip(struct ssh *, u_int, int);