version 1.76, 2008/02/04 21:53:00 |
version 1.77, 2008/02/08 23:24:07 |
|
|
} |
} |
|
|
int |
int |
sftp_server_main(int argc, char **argv) |
sftp_server_main(int argc, char **argv, struct passwd *user_pw) |
{ |
{ |
fd_set *rset, *wset; |
fd_set *rset, *wset; |
int in, out, max, ch, skipargs = 0, log_stderr = 0; |
int in, out, max, ch, skipargs = 0, log_stderr = 0; |
|
|
extern char *optarg; |
extern char *optarg; |
extern char *__progname; |
extern char *__progname; |
|
|
/* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ |
|
sanitise_stdfd(); |
|
|
|
log_init(__progname, log_level, log_facility, log_stderr); |
log_init(__progname, log_level, log_facility, log_stderr); |
|
|
while (!skipargs && (ch = getopt(argc, argv, "C:f:l:che")) != -1) { |
while (!skipargs && (ch = getopt(argc, argv, "C:f:l:che")) != -1) { |
|
|
} else |
} else |
client_addr = xstrdup("UNKNOWN"); |
client_addr = xstrdup("UNKNOWN"); |
|
|
if ((pw = getpwuid(getuid())) == NULL) { |
pw = pwcopy(user_pw); |
error("No user found for uid %lu", (u_long)getuid()); |
|
sftp_server_cleanup_exit(255); |
|
} |
|
pw = pwcopy(pw); |
|
|
|
logit("session opened for local user %s from [%s]", |
logit("session opened for local user %s from [%s]", |
pw->pw_name, client_addr); |
pw->pw_name, client_addr); |