summaryrefslogtreecommitdiff
path: root/svr-session.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2013-04-03 00:49:24 +0800
committerMatt Johnston <matt@ucc.asn.au>2013-04-03 00:49:24 +0800
commit41ed7ee8b752fbf9664fe4cccbd7a7cefb413351 (patch)
tree22c47b56518176289d11f57eb9257940b86bdb35 /svr-session.c
parent0edb52169005774051a49a7e515e753c1bd2dd76 (diff)
parent48070296ce82755b2173c7b9c84ff2b101abc7c0 (diff)
downloaddropbear-41ed7ee8b752fbf9664fe4cccbd7a7cefb413351.tar.gz
merge kexguess branch
Diffstat (limited to 'svr-session.c')
-rw-r--r--svr-session.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/svr-session.c b/svr-session.c
index 6d76939..3a979a1 100644
--- a/svr-session.c
+++ b/svr-session.c
@@ -72,6 +72,13 @@ static const struct ChanType *svr_chantypes[] = {
NULL /* Null termination is mandatory. */
};
+static void
+svr_session_cleanup(void)
+{
+ /* free potential public key options */
+ svr_pubkey_options_cleanup();
+}
+
void svr_session(int sock, int childpipe) {
char *host, *port;
size_t len;
@@ -103,6 +110,7 @@ void svr_session(int sock, int childpipe) {
/* set up messages etc */
ses.remoteclosed = svr_remoteclosed;
+ ses.extra_session_cleanup = svr_session_cleanup;
/* packet handlers */
ses.packettypes = svr_packettypes;
@@ -159,11 +167,8 @@ void svr_dropbear_exit(int exitcode, const char* format, va_list param) {
if (svr_ses.server_pid == getpid())
#endif
{
- /* free potential public key options */
- svr_pubkey_options_cleanup();
-
/* must be after we've done with username etc */
- common_session_cleanup();
+ session_cleanup();
}
exit(exitcode);