syntactical fixups - it compiles, but channel handling code requires fixing.

--HG--
extra : convert_revision : 6f8be81d5486f3499fde596d8e86df2630b24442
This commit is contained in:
Matt Johnston 2004-06-01 04:20:12 +00:00
parent 674a607488
commit 40cb39d00c
4 changed files with 24 additions and 23 deletions

7
main.c
View File

@ -62,8 +62,11 @@ int main(int argc, char ** argv)
struct sigaction sa_chld;
_dropbear_exit = svr_dropbear_exit;
_dropbear_log = svr_dropbear_log;
/* get commandline options */
opts = getrunopts(argc, argv);
opts = svr_getopts(argc, argv);
/* fork */
if (opts->forkbg) {
@ -239,7 +242,7 @@ int main(int argc, char ** argv)
dropbear_exit("Couldn't close socket");
}
/* start the session */
child_session(childsock, opts, childpipe[1], &remoteaddr);
svr_session(childsock, opts, childpipe[1], &remoteaddr);
/* don't return */
assert(0);
}

View File

@ -48,6 +48,9 @@ extern void(*session_remoteclosed)();
/* Server */
void svr_session(int sock, runopts *opts, int childpipe,
struct sockaddr *remoteaddr);
void svr_dropbear_exit(int exitcode, const char* format, va_list param);
void svr_dropbear_log(int priority, const char* format, va_list param);
struct key_context {

View File

@ -141,8 +141,8 @@ void agentcleanup(struct ChanSess * chansess) {
* for themselves */
uid = getuid();
gid = getgid();
if ((setegid(ses.authstate.pw->pw_gid)) < 0 ||
(seteuid(ses.authstate.pw->pw_uid)) < 0) {
if ((setegid(svr_ses.authstate.pw->pw_gid)) < 0 ||
(seteuid(svr_ses.authstate.pw->pw_uid)) < 0) {
dropbear_exit("failed to set euid");
}
@ -194,8 +194,8 @@ static int bindagent(struct ChanSess * chansess) {
/* drop to user privs to make the dir/file */
uid = getuid();
gid = getgid();
if ((setegid(ses.authstate.pw->pw_gid)) < 0 ||
(seteuid(ses.authstate.pw->pw_uid)) < 0) {
if ((setegid(svr_ses.authstate.pw->pw_gid)) < 0 ||
(seteuid(svr_ses.authstate.pw->pw_uid)) < 0) {
dropbear_exit("failed to set euid");
}

View File

@ -37,8 +37,6 @@
#include "atomicio.h"
static void svr_remoteclosed();
static void svr_dropbear_exit(int exitcode, const char* format, va_list param);
static void svr_dropbear_log(int priority, const char* format, va_list param);
struct serversession svr_ses;
@ -68,8 +66,6 @@ void svr_session(int sock, runopts *opts, int childpipe,
/* set up messages etc */
session_remoteclosed = svr_remoteclosed;
_dropbear_exit = svr_dropbear_exit;
_dropbear_log = svr_dropbear_log;
/* We're ready to go now */
sessinitdone = 1;
@ -153,19 +149,8 @@ void svr_session(int sock, runopts *opts, int childpipe,
} /* for(;;) */
}
/* called when the remote side closes the connection */
static void svr_remoteclosed() {
close(ses.sock);
ses.sock = -1;
dropbear_close("Exited normally");
}
/* failure exit - format must be <= 100 chars */
static void svr_dropbear_exit(int exitcode, const char* format, va_list param) {
void svr_dropbear_exit(int exitcode, const char* format, va_list param) {
char fmtbuf[300];
@ -205,7 +190,7 @@ static void svr_dropbear_exit(int exitcode, const char* format, va_list param) {
}
/* priority is priority as with syslog() */
static void svr_dropbear_log(int priority, const char* format, va_list param) {
void svr_dropbear_log(int priority, const char* format, va_list param) {
char printbuf[1024];
char datestr[20];
@ -236,3 +221,13 @@ static void svr_dropbear_log(int priority, const char* format, va_list param) {
fprintf(stderr, "[%d] %s %s\n", getpid(), datestr, printbuf);
}
}
/* called when the remote side closes the connection */
static void svr_remoteclosed() {
close(ses.sock);
ses.sock = -1;
dropbear_close("Exited normally");
}